Engenharia Orientada a Modelos
Objetivos
Compreender:
-
Vantagens e desvantagens da engenharia orientada a modelos (MDE)
-
Riscos e oportunidades de DS(M)L versus GP(M)L
-
Critérios de selecção de linguagens de modelação
Ser capaz:
-
Criar um “roadmap” de tecnologias MDE para automatização dos seus processos
-
Transformação de modelos Modelo-para-texto e Modelo-para-Modelo
-
Acompanhar o processo completo de Engenharia de Linguagens
-
Usar abordagens MDE para desenvolvimento de linguagens
-
Usar ferramentas formais e práticas (“workbenches”) de desenvolvimento de DS(M)Ls gráficas e textuais
-
Dado um problema num domínio específico, saber como desenvolver uma DS(M)L de raiz
-
Evoluir uma DS(M)L usando técnicas MDE
-
Saber desenhar e executar um estudo para avaliar uma linguagem
Conhecer:
-
A utilidade de alguns formalismos para Engenharia de Sistemas (para modelar sistemas com/sem tempo e discretos ou contínuos)
-
Técnicas de avaliação de qualidade de DS(M)Ls do ponto de vista de usabilidade
-
Conhecer exemplos de domínio de aplicação de DS(M)Ls
Caracterização geral
Código
12544
Créditos
6.0
Professor responsável
Vasco Miguel Moreira do Amaral
Horas
Semanais - 4
Totais - 52
Idioma de ensino
Português
Pré-requisitos
Não tem pré-requisitos.
Bibliografia
Marco Brambilla, Jordi Cabot, Manuel Wimmer, “Model-Driven Software Engineering in Practice”, Morgan & Claypool Publishers, 2nd Edition, 2017
Markus Voelter, DSL Engineering: Designing, Implementing and Using Domain-Specific Languages, CreateSpace Independent Publishing Platform, 2013
Dimitris Kolovos, Louis Rose, Antonio García-Domínguez, Richard Paige, “The Epsilon Book”, The Eclipse Foundation, 2014
Paulo Carreira, Vasco Amaral, Hans Vangheluwe, “Foundations of Multi-Paradigm Modelling for Cyber-Physical Systems”, Springer, OpenAccess, 2020
Método de ensino
Nas aulas teóricas lecionam-se os conceitos teóricos e nas aulas de laboratório, que decorrerão com recurso a ferramentas.
No início das aulas os alunos receberão o planeamento para os tópicos do programa e a especificação do trabalho prático. Um prazo é dado para a entrega dos trabalho.
As aulas teóricas são dadas em sala de aula equipada com um projetor e slides em Powerpoint. As aulas práticas são realizadas em salas equipadas com computadores, quadro e projetor.
A avaliação consiste das seguintes componentes obrigatórias: um trabalho prático entregue em duas fases; dois testes. O trabalho é realizado em grupo de dois alunos e os testes individualmente. Cada grupo tem um projecto diferente.
Serão convidados peritos de preferência do meio empresarial (ex. Quidgest, Outsystems,...) para relatarem a sua experiência com adopção da Engenharia Orientada por modelos nos processos internos das suas empresas.
Método de avaliação
A avaliação desta unidade curricular é feita da seguinte forma:
"Nota Final" = "Nota Testes" X 0,45 + "Nota Projecto" X 0,55
A) "Nota Testes"
É a média (de zero a 20 valores) arredondada às centésimas de dois testes realizados durante o semestre (ver datas previstas em baixo), Para o aluno passar na cadeira tem de ter mais de 9.5 neste componente (independentemente de um ou outro teste ter valor inferior).
B) "Nota Projecto"
É a nota do projecto de grupo de dois alunos que contabiliza: uma entrega intermédia, uma entrega final e a prestação na workshop do último dia de aulas (presença obrigatória) onde se apresenta oralmente o projecto para a turma e se pratica a capacidade crítica em relação ao trabalho dos colegas). Este componente dá frequência na cadeira.
Principais datas:
26/10/2021 Enunciado do projecto
23/11/2021 Primeiro teste
26/11/2021 Primeira Entrega do projecto
4/01/2022 Workshop
5/01/2022 Entrega Final do projecto
12/01/2022 Segundo teste
Conteúdo
1. Causas de Complexidade no Desenho de Sistemas
2. Abordagem Orientada a Modelos
3. Engenharia de Domínio
4. DS(M)Ls e Desenho de Linguagens de Modelação
-
Sintaxe Abstrata e Metamodelos (MOF, ECORE)
-
Sintaxe Concreta (Visual e Textual) e Semântica
-
Restrições invariantes (OCL,EVL)
-
Transformações de modelos
-
Breve introdução a alguns formalismos de modelação:
-
Causal Block Diagrams (CBDs): discretos e contínuos
-
Petri Nets
-
Statecharts
-
Event-Scheduling Discrete-Event
-
Discrete-Event System Specification (DEVS)
5. Verificação de modelos em MDE
6. Avaliação de Qualidade - Usabilidade
7. Breve visão geral do MDE na Engenharia de Sistemas:
-
Sistemas Estático e Dinâmico
-
Variação de tempo e sistemas dinâmicos invariantes no tempo
-
Formalismos de Evento Discretos e Contínuos
-
DEVS e equações diferenciais
-
AADL (linguagem de descrição da Avionics Architecture) e SysML