Graph Transformations for MDE, Adaptation, and Models at Runtime

Software evolution and the resulting need to continuously adapt the software is one of the main challenges for software engineering. The model-driven development movement therefore aims at improving the longevity of software by keeping the development artifacts more consistent and better changeable by employing models and to a certain degree automated model operations. Another trend are systems that tackle the challenge at runtime by being able to adapt their structure and behavior to be more flexible and operate in more dynamic environments (e.g., context-aware software, autonomic computing, self-adaptive software). Finally, models at runtime, where the benefits of model-driven development are employed at runtime to support adaptation capabilities, today lead towards a unification of both ideas. In this paper, we present graph transformations and show that they can be employed to engineer solutions for all three outlined cases. Furthermore, we will even be able to demonstrate that graph transformation based technology has the potential to also unify all three cases in a single scenario where models at runtime and runtime adaptation is linked with classical MDE. Therefore, we at first provide an introduction in graph transformations, then present the related techniques of Story Pattern and Triple Graph Grammars, and demonstrate how with the help of both techniques model transformations, adaptation behavior and runtime model framework work. In addition, we show that due to the formal underpinning analysis becomes possible and report about a number of successful examples.

[1]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[2]  Jochen Ludewig,et al.  Models in software engineering – an introduction , 2003, Software and Systems Modeling.

[3]  Perdita Stevens A Simple Game-Theoretic Approach to Checkonly QVT Relations , 2009, ICMT@TOOLS.

[4]  Holger Giese,et al.  Toward Bridging the Gap between Formal Semantics and Implementation of Triple Graph Grammars , 2010 .

[5]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[6]  Thomas Vogel,et al.  Requirements and Assessment of Languages and Frameworks for Adaptation Models , 2011, MoDELS.

[7]  Louis M. Rose,et al.  Proceedings Sixth Transformation Tool Contest, TTC 2013, Budapest, Hungary, 19-20 June, 2013 , 2013, TTC.

[8]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[9]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[10]  Gabriele Taentzer,et al.  Generating Instance Models from Meta Models , 2006, FMOODS.

[11]  Holger Giese,et al.  Tool support for the design of self-optimizing mechatronic multi-agent systems , 2008, International Journal on Software Tools for Technology Transfer.

[12]  Ofer Strichman,et al.  Bounded model checking , 2003, Adv. Comput..

[13]  Thomas Vogel,et al.  Incremental model synchronization for efficient run-time monitoring , 2009, MODELS'09.

[14]  Holger Giese,et al.  Model Synchronization at Work: Keeping SysML and AUTOSAR Models Consistent , 2010, Graph Transformations and Model-Driven Engineering.

[15]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 3: concurrency, parallelism, and distribution , 1999 .

[16]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[17]  Brice Morin,et al.  Taming Dynamically Adaptive Systems using models and aspects , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[18]  Wilma M. Osborne,et al.  Guidance on software maintenance , 1983 .

[19]  Robert P. Goldman,et al.  Self-adaptive software for hard real-time environments , 1999, IEEE Intell. Syst..

[20]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[21]  Jean-Claude Derniame Software Process Technology , 1992, Lecture Notes in Computer Science.

[22]  Holger Giese,et al.  Modeling of correct self-adaptive systems: a graph transformation system based approach , 2008, CSTST.

[23]  Ji Zhang,et al.  Using temporal logic to specify adaptive program semantics , 2006, J. Syst. Softw..

[24]  Gregor Engels,et al.  Graph Transformations and Model-Driven Engineering - Essays Dedicated to Manfred Nagl on the Occasion of his 65th Birthday , 2010, Graph Transformations and Model-Driven Engineering.

[25]  Leen Lambers Certifying Rule-Based Models using Graph Transformation: Extended, Improved and New Graph Transformation Analysis Techniques: Clearing the Way for a General Road Map to Certification , 2010 .

[26]  Hartmut Ehrig,et al.  Local Confluence for Rules with Nested Application Conditions , 2010, ICGT.

[27]  Arend Rensink The Edge of Graph Transformation - Graphs for Behavioural Specification , 2010, Graph Transformations and Model-Driven Engineering.

[28]  Itu-T Specification and Description Language (SDL) , 1999 .

[29]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series) , 1992 .

[30]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[31]  Leen Lambers,et al.  Certifying rule-based models using graph transformation , 2009 .

[32]  Karl-Heinz Pennemann,et al.  Resolution-Like Theorem Proving for High-Level Conditions , 2008, ICGT.

[33]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[34]  Holger Giese,et al.  Incremental model synchronization for multiple updates , 2008, GRaMoT '08.

[35]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[36]  Dániel Varró,et al.  Model Checking Graph Transformations: A Comparison of Two Approaches , 2004, ICGT.

[37]  Bradley R. Schmerl,et al.  Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure , 2004, Computer.

[38]  Jean-Marie Larchevêque Optimal incremental parsing , 1995, TOPL.

[39]  Holger Giese,et al.  From model transformation to incremental bidirectional model synchronization , 2009, Software & Systems Modeling.

