Software language engineering in the large: towards composing and deriving languages
Section snippets
Motivation
Using models to understand and shape the world is a very foundational technique that has already been used in ancient Greece and Egypt. Scientists model to comprehend while engineers model to design (parts of) the world. Although modeling has been employed for ages in virtually all disciplines it is fairly recent that the form of models is made explicit in modeling languages. Computer science invented this approach to enable formality and a precise understanding of what is a well-formed model
Language engineering
Model-Driven Development [6], [14], [15] lifts abstract models to primary development artifacts to facilitate software analysis, communication, documentation, and transformation. Automated analysis and transformation of models require that these adhere to contracts. Such automation is feasible, if models conform to contracts in the form of languages specifications. For many popular modeling languages, such as UML [3], AADL [16], or Matlab/Simulink [17], research and industry have produced
Composing modeling languages
Model-Driven Development is successful when initiated bottom-up [56], i.e., developers employ modeling languages considered suitable for their domain-specific challenges instead of using predefined, monolithic general-purpose modeling techniques. For efficient language engineering, evolution, validation, and maintenance, these languages should be retained as independent as possible. Ultimately, however, combining such languages mandates their efficient composition [18]. Considering, for
Deriving modeling languages
Software engineering leverages modeling languages to mechanize working with models of other languages, such as transformation languages [63], [76], delta modeling languages [60], or tagging languages [61]. Such languages have in common that they are either overly generic or are specifically tied to a base language (i.e., the languages whose models are transformed or tagged). The former requires developers to learn completely new languages that are independent of a (possibly well-known) base
Discussion
Research in software language engineering investigates the efficient engineering, deployment, use, and evolution of software languages to support software engineers and domain experts to efficiently model future systems. DSLs foster innovation and efficiency in software engineering. They have become crucial innovation drivers in many disciplines, including Automotive [116], Avionics [16], Civil Engineering [117], Industry 4.0 [118], Robotics [119], and Software Engineering.
Yet, many successful
Conclusion
Ludwig Wittgenstein once postulated that the limits of his language are the limits of his world. Modern programming languages are suitable to describe structure, operations, and data, while general-purpose modeling languages, such as UML, are suitable for specifying structure, architecture, and behavior of software systems. However, both kinds of languages suffer from being designed for software engineers and raise a gap between the problem domains (such as medicine, physics, robotics) and the
References (122)
- et al.
A solution to the TTC’15 model execution case using the GEMOC studio
Proceedings of the 8th transformation tool contest
(2015) - et al.
Neverlang: a framework for feature-oriented language development
Comput Lang Syst Struct
(2015) - et al.
RASCAL: a domain specific language for source code analysis and manipulation
Proceedings of the Ninth IEEE international working conference on source code analysis and manipulation
(2009) - et al.
Declarative specifications for the development of multi-agent systems
Comput Stand Interfaces
(2016) - et al.
Modelling and implementation of catalogue cards using FreeMarker
Program
(2009) - et al.
Modeling cloud architectures as interactive systems
Model-driven engineering for high performance and cloud computing workshop
(2013) - et al.
Library-based model-driven software development with SugarJ
Proceedings of the ACM international conference companion on object oriented programming systems languages and applications companion
(2011) - et al.
Modular language implementation in rascal - experience report
Sci Comput Progr
(2015) - et al.
Exploration of modularity and reusability of domain-specific languages: an expression DSL in MetaMod
Comput Lang Syst Struct
(2018) - et al.
Supporting the platform extensibility for the model-driven development of agent systems by the interoperability between Domain-Specific Modeling Languages of Multi-Agent Systems.
Comput Sci Inf Syst
(2017)
A subgraph operator for graph transformation languages
Electr Commun EASST
Parallel graph transformation for model simulation applied to timed transition petri nets
Electr Notes Theor Comput Sci
A guide to the SQL standard
Extensible markup language (XML)
World Wide Web J
Modeling with UML: language, concepts, methods
Agile Modeling with UML: code generation, testing, refactoring
Model-driven development of complex software: a research roadmap
Fut Softw Eng (FOSE ’07)
Domain-specific languages
Domain specific languages
Handbook of programming languages
DSL engineering - designing, implementing and using domain-specific languages
Domain-specific languages: An annotated bibliography
ACM Sigplan Notices
Software language engineering: creating domain-specific languages using metamodels
Generating domain-specific transformation languages for component & connector architecture descriptions
Proceedings of the workshop on model-driven engineering for component-based software systems (ModComp’15)
Advances in modeling language engineering
Proceedings of the international conference on model and data engineering
Model-driven development: a metamodeling foundation
IEEE Softw
The pragmatics of model-driven development
IEEE Softw
Model-Based Engineering with AADL: an introduction to the SAE architecture analysis & design language
MATLAB and SIMULINK. Modeling dynamic systems
Conceptual model of the globalization for domain-specific languages
Globalizing domain-specific languages
Meaningful modeling: what’s the semantics of ”Semantics”?
IEEE Comput
Empirical language analysis in software linguistics.
Proceedings of the SLE
Semantics of context-free languages
Theory Comput Syst
Toward an engineering discipline for grammarware
ACM Trans Softw Eng Methodol
MontiCore: a framework for the development of textual domain specific languages
Proceedings of the 30th international conference on software engineering (ICSE 2008), Leipzig, Germany, May 10–18, 2008, Companion Volume
MontiCore: a framework for compositional development of domain specific languages
Int J Softw Tools Technol Transf (STTT)
Language design with the spoofax language workbench
IEEE Softw
The semantics of graphical languages
PEPM ’07: Proceedings of the 2007 ACM SIGPLAN symposium on partial evaluation and semantics-based program manipulation
Language modularization and composition with projectional language workbenches illustrated with MPS
Softw Lang Eng
Modeling language variability
Proceedings of the workshop on modeling, development and verification of adaptive systems LNCS 6662
On formalizing the UML object constraint language OCL
ER
Model driven language engineering with Kermeta
GTTSE
Generative programming-principles and techniques of software engineering based on automated configuration and fragment-based component models
A taxonomy of model transformation
Electr Notes Theor Comput Sci
Evaluating and comparing language workbenches: existing results and benchmarks for the future
Comput Lang Syst Struct
MontiCore 5 language workbench. Edition 2017. Aachener Informatik-Berichte, Software Engineering Band 32
The Spoofax language workbench
EMF: eclipse modeling framework
Xtext: implement your language faster than the quick and dirty way
Proceedings of the ACM international conference companion on object oriented programming systems languages and applications companion. SPLASH ’10
Sirius: a rapid development of DSM graphical editor
Proceedings of the 8th international conference on intelligent engineering systems (INES)
Cited by (42)
Composition operators for modeling languages: A literature review
2023, Journal of Computer LanguagesA Cross-Domain Systematic Mapping Study on Software Engineering for Digital Twins
2022, Journal of Systems and SoftwareCitation Excerpt :We assume the latter is due to the different perspectives on Digital Twins as (design-time) models, (run-time) systems, or something in-between and the heterogeneous implementation techniques that are employed accordingly. Research on heterogeneous modeling (Lee, 2010) and software language engineering (Kleppe, 2008; Hölldobler et al., 2018) can contribute to closing the gaps between the different technological spaces (Kurtev et al., 2002) and applying established reuse techniques to Digital Twins systematically. To understand how Digital Twins are applied to the different lifecycle phases of their counterparts, we classified the publications accordingly.
MontiThings: Model-Driven Development and Deployment of Reliable IoT Applications
2022, Journal of Systems and SoftwareCitation Excerpt :Model-driven engineering (MDE) (France and Rumpe, 2007) can mitigate these challenges by lifting more models to primary development artifacts that can abstract from implementation details of the platforms and devices the IoT applications are deployed to and separate concerns into different modeling languages whose models can be integrated and analyzed automatically. To make models machine-processable and, thus, accessible to automated analyses, syntheses, integration, and evolution, these models must conform to explicit modeling languages (Hölldobler et al., 2018), such as UML (Rumpe, 2016), SysML (Friedenthal et al., 2014), or AADL (Feiler and Gluch, 2012). Languages for the model-driven engineering (MDE) of IoT applications provide little abstraction (e.g., Eclipse Mita2) or offer no or only limited mechanisms for handling error situations (e.g., ThingML Morin et al., 2017; Harrand et al., 2016).
A Low-Code Platform for Systematic Component-Oriented Language Composition
2023, SLE 2023 - Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering, Co-located with: SPLASH 2023Seamless Code Generator Synchronization in the Composition of Heterogeneous Modeling Languages
2023, SLE 2023 - Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering, Co-located with: SPLASH 2023Model-Driven Integration of Analysis Components for Cyber-Physical Production Systems
2023, Proceedings - 2023 49th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2023