De l'extension des langages à objets à la réalisation de modèles métiers : une évolution du développement logiciel

Ce memoire a pour objectif de donner un apercu precis et synthetique des activites de recherches que j'ai developpees depuis le debut de ma carriere d'enseignant-chercheur. Le travail qui va vous etre presente n'est pas le travail d'une seule personne mais le resultat de la collaboration avec plusieurs personnes que j'ai encadrees ou co-encadrees. Ce petit bout de vie dans la recherche doit bien sur aussi beaucoup aux autres chercheurs ; je pense bien sur a ceux du projet OCL et en particulier a Roger Rousseau mais aussi a tous ceux que j'ai rencontres et cotoyes dans le laboratoire ou dans les divers congres. Vous l'aurez donc compris toutes les idees presentees ci-apres ne sont pas issues d'une seule personne, mais je revendique la demarche qui les a guidee. Je me suis interesse des mon stage de DEA aux problemes lies a la conception de logiciels et en particulier aux aspects concernant la reutilisation, la fiabilite et l'evolution des applications. Ce document retrace mes contributions dans ce domaine.

[1]  Oscar Nierstrasz,et al.  Traits: Composable Units of Behaviour , 2002, ECOOP.

[2]  Pierre Cointe Metaclasses are first class: The ObjVlisp Model , 1987, OOPSLA 1987.

[3]  Bart De Decker,et al.  Building frameworks in aspectJ , 2001 .

[4]  Martín Abadi Protection in Programming-Language Translations , 1999, Secure Internet Programming.

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

[6]  Todd D. Millstein,et al.  Modular Statically Typed Multimethods , 1999, ECOOP.

[7]  P. S. Caro Adding systemic crosscutting and super-imposition to composition filters , 2001 .

[8]  Norbert Schirmer Analysing the Java package/access concepts in Isabelle/HOL , 2004, Concurr. Pract. Exp..

[9]  Michael J. Carey,et al.  Persistence in the E Language: Issues and Implementation , 1989, Softw. Pract. Exp..

[10]  Won Kim,et al.  Integrating an object-oriented programming system with a database system , 1988, OOPSLA '88.

[11]  Philippe Lahire,et al.  Toward a New Approach for the Development of Software: the Model-Oriented Programming , 2004 .

[12]  Laurent Quintian JAdapt : un modèle pour améliorer la réutilisation des préoccupations dans le paradigme objet. (JAdapt : a model for improving concern's reuse in the object paradigm) , 2004 .

[13]  Adele Goldberg,et al.  Smalltalk-80 - the interactive programming environment , 1984 .

[14]  Bruce Eckel Thinking in Java , 1998 .

[15]  Yannis Smaragdakis,et al.  JTS: tools for implementing domain-specific languages , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[16]  Philippe Desfray,et al.  Object engineering - the fourth dimension , 1994 .

[17]  François Bancilhon,et al.  A query language for the O 2 object-oriented databases , 1989 .

[18]  Scott Thibault Langages dedies : conception, implementation et application , 1998 .

[19]  Philippe Lahire,et al.  MODIFIERS IN OFL - AN APPROACH FOR ACCESS CONTROL CUSTOMIZATION , 2003 .

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

[21]  Stanley B. Zdonik,et al.  Type Evolution in an Object-Oriented Database , 1987, Research Foundations in Object-Oriented and Semantic Database Systems.

[22]  Miguel Castro,et al.  Providing Persistent Objects in Distributed Systems , 1999, ECOOP.

[23]  Samuel P. Harbison,et al.  Modula-3 , 1992 .

[24]  Didier Parigot,et al.  L'apport des technologies XML et objets pour un générateur d'environnements : SmartTools , 2003, Obj. Logiciel Base données Réseaux.

[25]  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).

[26]  Didier Parigot,et al.  Un modèle abstrait de composants adaptables , 2004, Tech. Sci. Informatiques.

[27]  Bjarne Stroustrup,et al.  The C++ programming language (3. ed.) , 1997 .

[28]  Oscar Nierstrasz,et al.  Classes = Traits + States + Glue (Beyond mixins and multiple inheritance) , 2002 .

[29]  Stanley B. Zdonik,et al.  Concurrency Control and Object-Oriented Databases , 1989, Object-Oriented Concepts, Databases, and Applications.

[30]  Manfred Nagl,et al.  OOPS-an object oriented programming system with integrated data management facility , 1988, Proceedings. Fourth International Conference on Data Engineering.

[31]  David Maier,et al.  Development and Implementation of an Object-Oriented DBMS , 1987, Research Directions in Object-Oriented Programming.

[32]  Wilson C. Hsieh,et al.  Aspect-oriented programming with Jiazzi , 2003, AOSD '03.

[33]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[34]  Desmond D'Souza,et al.  First-Class Extensibility for UML-Profiles, Stereotypes, Patterns , 1999, UML.

[35]  Michael R. Leach,et al.  Java in a nutshell: A desktop quick reference , 1998 .

[36]  Philippe Lahire,et al.  New Perspective To Improve Reusability in Object-Oriented Languages , 2006, J. Object Technol..

[37]  Yania Crespo,et al.  On the Translation of Multiple Inheritance Hierarchies into Single Inheritance Hierarchies , 2002 .

[38]  Pierre Crescenzo,et al.  Gestion des objets persistants grâce aux liens entre classes , 2000 .

[39]  Pierre Cointe,et al.  The OBJVLISP Model: Definition of a Uniform, Reflexive and Extensible Object Oriented Language , 1986, ECAI.

[40]  Paul Geoffrey Brown Object-Relational Database Development: A Plumber's Guide , 2000 .

[41]  Richard Jüllig,et al.  Specware: Formal Support for Composing Software , 1995, MPC.

[42]  Hernán Astudillo,et al.  MASPEGHI 2004 Mechnisms for Specialization, Generalization and Inheritance , 2004, ECOOP Workshops.

[43]  Alan Snyder Encapsulation and inheritance in object-oriented programming languages , 1986, OOPSLA 1986.

[44]  Adele Goldberg,et al.  SmallTalk 80: The Language , 1989 .

[45]  Jadwiga Indulska,et al.  Meta-Meta is better-better! , 1997, DAIS.

[46]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[47]  Antero Taivalsaari,et al.  On the notion of inheritance , 1996, CSUR.

[48]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[49]  Narain H. Gehani,et al.  ODE (Object Database and Environment): the language and the data model , 1989, SIGMOD '89.

[50]  Colin Atkinson,et al.  The Role of Metamodeling in MDA , 2002 .

[51]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools , 2004, GPCE.

[52]  Erik Ernst gbeta - a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance , 2000 .

[53]  O. Deux,et al.  The Story of O2 , 1990, IEEE Trans. Knowl. Data Eng..

[54]  Pierre Crescenzo OFL : un modèle pour paramétrer la sémantique opérationnelle des langages à objets - Application aux relations inter-classes. (OFL: a Model to Customise the Operational Semantics of Object-Oriented Languages - Application to Interclass Relationships) , 2001 .

[55]  Robin Milner,et al.  Edinburgh lcf: a mechanized logic of computation , 1978 .

[56]  Klaus Ostermann,et al.  Dynamically Composable Collaborations with Delegation Layers , 2002, ECOOP.

[57]  Klaus Ostermann,et al.  Independent Extensibility – an open challenge for AspectJ and Hyper/J , 2000 .

[58]  Ted Lawson,et al.  The Potential For Reverse Type Inheritance in Eiffel , 1994, TOOLS.

[59]  J. V. Gurp,et al.  Separation of Concerns : A Case Study , 2001 .

[60]  Gilles Ardourel Modélisation des mécanismes de protection dans les langages à objets , 2002 .

[61]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[62]  Stanley B. Zdonik,et al.  The management of changing types in an object-oriented database , 1986, OOPSLA 1986.

[63]  Philippe Lahire,et al.  Automatic Prole Generation for OFL-Languages , 2003 .

[64]  Won Kim,et al.  Object-Oriented Concepts, Databases, and Applications , 1989 .

[65]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[66]  Jacob Stein,et al.  Class modification in the GemStone object-oriented DBMS , 1987, OOPSLA 1987.

[67]  Frederick H. Lochovsky,et al.  OZ+: An Object-Oriented Database System , 1989, Object-Oriented Concepts, Databases, and Applications.

[68]  O. Deux,et al.  The O2 system , 1991 .

