Structures and processes for managing model-metamodel co-evolution

Software changes over time. During the lifetime of a software system, unintended behaviour must be corrected and new requirements satisfied. Because software changes are costly, tools for automatically managing change are commonplace. Contemporary software development environments can automatically perform change management tasks such as impact analysis, refactoring and background compilation. Increasingly, models and modelling languages are first-class citizens in software development. Model-Driven Engineering (MDE), a state-of-the-art approach to software engineering, prescribes the use of models throughout the software engineering process. In MDE, modelling tools and task-specific language are used to generate an ultimate artefact, such as simulation models or working code. Contemporary MDE environments provide little support for managing a type of evolution termed model-metamodel co-evolution, in which changes to a modelling language are propagated to models. This thesis demonstrates that model-metamodel co-evolution occurs often in MDE projects, and that dedicated structures and processes for its management can increase developer productivity. Structures and processes for managing model-metamodel co-evolution are proposed, developed, and then evaluated by comparison to existing structures and processes with quantitative and qualitative techniques.

[1]  Graham Thompson,et al.  The Royal Academy of Engineering Summer School for New Teachers of Engineering Design , 1999 .

[2]  Nicholas Drivalos,et al.  Towards Rigorously Defined Model-to-Model Traceability , 2008 .

[3]  Michael Metcalf History of Fortran , 2002, FORF.

[4]  Dániel Varró,et al.  Live Model Transformations Driven by Incremental Pattern Matching , 2008, ICMT@TOOLS.

[5]  Michael C. Feathers Working Effectively with Legacy Code , 2004, XP/Agile Universe.

[6]  Giovanna Guerrini,et al.  Impact of XML schema evolution on valid documents , 2005, WIDM '05.

[7]  Nicholas Georgescu-Roegen,et al.  Economics of Production. , 1928, Nature.

[8]  Karl A. Smith,et al.  How to Model It: Problem Solving for the Computer Age , 1994 .

[9]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[10]  Richard F. Paige,et al.  Metamodel-based model conformance and multiview consistency checking , 2007, TSEM.

[11]  Richard F. Paige,et al.  The Epsilon Transformation Language , 2008, ICMT@TOOLS.

[12]  Shih-Chien Chou,et al.  Consistency management in a process environment , 1999, J. Syst. Softw..

[13]  Martin P. Ward Language-Oriented Programming , 1994, Softw. Concepts Tools.

[14]  Ivan Porres,et al.  Model Refactorings as Rule-Based Update Transformations , 2003, UML.

[15]  S. Griffis EDITOR , 1997, Journal of Navigation.

[16]  Stéphane Ducasse,et al.  A language independent approach for detecting duplicated code , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[17]  Elke A. Rundensteiner,et al.  XEM: XML Evolution Management , 2001 .

[18]  Gabriele Taentzer,et al.  Model Refactoring in Eclipse by LTK , EWL , and EMF Refactor : A Case Study , 2009 .

[20]  John F. Roddick,et al.  Facilitating Database Attribute Domain Evolution Using Mesodata , 2004, ER.

[21]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[22]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[23]  Audris Kalnins,et al.  Model Transformation Language MOLA , 2003, MDAFA.

[24]  Elmar Jürgens,et al.  Automating Language Evolution , 2007, First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE '07).

[25]  Erkuden Rios,et al.  MDD Maturity Model: A Roadmap for Introducing Model-Driven Development , 2006, ECMDA-FA.

[26]  Richard F. Paige,et al.  On the Evolution of OCL for Capturing Structural Constraints in Modelling Languages , 2009, Rigorous Methods for Software Construction and Analysis.

[27]  Gilles Roussel,et al.  Tatoo: an innovative parser generator , 2006, PPPJ '06.

[28]  Jan Bosch,et al.  Design Patterns as Language Constructs , 1998, J. Object Oriented Program..

[29]  Ilka Philippow,et al.  Rule-Based Maintenance of Post-Requirements Traceability Relations , 2008, 2008 16th IEEE International Requirements Engineering Conference.

[30]  Ralf Lämmel,et al.  Towards an engineering discipline for GRAMMARWARE Draft as of August 17 , 2003 , 2003 .

[31]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[32]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[33]  Mirko Seifert,et al.  Derivation and Refinement of Textual Syntax for Models , 2009, ECMDA-FA.

[34]  Ivan Kurtev,et al.  Adaptability of model transformations , 2005 .

[35]  D. Sjøberg,et al.  Quantifying schema evolution , 1993, Inf. Softw. Technol..

[36]  Richard F. Paige,et al.  Constructing Models with the Human-Usable Textual Notation , 2008, MoDELS.

[37]  Dimitrios S. Kolovos,et al.  An extensible platform for specification of integrated languages for model management , 2008 .

[38]  Elmar Jürgens,et al.  Automatability of Coupled Evolution of Metamodels and Models in Practice , 2008, MoDELS.

[39]  Richard F. Paige,et al.  Comparing Model-Metamodel and Transformation-Metamodel Co-evolution , 2010 .

