Model refactoring using transformations

Modern software is reaching levels of complexity encountered in biological systems; sometimes comprising systems of systems each of which may include tens of millions of lines of code. Model Driven Engineering (MDE) advocates raising the level of abstraction as an instrument to deal with software complexity. It promotes usage of software models as primary artifacts in a software development process. Traditionally, these MDE models are specified by Unified Modeling Language (UML) or by a modeling language created for a specific domain. However, in the vast area of software engineering there are other techniques used to improve quality of software under development. One of such techniques is refactoring which represents introducing structured changes in software in order to improve its readability, extensibility, and maintainability, while preserving behavior of the software. The main application area for refactorings is still programming code, despite the fact that modeling languages and techniques has significantly gained in popularity, in recent years. The main topic of this thesis is making an alliance between the two virtually orthogonal techniques: software modeling and refactoring. In this thesis we have investigated how to raise the level of abstraction of programming code refactorings to the modeling level. This resulted in a catalog of model refactorings each specified as a model transformation rule. In addition, we have investigated synchronization problems between different models used to describe one software system, i.e. when one model is refactored what is the impact on all dependent models and how this impact can be formalized. We have concentrated on UML class diagrams as domain of refactorings. As models dependent on class diagrams, we have selected Object Constraint Language (OCL) annotations, and object diagrams. This thesis formalizes the most important refactoring rules for UML class diagrams and classifies them with respect to their impact on object diagrams and annotated OCL constraints. For refactoring rules that have an impact on dependent artifacts we formalize the necessary changes of these artifacts. Moreover, in this thesis, we present a simple criterion and a proof technique for the semantic preservation of refactoring rules that are defined for UML class and object diagrams, and OCL constraints. In order to be able to prove semantic preservation, we propose a model transformation approach to specify the semantics of constraint languages.

[1]  Behzad Bordbar,et al.  On Querying UML Data Models with OCL , 2001, UML.

[2]  Bernhard Rumpe,et al.  The Amsterdam Manifesto on OCL , 2014, Object Modeling with the OCL.

[3]  Mel Ó Cinnéide Automated application of design patterns : a refactoring approach , 2001 .

[4]  Egon Börger,et al.  Java and the Java Virtual Machine: Definition, Verification, Validation , 2001 .

[5]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

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

[7]  Richard F. Paige,et al.  Towards Using OCL for Instance-Level Queries in Domain Specific Languages , 2006 .

[8]  Thomas Baar,et al.  On the Usage of Concrete Syntax in Model Transformation Rules , 2006, Ershov Memorial Conference.

[9]  Heinrich Hußmann,et al.  OCL as a Specification Language for Business Rules in Database Applications , 2001, UML.

[10]  Mark Richters,et al.  A precise approach to validating UML models and OCL constraints , 2002 .

[11]  Stephan Flake OclType - A Type or Metatype ? , 2004, Electron. Notes Theor. Comput. Sci..

[12]  Jordi Cabot,et al.  Computing the Relevant Instances That May Violate an OCL Constraint , 2005, CAiSE.

[13]  Kirsten Berkenkötter,et al.  OCL-based validation of a railway domain profile , 2006, MoDELS'06.

[14]  Alfred Strohmeier,et al.  Definition and Correct Refinement of Operation Specifications , 2006, Research Results of the DICS Program.

[15]  Thomas Baar,et al.  Semantics of OCL specified with QVT , 2008, Software & Systems Modeling.

[16]  Tom Mens,et al.  Formalizing refactorings with graph transformations , 2005, J. Softw. Maintenance Res. Pract..

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

[18]  Claudia Pons,et al.  Improving the OCL Semantics Definition by Applying Dynamic Meta Modeling and Design Patterns , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[19]  Bernhard Rumpe Agile Modellierung mit UML - Codegenerierung, Testfälle, Refactoring , 2005, Xpert.press.

[20]  Martin Gogolla,et al.  On Formalizing the UML Object Constraint Language OCL , 1998, ER.

[21]  Kangde Yao,et al.  A Brief Guide to the Standard Object Modelling Language , 2000 .

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

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

[24]  Achim D. Brucker,et al.  The HOL-OCL Book , 2006 .

[25]  Achim D. Brucker,et al.  Semantic Issues of OCL: Past, Present, and Future , 2006, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[26]  Cláudia Maria Lima Werner,et al.  Applying Refactoring Techniques to UML/OCL Models , 2004, UML.

[27]  D. Chiorean,et al.  Proposals for a Widespread Use of OCL , 2005 .

[28]  Gabriele Taentzer,et al.  Graphical definition of in-place transformations in the eclipse modeling framework , 2006, MoDELS'06.

[29]  Shane Sendall,et al.  UML Based Fusion Analysis Applied to a Bank Case Study , 1999, UML.