[69]  Ian Welch,et al.  Kava - A Reflective Java Based on Bytecode Rewriting , 1999, Reflection and Software Engineering.

[70]  Lennart Ohlsson,et al.  Software factory principles, architecture, and experiments , 1992, IEEE Software.

[71]  Roland Ducournau,et al.  "Real World" as an Argument for Covariant Specialization in Programming and Modeling , 2002, OOIS Workshops.

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

[73]  Claudio Sacerdoti Coen,et al.  SmartTools: A Development Environment Generator based on XML Technologies , 2001 .

[74]  Kevin Wilkinson,et al.  Overview of the Iris DBMS , 1989, Research Foundations in Object-Oriented and Semantic Database Systems.

[75]  Won Kim,et al.  Architecture of the ORION Next-Generation Database System , 1990, IEEE Trans. Knowl. Data Eng..

[76]  Elizabeth A. Kendall,et al.  Role model designs and implementations with aspect-oriented programming , 1999, OOPSLA '99.

[77]  Jay Banerjee,et al.  Queries in object-oriented databases , 1988, Proceedings. Fourth International Conference on Data Engineering.

[78]  Nicolas Graube Reflexive Architecture: From ObjVLisp to CLOS , 1988, ECOOP.

[79]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns , 1995 .

[80]  François Bancilhon,et al.  A Query Language for the O2 Object-Oriented Database System , 1989, DBPL.

[81]  Won Kim,et al.  Versions of Schema for Object-Oriented Databases , 1988, VLDB.

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

[83]  T. Kaehler,et al.  LOOM: large object-oriented memory for Smalltalk-80 systems , 1989 .

[84]  Jens Palsberg,et al.  Type inference of SELF: Analysis of objects with dynamic and multiple inheritance , 1995, Softw. Pract. Exp..

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

[86]  Won Kim,et al.  Introduction to Object-Oriented Databases , 1991, Computer systems.

[87]  Denis Caromel,et al.  Towards seamless computing and metacomputing in Java , 1998 .

[88]  Bjarne Stroustrup,et al.  The Design and Evolution of C , 1994 .

[89]  David E. Langworthy,et al.  ZEITGEIST: Database Support for Object-Oriented Programming , 1988, OODBS.

[90]  Philippe Lahire,et al.  A Reverse Inheritance Relationship for Improving Reusability and Evolution: The Point of View of Feature Factorization , 2004 .

[91]  W. Glas Xml and Databases , 2002 .

[92]  David J. DeWitt,et al.  A data model and query language for EXODUS , 1988, SIGMOD '88.

[93]  Michael J. Carey,et al.  Implementing Persistence in E , 1989, POS.

[94]  Adeline Capouillez,et al.  OFL: Hyper-Genericity for Meta-Programming - An application to Java , 2002 .

[95]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[96]  Paolo Atzeni,et al.  XML AND DATABASES , 2004 .

[97]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[98]  Patrick O'Brien Common Object-Oriented Repository System , 1988, OODBS.

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

[100]  Mira Mezini,et al.  Integrating independent components with on-demand remodularization , 2002, OOPSLA '02.

[101]  Shigeru Chiba Javassist - A Reflection-based Programming Wizard for Java , 1998 .

[102]  Mira Mezini,et al.  Component Integration with Pluggable Composite Adapters , 2002 .

[103]  Philippe Lahire,et al.  Separation of Concerns in OFL , 2001 .

[104]  Stanley M. Sutton,et al.  Multi-Dimensional Separation of Concerns , 1999 .

[105]  Harold Ossher,et al.  Combination of Inheritance Hierarchies , 1992, OOPSLA.

[106]  Jack C. Wileden,et al.  Pgraphite: an experiment in persistent typed object management , 1988, SDE 3.

[107]  J. C. Wichman Composej: the development of a preprocessor to facilitate composition filters in the java language , 1999 .

[108]  Francesco Tisato,et al.  Reflection and Software Engineering , 2001, Lecture Notes in Computer Science.

[109]  Mark Evered Unconstraining genericity , 1997, Proceedings. Technology of Object-Oriented Languages. TOOLS 24 (Cat. No.97TB100240).

[110]  Wim Vanderperren,et al.  Separating concerns in a high-level component-based context , 2002, SC@ETAPS.

