Faculdade de Ciências e Tecnologia

Domain Specific Modelling Languages

Code

11558

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

Ana Maria Dinis Moreira, Vasco Miguel Moreira do Amaral

Weekly hours

4

Teaching language

Português

Objectives

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

  • Public defense of points of view

Prerequisites

- Master UML

- Master the Eclipse IDE.

The students should have successfully passed  MDS (Métodos de Desenvolvimento de Software).

Subject matter

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

Bibliography

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

Evaluation method

Project: 60%, includes deliverables + Report + Review + workshop with the following:

• Domain Analysis

• Language Design

• M2C - Code Generation (running on the target platform)

• Transformations (for Verification or Validation, including simulation)

• Workshop oral presentation

• Report - (10-16 pages) Paper (describing the running project and usability evaluation)

• Project >= 9,5 (out of 20) => “Frequência” Tests (max. 2h each):

• M1: 14 of May (20%)

• M2: 9 of June (20%)

• (Must sum all-together more than 9,5 out of 20 to pass)

• Exam (“Recurso”): 40%

• Final Grade= 0.6 *Project + 0.4 * (Exam or 2 Tests)

• Groups of two elements. You must declare your group to the professor at week 2 (next week).

Courses