Model-Driven Software Evolution: A Research Agenda

Software systems need to evolve, and systems built using model-driven approaches are no exception. What complicates model-driven engineering is that it requires multiple dimensions of evolution. In regular evolution, the modeling language is used to make the changes. In meta-model evolution, changes are required to the modeling notation. In platform evolution, the code generators and application framework change to reflect new requirements on the target platform. Finally, in abstraction evolution, new modeling languages are added to the set of (modeling) languages to reflect increased understanding of a technical or business domain. While MDE has been optimized for regular evolution, presently little or no support exists for metamodel, platform and abstraction evolution. In this paper, we analyze the problems raised by the evolution of model-based software systems and identify challenges to be addressed by research in this area. To be presented at the CSMR 2007 Workshop on Model-Driven Software Evolution (MoDSE), Amsterdam, 20 March 2007.

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

[2]  Arie van Deursen,et al.  Model-Driven Consistency Checking of Behavioural Specifications , 2007, Fourth International Workshop on Model-Based Methodologies for Pervasive and Embedded Software (MOMPES'07).

[3]  Eelco Visser,et al.  Building program optimizers with rewriting strategies , 1998, ICFP '98.

[4]  Dirk Beyer,et al.  Efficient relational calculation for software analysis , 2005, IEEE Transactions on Software Engineering.

[5]  Eelco Visser,et al.  Generalized type-based disambiguation of meta programs with concrete object syntax , 2005, GPCE'05.

[6]  Eelco Visser,et al.  Disambiguation Filters for Scannerless Generalized LR Parsers , 2002, CC.

[7]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[8]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.

[9]  S. Dmitriev Language Oriented Programming: The Next Programming Paradigm , 2004 .

[10]  Hausi A. Müller,et al.  Structural Redocumentation: A Case Study , 1995, IEEE Softw..

[11]  Jean Bézivin,et al.  Technological Spaces: An Initial Appraisal , 2002 .

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

[13]  Eelco Visser,et al.  Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions , 2004, OOPSLA '04.

[14]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[15]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

[16]  Jean Bézivin,et al.  On the unification power of models , 2005, Software & Systems Modeling.

[17]  Arie van Deursen,et al.  Model-driven migration of supervisory machine control architectures , 2006, J. Syst. Softw..

[18]  Merijn de Jonge,et al.  XT: a bundle of program transformation tools , 2001, Electron. Notes Theor. Comput. Sci..

[19]  Eelco Visser,et al.  A survey of strategies in rule-based program transformation systems , 2005, J. Symb. Comput..

[20]  Arie van Deursen,et al.  Harvesting Software Systems for MDA-Based Reengineering , 2006, ECMDA-FA.

[21]  Arie van Deursen,et al.  Isolating idiomatic crosscutting concerns , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[22]  Eelco Visser,et al.  Components for Transformation Systems , 2005 .

[23]  Djenana Campara,et al.  Managed Architecture of Existing Code as a Practical Transition Towards MDA , 2004, UML Satellite Activities.

[24]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[25]  Eelco Visser,et al.  Stratego: A Language for Program Transformation Based on Rewriting Strategies , 2001, RTA.

[26]  James M. Neighbors,et al.  The Draco Approach to Constructing Software from Reusable Components , 1984, IEEE Transactions on Software Engineering.

[27]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[28]  Philip Newcomb,et al.  Architecture-Driven Modernization (ADM) , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

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

[30]  Eelco Visser Transformations for abstractions , 2005 .

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

[32]  J. Craig Cleaveland,et al.  Building application generators , 1988, IEEE Software.

[33]  Eelco Visser,et al.  MetaBorg in Action: Examples of Domain-Specific Language Embedding and Assimilation Using Stratego/XT , 2005, GTTSE.

[34]  Gerardo Canfora,et al.  Architecture-Driven Modernization (ADM) , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[35]  Jon Louis Bentley,et al.  Programming pearls: little languages , 1986, CACM.

[36]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[37]  Eelco Visser,et al.  Declarative, formal, and extensible syntax definition for aspectJ , 2006, OOPSLA '06.

[38]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[39]  Manuel Wimmer,et al.  Bridging Grammarware and Modelware , 2005, MoDELS Satellite Events.

[40]  A. vanDeursen,et al.  Migrating a domain-specific modeling language to MDA technology , 2006 .

[41]  Eelco Visser,et al.  Generation of formatters for context-free languages , 1996, TSEM.

[42]  Eelco Visser,et al.  Syntax definition for language prototyping , 1997 .

[43]  Eelco Visser,et al.  Program Transformation with Scoped Dynamic Rewrite Rules , 2006, Fundam. Informaticae.

[44]  Eelco Visser,et al.  Stratego/XT 0.16: components for transformation systems , 2006, PEPM '06.

[45]  James R. Cordy,et al.  Source transformation, analysis and generation in TXL , 2006, PEPM '06.

[46]  Architecture-Driven Modernization Scenarios , .

[47]  Eelco Visser,et al.  Meta-programming with Concrete Object Syntax , 2002, GPCE.

[48]  Arie van Deursen,et al.  Identifying Crosscutting Concerns Using Fan-In Analysis , 2006, TSEM.