[111]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[112]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[113]  Krzysztof Czarnecki,et al.  Synthesizing objects , 1999, Concurr. Pract. Exp..

[114]  Pierre Cointe,et al.  Programming with ObjVlisp Metaclasses in Smalltalk-80 , 1989 .

[115]  Michael Stonebraker,et al.  Object-Relational DBMSs: Tracking the Next Great Wave , 1998 .

[116]  Colin Atkinson,et al.  Strict Profiles: Why and How , 2000, UML.

[117]  Shigeru Chiba,et al.  OpenJava: A Class-Based Macro System for Java , 1999, Reflection and Software Engineering.

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

[119]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[120]  Ronald Morrison,et al.  An Approach to Persistent Programming , 1989, Comput. J..

[121]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

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

[123]  Thomas Ledoux,et al.  Le point sur la programmation par aspects , 2001 .

[124]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

[125]  David Maier,et al.  Readings in Object-Oriented Database Systems , 1989 .

[126]  Philippe Lahire,et al.  Le modèle OFL au service du métaprogrammeur , 2002 .

[127]  Daniel C. Halbert,et al.  Using Types and Inheritance in Object-Oriented Languages , 1987, ECOOP.

[128]  Stéphane Ducasse Integration reflexive de dependances dans un modele a classes , 1996 .

[129]  Michael Golm,et al.  metaXa and the Future of Reflection , 1998 .

[130]  Xavier Girod Conception par objets : MECANO, une Méthode et un Environnement de Construction d'ApplicatioNs par Objets , 1991 .

[131]  Michael J. C. Gordon,et al.  Edinburgh LCF: A mechanised logic of computation , 1979 .

[132]  David J. DeWitt,et al.  The EXODUS Extensible DBMS Project: An Overview , 1989 .

[133]  M. Golm,et al.  MetaJava : An Efficient Run-Time Meta Architecture for Java TM , 1996 .

[134]  Jean Bézivin,et al.  From Object Composition to Model Transformation with the MDA , 2001, TOOLS.

[135]  Stéphane Ducasse,et al.  Beyond Language Independent Object-Oriented Metrics: Model Independent Metrics , 2002 .

[136]  Christophe Lécluse,et al.  Modeling complex structures in object-oriented logic programming , 1989, PODS.

[137]  Shigeru Chiba,et al.  Yet Another java.lang.Class , 1998, ECOOP Workshops.

[138]  Andreas Paepcke,et al.  PCLOS: A Critical Review , 1989, OOPSLA.

[139]  R. Pawlak,et al.  Dynamic wrappers: handling the composition issue with JAC , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[140]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[141]  Stéphane Ducasse,et al.  A reflective model for first class dependencies , 1995, OOPSLA.

[142]  Edward Yourdon,et al.  Object-oriented design , 1991, Yourdon Press Computing Series.

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

[144]  Jay Banerjee,et al.  Composite object support in an object-oriented database system , 1987, OOPSLA 1987.

[145]  Martin Odersky,et al.  Pizza into Java: translating theory into practice , 1997, POPL '97.

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

[147]  Peter Buneman,et al.  Types and persistence in database programming languages , 1987, CSUR.

[148]  Renzo Orsini,et al.  The Implementation of Galileo's Persistent Values , 1988, Data Types and Persistence , Informal Proceedings.

[149]  Yannis Smaragdakis,et al.  DiSTiL: A Transformation Library for Data Structures , 1997, DSL.

[150]  Robert J. Stroud,et al.  Dalang - A Reflective Extension for Java , 1999 .

[151]  Lodewijk Bergmans,et al.  The Composition-Filters Object Model* , 1998 .

[152]  W. Shipman David,et al.  The functional data model and the data language DAPLEX , 1988 .

[153]  Craig Schaffert,et al.  Persistent and Shared Objects in Trellis/Owl , 1986, OODBS.

[154]  Erik Ernst,et al.  Family Polymorphism , 2001, ECOOP.

[155]  Harold Ossher,et al.  Subject-oriented composition rules , 1995, OOPSLA.

[156]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[157]  Urs Hölzle,et al.  Integrating Independently-Developed Components in Object-Oriented Languages , 1993, ECOOP.

[158]  Ramakanth Subrahmanya Devarakonda Object-relational database systems — the road ahead , 2001, CROS.

