Abstract
Modelling is an essential activity in software engineering. It typically involves two meta-levels: one includes meta-models that describe modelling languages, and the other contains models built by instantiating those meta-models. Multi-level modelling generalizes this approach by allowing models to span an arbitrary number of meta-levels. A scenario that profits from multi-level modelling is the definition of language families that can be specialized (e.g., for different domains) by successive refinements at subsequent meta-levels, hence promoting language reuse. This enables an open set of variability options given by all possible specializations of the language family. However, multi-level modelling lacks the ability to express closed variability regarding the availability of language primitives or the possibility to opt between alternative primitive realizations. This limits the reuse opportunities of a language family. To improve this situation, we propose a novel combination of product lines with multi-level modelling to cover both open and closed variability. Our proposal is backed by a formal theory that guarantees correctness, enables top-down and bottom-up language variability design, and is implemented atop the MetaDepth multi-level modelling tool.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Acher M, Collet P, Lahire P, France RB (2013) FAMILIAR: a domain-specific language for large scale management of feature models. Sci Comput Program 78(6):657–681
Atkinson C, Gerbig R (2016) Flexible deep modeling with melanee. In: Modellierung 2016, 2.-4. März 2016, Karlsruhe—Workshopband, pp 117–122
Acher M, Heymans P, Collet P, Quinton C, Lahire P, Merle P (2012) Feature model differences. In: Advanced information systems engineering—24th international conference, CAiSE, volume 7328 of lecture notes in computer science, pp 629–645. Springer
Atkinson C, Kühne T (2001) The essence of multilevel metamodeling. In: UML, volume 2185 of LNCS, pp 19–33. Springer
Atkinson C, Kühne T (2002) Rearchitecting the UML infrastructure. ACM Trans Model Comput Simul 12(4):290–321
Atkinson C, Kühne T (2008) Reducing accidental complexity in domain models. Softw Syst Model 7(3):345–359
Atkinson C (1997) Meta-modeling for distributed object environments. In: EDOC, pp 90–101. IEEE Computer Society
Batory DS (2006) Multilevel models in model-driven engineering, product lines, and metaprogramming. IBM Syst J 45(3):527–540
Brambilla M, Cabot J, Wimmer M (2017) Model-driven software engineering in practice. 2nd edn. Synthesis Lectures on Software Engineering. Morgan & Claypool Publishers, San Rafael
Bézivin J, Jouault F, Rosenthal P, Valduriez P (2005) Modeling in the large and modeling in the small. In: Model driven architecture, European MDA workshops: foundations and applications, MDAFA, volume 3599 of lecture notes in computer science, pp 33–46. Springer
Butting A, Pfeiffer J, Rumpe B, Wortmann A (2020) A compositional framework for systematic modeling language reuse. In: MoDELS ’20: ACM/IEEE 23rd international conference on model driven engineering languages and systems, pp 35–46. ACM
Borba P, Teixeira L, Gheyi R (2012) A theory of software product line refinement. Theor Comput Sci 455:2–30
Czarnecki K, Antkiewicz M, Kim CHP, Lau S, Pietroszek K (2005) Model-driven software product lines. In: Companion to the 20th annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications, OOPSLA, pp 126–127. ACM
Córdoba-Sánchez I, de Lara J (2016) Ann: a domain-specific language for the effective design and validation of java annotations. Comp. Langs. Syst. Struct. 45:164–190
Cuadrado JS, de Lara J (2018) Open meta-modelling frameworks via meta-object protocols. J Syst Softw 145:1–24
Cuadrado JS, de Lara J, Guerra E (2012) Bottom-up meta-modelling: an interactive approach. In: Model driven engineering languages and systems—15th international conference, MODELS, volume 7590 of lecture notes in computer science, pp 3–19. Springer
Clark T, Frank U, Reinhartz-Berger I, Sturm A (2017) A multi-level approach for supporting configurations: a new perspective on software product line engineering. In: ER Forum demo track, volume 1979 of CEUR workshop proceedings, pp 156–164. CEUR-WS.org
Czarnecki K, Helsen S, Eisenecker UW (2005) Staged configuration through specialization and multilevel configuration of feature models. Softw Process Improv Pract 10(2):143–169
Combemale B, Kienzle J, Mussbacher G, Barais O, Bousse E, Cazzola W, Collet P, Degueule T, Heinrich R, Jézéquel J-M, Leduc M, Mayerhofer T, Mosser S, Schöttle M, Strittmatter M, Wortmann A (2018) Concern-oriented language development (COLD): fostering reuse in language engineering. Comput Lang Syst Struct 54:139–155
Degueule T, Combemale B, Blouin A, Barais O, Jézéquel J-M (2015) Melange: a meta-language for modular and reusable development of DSLs. In: SLE, pp 25–36. ACM
Drave I, Kautz O, Michael J, Rumpe B (2019) Semantic evolution analysis of feature models. In: Proceedings of the 23rd international systems and software product line conference, SPLC, pp 34:1–34:11. ACM
de Lara J, Guerra E (2010) Deep meta-modelling with MetaDepth. In: TOOLS, volume 6141 of LNCS, pp 1–20. Springer
de Lara J, Guerra E (2018) Refactoring multi-level models. ACM Trans Softw Eng Methodol 27(4):17:1–17:56
de Lara J, Guerra E (2020) Multi-level model product lines—open and closed variability for modelling language families. In: Fundamental approaches to software engineering—23rd international conference, FASE, volume 12076 of lecture notes in computer science, pp 161–181. Springer
de Lara J, Guerra E, Cuadrado JS (2015) Model-driven engineering with domain-specific meta-modelling languages. Softw Syst Model 14(1):429–459
de Lara J, Guerra E, Chechik M, Salay R (2018) Model transformation product lines. In: MoDELS, pp 67–77. ACM
de Lara J, Guerra E, Cuadrado JS (2014) When and how to use multilevel modelling. ACM Trans Softw Eng Methodol 24(2):12:1–12:46
Ehrig H, Ehrig K, Prange U, Taentzer G (2006) Fundamentals of algebraic graph transformation. Monographs in theoretical computer science. An EATCS Series. Springer
Fonseca CM, Almeida JPA, Guizzardi G, de Carvalho VA (2018) Multi-level conceptual modeling: From a formal theory to a well-founded language. In: ER, volume 11157 of LNCS, pp 409–423. Springer
Frank U (2014) Multilevel modeling—toward a new paradigm of conceptual modeling and information systems design. Bus Inf Syst Eng 6(6):319–337
Guerra E, de Lara J, Chechik M, Salay R (2020) Property satisfiability analysis for product lines of modelling languages. IEEE Trans Softw Eng, to appear, 1–20
Gerbig R (2017) Deep, seamless, multi-format, multi-notation definition and use of domain-specific languages. PhD thesis, University of Mannheim, Germany
González-Pérez C, Henderson-Sellers B (2006) A powertype-based metamodelling framework. Softw Syst Model 5(1):72–90
Greiner S, Westfechtel B (2021) On preserving variability consistency in multiple models. In: VaMoS’21: 15th international working conference on variability modelling of software-intensive systems, pp 7:1–7:10. ACM
Garmendia A, Wimmer M, Guerra E, Gómez-Martínez E, de Lara J (2020) Automated variability injection for graphical modelling languages. In: GPCE, pp 15–21. Association for Computing Machinery, New York, NY, USA
Igamberdiev M, Grossmann G, Selway M, Stumptner M(2018) An integratedmulti-level modeling approach for industrial-scale data interoperability. Softw Syst Model 17(1):269–294
Jácome-Guerrero SP, de Lara J (2020) TOTEM: reconciling multi-level modelling with standard two-level modelling. Comput Stand Interfaces 69:103390
Jeusfeld Manfred A, Neumayr B (2016) Deeptelos: multi-level modeling with most general instances. In: ER, volume 9974 of LNCS, pp 198–211
Juodisius P, Sarkar A, Mukkamala RR, Antkiewicz M, Czarnecki K, Wasowski A (2019) Clafer: lightweight modeling of structure, behaviour, and variability. Program J 3(1):2
Kühn T, Cazzola W (2016) Apples and oranges: comparing top-down and bottom-up language product lines. In: SPLC, pp 50–59. ACM
Kang K, Cohen S, Hess J, Novak W, Peterson A (1990) Feature-oriented domain analysis (foda) feasibility study. Technical Report CMU/SEI-90-TR-021, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA
Kienzle J, Mussbacher G, Collet P, Alam O(2016) Delaying decisions in variable concern hierarchies. In:GPCE, pp 93–103.ACM
Kiczales G, Rivieres JD (1991) The art of the metaobject protocol. MIT Press, Cambridge
Krahn H, Rumpe B, Völkel S (2010) Monticore: a framework for compositional development of domain specific languages. Int J Softw Tools Technol Transf 12(5):353–372
Kelly S, Tolvanen J-P (2008) Domain-specific modeling—enabling full code generation. Wiley
Lane SM (1971) Categories for the working mathematician. Springer
Méndez-Acuña D, Galindo JA, Degueule T, Combemale B, Baudry B (2016) Leveraging software product lines engineering in the development of external dsls: a systematic literature review. Comput Lang Syst Struct 46:206–235
MOF (2016) http://www.omg.org/spec/MOF
Martin RC, Riehle D, Buschmann F (1997) Pattern Languages of Program Design 3. Addison-Wesley
Macías F, Rutle A, Stolz V, Rodríguez-Echeverría R, Wolter U (2018) An approach to flexible multilevel modelling. EMISA 13:10:1–10:35
Northrop L, Clements P (2002) Software product lines: practices and patterns. Addison-Wesley Longman Publishing Co., Inc., Boston
Nesic D, Nyberg M, Gallina B (2017) Modeling product-line legacy assets using multi-level theory. In: SPLC, pp 89–96. ACM
OMG (2004) UML human-usable textual notation. http://www.omgwiki.org/variability/doku.php
Perrouin G, Amrani M, Acher M, Combemale B, Legay A, Schobbens P-Y (2016) Featured model types: towards systematic reuse in modelling language engineering. In: MiSE@ICSE, pp 1–7. ACM, New York, NY, USA
Pohl K, Böckle G, van der Linden FJ (2005) Software product line engineering: foundations, principles and techniques. Springer, Berlin
Paige RF, Kolovos DS, Rose LM, Drivalos N, Polack FAC (2009) The design of a conceptual framework and technical infrastructure for model management language engineering. In: ICECCS, pp 162–171. USA IEEE Computer Society, Washington, DC
Rossini A, de Lara J, Guerra E, Rutle A, Wolter U (2014) A formalisation of deep metamodelling. Formal Asp Comput 26(6):1115–1152
Rabiser D, Prähofer H, Grünbacher P, Petruzelka M, Eder K, Angerer F, Kromoser M, Grimmer A (2018) Multi-purpose, multi-level feature modeling of large-scale industrial software systems. Softw Syst Model 17(3):913–938
Reinhartz-Berger I, Sturm A, Clark T (2015) Exploring multi-level modeling relations using variability mechanisms. In: MULTI@MoDELS, volume 1505 of CEUR workshop proceedings, pp 23–32. http://ceur-ws.org
Smaragdakis Y, Batory DS (2002) Mixin layers: an object-oriented implementation technique for refinements and collaborationbased designs. ACM Trans Softw Eng Methodol 11(2):215–255
Schaefer I, Bettini L, Bono V (2010) Ferruccio Damiani, and Nico Tanzarella. Delta-oriented programming of software product lines. In: Proceedings of SPLC, volume 6287 of lecture notes in computer science, pp 77–91. Springer
Schmidt DC (2006) Guest editor’s introduction: model-driven engineering. Computer 39(2):25–31
Schaefer I (2010) Variability modelling for model-driven development of software product lines. In: Proceedings of variability modelling of software-intensive systems (VaMoS), pp 85–92
Salay R, Famelis M, Rubin J, Sandro AD, Chechik M (2014) Lifting model transformations to product lines. In: ICSE, pp 117–128. ACM, New York, NY, USA
Strüber D, Peldszus S, Jürjens J (2018) Taming multi-variability of software product line transformations. In: Fundamental approaches to software engineering, 21st international conference, FASE, volume 10802 of lecture notes in computer science, pp 337–355. Springer
Thüm T, Batory DS, Kästner C (2009) Reasoning about edits to feature models. In 31st international conference on software engineering, ICSE, pp 254–264. IEEE
Taentzer G, Salay R, Strüber D, Chechik M (2017) Transformations of software product lines: a generalizing framework based on category theory. In: MODELS, pp 101–111. IEEE Computer Society
UML 2.5.1 OMG specification (2017) http://www.omg.org/spec/UML/2.5.1/
Voelter M, Benz S, Dietrich C, Engelmann B, Helander M, Kats LCL, Visser E, Wachsmuth G (2013) DSL engineering— designing, implementing and using domain-specific languages. http://dslbook.org
Vacchi E, Cazzola W (2015) Neverlang: a framework for feature-oriented language development. Comput Lang Syst Struct 43:1–40
White J, Hill JH, Gray J, Tambe S, Gokhale AS, Schmidt DC (2009) Improving domain-specific language reuse with software product line techniques. IEEE Softw 26(4):47–53
Wolter U, Macías F, Rutle A (2020) Multilevel typed graph transformations. In: Graph transformation—13th international conference, ICGT, volume 12150 of lecture notes in computer science, pp 163–182. Springer
Wende C, Thieme N, Zschaler S (2009) A role-based approach towards modular language engineering. In: Software language engineering, second international conference, SLE, volume 5969 of lecture notes in computer science, pp 254–273. Springer
Acknowledgements
We thank the reviewers for their useful comments.
Funding
This work has been funded by the SpanishMinistry of Science (project MASSIVE, RTI2018-095255- B-I00), by the R&D programme of Madrid (project FORTE, P2018/TCS-4314), and the Universidad Autónoma de Madrid.
Author information
Authors and Affiliations
Corresponding author
Additional information
Jordi Cabot, Heike Wehrheim and Eerke Boiten
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
de Lara, J., Guerra, E. Language Family Engineering with Product Lines of Multi-level Models. Form Asp Comp 33, 1173–1208 (2021). https://doi.org/10.1007/s00165-021-00554-3
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-021-00554-3