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