[40]  Arend Rensink,et al.  Towards model checking graph grammars , 2003 .

[41]  Holger Giese,et al.  On Safe Service-Oriented Real-Time Coordination for Autonomous Vehicles , 2008, 2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC).

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

[43]  Holger Giese,et al.  Incremental verification of inductive invariants for the run-time evolution of self-adaptive software-intensive systems , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[44]  Franck Fleurey,et al.  A Domain Specific Modeling Language Supporting Specification, Simulation and Execution of Dynamic Adaptive Systems , 2009, MoDELS.

[45]  Peter J. Brown,et al.  Context-aware applications: from the laboratory to the marketplace , 1997, IEEE Wirel. Commun..

[46]  Gordon S. Blair,et al.  Using Architecture Models to Support the Generation and Operation of Component-Based Adaptive Systems , 2009, Software Engineering for Self-Adaptive Systems.

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

[48]  R. Milner,et al.  Bigraphical Reactive Systems , 2001, CONCUR.

[49]  Holger Giese,et al.  Dynamic hierarchical mega models: comprehensive traceability and its efficient maintenance , 2010, Software & Systems Modeling.

[50]  Holger Giese,et al.  Iterative Development of Consistency-Preserving Rule-Based Refactorings , 2011, ICMT@TOOLS.

[51]  Hui Song,et al.  Generating synchronization engines between running systems and their model-based views , 2009, MODELS'09.

[52]  Michel Charpentier Composing invariants , 2006, Sci. Comput. Program..

[53]  Detlef Plump,et al.  Towards Graph Programs for Graph Algorithms , 2004, ICGT.

[54]  A. Krasnogolowy,et al.  Flexible debugging of behavior models , 2012, 2012 IEEE International Conference on Industrial Technology.

[55]  Acm Sigsoft,et al.  3rd International Workshop on Graph and Model Transformations 2008 (GraMoT 08) : held at ICSE 2008 : Leipzig, Germany, 12 May 2008 , 2008 .

[56]  Gabor Karsai,et al.  Self-adaptive software for signal processing , 1998, CACM.

[57]  Annegret Habel,et al.  Weakest Preconditions for High-Level Programs , 2006, ICGT.

[58]  Antonio Bucchiarone,et al.  Formal Analysis and Verification of Self-Healing Systems , 2010, FASE.

[59]  Holger Giese,et al.  Friends or foes?: a conceptual analysis of self-adaptation and it change management , 2008, SEAMS '08.

[60]  Ludovico Iovino,et al.  What is needed for managing co-evolution in MDE? , 2011, IWMCP '11.

[61]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 2: applications, languages, and tools , 1999 .

[62]  Gordon S. Blair,et al.  Models@ run.time , 2009, Computer.

[63]  Albert Zündorf,et al.  The PROGRES approach: language and environment , 1999 .

[64]  Luciano Baresi,et al.  Tutorial Introduction to Graph Transformation: A Software Engineering Perspective , 2002, ICGT.

[65]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[66]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[67]  Jürgen Gausemeier,et al.  An Engineer's Workstation to Support Integrated Development of Flexible Production Control Systems , 2004, SoftSpez Final Report.

[68]  Arnd Poetzsch-Heffter,et al.  Component-based modeling and verification of dynamic adaptation in safety-critical embedded systems , 2011, TECS.

[69]  Holger Giese,et al.  Proceedings of the Eighth International Workshop on Graph Transformation and Visual Modeling Techniques , 2009 .

[70]  Thomas Vogel,et al.  Adaptation and abstract runtime models , 2010, SEAMS '10.

[71]  Reiko Heckel,et al.  Automatic Conformance Testing of Web Services , 2005, FASE.

[72]  Heather Goldsby,et al.  AMOEBA-RT: Run-Time Verification of Adaptive Software , 2008, MoDELS.

[73]  Richard N. Taylor,et al.  Using Architectural Models to Manage and Visualize Runtime Adaptation , 2009, Computer.

[74]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[75]  Robert Laddaga,et al.  Self-Adaptive Software , 2001, Lecture Notes in Computer Science.

[76]  Stefania Gnesi,et al.  FME 2003: Formal Methods: International Symposium of Formal Methods Europe, Pisa, Italy, September 8-14, 2003. Proceedings , 2003, Lecture Notes in Computer Science.

[77]  Thomas Vogel,et al.  Model-driven architectural monitoring and adaptation for autonomic systems , 2009, ICAC '09.

[78]  Pattie Maes Concepts and experiments in computational reflection , 1987, OOPSLA 1987.

[79]  Andy Schürr,et al.  The MATE Approach: Enhanced Simulink® and Stateflow® Model Transformation , 2007 .

[80]  Holger Giese,et al.  Symbolic invariant verification for systems with dynamic structural adaptation , 2006, ICSE.

[81]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[82]  Martin Große-Rhode Integration of Software Specification Techniques for Applications in Engineering , 2004, Lecture Notes in Computer Science.

[83]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[84]  Arend Rensink,et al.  Model Checking Dynamic States in GROOVE , 2006, SPIN.

