Home | Issues | Profile | History | Submission | Review
Vol: 49(63) No: 3 / September 2004

An Attempt to Set the Framework of Model-Oriented Programming
Philippe Lahire
Laboratoire I3S (UNSA/CNRS), Projet OCL - 2000 route des Lucioles - Les Algorithmes, Bâtiment Euclide - BP 121 - F-06903 Sophia-Antipolis cedex - France, e-mail: Philippe.Lahire@unice.fr, web: http://www.i3s.unice.fr/
Didier Parigot
INRIA Sophia-Antipolis, 2004 Route des Lucioles - BP 93 - F-06902 Sophia-Antipolis cedex – France, e-mail: Didier.Parigot@inria.fr, web: http://www.inria.fr/
Carine Courbis
University College London - Computer Science Department, Adastral Park - Martlesham IP5 3RE - United Kingdom, e-mail: Carine.Courbis@bt.com, web: http://www.cs.ucl.ac.uk/
Pierre Crescenzo
Laboratoire I3S (UNSA/CNRS), Projet OCL - 2000 route des Lucioles - Les Algorithmes, Bâtiment Euclide - BP 121 - F-06903 Sophia-Antipolis cedex - France, e-mail: Pierre.Crescenzo@unice.fr, web: http://www.i3s.unice.fr/
Emanuel Tundrea
Politehnica University of Timisoara - Faculty of Automatics and Computer Science, Bd. V. Parvan no 2 , 1900, Timisoara- Romania, e-mail: Emanuel@emanuel.ro


Keywords: meta-modelling, business models, Model-Driven Architecture (MDA), Domain-Driven Development(DDD), aspect-oriented programming (AOP), generative programming

Abstract
Nowadays, companies involved in the development of modern software face several difficulties. One of the most important ones is the continuous evolution of software platforms (C++, Java, DotNet, CORBA, EJB, Web services, XML, etc.). One interesting solution to this problem is the Model-Driven Architecture (MDA) approach from the OMG. It suggests that domain-specific knowledges should be encapsulated in platformindependent business models, apart from the applications. Beyond
this answer is the failure of classical development techniques that rely on object-oriented design and programming. According to these remarks, we address another way to develop software: Model-Oriented Programming. It is based on the Domain-Driven Development track and introduces a macro-level on top of the classical programming entities. It intends to be used for the handling, reuse and evolution of the business know-how and its associated applications. This paper attempts to define a set
of golden rules for setting up the framework of model-oriented programming and ensuring the success of its use. It gives also an overview of the implementation of those rules that we propose in our approach called SmartModels.

