validação de transformações e model-driven engineering (mde)
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?
–
Casos de Sucessohttp://www.omg.org/mda/products_success.htm
PERGUNTAS?
● Obrigado pela atenção!