Modern systems cross different domains and are composed of networked andinterrelated (hardware and software) subsystems, some even cyber-physical, thus goingbeyond the software scope, such as automotive, home automation and avionics.These systems are becoming increasingly complex, and are demanding a modulardecompositional approach to address the specificities of each domain.
Model-Driven Driven (MDD) development is becoming a standard approach to addressthe complexity of these systems’ development through the use of models in multiplenotations and their translations as first class citizens. To be able to express models inadequate rigorous notations that reflect the different perspectives of the systems, withan adequate level of abstraction usable by the different modelers (potentially non-software experts), typically are used Domain Specific Languages (DSLs). Theselanguages can be textual or more commonly visual. This course will use well establishedMDD techniques to model the domain, design and develop DSLs.
Knowledge:
Understand the risks and opportunities of developing a DS(M)L over GP(M)L solution
Know the Software Languages Engineering process
Learn techniques of Domain Analysis
Effective use of Model-Driven Development for language development
Learn formal and practical tools (workbenches) for developing DS(M)Ls
Learn several typical domains of application of DS(M)Ls
Know how to evaluate a language from the point of view of usability
Skills and competences:
Know how to use up-to-date technology (tools) to develop DS(M)Ls
Given a domain-specific problem, know how to implement a DS(M)L from scratch
Evolve a DS(M)L using model-driven techniques
Know how to design and execute a study to evaluate a language
Soft skills:
Team work
Know the paper reviewing process for a conference, both in the perspective of the author and the reviewer
1. The Model-Driven Development approach
1.1. What is Model-Driven Development
1.2. Definition of Models
1.3. Metamodels and the modeling stack
1.4. Ontologic vs. Linguistic instantiation
1.5. MD* : MBE, MDE, MDD, MDA
2. Domain Engineering
2.1. Domain modeling methodologies
2.2. Feature-Oriented Domain Analysis
2.3. The Domain Model
3. Language Design
3.1. Abstract Syntax
3.2. Concrete Syntax and Semantics
3.3. Specifying Invariant constraints (well formedness rules)
3.4. Model-Transformations: purposes, foundations (Graph-Grammars), tools
3.5. Semantic Domains: DEVS, Statecharts and Petri Nets
4. DSL Quality assessment - Usability
4.1. Preparing Usability assessments
4.2. Preparing Experimental studies with subjects
4.3. Interpretation of results
Theory/Teóricas:
Domain-Specific Modeling, Steven Kelly, J. Tolvanen, IEEE Wiley, 2008
Generative Programming Methods, Tools and Applications, K. Czarnecki and U. Eisenecker, Addison-Wesley, 2000
Software Factories, J. Greenfield and K. Short, Wiley Publishing , 2004
DSL Engineering: Designing, Implementing and Using Domain-Specific Languages, Markus Voelter, CreateSpace Independent Publishing Platform, 2013
Labs/Práticas:
The Epsilon Book, Dimitris Kolovos, Louis Rose, Antonio García-Domínguez, Richard Paige, The Eclipse Foundation, 2014
- Master UML
- Masterthe Eclipse IDE.
The students should have successfully passed MDS (Métodos de Desenvolvimento de Software).
Hours per credit | 28 | ||
Hours per week | Weeks | Hours | |
Total hours | 0 | ||
ECTS | 6.0 |