[85]  Hartmut Ehrig,et al.  Integrating Meta-modelling Aspects with Graph Transformation for Efficient Visual Language Definition and Model Manipulation , 2004, FASE.

[86]  Juan de Lara,et al.  Verification and validation of declarative model-to-model transformations through invariants , 2010, J. Syst. Softw..

[87]  Gabriele Taentzer,et al.  The AGG approach: language and environment , 1999 .

[88]  Detlef Plump,et al.  A Hoare Calculus for Graph Programs , 2010, ICGT.

[89]  Holger Giese,et al.  Incremental model synchronization with triple graph grammars , 2006, MoDELS'06.

[90]  Hartmut Ehrig,et al.  Refinements of Graph Transformation Systems via Rule Expressions , 2000 .

[91]  Stefan Leue,et al.  Scenarios: Models, Transformations and Tools, International Workshop, Dagstuhl Castle, Germany, September 7-12, 2003, Revised Selected Papers , 2005, Scenarios: Models, Transformations and Tools.

[92]  Michael Löwe,et al.  An algebraic framework for the transformation of attributed graphs , 1993 .

[93]  Fabrice Kordon,et al.  Reliable Systems on Unreliable Networked Platforms - 12th Monterey Workshop 2005, Laguna Beach, CA, USA, September 22-24, 2005. Revised Selected Papers , 2007, Monterey Workshop.

[94]  Holger Giese,et al.  Towards the compositional verification of real-time UML designs , 2003, ESEC/FSE-11.

[95]  Holger Giese,et al.  Modeling and Verification of Cooperative Self-adaptive Mechatronic Systems , 2005, Monterey Workshop.

[96]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[97]  Fernando Orejas,et al.  Delaying Constraint Solving in Symbolic Graph Transformation , 2010, ICGT.

[98]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation , 2006, Monographs in Theoretical Computer Science. An EATCS Series.

[99]  Hartmut Ehrig,et al.  Attributed graph transformation with inheritance: Efficient conflict detection and local confluence analysis using abstract critical pairs , 2012, Theor. Comput. Sci..

[100]  Rogério de Lemos,et al.  Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] , 2009, Software Engineering for Self-Adaptive Systems.

[101]  Reiko Heckel,et al.  Detection of conflicting functional requirements in a use case-driven approach , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[102]  Glynn Winskel,et al.  Editors' note: bibliometrics and the curators of orthodoxy , 2009, Math. Struct. Comput. Sci..

[103]  Gabor Karsai,et al.  Verifying Model Transformations by Structural Correspondence , 2008, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[104]  Holger Giese,et al.  Autonomous Shuttle System Case Study , 2003, Scenarios: Models, Transformations and Tools.

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

[106]  Thomas Vogel,et al.  The Role of Models and Megamodels at Runtime , 2010, MoDELS.

[107]  Brice Morin,et al.  An Aspect-Oriented and Model-Driven Approach for Managing Dynamic Variability , 2008, MoDELS.

[108]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

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

[110]  Gabriele Taentzer,et al.  Henshin: advanced concepts and tools for in-place EMF model transformations , 2010, MODELS'10.

[111]  Martin Strecker,et al.  Modeling and Verifying Graph Transformations in Proof Assistants , 2008, TERMGRAPH@ETAPS.

[112]  Thomas Vogel,et al.  A language for feedback loops in self-adaptive systems: Executable runtime megamodels , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[113]  Paola Inverardi,et al.  Model checking requirements at run-time in adaptive systems , 2011, ASAS '11.

[114]  Heather Goldsby,et al.  Modular verification of dynamically adaptive systems , 2009, AOSD '09.

[115]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

[116]  Márk Asztalos,et al.  Towards Automated, Formal Verification of Model Transformations , 2010, 2010 Third International Conference on Software Testing, Verification and Validation.

[117]  Andrea Corradini,et al.  A Static Analysis Technique for Graph Transformation Systems , 2001, CONCUR.

[118]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[119]  Gregor Engels,et al.  Towards model-driven unit testing , 2006, MoDELS'06.

[120]  Reiko Heckel,et al.  Detection of conflicting functional requirements in a use case-driven approach: a static analysis technique based on graph transformation , 2002, ICSE '02.

[121]  Albert Zündorf,et al.  Story Diagrams: A New Graph Rewrite Language Based on the Unified Modeling Language and Java , 1998, TAGT.

[122]  Frank Eliassen,et al.  MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments , 2009, Software Engineering for Self-Adaptive Systems.

[123]  Arend Rensink,et al.  Showing Full Semantics Preservation in Model Transformation - A Comparison of Techniques , 2010, IFM.

[124]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[125]  Luciano Baresi,et al.  The disappearing boundary between development-time and run-time , 2010, FoSER '10.

[126]  Annegret Habel,et al.  Correctness of high-level transformation systems relative to nested conditions† , 2009, Mathematical Structures in Computer Science.

[127]  Holger Giese,et al.  Visual integration of UML 2.0 and block diagrams for flexible reconfiguration in mechatronic UML , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[128]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.