Maintaining invariant traceability through bidirectional transformations

Following the “convention over configuration” paradigm, model-driven development (MDD) generates code to implement the “default” behaviour that has been specified by a template separate from the input model, reducing the decision effort of developers. For flexibility, users of MDD are allowed to customise the model and the generated code in parallel. A synchronisation of changed model or code is maintained by reflecting them on the other end of the code generation, as long as the traceability is unchanged. However, such invariant traceability between corresponding model and code elements can be violated either when (a) users of MDD protect custom changes from the generated code, or when (b) developers of MDD change the template for generating the default behaviour. A mismatch between user and template code is inevitable as they evolve for their own purposes. In this paper, we propose a two-layered invariant traceability framework that reduces the number of mismatches through bidirectional transformations. On top of existing vertical (model↔code) synchronisations between a model and the template code, a horizontal (code↔code) synchronisation between user and template code is supported, aligning the changes in both directions. Our blinkit tool is evaluated using the data set available from the CVS repositories of a MDD project: Eclipse MDT/GMF.

[1]  Yann-Gaël Guéhéneuc,et al.  Reuse or rewrite: Combining textual, static, and dynamic analyses to assess the cost of keeping a system up-to-date , 2008, 2008 IEEE International Conference on Software Maintenance.

[2]  Genny Tortora,et al.  Recovering traceability links in software artifact management systems using information retrieval methods , 2007, TSEM.

[3]  Alexander Egyed,et al.  Supporting Software Understanding with Automated Requirements Traceability , 2005, Int. J. Softw. Eng. Knowl. Eng..

[4]  Atanas Rountev,et al.  Static control-flow analysis for reverse engineering of UML sequence diagrams , 2005, PASTE '05.

[5]  Dan Suciu,et al.  UnQL: a query language and algebra for semistructured data based on structural recursion , 2000, The VLDB Journal.

[6]  Michael Lawley,et al.  Model Synchronisation: Definitions for Round-Trip Engineering , 2008, ICMT@TOOLS.

[7]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[8]  Ralf Lämmel,et al.  Bidirectional Transformations: A Cross-Discipline Perspective , 2009, ICMT@TOOLS.

[9]  Carl K. Chang,et al.  Incremental Latent Semantic Indexing for Automatic Traceability Link Evolution Management , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[10]  Yijun Yu,et al.  Traceability for the maintenance of secure software , 2008, 2008 IEEE International Conference on Software Maintenance.

[11]  Yijun Yu,et al.  blinkit: Maintaining Invariant Traceability through Bidirectional Transformations - A Technical Report , 2011 .

[12]  Andy Schürr,et al.  Dagstuhl seminar on bidirectional transformations (BX) , 2011, SGMD.

[13]  R. Lämmel Coupled Software Transformations — Extended , 2022 .

[14]  Jane Huffman Hayes,et al.  Advancing candidate link generation for requirements tracing: the study of methods , 2006, IEEE Transactions on Software Engineering.

[15]  Martin Keschenau,et al.  Reverse engineering of UML specifications from java programs , 2004, OOPSLA '04.

[16]  Kazutaka Matsuda,et al.  Bidirectionalizing graph transformations , 2010, ICFP '10.

[17]  Wuu Yang,et al.  Identifying syntactic differences between two programs , 1991, Softw. Pract. Exp..

[18]  Soichiro Hidaka,et al.  Towards a compositional approach to model transformation for software development , 2009, SAC '09.

[19]  Soichiro Hidaka,et al.  GRoundTram: An integrated framework for developing well-behaved bidirectional model transformations , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[20]  Dongxi Liu,et al.  Towards automatic model synchronization from model transformations , 2007, ASE.

[21]  Ralf Lämmel,et al.  Automated Co-evolution of GMF Editor Models , 2010, SLE.

[22]  Yann-Gaël Guéhéneuc,et al.  A reverse engineering tool for precise class diagrams , 2004, CASCON.

[23]  Michal Antkiewicz,et al.  Design Space of Heterogeneous Synchronization , 2007, GTTSE.

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

[25]  Licia Capra,et al.  xlinkit: a consistency checking and smart link generation service , 2002, TOIT.

[26]  Hassan Charaf,et al.  A Synchronizing Technique for Syntactic Model-Code Round-Trip Engineering , 2008, 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008).

[27]  Miguel Garcia Bidirectional Synchronization of Multiple Views of Software Models , 2008, DSML.

[28]  Emden R. Gansner,et al.  Graphviz and Dynagraph – Static and Dynamic Graph Drawing Tools , 2003 .

[29]  Michal Antkiewicz,et al.  Framework-Specific modeling languages with round-trip engineering , 2006, MoDELS'06.

[30]  Giuliano Antoniol,et al.  Recovering Traceability Links between Code and Documentation , 2002, IEEE Trans. Software Eng..

[31]  Tom Mens,et al.  Challenges in software evolution , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[32]  Stephen Clark,et al.  Best Practices for Automated Traceability , 2007, Computer.