Slides adaptados de uma palestra sobre o tema Validação de Transformações e Engenharia Dirigida a Modelos (MDE), apresentando conceitos, exemplos, e análise do estado atual do tema.
3. 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
4. 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)
5. 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
6. 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
9. 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)
12. 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
13. 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
14. 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
15. 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)
16. 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
17. 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