Systematic synthesis of delta modeling languages

Delta modeling is a modular, yet flexible approach to capture variability by explicitly representing differences between system variants or versions. The conceptual idea of delta modeling is language-independent. But, to apply delta modeling to a concrete language, either a generic transformation language has to be used or the corresponding delta language has to be manually developed for each considered base language. Generic languages and their tool support often lack readability and specific context condition checking, since they are unrelated to the base language. In this paper, we present a process that allows synthesizing a delta language from the grammar of a given base language. Our method relies on an automatically generated language extension that can be manually adapted to meet domain-specific needs. We illustrate our method using delta modeling on a textual variant of architecture diagrams. Furthermore, we evaluate our method using a comparative case study. This case study covers an architectural, a structural, and a behavioral language and compares the preexisting handwritten grammars to the generated grammars as well as the manually tailored grammars. This paper is an extension of Haber et al. (Proceedings of the 17th international software product line conference (SPLC’13), pp 22–31, 2013).

[1]  Gabriele Taentzer,et al.  AGG: A Graph Transformation Environment for Modeling and Validation of Software , 2003, AGTIVE.

[2]  Bernhard Rumpe,et al.  Hierarchical Variability Modeling for Software Architectures , 2011, 2011 15th International Software Product Line Conference.

[3]  André van der Hoek,et al.  Modeling Product Line Architectures through Change Sets and Relationships , 2007, 29th International Conference on Software Engineering (ICSE'07).

[4]  Ina Schaefer,et al.  Variability Modelling for Model-Driven Development of Software Product Lines , 2010, VaMoS.

[5]  Jeffrey G. Gray,et al.  Model Transformation by Demonstration , 2009, MoDELS.

[6]  Bernhard Rumpe,et al.  MontiCore: Modular Development of Textual Domain Specific Languages , 2008, TOOLS.

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

[8]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[9]  W. Shadish,et al.  Experimental and Quasi-Experimental Designs for Generalized Causal Inference , 2001 .

[10]  Tomoji Kishi,et al.  Aspect-Oriented Modeling for Variability Management , 2008, 2008 12th International Software Product Line Conference.

[11]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

[12]  Hassan Gomaa,et al.  Designing Software Product Lines with UML , 2005, 29th Annual IEEE/NASA Software Engineering Workshop - Tutorial Notes (SEW'05).

[13]  Michel Wermelinger,et al.  A graph transformation approach to software architecture reconfiguration , 2002, Sci. Comput. Program..

[14]  Tom Mens,et al.  Guiding Architectural Restructuring through Architectural Styles , 2010, 2010 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems.

[15]  Stan Jarzabek,et al.  A Hybrid Approach to Feature-Oriented Programming in XVCL , 2010, SPLC.

[16]  Michiel Helvensteijn,et al.  Abstract delta modeling , 2010, GPCE '10.

[17]  Lidia Fuentes,et al.  Language Support for Managing Variability in Architectural Models , 2008, SC@ETAPS.

[18]  Roy Grønmo,et al.  Comparison of Three Model Transformation Languages , 2009, ECMDA-FA.

[19]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[20]  Bernhard Rumpe,et al.  Delta Modeling for Software Architectures , 2014, MBEES.

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

[22]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[23]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[24]  Sven Apel,et al.  Model Superimposition in Software Product Lines , 2009, ICMT@TOOLS.

[25]  Viviana Bono,et al.  Delta-Oriented Programming of Software Product Lines , 2010, SPLC.

[26]  Steven Völkel,et al.  Kompositionale Entwicklung domänenspezifischer Sprachen , 2011, Aachener Informatik-Berichte, Software Engineering.

[27]  Iris Groher,et al.  Product Line Implementation using Aspect-Oriented and Model-Driven Software Development , 2007 .

[28]  Bernhard Rumpe,et al.  Engineering delta modeling languages , 2013, SPLC '13.

[29]  Robert Feldt,et al.  Validity Threats in Empirical Software Engineering Research - An Initial Survey , 2010, SEKE.

[30]  Bernhard Rumpe,et al.  Delta-oriented architectural variability using MontiCore , 2011, ECSA '11.

[31]  Bernhard Rumpe,et al.  MontiArc - Architectural Modeling of Interactive Distributed and Cyber-Physical Systems , 2014, ArXiv.

[32]  Andy Schürr PROGRESS: A VHL-Language Based on Graph Grammars , 1990, Graph-Grammars and Their Application to Computer Science.

[33]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[34]  Bernhard Rumpe,et al.  Agile Modellierung mit UML - Codegenerierung, Testfälle, Refactoring, 2. Auflage , 2012, Xpert.press.

[35]  Gabor Karsai,et al.  Graph Transformations on Domain-Specific Models , 2003 .

[36]  Martin Schindler,et al.  Eine Werkzeuginfrastruktur zur agilen Entwicklung mit der UML-P , 2012, Aachener Informatik-Berichte, Software Engineering.

[37]  Manuel Wimmer,et al.  Towards end-user adaptable model versioning: The By-Example Operation Recorder , 2009, 2009 ICSE Workshop on Comparison and Versioning of Software Models.

[38]  U. Kulesza,et al.  Bridging the Gap Between Features and Models , 2007 .

[39]  Bernhard Rumpe,et al.  MontiCore: a framework for compositional development of domain specific languages , 2010, International Journal on Software Tools for Technology Transfer.

[40]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1982, Lecture Notes in Computer Science.

[41]  Bernhard Rumpe,et al.  First-class variability modeling in Matlab/Simulink , 2013, VaMoS.

[42]  Bernhard Rumpe,et al.  A Domain Specific Transformation Language , 2014, ArXiv.

[43]  Oscar Díaz,et al.  Feature Oriented Model Driven Development: A Case Study for Portlets , 2007, 29th International Conference on Software Engineering (ICSE'07).

[44]  Rudolf Ferenc,et al.  Configuring software for reuse with VCL , 2013 .

[45]  Manuel Wimmer,et al.  Towards Model Transformation Generation By-Example , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[46]  Birger Møller-Pedersen,et al.  Adding Standardized Variability to Domain Specific Languages , 2008, 2008 12th International Software Product Line Conference.

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

[48]  Bernhard Rumpe,et al.  Black-box Integration of Heterogeneous Modeling Languages for Cyber-Physical Systems , 2014, ArXiv.

[49]  Gabor Karsai,et al.  Design Guidelines for Domain Specific Languages , 2014, ArXiv.

[50]  Bernhard Rumpe,et al.  MontiCore: a framework for the development of textual domain specific languages , 2008, ICSE Companion '08.

[51]  Jean-Marc Jézéquel,et al.  Towards a UML Profile for Software Product Lines , 2003, PFE.

[52]  Ingo Weisemöller Generierung domänenspezifischer Transformationssprachen , 2012, Aachener Informatik-Berichte, Software Engineering.

[53]  P. Purdom A sentence generator for testing parsers , 1972 .

[54]  Jon Whittle,et al.  Model composition in product lines and feature interaction detection using critical pair analysis , 2007, MODELS'07.

[55]  Paul Bassett,et al.  Frame-Based Software Engineering , 1987, IEEE Software.

[56]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[57]  Stan Jarzabek,et al.  XVCL: a mechanism for handling variants in software product lines , 2004, Sci. Comput. Program..

[58]  Hans Vangheluwe,et al.  Explicit transformation modeling , 2009, MODELS'09.

[59]  Dániel Varró,et al.  Model transformation by example , 2006, MoDELS'06.

[60]  Roy Grønmo Using Concrete Syntax in Graph-based Model Transformations , 2010 .

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

[62]  Jeffrey G. Gray,et al.  Modeling a Model Transformation Language , 2013, Domain Engineering, Product Lines, Languages, and Conceptual Models.

[63]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[64]  Gerti Kappel,et al.  Model Transformation By-Example: A Survey of the First Wave , 2012, Conceptual Modelling and Its Theoretical Foundations.

[65]  Stan Jarzabek,et al.  XVCL: a tutorial , 2002, SEKE '02.

[66]  Emilio Insfran,et al.  Model-Driven Engineering Languages and Systems , 2014, Lecture Notes in Computer Science.

[67]  William M. K. Trochim,et al.  Research methods knowledge base , 2001 .

[68]  Stan Jarzabek Variability Management for Product Lines with XVCL , 2007, SPLC.

[69]  Holger Krahn MontiCore: agile Entwicklung von domänenspezifischen Sprachen im Software-Engineering , 2010, Aachener Informatik-Berichte, Software Engineering.