
Linguagens para Domínios Específicos
Código
8287
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
Objectivos
- Entender riscos e oportunidades de DSL versus GPL.
- Aprender técnicas de análise de Domínio.
- Aprender ferramentas formais e prácticas de desenvolvimento de DSLs relacionando com conhecimentos adquiridos noutras disciplinas.
- Conhecer exemplos de domínio de aplicação de DSLs.
- Aprender a avaliar uma linguagem do ponto de vista de usabilidade.
- O processo completo de Engenharia das DSLs
- Conhecer ferramentas de desenvolvimento de DSLs.
- Conhecer as vias de investigação correntes sobre DSLs.
- Dado um problema num domínio especifico,saber como desenvolver uma DSL de raiz.
- Desenvolver valências em apresentação oral e escrita de ideias, desenvolver espirito crítico.
- Lidar com prazos de projectos.
- Modelação.
- Desenvolver soluções efectivas.
Conteúdo
- Motivação para o estudo das LDEs
- Definição de LDE
- Vantagens Vs. Desvantagens
- Comparação LDEs Vs. LPG (Linguagens de Propósito Geral)
- Textual Vs. Visual
- Engenharia de Linguagens
- A linguagem de "Feature Models"
- Introdução à Engenharia de Domínio
- Desenvolvimento de Software Orientado a Modelos e Linhas de Produtos de Software
- Abordagem formal para desenvolvimento de LDEs
- O conceito de MetaModelo de Linguagens (e ferramentas)
- Sintaxe Concreta e Abstracta
- Frases bem formadas (impondo restricções com OC
- Semântica de Linguagens
- Transformação e Composição de Modelos
- Outras abordagens para implementação de LDEs
- Casos de Estudo em Domínios diferentes
- Avaliação experimental de LDE
Bibliografia
Livro Recomendado e leitura obrigatória:
- "DSL Engineering - Designing, Implementing and Using Domain-Specific Languages", Markus Voelter, 2012.
- Colecção de artigos significativos adequados ao tópico abordado em cada aula prática.Colecção de slides da cadeira. Folhas de exercícios propostos.
Leitura Complementar:
- Steven Kelly, Juha-Pekka Tolvanen, "Domain-Specific Modeling", IEEE Wiley, 2008
- "Generative Programming Methods, Toolss and Applications", Krzystof Czarnecki, Ulrich Eisenecker,Addison-Wesley, 2000.
- "Software Factories", Jack Greenfield and Keith Short, Wiley Publishing , 2004.
- "Software Language Engineering: Creating Domain-Specific Languages Using Metamodel", Anneke Kleppe,Addison-Wesley Professional; 1st edition, 2008.
Método de avaliação
**Pode ser sujeito a pequenos ajustes até à segunda semana de aulas**
A avaliação consiste das seguintes componentes obrigatórias: 1) um trabalho prático com entregáveis ao longo do semestre; 2) dois testes. O trabalho é realizado em grupo de 2 ou 1 e o teste individualmente.
A nota é uma média ponderada do trabalho prático (60%), e da nota dos testes (40%).
Trabalho prático (60%): Um trabalho prático obrigatório. Entregáveis: i) Análise de Domínio (5%), ii) linguagem Visual e Textual c/ Editor/Geração (25%), iii) Verificação & Validação (20%) iv) (10%) Resumo final com questionário de avaliação e revisão de artigos de colegas e workshop. Para obter frequência, a média das fases deve ser superior ou igual a 9,5.
Testes (2): cada teste valendo 20% da nota final com nota mínima de 9,5.
A nota final é uma média ponderada das notas dos testes (40%), e do trabalho prático (60%).
Acesso ao exame de época de recurso são para alunos que têm frequência, mas que não obtiveram um desempenho satisfatório na avaliação contínua, com média entre 9,5 e 20, ou que desejam fazer melhoria.
Para alunos com frequência e média < 9,5, o exame de recurso vale 40%. Os outros 60% correspondem a média obtida no trabalho prático. Alunos que não entreguem qualquer entregável são classificados como "Ausentes".
Para melhorias de nota realizadas na época de recurso do semestre em que foi obtida aprovação na cadeira, as regras de cálculo da nota são as da época de recurso, ou seja, a nota final é a nota do exame. Melhorias de notas obtidas em semestres anteriores são feitas exclusivamente por exame, em época de recurso ou época especial, sendo a nota final a nota obtida no exame.
Na época especial, a nota final é a nota do exame.