Faculdade de Ciências e Tecnologia

Linguagens de Modelação para Domínios Específicos

Código

11558

Unidade Orgânica

Faculdade de Ciências e Tecnologia

Departamento

Departamento de Informática

Créditos

6.0

Professor responsável

Ana Maria Dinis Moreira, Vasco Miguel Moreira do Amaral

Horas semanais

4

Língua de ensino

Português

Objectivos

Saber:

  • Entender riscos e oportunidades de DS(M)L versus GP(M)L

  • Acompanhar o processo completo de Engenharia de Linguagens

  • Aprender técnicas de Análise de Domínio

  • Usar abordagens Orientadas a Modelos para desenvolvimento de linguagens

  • Aprender ferramentas formais e práticas (“workbenches”) de desenvolvimento de DS(M)Ls

  • Conhecer exemplos de domínio de aplicação de DS(M)Ls

  • Aprender a avaliar uma linguagem do ponto de vista da usabilidade


Saber fazer:

  • Usar ferramentas de desenvolvimento de DS(M)Ls

  • Dado um problema num domínio especifico, saber como desenvolver uma DS(M)L de raiz

  • Evoluir uma DS(M)L usando técnicas de evolução dirigidas por modelos

  • Saber desenhar e executar um estudo para avaliar uma linguagem


Soft skills:

  • Trabalho em equipa

  • Conhecer o processo de revisão de artigos numa conferência (tanto na óptica de autor como de revisor)

  • Defesa pública de pontos de vista

Pré-requisitos

Domínio do UML.

Domínio do Eclipse.

Como precedência deverá ter MDS

Conteúdo

1. Abordagem de desenvolvimento de software orientado por modelos


1.1. O que é o desenvolvimento orientado por modelos

1.2. Definição de modelos

1.3. Metamodelos e os diferentes níveis de modelação

1.4. Instanciação Ontológica vs. Linguística

1.5. MD* : MBE, MDE, MDD, MDA


2. Engenharia de Domínio


2.1. Metodologias de modelação de domínio

2.2. A abordagem Feature-Oriented Domain Analysis

2.3. O modelo de domínio


3. Desenho de uma Linguagem


3.1. Sintaxe abstracta

3.2. Sintaxe concreta

3.3. Semântica

3.3. Especificação de restrições invariantes (regras de boa formação)

3.4. Transformação de modelos: propósitos, fundamentos (Gramáticas de grafos), ferramentas

3.5. Alguns domínios semânticos: DEVS, Statecharts e Petri Nets


4. Aferição da qualidade da DSL - Usabilidade


4.1. Planeamento da avaliação de usabilidade de uma linguagem

4.2. Execução dos estudos experimentais com utilizadores

4.3. Interpretação de resultados

Bibliografia

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

Método de avaliação

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).

Cursos