validação de transformações e model-driven engineering (mde)

Post on 02-Aug-2015

64 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Alexandre Augusto Giron

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

Modelos (MDE)

Roteiro

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

– Exemplos● Validação de Transformações de Modelos● Futuro da 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

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)

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

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

MDE● Utilização da

MDE: Transformações de modelos

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

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)

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

Créditos – Visual Paradigm

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

Créditos – Tutorial WebRatio

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

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

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

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)

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

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

Google Ngram Viewer

● Qual será o futuro da MDE?

Google Ngram Viewer

● Qual será o futuro da MDE?

PERGUNTAS?

● Obrigado pela atenção!

top related