Linguagens de Modelação para Domínios Específicos (2019/2020) - Departamento de Informática

Informação adicional: https://moodle.fct.unl.pt/course/view.php?id=5463

Descrição

Os sistemas modernos actuais são tipicamentetransdisciplinares podendo ser compostos por subsistemas interligados (tanto de hardware como de software), sendo alguns até ciberfísicos, extrapolando assim o âmbito do software e computação. Temos exemplo destes automação de edifícios, indústria automóvel e aviónica. Estes sistemas estão-se a tornar cada vez mais complexos e exigem uma abordagem modular de decomposição para endereçar as especificidades de cada domínio.


O Model-Driven Engineering (MDE), ou Engenharia Orientada por Modelos, está-se a tornar, em certas condições, numa abordagem padrão para abordar a complexidade do desenvolvimento desses sistemas (que por razões éticas, económicas ou pragmáticas têm de ser modeladas e analisadas à priori) através do uso de modelos em várias notações e suas traduções como cidadãos de primeira classe. Para poder expressar modelos em notações rigorosas adequadas que reflictamas diferentes perspectivas dos sistemas, com um nível adequado de abstracçãoutilizável pelos diferentes modeladores (potencialmente não especialistas em software), normalmente são usadas as Linguagens Específicas de Domínio (DSLs). Essas linguagens podem ser textuais ou mais comummentevisuais.


Este curso usará técnicas de MDE bem estabelecidas para modelar o domínio, projectare desenvolver DSLs e usá-las para as diversas finalidades. Graças ao projecto desenvolvido durante o curso, os alunos terão a oportunidade de conceber o roteiro de modelação com diferentes camadas de abstracção, começando com a definição da DSL, e através de transformações de modelos estes irão construir o processo de geração automática para terminar em código ou algum formalismos introduzidos brevemente na teoria para fins de simulação ou análise.

Objectivos

No final desta unidade curricular o estudante terá adquirido conhecimentos, aptidões e competências que lhe permitam:


- Compreender:


- Ser capaz:


- Conhecer:

Programa

0. Motivação - Causas de Complexidade no Desenho de Sistemas

1. Definição do Sistema

2. Conceitos Básicos de Engenharia Orientada por Modelos:

  1. o que é MDE; Definições de Modelos, Metamodelos e a Pilha de Modelagem.

  2. Instanciação Ontológica vs. Linguística

  3. MD *: MDE, MBE, MDD, MDA

  4. DEfinição de Linguagens específicas para domínios


2. Engenharia de Domínio:

  1. Metodologias de modelação de domínio;

  2. Feature-Oriented Domain Analysis(introducing Feature Diagrams);

  3. O Modelo de Domínio - diferentes abordagens de modelação (usando UML, ERD, OWL);

  4. Linhas de Produtos de Software.


3. DSMLs e Desenho de Linguagens de Modelação

  1. Sintaxe Abstracta e Metamodelo (MOF e ECORE)

  2. Sintaxe Concreta e Semântica

  3. Especificando Restrições Invariantes (OCL)

  4. Transformaçõe de Modelos: propósito e classificação; fundamentos (Gramáticas Gráficas, Abordagens Algébricas: SPO e DPO)

  5. Ferramentas de transformação de modelo: ATL, QVT, ETL

  6. Alguns Domínios Semânticos: State Charts, Redes de Petri

  7. Implementação de linguagens usando "Modelling Workbenches" para DSLs textuais e gráficas


4. Avaliação de Qualidade - Usabilidade

5. Breve visão geral do MDE e a Engenharia de Sistemas:

  1. Sistemas Estático e Dinâmico

  2. Variação de tempo e sistemas dinâmicos invariantes no tempo

  3. Formalismos de Evento Discreto: Redes de Petri (para Sistemas de Eventos Concorrentes não Determinísticos) e Gráficos de Estado (para comportamento autónomo, reativo e cronometrado)

  4. Formalismos contínuos: System Dynamics (para sistemas naturais, negócios e sistemas sociais) e Bond Graphs (para generalização de eletricidade para outros meios físicos)

  5. Especificação de Sistemas especificados com DEVS e equações diferenciais

  6. AADL (linguagem de descrição da Avionics Architecture)

  7. Projetando DSLs e traduzindo para os formalismos anteriores, e uso de ferramentas de análise

  8. Domínios e exemplos de aplicação.

6. Gestão de modelos:

Model Interchange, Model Persistence, Model Comparison, Model versioning, Model co-evolutionGlobal model management, Model Quality, Collaborative Modelling

Bibliografia Principal

Marco Brambilla, Jordi Cabot, Manuel Wimmer, “Model-Driven Software Engineering in Practice”, Morgan & Claypool Publishers, 2nd Edition, 2017

Dimitris Kolovos, Louis Rose, Antonio García-Domínguez, Richard Paige, “The Epsilon Book”, The Eclipse Foundation, 2014

Slides das Aulas Teóricas (associados a cada aula): disponibilizados no portal da cadeira

Sebenta (Lecture Notes) das Aulas Práticas e alguns elementos de revisões da matéria (associadas a cada aula): disponibilizadas no portal da cadeira

Requisitos Prévios

O aluno deverá ter frequentado a cadeira de Metodologias de Desenvolvimento de Software.

Esforço do Aluno
  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