Additional information: https://moodle.fct.unl.pt/course/view.php?id=7056
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.
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
Know:
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
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
Causal Block Diagrams (CBDs): discrete-time and continuous-time
Petri Nets
Statecharts
Event-Scheduling Discrete-Event
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
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
There are no pre-requirements to attend to this course.
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 |