[159]  Bertrand Meyer,et al.  Systematic concurrent object-oriented programming , 1993, CACM.

[160]  Michael Stonebraker,et al.  Database systems: achievements and opportunities , 1990, SGMD.

[161]  Mehmet Aksit,et al.  Analyzing Multi-Dimensional Programming in AOP and Composition Filters , 1999 .

[162]  Ellis Horowitz,et al.  Object-oriented databases with applications to CASE, networks, and VLSI CAD , 1991 .

[163]  Philippe Lahire,et al.  Reverse Inheritance : An Approach for Modeling Adaptation and Evolution of Applications , 2005 .

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

[165]  Sonya E. Keene,et al.  Object-oriented programming in COMMON LISP - a programmer's guide to CLOS , 1989 .

[166]  Kris De Volder Aspect-Oriented Logic Meta Programming , 1998, ECOOP Workshops.

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

[168]  Renzo Orsini,et al.  Types for Databases: The Galileo Experience , 1989, DBPL.

[169]  Stefan Hanenberg,et al.  Using and Reusing Aspects in AspectJ , 2001 .

[170]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.

[171]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[172]  David Maier,et al.  The GemStone Data Management System , 1989, Object-Oriented Concepts, Databases, and Applications.

[173]  Martín Abadi,et al.  Protection in Programming-Language Translations , 1998, ICALP.

[174]  Michael J. Carey,et al.  Programming constructs for database system implementation in EXODUS , 1987, SIGMOD '87.

[175]  Elizabeth A Kendall Reengineering for Separation of Concerns , 2000 .

[176]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[177]  Dan Pescaru,et al.  SMARTFACTORY - an Implementation of the Domain Driven Development Approach , 2004 .

[178]  Won Kim,et al.  Versions and change notification in an object-oriented database system , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[179]  Fred Rivard Evolution du comportement des objets dans les langages a classes reflexifs , 1997 .

[180]  Philippe Lahire,et al.  Annotations of Classes and Inheritance Relationships: an Unified Mechanism in Order to Improve Skills of Library of Classes , 2003 .

[181]  Pierre Crescenzo,et al.  Hyper-généricité pour les langages à objets : le modèle OFL , 2001 .

[182]  Jim Dowling,et al.  Using Reflection to Support Dynamic Adaptation of System Software: A Case Study Driven Evaluation , 1999, Reflection and Software Engineering.

[183]  François Bancilhon,et al.  Recent advances in object-oriented database systems , 1991 .

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

[185]  Vinny Cahill,et al.  Meta-Object Protocols for C++: The Iguana Approach. , 1996 .

[186]  Stanley B. Zdonik Maintaining consistency in a database with changing types , 1986 .

[187]  Malcolm P. Atkinson Questioning Persistent Types , 1989, DBPL.

[188]  David Jordan,et al.  The Object Database Standard: ODMG 2.0 , 1997 .

[189]  Pierre Cointe Reflective languages and metalevel architectures , 1996, CSUR.

[190]  Christer Hulten,et al.  Version Control in an Object-Oriented Architecture , 1989, Object-Oriented Concepts, Databases, and Applications.

[191]  Philippe Lahire,et al.  LAMP : vers un langage de définition de mécanismes de protection pour les langages de programmation à objets , 2003, Obj. Logiciel Base données Réseaux.

[192]  Philippe Lahire,et al.  Lessons learned with Eiffel 3: The K2 project , 1995 .

[193]  Stanley B. Zdonik,et al.  Language and Methodology for Object-Oriented Database Environments , 1985, Data Types and Persistence.

[194]  Pavel Hruby Domain-Driven Development with Ontologies and Aspects , 2005 .

[195]  Harold Ossher,et al.  Subject-Oriented Programming: Supporting Decentralized Development of Objects , 2002 .

[196]  M. h. j. Glandrup Extending C++ using the concepts of composition filters , 1995 .

[197]  Philippe Lahire,et al.  TOWARDS REENGINEERING: AN APPROACH BASED ON REVERSE INHERITANCE - APPLICATION TO JAVA , 2003 .

[198]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPSLA 1986.

[199]  John Mylopoulos,et al.  A language facility for designing database-intensive applications , 1980, TODS.