[30]  Thomas Baar,et al.  The Definition of Transitive Closure with OCL - Limitations and Applications , 2003, Ershov Memorial Conference.

[31]  Joaquin Miller,et al.  MDA Guide Version 1.0.1 , 2003 .

[32]  B. Hamber Publications , 1998, Weed Technology.

[33]  Heinrich Hußmann,et al.  Using UML/OCL Constraints for Relational Database Design , 1999, UML.

[34]  Jordi Cabot,et al.  Transforming OCL constraints: a context change approach , 2006, SAC '06.

[35]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[36]  María Victoria Cengarle,et al.  OCL 1.4/5 vs. 2.0 Expressions Formal semantics and expressiveness , 2004, Software & Systems Modeling.

[37]  Laurence Duchien,et al.  OCL for the Specification of Model Transformation Contracts , 2004 .

[38]  Mel O Cinn eide Automated application of design patterns: a refactoring approach , 2001 .

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

[40]  Thomas Baar Non-deterministic Constructs in OCL - What Does any() Mean , 2005, SDL Forum.

[41]  Thorsten Sturm,et al.  Refactoring Browser for UML , 2002, NetObjectDays.

[42]  Martin Gogolla,et al.  A Metamodel for OCL , 1999, UML.

[43]  Achim D. Brucker An Interactive Proof Environment for Object-oriented Specifications , 2007 .

[44]  Thomas Baar,et al.  Synchronizing Refactored UML Class Diagrams and OCL Constraints , 2007, WRT.

[45]  C. A. R. Hoare,et al.  Proof of correctness of data representation , 1975, Language Hierarchies and Interfaces.

[46]  Wolfgang Müller,et al.  Formal semantics of static and temporal state-oriented OCL constraints , 2003, Software & Systems Modeling.

[47]  Thomas Baar,et al.  An OCL semantics specified with QVT , 2006, MoDELS'06.

[48]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[49]  Alexander Knapp,et al.  Semantics of OCL Operation Specifications , 2004, OCL 2.0 @ UML.

[50]  Martin Gogolla,et al.  Detecting OCL Traps in the UML 2.0 Superstructure: An Experience Report , 2004, UML.

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

[52]  Gabriele Taentzer,et al.  Consistency Checking and Visualization of OCL Constraints , 2000, UML.

[53]  Thomas Baar,et al.  RoclET– Refactoring OCL Expressions by Transformations , 2006 .

[54]  Slaviša Marković Composition of UML Described Refactoring Rules , 2004 .

[55]  Reiko Heckel,et al.  Dynamic Meta Modeling: A Graphical Approach to the Operational Semantics of Behavioral Diagrams in UML , 2000, UML.

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

[57]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[58]  María Victoria Cengarle,et al.  A Formal Semantics for OCL 1.4 , 2001, UML.

[59]  Klaus D. McDonald-Maier,et al.  Supporting OCL as Part of a Family of Languages , 2005 .

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

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

[62]  Martin Gogolla,et al.  USE: A UML-based specification environment for validating UML and OCL , 2007, Sci. Comput. Program..

[63]  Ernest Teniente López,et al.  Incremental evaluation of OCL constraints , 2005 .

[64]  Andy Evans,et al.  Engineering Modelling Languages: A Precise Meta-Modelling Approach , 2002, FASE.

[65]  Dániel Varró,et al.  A Formal Semantics of UML Statecharts by Model Transition Systems , 2002, ICGT.

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

[67]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[68]  Thomas Baar Über die Semantikbeschreibung OCL-artiger Sprachen , 2003 .

[69]  P. Krutchen,et al.  The Rational Unified Process: An Introduction , 2000 .

[70]  Bernhard Rumpe,et al.  Meaningful modeling: what's the semantics of "semantics"? , 2004, Computer.

[71]  Gabriele Taentzer,et al.  EMF Model Refactoring based on Graph Transformation Concepts , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[72]  Thomas Baar,et al.  Refactoring OCL annotated UML class diagrams , 2005, MoDELS'05.

[73]  Tom Mens,et al.  Towards Automating Source-Consistent UML Refactorings , 2003, UML.

[74]  Bernhard Beckert,et al.  The KeY tool , 2005, Software & Systems Modeling.

[75]  Thomas Baar,et al.  A Graphical Approach to Prove the Semantic Preservation of UML/OCL Refactoring Rules , 2006, Ershov Memorial Conference.

[76]  J. Küster,et al.  Taming Model Round-Trip Engineering , 2004 .

[77]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

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

[79]  Kendall Scott,et al.  UML distilled - a brief guide to the Standard Object Modeling Language (2. ed.) , 2000, notThenot Addison-Wesley object technology series.

[80]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .