Leveraging Software Product Lines Engineering in the development of external DSLs: A systematic literature review

The use of domain-specific languages (DSLs) has become a successful technique in the development of complex systems. Consequently, nowadays we can find a large variety of DSLs for diverse purposes. However, not all these DSLs are completely different; many of them share certain commonalities coming from similar modeling patterns - such as state machines or petri nets - used for several purposes. In this scenario, the challenge for language designers is to take advantage of the commonalities existing among similar DSLs by reusing, as much as possible, formerly defined language constructs. The objective is to leverage previous engineering efforts to minimize implementation from scratch. To this end, recent research in software language engineering proposes the use of product line engineering, thus introducing the notion of language product lines. Nowadays, there are several approaches that result useful in the construction of language product lines. In this article, we report on an effort for organizing the literature on language product line engineering. More precisely, we propose a definition for the life-cycle of language product lines, and we use it to analyze the capabilities of current approaches. In addition, we provide a mapping between each approach and the technological space it supports. HighlightsSurvey on the applicability of software product lines in the construction of DSLs.General life-cycle for language product lines.Mapping current approaches on language product lines and technological spaces.Research map in language product lines engineering.

[1]  Walter Cazzola Domain-Specific Languages in Few Steps - The Neverlang Approach , 2012, SC@TOOLS.

[2]  Stavros Tripakis Automated Module Composition , 2003, TACAS.

[3]  Lothar Thiele,et al.  Integrating Domain Specific Language Design in the Software Life Cycle , 1998, FM-Trends.

[4]  Viljem Zumer,et al.  Implementation of multiple attribute grammar inheritance in the tool LISA , 1999, SIGP.

[5]  Sholom Cohen,et al.  Domain Engineering: Product Lines, Languages, and Conceptual Models , 2013 .

[6]  Eelco Visser,et al.  A Language Designer's Workbench: A One-Stop-Shop for Implementation and Verification of Language Designs , 2014, Onward!.

[7]  Viljem Zumer,et al.  Incremental programming language development , 2005, Comput. Lang. Syst. Struct..

[8]  Lidia Fuentes,et al.  VML* - A Family of Languages for Variability Management in Software Product Lines , 2009, SLE.

[9]  Didier Buchs,et al.  Developing domain-specific modeling languages by metamodel semantic enrichment and composition: a case study , 2010, DSM '10.

[10]  R. Paige,et al.  Requirements for Domain-Specific Languages , 2006 .

[11]  Bernhard Rumpe,et al.  Integration of heterogeneous modeling languages via extensible and composable language components , 2015, 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD).

[12]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[13]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[14]  Peter D. Mosses,et al.  The Varieties of Programming Language Semantics , 2001, Ershov Memorial Conference.

[15]  Yoshiaki Fukazawa,et al.  Software product line evolution method based on kaizen approach , 2007, SAC '07.

[16]  Vander Alves,et al.  Extracting and Evolving Mobile Games Product Lines , 2005, SPLC.

[17]  Mira Mezini,et al.  Supporting Variability with Late Semantic Adaptations of Domain-Specific Modeling Languages , 2010 .

[18]  Hans Vangheluwe,et al.  Debugging in Domain-Specific Modelling , 2010, SLE.

[19]  Eelco Visser,et al.  Evaluating and comparing language workbenches: Existing results and benchmarks for the future , 2015, Comput. Lang. Syst. Struct..

[20]  Mads Torgersen The Expression Problem Revisited , 2004, ECOOP.

[21]  Michael Keating Hierarchical State Machines , 2011 .

[22]  Edoardo Vacchi,et al.  Neverlang 2 - Componentised Language Development for the JVM , 2013, SC@STAF.

[23]  G J van den BrandMark,et al.  Compiling language definitions , 2002 .

[24]  Juan de Lara,et al.  Composing textual modelling languages in practice , 2012, MPM '12.

[25]  Richard F. Paige,et al.  Domain-Specific Metamodelling Languages for Software Language Engineering , 2009, SLE.

[26]  Bran Selic The theory and practice of modern modeling language design for model-based software engineering , 2011, AOSD '11.

[27]  Pierre-Yves Schobbens,et al.  Generic semantics of feature diagrams , 2007, Comput. Networks.

[28]  Lukas Renggli,et al.  Why Smalltalk wins the host languages shootout , 2009, IWST.

[29]  Eelco Visser,et al.  The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge , 2013, SLE.

[30]  Jules White,et al.  Testing variability-intensive systems using automated analysis: an application to Android , 2014, Software Quality Journal.

[31]  Bernhard Rumpe,et al.  Variability within Modeling Language Definitions , 2009, MoDELS.

[32]  Walter Cazzola,et al.  Gradually Learning Programming Supported by a Growable Programming Language , 2016, IEEE Transactions on Emerging Topics in Computing.

[33]  Michelle L. Crane,et al.  UML vs. classical vs. rhapsody statecharts: not all models are created equal , 2005, MoDELS'05.

[34]  Á. Horváth,et al.  Formal validation of domain-specific languages with derived features and well-formedness constraints , 2017, Software & Systems Modeling.

