Domain Specific Modelling Languages


Understand :

  • Risks and opportunities of developing a DS(M)L over GP(M)L solution

  • Advantages and Disadvantages of Model-Driven Engineering

  • Risks and opportunities of using  DS(M)L versus GP(M)L

  • Criteria to choose a given modelling language for a specific modelling task


  • Use formal and practical DSL (graphical and textual) development workbenches 

  • Given a problem in a specific domain, knows how to develop a DS(M) L from scratch

  • Evolve a DS(M)L using model-driven evolution techniques

  • Know how to design and execute a study to evaluate the usability of a given language

  • Architecting and create a roadmap of model-oriented technologies for automating processes

  • How to transform Model-to-Text and Model-to-Model

  • Follow the complete process of Language Engineering

  • Learn Domain Analysis Techniques

  • Use Model-Driven Approaches for Language Development


  • The utility of some formalisms for System Engineering (to model a system considering or not time, discrete or continuous)

  • Existing techniques and limitations for evaluating DS(M)Ls from the point of view of  usability

  • Some application domains of DS(M)Ls

General characterization





Responsible teacher

Ana Maria Diniz Moreira, Vasco Miguel Moreira do Amaral


Weekly - 4

Total - 52

Teaching language



The student should have been introduced to Software development methodologies and modelling with UML.


Marco Brambilla, Jordi Cabot, Manuel Wimmer, “Model-Driven Software Engineering in Practice”, Morgan & Claypool Publishers, 2nd Edition, 2017

Dimitris Kolovos, Louis Rose, Antonio García-Domínguez, Richard Paige, “The Epsilon Book”, The Eclipse Foundation, 2014

Slides of the Theoretical Lessons: available at the website

Lecture Notes with Lab case studies available at the course website

Teaching method

Lectures consist of a theoretical exposition, illustrated by application examples, and supported by slides and the usage of the software development environment of the lecturer.

In the lab sessions, students solve problems by concretely applying the concepts discussed in the previous lectures.

Students may clarify any doubts during classes or in the instructor’s contact hours.

Evaluation method

The evaluation includes 2 tests (corresponding to a total of 45% of the final grade) and 2 deliverables of a project (55% of the final grade). 

Subject matter

0. Motivation - Causes for Complexity in Systems Design

1.Definition of System

2. Model-Driven Engineering Basic Concepts: 

  1. what is MDE; Definitions of Models, Metamodels and the Modelling Stack.

  2. Ontologic vs. Linguistic instantiation

  3. MD*: MDE, MBE, MDD, MDA

  4. Domain Specific Languages

2. Domain Engineering: 

  1. Domain modelling methodologies; 

  2. Feature-Oriented Domain Analysis(introducing Feature Diagrams); 

  3. the Domain Model - different modelling approaches (using UML, ERD, OWL); 

  4. Software Product Lines.

3. DSMLs and Modelling Language Design

  1. Abstract Syntax and language Metamodelling (MOF and ECORE)

  2. Concrete Syntax and Semantics

  3. Specifying Invariant constraints (OCL)

  4. Model-Transformations: purpose and classification; Foundations (Graph Grammars, Algebraic Approaches: SPO and DPO)

  5. Model Transformation Tools: ATL, QVT, ETL

  6. Some Semantic Domains: State Charts, Petri Nets

  7. Implmentation using Modelling Workbenches for both textual and graphical DSLs

4. Quality Assessment - Usability

5. Brief overview of MDE in System Engineering: 

  1. Static and Dynamic Systems

  2. Time Varying and Time invariant Dynamic Systems

  3. Discrete Event formalisms: Petri Nets (for Concurrent Non-Deterministic Event Systems) and State Charts (for timed, reactive, autonomous behaviour)

  4. Continuous formalisms:  System Dynamics (for natural systems, business and social systems) and Bond Graphs ( for generalization of electrical to other physical) 

  5. DEVS and Differential equation specified system

  6. AADL (Avionics Architecture description language)

  7. Designing DSLs and translating to the previous formalisms, and use of analysis tools

  8. Application domains and examples.

6. Model Management:

Model Interchange, Model Persistence, Model Comparison, Model versioning, Model co-evolutionGlobal model management, Model Quality, Collaborative Modelling


Programs where the course is taught: