Informação adicional: https://moodle.fct.unl.pt/course/view.php?id=7056
Esta cadeira tem pontos comuns com a ex-cadeira Linguagens Modelação para Domínios Específicos LMDE do MIEI.
O MDE é uma abordagem padrão para abordar a complexidade do desenvolvimento de sistemas que por razões éticas, económicas ou pragmáticas têm de ser modeladas e analisadas à priori. Esta promove o uso de modelos em várias notações e suas traduções como cidadãos de primeira classe. Usam-se DSLs para poder expressar modelos em notações rigorosas adequadas que reflitam as diferentes perspectivas dos sistemas, com um nível adequado de abstração utilizável pelos diferentes modeladores (potencialmente não especialistas em software).
Este curso usará técnicas de MDE bem estabelecidas para modelar o domínio, projetar e desenvolver DSLs incluindo as ferramentas de edição de modelos, (tecnicas também por trás de ferramentas de low-code) e usá-las para as diversas finalidades como geração de código, simulação e análise. Com o projeto desenvolvido durante o curso, os alunos terão a oportunidade de conceber o roteiro de modelação e suporte tecnológico com diferentes camadas de abstração, começando com a definição da DSL, e através de transformações de modelos, criarão um processo de geração automática para terminar em código, simulação ou análise.
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
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
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
Não tem pré-requisitos.
Horas por crédito | 28 | ||
Horas p/ semana | Semanas | Horas | |
Aulas práticas e laboratoriais | 26.0 | ||
Aulas teóricas | 26.0 | ||
Avaliação | 6.0 | ||
Estudo | 30.0 | ||
Projectos e trabalhos | 80.0 | ||
Total de Horas | 168 | ||
ECTS | 6.0 |