[35]  Eric Jouenne,et al.  DSL Classification , 2007 .

[36]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[37]  Aruna Raja,et al.  Domain Specific Languages , 2010 .

[38]  Sinisa Neskovic,et al.  Using Protocols and Domain Specific Languages to Achieve Compliance of Administrative Processes with Legislation , 2011, EGOVIS.

[39]  Edoardo Vacchi,et al.  Neverlang: A framework for feature-oriented language development , 2015, Comput. Lang. Syst. Struct..

[40]  Mario Piattini,et al.  Graphical versus textual software measurement modelling: an empirical study , 2011, Software Quality Journal.

[41]  Michael Keating The Simple Art of SoC Design , 2011 .

[42]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[43]  Ivan Kurtev,et al.  Separation of concerns in translational semantics for DSLs in model engineering , 2007, SAC '07.

[44]  Hui Wu,et al.  Unit Testing for Domain-Specific Languages , 2009, DSL.

[45]  Mario E. Sánchez,et al.  Composing graphical languages , 2013, GlobalDSL@ECOOP.

[46]  Stephen Barrett,et al.  Towards Dynamic Evolution of Domain Specific Languages , 2009, SLE.

[47]  Enrico Pontelli,et al.  Specification, Implementation, and Verification of Domain Specific Languages: A Logic Programming-Based Approach , 2002, Computational Logic: Logic Programming and Beyond.

[48]  Benoît Combemale,et al.  A categorical model of model merging and weaving , 2012, 2012 4th International Workshop on Modeling in Software Engineering (MISE).

[49]  Klaus Schmid,et al.  A systematic analysis of textual variability modeling languages , 2013, SPLC '13.

[50]  Raymond Turner,et al.  Specification , 2011, Minds and Machines.

[51]  Ileana Ober,et al.  Dealing with variability within a family of domain-specific languages: comparative analysis of different techniques , 2009, Innovations in Systems and Software Engineering.

[52]  Olivier Barais,et al.  Melange: a meta-language for modular and reusable development of DSLs , 2015, SLE.

[53]  W. Eric Wong,et al.  Component-Based Software: An Overview of Testing , 2003, Component-Based Software Quality.

[54]  Bernhard Rumpe,et al.  Modeling Language Variability , 2010, Monterey Workshop.

[55]  Walter Cazzola,et al.  Sectional domain specific languages , 2009, DSAL '09.

[56]  Dimitris Karagiannis,et al.  Towards Metamodelling-In-The-Large: Interface-Based Composition for Modular Metamodel Development , 2015, BMMDS/EMMSAD.

[57]  E. Guerra,et al.  Domain-Specific Textual Meta-Modelling Languages for Model Driven Engineering , 2012, ECMFA.

[58]  Thomas Cleenewerck Component-Based DSL Development , 2003, GPCE.

[59]  Frédéric Jouault,et al.  Transforming Models with ATL , 2005, MoDELS.

[60]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[61]  Silvio Romero de Lemos Meira,et al.  A Systematic Mapping Study on Domain-Specific Languages , 2012, ICSEA 2012.

[62]  KuselA.,et al.  Reuse in model-to-model transformation languages , 2015 .

[63]  Ruiz-CortésAntonio,et al.  Automated analysis of feature models 20 years later , 2010 .

[64]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[65]  Didier Buchs,et al.  Composing Visual Syntax for Domain Specific Languages , 2009, HCI.

[66]  Gunter Saake,et al.  Multi-dimensional variability modeling , 2011, VaMoS.

[67]  Marjan Mernik,et al.  Domain-Specific Languages: A Systematic Mapping Study , 2016, Inf. Softw. Technol..

[68]  Haeng-Kon Kim Applying Product Line to the Embedded Systems , 2006, ICCSA.

[69]  Benoît Combemale,et al.  Variability Support in Domain-Specific Language Development , 2013, SLE.

[70]  Cecília M. F. Rubira,et al.  Components meet aspects: Assessing design stability of a software product line , 2011, Inf. Softw. Technol..

[71]  David C. Gross,et al.  Managing Domain-Specific, Product-Line Development , 1996, IEEE Softw..

[72]  Jeffrey G. Gray,et al.  Component-based LR parsing , 2010, Comput. Lang. Syst. Struct..

[73]  Pearl Brereton,et al.  Systematic literature reviews in software engineering - A tertiary study , 2010, Inf. Softw. Technol..

[74]  David A. Basin,et al.  SecureUML: A UML-Based Modeling Language for Model-Driven Security , 2002, UML.

[75]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

[76]  Alfonso Pierantonio,et al.  Using Domain-Specific Languages for the Realization of Component Composition , 2000, FASE.

[77]  Jean-Marc Jézéquel,et al.  Weaving executability into object-oriented meta-languages , 2005, MoDELS'05.

[78]  Gerti Kappel,et al.  Reuse in model-to-model transformation languages: are we there yet? , 2013, Software & Systems Modeling.

[79]  Maria João Varanda Pereira,et al.  AspectLISA: An Aspect-oriented Compiler Construction System Based on Attribute Grammars , 2006, LDTA@ETAPS.

[80]  Ilia Bider,et al.  Enterprise, Business-Process and Information Systems Modeling , 2014, Lecture Notes in Business Information Processing.

[81]  David Méndez-Acuña Variability Management in Domain-Specific Languages , 2014, DocSymp@MoDELS.

[82]  Radu Calinescu,et al.  Foundations of Computer Software. Modeling, Development, and Verification of Adaptive Systems , 2010, Lecture Notes in Computer Science.

[83]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[84]  Zaur Molotnikov,et al.  Implementing modular domain specific languages and analyses , 2012, MoDeVVa '12.

[85]  Jesús Sánchez Cuadrado,et al.  A Model-Based Approach to Families of Embedded Domain-Specific Languages , 2009, IEEE Transactions on Software Engineering.

[86]  Jean-Marc Jézéquel,et al.  Globalizing Modeling Languages , 2014 .

[87]  V. Kaul,et al.  Planning , 2012 .

[88]  Steffen Zschaler,et al.  A Role-Based Approach towards Modular Language Engineering , 2009, SLE.

[89]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[90]  Brad A. Myers,et al.  ConstraintJS: programming interactive behaviors for the web by integrating constraints and states , 2012, UIST '12.

[91]  Jason Agron,et al.  Domain-Specific Language for HW/SW Co-design for FPGAs , 2009, DSL.

[92]  Aniruddha S. Gokhale,et al.  Improving Domain-Specific Language Reuse with Software Product Line Techniques , 2009, IEEE Software.

[93]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[94]  Markus Völter,et al.  Language and IDE Modularization and Composition with MPS , 2011, GTTSE.

[95]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[96]  Walter Cazzola,et al.  DSL evolution through composition , 2010, RAM-SE@ECOOP.

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

[98]  Olivier Barais,et al.  When Systems Engineering Meets Software Language Engineering , 2014, CSDM.

[99]  Sebastian Erdweg,et al.  Language composition untangled , 2012, LDTA.

[100]  Bernhard Rumpe,et al.  Integrated definition of abstract and concrete syntax for textual languages , 2007, MODELS'07.

[101]  Christian Hofer,et al.  Polymorphic embedding of dsls , 2008, GPCE '08.

[102]  Paul Klint,et al.  Compiling language definitions: the ASF+SDF compiler , 2000, TOPL.

[103]  Walid Taha,et al.  Generative Programming and Component Engineering , 2002, Lecture Notes in Computer Science.

[104]  Walter Cazzola,et al.  Choosy and picky: configuration of language product lines , 2015, SPLC.

[105]  Bran Selic The Theory and Practice of Modeling Language Design for Model-Based Software Engineering - A Personal Perspective , 2009, GTTSE.

[106]  A. Gurfinkel,et al.  Raising Level of Abstraction with Partial Models : A Vision , 2010 .

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

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

[109]  Marjan Mernik,et al.  Domain-Specific Languages: A Systematic Mapping Study , 2017, SOFSEM.

[110]  Antonio Vallecillo,et al.  Objects, Models, Components, Patterns , 2011, Lecture Notes in Computer Science.

[111]  Benoît Combemale,et al.  Automating variability model inference for component-based language implementations , 2014, SPLC.

[112]  Marjan Mernik,et al.  An object-oriented approach to language compositions for software language engineering , 2013, J. Syst. Softw..

[113]  Alberto Rodrigues da Silva,et al.  Model-driven engineering: A survey supported by the unified conceptual model , 2015, Comput. Lang. Syst. Struct..

[114]  Ján Kollár,et al.  Abstract syntax driven language development: defining language semantics through aspects , 2010 .

[115]  Tony Clark,et al.  Domain Engineering for Software Tools , 2013, Domain Engineering, Product Lines, Languages, and Conceptual Models.

[116]  Eelco Visser,et al.  Stratego/XT 0.17. A language and toolset for program transformation , 2008, Sci. Comput. Program..

[117]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[118]  Walter Cazzola,et al.  Apples and oranges: comparing top-down and bottom-up language product lines , 2016, SPLC.

[119]  Sven Apel,et al.  Feature-oriented language families: a case study , 2013, VaMoS.

[120]  Jean-Michel Bruel,et al.  Satellite Events at the MoDELS 2005 Conference , 2006 .

[121]  A.Jacko. Julie Human-Computer Interaction. Novel Interaction Methods and Techniques , 2009 .

[122]  Juan de Lara,et al.  Deep Meta-modelling with MetaDepth , 2010, TOOLS.

[123]  Brian H. Mayoh,et al.  Attribute Grammars and Mathematical Semantics , 1978, SIAM J. Comput..

[124]  Antonio Vallecillo,et al.  Component-based software quality : methods and techniques , 2003 .

[125]  Olivier Barais,et al.  Mashup of metalanguages and its implementation in the Kermeta language workbench , 2013, Software & Systems Modeling.

[126]  Christian Wende,et al.  Implementing and Composing MDSD-Typical DSLs , 2009 .