Model-Driven Engineering


Understand :

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

  • Advantages and Disadvantages of Model-Driven Engineering (MDE)

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

Be able to:

  • 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 MDE evolution techniques

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

  • Create a roadmap of MDE technologies for automating processes

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

  • Follow the complete process of Language Engineering

  • 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

Vasco Miguel Moreira do Amaral


Weekly - 4

Total - 52

Teaching language



There are no pre-requirements to attend to this course. 


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

Markus Voelter, DSL Engineering: Designing, Implementing and Using Domain-Specific Languages, CreateSpace Independent Publishing Platform, 2013

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

Paulo Carreira, Vasco Amaral, Hans Vangheluwe, “Foundations of Multi-Paradigm Modelling for Cyber-Physical Systems”, Springer, OpenAccess, 2020 

Teaching method

In theoretical classes the fundamental concepts are taught and put into practice in the laboratory classes, which will be carried out using tools and examples.

At the beginning of the class the students will receive the planning for the topics of the program and the specification of the practical work. A deadline is given for the delivery of the work.

Theoretical classes are given in a classroom equipped with a projector and Powerpoint slides. The practical classes are held in rooms equipped with computers, picture and projector.

The evaluation consists of the following mandatory components: a practical work delivered in two phases; two tests. The work is carried out in a group of two students and the tests individually. Each group has a different project.

We will invite external experts (eg Quidgest, Outsystems, ...) to give a talk about their experience with the adoption of Model-Driven Engineering in their company''s internal processes.

Evaluation method

The grades in this course are graded in the following way:

"Final Grade" = "Tests" X 0,45 + "Project" X 0,55

range from [0..20]

A) "Tests"

Mean value of two tests graded from 0 to 20, that must be higher than 9.5 to be considered a pass in this course.

B) "Project"

Grade of the group''s (two students) project structured in the following way: intermediate submission of artifacts, final submission of artifacts, presentation in the workshop at the last day of MDE/EOM classes (mandatory presence) of the semester and questions and questionnaire about the personalopinion on the performance of the other projects.

Important dates: 

26/10/2021 Project announcement 

23/11/2021 First Test

26/11/2021 First project''s submission

4/01/2022 Workshop

5/01/2022 Final project''s submission

12/01/2022 Second Test

Subject matter

1. Causes for Complexity in Systems Design

2. The Model-Driven Development approach

3. Domain Engineering

4. DSLs and Language Design

 - Abstract Syntax and Language Metamodelling (MOF, ECORE)

 -Concrete Syntax (Visual and Textual) and Semantics

 -Specifying Invariant constraints (well-formedness rules) (OCL,EVL)


 -A brief introduction to some Modelling Formalisms

  1. Causal Block Diagrams (CBDs): discrete-time and continuous-time

  2. Petri Nets

  3. Statecharts

  4. Event-Scheduling Discrete-Event

  5. Discrete-Event System Specification (DEVS)

5. Model Checking in MDE

6. DSL Quality assessment - Usability

7. Brief overview of MDE in System Engineering:

 - Static and Dynamic Systems 

 - Time Varying and Time invariant Dynamic Systems

 - Discrete Event formalisms

 - Continuous formalisms

 - DEVS and Differential equation specified system

 - AADL (Avionics Architecture Description Language) and SysML


Programs where the course is taught: