21
Alexandre Augusto Giron Validação de Transformações de Modelos e Engenharia Dirigida a Modelos (MDE)

Validação de Transformações e Model-Driven Engineering (MDE)

Embed Size (px)

Citation preview

Page 1: Validação de Transformações e Model-Driven Engineering (MDE)

Alexandre Augusto Giron

Validação de Transformações de Modelos e Engenharia Dirigida a

Modelos (MDE)

Page 2: Validação de Transformações e Model-Driven Engineering (MDE)

Roteiro

● Contextualização ● Engenharia Dirigida a Modelos – MDE

– Exemplos● Validação de Transformações de Modelos● Futuro da MDE

Page 3: Validação de Transformações e Model-Driven Engineering (MDE)

Contextualização

● Abordagens de apoio ao desenvolvimento de software:– Linha de Produto de Software (LPS)

● Identifica produtos de uma mesma família com arquitetura comum (e reusável)

● Criação de novos produtos por meio de características variáveis

– Engenharia Dirigida a Modelos (MDE)● Guia o desenvolvimento a partir dos modelos de

especificação

Page 4: Validação de Transformações e Model-Driven Engineering (MDE)

Contextualização

● MDE

– Metodologia de desenvolvimento de software– Ênfase nos modelos de especificação

● MDD – Model-Driven Development

– Processo de desenvolvimento● MDA – Model-Driven Architecture

– Arquitetura baseada em modelos– Padrões definidos pela OMG (Object Management Group)

Page 5: Validação de Transformações e Model-Driven Engineering (MDE)

MDE● Modelos como principal elemento do desenvolvimento● MDE possibilita

– Melhorar produtividade

– Melhorar a compreensão do sistema

– Facilitar a manutenção e evolução do sistema

● Essência da MDE– Modelos representam sistemas

– Um modelo está em conformidade com um metamodelo– Modelos podem ser transformados em outros modelos

Page 6: Validação de Transformações e Model-Driven Engineering (MDE)

MDE – Conceitos● Linguagens Específicas de Domínio (Domain Specific

Languages – DSL)● Mecanismos de Transformação e Geradores

– Interpretar modelo

– Produzir artefatos● Novos modelos● Código-fonte● Arquivos de configuração

Page 7: Validação de Transformações e Model-Driven Engineering (MDE)

MDE● Utilização da

MDE: Transformações de modelos

Page 8: Validação de Transformações e Model-Driven Engineering (MDE)

Transformações de Modelos● Model-to-Model● Model-to-Text

Page 9: Validação de Transformações e Model-Driven Engineering (MDE)

Transformações de Modelos

● Como desenvolver transformações no contexto da MDE?– Transformação como um

programa– Linguagens de Transformação

de Modelos: ● Atlas Transformation Language

(ATL)● Query/View/Transformation

(QVT)

Page 10: Validação de Transformações e Model-Driven Engineering (MDE)

Exemplos de Aplicação● Classes UML → Código Java

Créditos – Visual Paradigm

Page 11: Validação de Transformações e Model-Driven Engineering (MDE)

Exemplos de Aplicação● Especificação IFML → Página Web

Créditos – Tutorial WebRatio

Page 12: Validação de Transformações e Model-Driven Engineering (MDE)

Mitos e afirmações falsas

ˣ Modelos UML como solução imediata a todos os problemas de desenvolvimento da empresa

ˣ MDE depende da UML

ˣ Geração de 100% do código da aplicação

ˣ Modelar tudo e sempre

Page 13: Validação de Transformações e Model-Driven Engineering (MDE)

Testes em Transformações

● Desafios:– Teste estrutural: teste para diferentes linguagens– Teste funcional: reduzir quantidade de casos de teste

● Automatização necessária!● Tamanho de um caso de teste x Tamanho do conjunto de

casos de teste

Page 14: Validação de Transformações e Model-Driven Engineering (MDE)

Validação de Transformações● Cinco tipos de erros (Küster e Abd-El-Razik, 2006):

1. Cobertura ao metamodelo: nem todos os elementos foram mapeados

2. Modelos Sintaticamente incorretos: foi gerado um modelo sintaticamente incorreto

3. Modelos Semanticamente incorretos: a transformação é aplicada mas o modelo de saída produzido não é uma transformação correta do modelo de origem

4. Ambiguidade: a aplicação da regra de transformação permite produzir diferentes saídas a partir do mesmo modelo

5. Codificação incorreta: todos os outros tipos de erros e os de codificação da transformação

Page 15: Validação de Transformações e Model-Driven Engineering (MDE)

Validação de Transformações● Classificação de Teste:

– Teste estático: teste de propriedades da transformação

– Teste dinâmico: teste do resultado da transformação (caso seja compilável/executável)

Page 16: Validação de Transformações e Model-Driven Engineering (MDE)

Validação de Transformações● Três passos principais para teste de transformações:

– Geração de casos de teste– Execução dos testes– Definição de um “oráculo”: resultado esperado

Page 17: Validação de Transformações e Model-Driven Engineering (MDE)

Futuro da MDE

● Qual será o futuro da MDE?– MDE ainda não é amplamente utilizada na indústria– Ferramentas abaixo das expectativas– Há alguns casos de sucesso mas não há uma

aplicação/ferramenta ideal● Alguns desafios

– Facilitar o uso das transformações– Reúso: compartilhar bibliotecas, componentes de

transformações

Page 18: Validação de Transformações e Model-Driven Engineering (MDE)

Google Ngram Viewer

● Qual será o futuro da MDE?

Page 19: Validação de Transformações e Model-Driven Engineering (MDE)

Google Ngram Viewer

● Qual será o futuro da MDE?

Page 21: Validação de Transformações e Model-Driven Engineering (MDE)

PERGUNTAS?

● Obrigado pela atenção!