Engenharia Orientada a Modelos

Objectivos

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 - A disponibilizar brevemente

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

  1. Sintaxe Abstrata e Metamodelos (MOF, ECORE) 

  2. Sintaxe Concreta (Visual e Textual) e Semântica

  3. Restrições invariantes (OCL,EVL)

  4. Transformações de modelos

  5. Breve introdução a alguns formalismos de modelação:

  1. Causal Block Diagrams (CBDs): discretos e contínuos

  2. Petri Nets

  3. Statecharts

  4. Event-Scheduling Discrete-Event

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

Cursos

Cursos onde a unidade curricular é leccionada: