University of Sheffield

Reusable Model Design Languages

Model specification, model transformation and code generation

What is Model-Driven Engineering?

Model-Driven Engineering (MDE) is a general strategy in software engineering that seeks to raise the level of abstraction at which we develop software systems. In the future, instead of focusing on detailed implementation in specific programming languages, we will create high-level designs using conceptual models that are much closer to the view of the stakeholders. An automatic process known as model transformation will fold together the different aspects of the design and generate the eventual software system.

Reusable pieces of design

Introductory Reading

The following is a classified bibliography, giving a guided introduction to Model-Driven Engineering. Biehl, Mens and van Gorp give a useful taxonomy of different kinds of model transformation. Clark, Evans, Sammut and Willans give a clear exposition of metamodels and modelling. Jouault and Kurtev give examples from the ATLAS Transformation Language (ATL). Whittle, Hutchinson and Rouncefield review the adoption of model transformation.

Model Transformation and Metamodelling
M. Biehl: Literature Study on Model Transformations, Technical Report, Embedded Control Systems, Royal Institute of Technology, Stockholm (Stockholm: KTH, 2010), 28pp. Open Access Version.
T. Mens and P. van Gorp: A Taxonomy of Model Transformation, Electronic Notes in Theoretical Computer Science, 152 (Amsterdam: Elsevier, 2006), 125-142. Open Access Version, Longer Draft Version.
A. Clark, P. Sammut and J. Willans: Applied Metamodelling - a Foundation for Language-Driven Development, 2nd ed., Ceteva (2008). Open Access Version.
F. Jouault and I. Kurtev: Transforming Models with ATL, MoDELS 2005 Workshops, Lecture Notes in Computer Science, 3844 (Berlin: Springer, 2006), 128-138. Open Access Version, Longer Draft Version.
A. Clark, A. Evans, P. Sammut and J. Willans: Transformation language design - a metamodelling foundation, in: eds. H Ehrig et al., Proc. 2nd Int. Conf. Graph Transformations, Rome, Lecture Notes in Computer Science, 3256, (2004), 13-21. Open Access Version.
M. Brambilla, J. Cabot and M. Wimmer: Model-Driven Software Engineering in Practice, 2nd ed. (Morgan and Claypool, 2017). Errors in diagrams highlighted. Open Access Version.
J. Whittle, J. Hutchinson and M. Rouncefield: The state of practice in Model-Driven Engineering, IEEE Software, May-June (2014), 79-85. Open Access Version, Public Draft Version.
J. Whittle, J. Hutchinson, M. Rouncefield, H. Burden and R. Heldal : A taxonomy of tool-related issues affecting the adoption of model-driven engineering, Software Systems Modeling, 16 (2), May (2017), 313-331. Open Access Version.

OMG and Eclipse Standards

The following are links to the various standards curated by the Object Management Group. These include the different components of Model-Driven Architecture (MDA), such as the Unified Modeling Language (UML), the Meta-Object Facility (MOF), and the Query-View-Transformation (QVT) approach. The Eclipse Foundation has implemented a subset of the MOF, known as ECore, to support graphical editors, modelling and code generation. This is all extremely complicated.

Model-Driven Architecture (MDA, UML, MOF, QVT, OCL, EMF, ECore)
Object Management Group: MDA - The Architecture of Choice for a Changing World (OMG, 2014). OMG Formal Standard.
Object Management Group: UML - The Unified Modeling Language (OMG, 2017). OMG Formal Standard.
Object Management Group: MOF - The Meta Object Facility (OMG, 2016). OMG Formal Standard.
Object Management Group: QVT - MOF Query/View/Transformation (OMG, 2016). OMG Formal Standard.
Object Management Group: OCL - The Object Constraint Language (OMG, 2014). OMG Formal Standard.
Eclipse Foundation: EMF - The Eclipse Modeling Framework (Eclipse, 2004-2021). Open Source Project.
Eclipse Foundation: Package org.eclipse.emf.ecore Java documentation. (Eclipse, 2004-2021). Open Source Project.

Other MDE Approaches

There are many approaches to MDE. These range from imperative languages for model-transformation (Kermeta, SiTra), to hybrid languages with some declarative parts (ATL), to languages expressed completely in terms of declarative constraints (UML-RSDS).

Kermeta, SiTra, UML-RSDS
Z. Drey, C. Faucher, F. Fleurey, V. Mahé and D Vojtisek: KerMeta Language Reference Manual, November 2010 (Rennes: IRISA, 2010). Open Access Version.
D. H. Akehurst, B. Bordbar, M. J. Evans, W. G. J. Howells and K. D. McDonald-Maier: SiTra: Simple transformations in Java, Proc. Model-Driven Languages and Systems (Springer, 2006), 351-364. Public Draft Version.
Eclipse Foundation: ATL - a model transformation technology, AtlanMod Research Group (INRIA, Ecole des Mines de Nantes and LINA), 2006-2021. Open Source Project.
F. Jouault, J. Bézivin and I. Kurtev: TCS: a DSL for the specification of textual concrete syntaxes in model engineering, Proc. 5th Int. Conf. on Generative Programming and Component Engineering, Portland Oregon, 22-23 October (2006), 249-254. Open Access Version.
K. Lano and S. Kolahdouz-Rahimi: Constraint-based specification of model transformations, Journal of Systems and Software, 86(2), (Elsevier, 2013), 412-436. Published Version.
K. Lano and S. Kolahdouz-Rahimi: Implementing QVT-R via semantic interpretation in UML-RSDS, Software and Systems Modeling (Springer, 2020), DOI: https://doi.org/10.1007/s10270-020-00824-3. Open Access Version.