validação de transformações e model-driven engineering (mde)
TRANSCRIPT
![Page 1: Validação de Transformações e Model-Driven Engineering (MDE)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/1.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/2.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/3.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/4.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/5.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/6.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/7.jpg)
MDE● Utilização da
MDE: Transformações de modelos
![Page 8: Validação de Transformações e Model-Driven Engineering (MDE)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/8.jpg)
Transformações de Modelos● Model-to-Model● Model-to-Text
![Page 9: Validação de Transformações e Model-Driven Engineering (MDE)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/9.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/10.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/11.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/12.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/13.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/14.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/15.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/16.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/17.jpg)
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)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/18.jpg)
Google Ngram Viewer
● Qual será o futuro da MDE?
–
![Page 19: Validação de Transformações e Model-Driven Engineering (MDE)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/19.jpg)
Google Ngram Viewer
● Qual será o futuro da MDE?
–
![Page 20: Validação de Transformações e Model-Driven Engineering (MDE)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/20.jpg)
Casos de Sucessohttp://www.omg.org/mda/products_success.htm
![Page 21: Validação de Transformações e Model-Driven Engineering (MDE)](https://reader030.vdocuments.mx/reader030/viewer/2022032619/55bdf218bb61eb952d8b45da/html5/thumbnails/21.jpg)
PERGUNTAS?
● Obrigado pela atenção!