TO BUILD OPEN AND EVOLUTIVE APPLICATIONS: AN APPROACH BASED ON MDA AND GENERATIVE PROGRAMMING

With the emergence of the Internet and proliferation of new component and distributive technologies, the design and implementation of complex applications has to take into account standards, code distribution, deployment of components and reuse of business know-hows. To cope with these changes, applications need to be more open, adaptable and evolutive. To accommodate to these new challenges, this paper presents a new development approach based on transformations of different business models, each of them related to one possible concern of the application. This approach is MDA (Model-driven Architecture) compliant and relies on Generative Programming. It contributes to the research works on Domain Driven Development (DDD). The main expected results are i) to get softwares of better quality thanks to business models and technology separation, ii) to have a more straightforward code, iii) to allow the rapid development and insertion of new facets and iv) to facilitate the portability of applications towards new technologies or platforms. Finaly, in order to illustrate our approach, a generative programming system, called SMARTTOOLS, is presented. It may be compared to a software factory dedicated to applications which rely on one data model. This project is supported in part by the W3C consortiun with the IST2000-28767 QUESTION-HOW Project. We would also like to thank PASCAL DEGENNE and ALEXANDRE FAU for their software development efforts in SMARTTOOLS.

[1]  Krzysztof Czarnecki,et al.  Generative Programming: Methods, Techniques, and Applications , 2002, ICSR.

[2]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[3]  Didier Parigot,et al.  Design, implementation and evaluation of the FNC-2 attribute grammar system , 1990, PLDI '90.

[4]  Martin Odersky,et al.  Objects + Views = Components? , 2000, Abstract State Machines.

[5]  Karl J. Lieberherr,et al.  Preventive Program Maintenance in Demeter/Java , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[6]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[7]  Jean-Marc Jézéquel,et al.  ≪UML≫ 2002 — The Unified Modeling Language , 2002, Lecture Notes in Computer Science.

[8]  Richard Mark Soley Model Driven Architecture: Next Steps , 2005, ICEIS.

[9]  Joost Visser,et al.  Object-oriented tree traversal with JJForester , 2001, Sci. Comput. Program..

[10]  Paul Klint A Meta-Environment for Generating Programming Environments , 1989, Algebraic Methods.

[11]  Jan Bosch,et al.  Component-Oriented Programming , 2006, ECOOP Workshops.

[12]  Todd D. Millstein,et al.  Modular Statically Typed Multimethods , 1999, Inf. Comput..

[13]  Philippe Lahire,et al.  Customisation of Inheritance , 2002 .

[14]  Bruce G. Lindsay,et al.  Static type checking of multi-methods , 1991, OOPSLA '91.

[15]  David J. DeWitt,et al.  The Object-Oriented Database System Manifesto , 1994, Building an Object-Oriented Database System, The Story of O2.

[16]  Bertrand Meyer,et al.  Advances in object-oriented software engineering , 1992 .

[17]  Lucan,et al.  9 = 10 M , 1993 .

[18]  Boaz Patt-Shamir,et al.  A New Approach to Compiling Adaptive Programs , 1996, ESOP.

[19]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[20]  Charles Simonyi,et al.  The Death of Computer Languages, The Birth of Intentional Programming , 1995 .

[21]  Laurence Duchien,et al.  JAC: A Flexible Solution for Aspect-Oriented Programming in Java , 2001, Reflection.

[22]  Görel Hedin,et al.  JastAdd - a Java-based system for implementing front ends , 2001, Electron. Notes Theor. Comput. Sci..

[23]  Jean-Marc Jézéquel,et al.  UMLAUT: an extendible UML transformation framework , 1999, 14th IEEE International Conference on Automated Software Engineering.

[24]  Didier Parigot,et al.  Declarative Program Transformation: A Deforestation Case-Study , 1999, PPDP.

[25]  Matthias Felleisen,et al.  Classes and mixins , 1998, POPL '98.

[26]  Didier Parigot,et al.  Aspect and XML-oriented Semantic Framework Generator: SmartTools , 2002, LDTA@ETAPS.

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

[28]  Axel Uhl,et al.  Model-Driven Architecture , 2002, OOIS Workshops.

[29]  Alexander A. Stepanov,et al.  Algorithm‐oriented generic libraries , 1994, Softw. Pract. Exp..

[30]  Jens Palsberg,et al.  The essence of the Visitor pattern , 1998, Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241).

[31]  Jean-Marc Jézéquel,et al.  From a UML Platform Independent Component Model to Platform Specific Component Models , 2002 .

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

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

[34]  Dan Suciu,et al.  Data on the Web: From Relations to Semistructured Data and XML , 1999 .