References
[1] Colin Atkinson and Thomas Kühne. The role of meta-modeling in MDA. In Jean Bezivin and Robert France, editors, Workshop in Software Model Engineering, 2002.
[2] Isabelle Attali, Carine Courbis, Pascal Degenne, Alexandre Fau, Joel Fillon, Didier Parigot, Claude Pasquier, and Claudio Sacerdoti Coen.SmartTools: a development environment generator based on XML technologies. In XML Technologies and Software Engineering, Toronto, Canada, May 2001. ICSE’2001, ICSE workshop proceedings. ftp://ftpsop.inria.fr/oasis/personnel/Carine.Courbis/smarticse02.pdf.
[3] Don Batory, Bernie Lofaso, and Yannis Smaragdakis. JTS: Tools for implementing Domain-Specific Languages. In P. Devanbu and J. Poulin, editors, Proceedings: Fifth International Conference on Software Reuse, pages 143–153. IEEE Computer Society Press, 1998.
[4] Jean Bezivin. From Object Composition to Model Transformation with MDA. In TOOLS USA, Santa-Barbara, August 2001. IEEE TOOLS-39.
[5] Noury M. N. Bouraqadi-Saadani and Thomas Ledoux. Le point sur la programmation par aspects. In Technique et Sciences Informatiques, volume 20, page 505 - 528. Hermes, 2001.
[6] Steve Cook and Stuart Kent. The Tool Factory. In OOPSLA’2003, workshop on Generative Techniques in the context of MDA, Anaheim - USA, October 2003.
[7] Pierre Crescenzo and Philippe Lahire. Using both specialisation and generalisation in a programming language: Why and how? Lecture Notes in Computer Science, 2426:64–73, 2002.
[8] Krysztof Czarnecki and UlrichW. Eisenecker. Generative Programming: Methods, Techniques, and Applications. Addison-Wesley, June 2000.
[9] Krzysztof Czarnecki and John Vlissides. Domain-Driven Development. Special Track at OOPSLA’03 URL: http://oopsla.acm.org/oopsla2003/files/ddd.html.
[10] P. Desfray. Object Engineering, the Fourth Dimension. Addison-Wesley Publishing Co., 1994.
[11] Christer Fernström, Kjell-H˙akan Närfelt, and Lennart Ohlsson. Software factory principles, architecture, and experiments. IEEE Software, 9:36–44, March 1992.
[12] Jack Greenfield and Keith Short. Software factories: assembling applications with patterns, models, frameworks and tools. In Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 16–27. ACM Press, 2003.
[13] Object Management Group. Meta Object Facility (MOF) specification (version 1.3). Technical report, Object Management Group, March 2000.
[14] OMG Staff Strategy Group and Richard Soley. Model-Driven Architecture. Technical report, OMG, November 2000.
[15] William Harrison and Harold Ossher. Subject-oriented programming (A critique of pure objects). In Andreas Paepcke, editor, Proceedings ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 411–428. ACM Press, October 1993.
[16] Gregor Kiczales, John Lamping, Anurag Menhdhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming. In Mehmet Ak¸sit and Satoshi Matsuoka, editors, ECOOP ’97 — Object-Oriented Programming 11th European Conference, Jyvaskyla, Finland, volume 1241 of Lecture Notes in Computer Science, pages 220–242. Springer-Verlag, New York, NY, June 1997.
[17] Karl J. Lieberherr. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston, 1996. ISBN 0-534-94602-X.
[18] Karl J. Lieberherr and Doug Orleans. Preventive program maintenance in Demeter/Java. In Proceedings of the 1997 International Conference on Software Engineering, pages 604–605. ACM Press, 1997.
[19] Cristina Videira Lopes and Karl J. Lieberherr. AP/S++: A CASE-study of a MOP for purposes of software evolution. Technical Report NUCCS-95, Xerox PARC and Northeastern University, November 1995.
[20] Jacques Malenfant and Pierre Cointe. Aspect-Oriented Programming versus Reflection: a first draft. In Position Statement for the OOPLSA’96 AOP meeting, 1996.
[21] OMG. MDA - Model-Driven Architecture. http://www.omg.org/mda.
[22] Doug Orleans and Karl Lieberherr. DJ: Dynamic adaptive programming in Java. Lecture Notes in Computer Science, v. 2192, 2001.
[23] Jens Palsberg, Boaz Patt-Shamir, and Karl Lieberherr. A new approach to compiling adaptive programs. Science of Computer Programming, 29(3):303–326, 1997.
[24] Charles Simonyi. The death of programming languages, the birth of intentional programming. Technical report, Microsoft, Inc., September 1995.
[25] Yannis Smaragdakis and Don Batory. DiSTiL: A transformation library for data structures. In USENIX Conference on Domain-Specific Languages, 1997.
[26] Y. V. Srinivas and Richard Jullig. Specware(TM): Formal support for composing software. Technical Report KES.U.94.5, Kestrel Institute, 1994
[27] Clemens Szyperski. Component Software: Beyond Object-Oriented Programming. ACM Press and Addison-Wesley, New York, NY, 1998.
[28] T Ziadi, B Traverson, and Jean-Marc Jaquel. From a UML Platform Independent Component Model to Platform Specific Component Models. In International workshop in Software Model Engineering (WiSME02) at UML2002, Dresden (Germany), September 2002.