Fostering Software Architect and Programmer Collaboration

Model-Driven Engineering (MDE) is a development paradigm that brings the benefits of increased automation to the software development cycle. The MDE community tries to promote MDE adoption by pushing models written in diagram-based languages, supported by extensive tooling. While there is increasing evidence that MDE facilitates the design of complex software, its level of acceptance by software developers is still low. On one hand, rather than use diagram-based languages, most programmers prefer to work with their favorite textual programming language (e.g. Java and C++) and integrated development environment. On the other hand, software architects are among the early adopters and promoters of diagram-based languages. They consider such languages to be much more suitable for describing architectures compared to textual languages. Synchronizing manually written artifacts in either type of language is not simple and is often very time-consuming and error prone unless it is supported by automated methods and tools. To solve this issue, we propose a methodological pattern for model-code synchronization supported by corresponding tooling. The solution tackles a fundamental problem of round-trip engineering: synchronization between concurrently evolving artifacts. On one side we have the architecture model maintained by the software architects, while on the other, we have code written by programmers. Applying our approach for the development of an actual runtime system, we show that both parties involved, software architects and programmers, can efficiently collaborate while continuing to work in their favorite development environment.

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

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

[3]  Sven Jörges Construction and Evolution of Code Generators - A Model-Driven and Service-Oriented Approach , 2013, Lecture Notes in Computer Science.

[4]  Sébastien Gérard Once upon a Time, There Was Papyrus , 2015, MODELSWARD.

[5]  Erik Proper,et al.  The Enterprise Architect , 2009 .

[6]  Kathi Fisler,et al.  Blocks versus text: Ongoing lessons from bootstrap , 2015, 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond).

[7]  Michael Lawley,et al.  Towards Model Round-Trip Engineering: An Abductive Approach , 2009, ICMT@TOOLS.

[8]  Wolfgang De Meuter,et al.  SelfSync: a dynamic round-trip engineering environment , 2005, MoDELS'05.

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

[10]  Hartmut Ehrig,et al.  Concurrent Model Synchronization with Conflict Resolution Based on Triple Graph Grammars , 2012, FASE.

[11]  Michal Antkiewicz,et al.  Multi-level customization in application engineering , 2006, CACM.

[12]  Sven Jörges,et al.  Construction and Evolution of Code Generators , 2013, Lecture Notes in Computer Science.

[13]  David Cutting,et al.  An extensible benchmark and tooling for comparing reverse engineering approaches , 2015 .

[14]  Meng Wang,et al.  Applicative bidirectional programming with lenses , 2015, ICFP.

[15]  Stéphane Conversy,et al.  Unifying Textual and Visual: A Theoretical Account of the Visual Perception of Programming Languages , 2014, Onward!.

[16]  Benjamin C. Pierce,et al.  Combinators for bi-directional tree transformations: a linguistic approach to the view update problem , 2005, POPL '05.

[17]  Mark Rouncefield,et al.  Model-driven engineering practices in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[18]  Mark Rouncefield,et al.  Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure , 2014, Sci. Comput. Program..

[19]  Bran Selic,et al.  What will it take? A view on adoption of model-based methods in practice , 2012, Software & Systems Modeling.

[20]  Dániel Varró,et al.  Change-driven model transformations , 2011, Software & Systems Modeling.

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

[22]  Neil C. C. Brown,et al.  Position paper: Lack of keyboard support cripples block-based programming , 2015, 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond).

[23]  Jim Steel,et al.  MOF QVT final adopted specification: meta object facility (MOF) 2.0 query/view/transformation specification. , 2005 .

[24]  Werner Retschitzegger,et al.  A Survey on Incremental Model Transformation Approaches , 2013, ME@MoDELS.

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