Better Generative Programming with Generic Aspects

Abstract. After a brief introduction to generative, generic, and aspect-oriented programming, we point out four key elements that appear in the definition of generative programming and that are addressed in this position paper from the perspective of distributed systems development. Then, based on a concrete RMI distribution example, we start motivating how the expressiveness power of generics and the crosscutting modularization power of aspects could be combined in order to achieve highly reusable generic aspects. We conclude by presenting how generic concern-oriented model transformations could help in providing the necessary information to aspect generators for automatically instantiating our generic aspects before weaving them into concrete applications.

[1]  Martin Odersky,et al.  Making the future safe for the past: adding genericity to the Java programming language , 1998, OOPSLA '98.

[2]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[3]  Raul Silaghi,et al.  Generic Concern-Oriented Model Transformations Meet AOP , 2003, Middleware Workshops.

[4]  Jean-Marc Jézéquel,et al.  Using UML Action Semantics for Executable Modeling and Beyond , 2001, CAiSE.

[5]  Shane Sendall,et al.  Supporting Model-to-Model Transformations: The VMT Approach , 2003 .

[6]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[7]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[8]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[9]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[10]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[11]  Andrew Kennedy,et al.  Design and implementation of generics for the .NET Common language runtime , 2001, PLDI '01.

[12]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[13]  João Araújo,et al.  Integration and Transformation of UML Models , 2002, ECOOP Workshops.

[14]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[15]  MeyerBertrand,et al.  Design by Contract , 1997 .

[16]  Shane Sendall,et al.  Model Transformation: The Heart and Soul of Model-Driven Software Development , 2003, IEEE Softw..

[17]  Dragan Milicev,et al.  Automatic Model Transformations Using Extended UML Object Diagrams in Modeling Environments , 2002, IEEE Trans. Software Eng..

[18]  Mikael Peltier,et al.  On levels of model transformation , 2000 .

[19]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[20]  Claudia Ermel,et al.  AGG and GenGED: Graph Transformation-Based Specification and Analysis Rechniques for Visual Languages , 2002, GraBaTs.

[21]  Albert Zündorf,et al.  The PROGRES approach: language and environment , 1999 .

[22]  Jon Whittle Transformations and Software Modeling Languages: Automating Transformations in UML , 2002, UML.

[23]  James Gosling The Java Language Specification - Second Edition , 2000 .

[24]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[25]  Gilad Bracha Adding Generics to the JavaTM Programming Language , 2001, OOPSLA 2001.

[26]  Stefan Hanenberg,et al.  AspectJ Idioms for Aspect-Oriented Software Construction , 2003, EuroPLoP.

[27]  Peter Fettke,et al.  Model Driven Architecture (MDA) , 2003, Wirtsch..

[28]  Alfred Strohmeier,et al.  Integrating CBSE, SoC, MDA, and AOP in a software development method , 2003, Seventh IEEE International Enterprise Distributed Object Computing Conference, 2003. Proceedings..