Model-Driven Engineering (2021/2022) - Departamento de Informática

Additional information: https://moodle.fct.unl.pt/course/view.php?id=7056

Description

MDE is a standard approach to address the complexity of systems’ development. It promotes the use of models in multiple notations and their translations as first class citizens. Domain Specific Modeling Languages DS(M)Ls are used to be able to express models in adequate rigorous notations that reflect the different perspectives of the systems, with an adequate level of abstraction usable by the different modelers (potentially non-software experts).

This course will use well established MDE techniques to model the domain, design and develop DS(M)Ls including model editors, (also techniques used in low code tools), and to use them for several purposes (like Code generation, Simulation and Analysis). Thanks to the project developed during the course, the students will have the opportunity to conceive the technological stack for the modeling roadmap with different layers of abstraction, starting with the definition of the DS(M)L, and via model transformations will construct the automatic generation process to end in code or some formalisms briefly introduced in the lectures for the purpose of simulation or analysis.


Objectives

Understand :

Be able to:

Know:

Syllabus

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)

-Model-Transformations

-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


Bibliography

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


Prerequisites

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

Student work
  Hours per credit 28
  Hours per week Weeks Hours
Aulas práticas e laboratoriais   26.0
Aulas teóricas   26.0
Avaliação   6.0
Self study   30.0
Project   80.0
Total hours 168
ECTS 6.0