[40]  Fabrizio Ferrandina,et al.  Schema and Database Evolution in the O2 Object Database System , 1995, VLDB.

[41]  Michael A. Jackson,et al.  Software requirements and specifications - a lexicon of practice, principles and prejudices , 1995 .

[42]  Álvaro F. Moreira,et al.  Temporal and versioning model for schema evolution in object-oriented databases , 2005, Data Knowl. Eng..

[43]  Markus Herrmannsdoerfer,et al.  COPE : A Language for the Coupled Evolution of Metamodels and Models , 2008 .

[44]  Ulrich Nickel,et al.  The FUJABA environment , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[45]  Uwe Aßmann,et al.  Extending grammars and metamodels for reuse: the Reuseware approach , 2008, IET Softw..

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

[47]  Jean Bézivin,et al.  Managing Model Adaptation by Precise Detection of Metamodel Changes , 2009, ECMDA-FA.

[48]  Ralf Lämmel,et al.  Towards generic refactoring , 2002, RULE '02.

[49]  David Frankel,et al.  Model Driven Architecture: Applying MDA to Enterprise Computing , 2003 .

[50]  L. Erlikh,et al.  Leveraging legacy system dollars for e-business , 2000 .

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

[52]  J F Ramil,et al.  Cost Estimation and Evolvability Monitoring for Software Evolution Processes , 2000 .

[53]  Cédric Brun Obeo,et al.  MODEL DIFFERENCES IN THE ECLIPSE MODELING FRAMEWORK , 2008 .

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

[55]  Richard F. Paige,et al.  The Epsilon Generation Language , 2008, ECMDA-FA.

[56]  Richard F. Paige,et al.  The Epsilon Object Language (EOL) , 2006, ECMDA-FA.

[57]  Carl K. Chang,et al.  Event-Based Traceability for Managing Evolutionary Change , 2003, IEEE Trans. Software Eng..

[58]  Roy Grønmo,et al.  Toward Standardised Model to Text Transformations , 2005, ECMDA-FA.

[59]  Jean Bézivin,et al.  On the Use of Higher-Order Model Transformations , 2009, ECMDA-FA.

[60]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[61]  Jon Oldevik,et al.  Scenarios of Traceability in Model to Text Transformations , 2007, ECMDA-FA.

[62]  Sergey Melnik,et al.  Generic Model Management , 2004, Lecture Notes in Computer Science.

[63]  Elmar Jürgens,et al.  COPE - Automating Coupled Evolution of Metamodels and Models , 2009, ECOOP.

[64]  Guido Wachsmuth,et al.  Metamodel Adaptation and Model Co-adaptation , 2007, ECOOP.

[65]  Gabor Karsai,et al.  A domain-specific visual language for domain model evolution , 2004, J. Vis. Lang. Comput..

[66]  Ralph E. Johnson,et al.  Automated Detection of Refactorings in Evolving Components , 2006, ECOOP.

[67]  William G. Griswold,et al.  Automated support for program refactoring using invariants , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[68]  Barry Boehm,et al.  A view of 20th and 21st century software engineering , 2006, ICSE.

[69]  Ralf Lämmel,et al.  Semi‐automatic grammar recovery , 2001, Softw. Pract. Exp..

[70]  Richard F. Paige,et al.  Update Transformations in the Small with the Epsilon Wizard Language , 2007, J. Object Technol..

[71]  Peter H. Welch,et al.  Communicating Mobile Processes , 2004, 25 Years Communicating Sequential Processes.

[72]  L R Schiller Maintaining the competitive edge through reengineering. , 1997, Trustee : the journal for hospital governing boards.

[73]  Russell L. Ackoff,et al.  Scientific Method Optimizing Applied Research Decisions , 1962 .

[74]  Richard F. Paige,et al.  A comparison of model migration tools , 2010, MODELS'10.

[75]  Michael Lawley,et al.  Incremental model transformation for the evolution of model-driven systems , 2006, MoDELS'06.

[76]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[77]  Laurence Tratt,et al.  A change propagating model transformation Language , 2008, J. Object Technol..

[78]  Gabor Karsai,et al.  Metamodel driven model migration , 2003 .

[79]  Alexis Muller,et al.  Towards Transformation Migration After Metamodel Evolution , 2010 .

[80]  Markus Herrmannsdoerfer,et al.  Language Evolution in Practice: The History of GMF , 2009, SLE.

[81]  Alberto Rodrigues da Silva,et al.  RT-MDD Framework – A Practical Approach , 2007 .

[82]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[83]  Daniel Amyot,et al.  Evaluation of Development Tools for Domain-Specific Modeling Languages , 2006, SAM.

[84]  Wolfgang Emmerich,et al.  Flexible consistency checking , 2003, TSEM.

[85]  Juha-Pekka Tolvanen,et al.  Domain-Specific Modeling: Enabling Full Code Generation , 2008 .

[86]  Eelco Visser,et al.  Model-Driven Software Evolution: A Research Agenda , 2007 .

[87]  Robert M. Fuhrer,et al.  Refactoring in the Eclipse JDT : Past , Present , and Future , 2007 .

[88]  Evans,et al.  Domain-driven design , 2003 .

[89]  Manfred Broy,et al.  Software and System Modeling Based on a Unified Formal Semantics , 1997, Requirements Targeting Software and Systems Engineering.

[90]  Alan C. Evans,et al.  MML and the Metamodel Architecture , 2001 .

[91]  Richard F. Paige,et al.  Enhanced Automation for Managing Model and Metamodel Inconsistency , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[92]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[93]  Tony Clark,et al.  Superlanguages: developing languages and applications with XMF. , 2008 .

[94]  Barbara Lerner,et al.  A model for compound type changes encountered in schema evolution , 2000, TODS.

[95]  Richard F. Paige,et al.  Migrating Activity Diagrams with Epsilon Flock , 2010 .

[96]  Richard F. Paige,et al.  Model Migration Case for TTC 2010 , 2010 .

[97]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[98]  Jack Greenfield,et al.  Software factories: assembling applications with patterns, models, frameworks and tools , 2004, OOPSLA '03.

[99]  Leo Apostel,et al.  Towards the formal study of models in the non-formal sciences , 1960, Synthese.

[100]  Richard F. Paige,et al.  Model Migration with Epsilon Flock , 2010, ICMT@TOOLS.

[101]  Malcolm Wallace,et al.  Modular Architectural Representation and Analysis of Fault Propagation and Transformation , 2005, FESCA@ETAPS.

[102]  Jean Bézivin,et al.  Towards a precise definition of the OMG/MDA framework , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[103]  Serge Demeyer,et al.  Software Evolution , 2010 .

[104]  B. Gruschko Towards Synchronizing Models with Evolving Metamodels , 2007 .

[105]  Octavian Patrascoiu,et al.  Embedding OCL Expressions in YATL , 2004 .

[106]  Jim Steel,et al.  Generating human-usable textual notations for information models , 2001, Proceedings Fifth IEEE International Enterprise Distributed Object Computing Conference.

[107]  Ralph E. Johnson,et al.  Refactoring-Aware Configuration Management for Object-Oriented Programs , 2007, 29th International Conference on Software Engineering (ICSE'07).

[108]  Ralph E. Johnson,et al.  Automated upgrading of component-based applications , 2006, OOPSLA '06.

[109]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[110]  Frédéric Jouault,et al.  Transforming Models with ATL , 2005, MoDELS.

[111]  Joshua J. Bloch How to design a good API and why it matters , 2006, OOPSLA '06.

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

[113]  John McCarthy,et al.  History of LISP , 1978, SIGP.

[114]  Richard C. Gronback Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit , 2009 .

[115]  Ashley McNeile MDA: The Vision with the Hole? , 2004 .

[116]  Ian Sommerville,et al.  Software Engineering: (Update) (8th Edition) (International Computer Science) , 2006 .

[117]  Martin Fowler,et al.  Domain-Specific Languages , 2010, The Addison-Wesley signature series.

[118]  Richard F. Paige,et al.  FPTC: Automated Safety Analysis for Domain-Specific Languages , 2008, MoDELS Workshops.

[119]  Dániel Varró,et al.  The model transformation language of the VIATRA2 framework , 2007, Sci. Comput. Program..

[120]  Terence Parr The Definitive ANTLR Reference: Building Domain-Specific Languages , 2007 .

[121]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[122]  Tim Kelly A Systematic Approach to Safety Case Management , 2004 .

[123]  Olivier Barais,et al.  Generic Model Refactorings , 2009, MoDELS.

[124]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[125]  Steffen Zschaler,et al.  Application of Tracing Techniques in Model-Driven Performance Engineering , 2008 .

[126]  Paul Graham On LISP: Advanced Techniques for Common LISP , 1993 .

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

[128]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[129]  Ethan V. Munson,et al.  On product versioning for hypertexts , 2005, SCM '05.

[130]  Markus Völter,et al.  Model-Driven Software Development: Technology, Engineering, Management , 2006 .

[131]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[132]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[133]  Ralf Lämmel,et al.  Grammar Adaptation , 2001, FME.

[134]  Elke A. Rundensteiner,et al.  XEM: managing the evolution of XML documents , 2001, Proceedings Eleventh International Workshop on Research Issues in Data Engineering. Document Management for Data Intensive Business and Scientific Applications. RIDE 2001.

[135]  S.A. Bohner,et al.  Software change impacts-an evolving perspective , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[136]  Frédéric Jouault Loosely Coupled Traceability for ATL , 2005 .

[137]  Antonio Cicchetti,et al.  Automating Co-evolution in Model-Driven Engineering , 2008, 2008 12th International IEEE Enterprise Distributed Object Computing Conference.

[138]  Ralph E. Johnson,et al.  How do APIs evolve? A story of refactoring , 2006, J. Softw. Maintenance Res. Pract..

[139]  Richard F. Paige,et al.  The Grand Challenge of Scalability for Model Driven Engineering , 2009, MoDELS.