SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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 Sucesso
http://www.omg.org
/mda/products_succ
ess.htm
PERGUNTAS?
● Obrigado pela atenção!

Mais conteúdo relacionado

Mais procurados

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentOtavio Augusto
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de PrototipaçãoJuliano Pires
 
T@rget trust curso de introdução ao processo de teste de software
T@rget trust   curso de introdução ao processo de teste de softwareT@rget trust   curso de introdução ao processo de teste de software
T@rget trust curso de introdução ao processo de teste de softwareTargettrust
 
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoSeu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoChristiane Morais Silva
 
Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalRuan Carvalho
 
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilCenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilJoão Clineu - CTFL, CSM, CSD
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Cláudio Amaral
 
DevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidadeDevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidadeKamilla Queiroz Xavier
 
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)Júlio de Lima
 
Captulo 8 prototipacao
Captulo 8 prototipacaoCaptulo 8 prototipacao
Captulo 8 prototipacaolua alves
 
T@rget trust curso de planejamento e execução de testes de software
T@rget trust   curso de planejamento e execução de testes de softwareT@rget trust   curso de planejamento e execução de testes de software
T@rget trust curso de planejamento e execução de testes de softwareTargettrust
 
Você ainda não pratica TDD?
Você ainda não pratica TDD?Você ainda não pratica TDD?
Você ainda não pratica TDD?Maurício Aniche
 

Mais procurados (20)

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
 
T@rget trust curso de introdução ao processo de teste de software
T@rget trust   curso de introdução ao processo de teste de softwareT@rget trust   curso de introdução ao processo de teste de software
T@rget trust curso de introdução ao processo de teste de software
 
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de códigoSeu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
 
Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-Incremental
 
Modelo em Espiral
Modelo em EspiralModelo em Espiral
Modelo em Espiral
 
Iconix
IconixIconix
Iconix
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfilCenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
Cenartec 2014 - Teste de software, uma área, uma carreira, um novo perfil
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002
 
DevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidadeDevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidade
 
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
Fundamentos e Carreira em Teste de Software (Aula Magna UniSalesiano)
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 
Captulo 8 prototipacao
Captulo 8 prototipacaoCaptulo 8 prototipacao
Captulo 8 prototipacao
 
Test manager
Test managerTest manager
Test manager
 
AppTesting
AppTestingAppTesting
AppTesting
 
T@rget trust curso de planejamento e execução de testes de software
T@rget trust   curso de planejamento e execução de testes de softwareT@rget trust   curso de planejamento e execução de testes de software
T@rget trust curso de planejamento e execução de testes de software
 
Prototipação
PrototipaçãoPrototipação
Prototipação
 
Engenharia de software - Prototipo
Engenharia de software - PrototipoEngenharia de software - Prototipo
Engenharia de software - Prototipo
 
Você ainda não pratica TDD?
Você ainda não pratica TDD?Você ainda não pratica TDD?
Você ainda não pratica TDD?
 

Destaque

Aula 00 qs - apresentação da disciplina
Aula 00   qs - apresentação da disciplinaAula 00   qs - apresentação da disciplina
Aula 00 qs - apresentação da disciplinaJunior Gomes
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcadosJunior Gomes
 
Aula 06 qs - garantia da qualidade de sw
Aula 06   qs - garantia da qualidade de swAula 06   qs - garantia da qualidade de sw
Aula 06 qs - garantia da qualidade de swJunior Gomes
 
Aula 01 qs - 6 sigma
Aula 01   qs - 6 sigmaAula 01   qs - 6 sigma
Aula 01 qs - 6 sigmaJunior Gomes
 

Destaque (9)

Minicurso - Introdução ao Blender
Minicurso - Introdução ao BlenderMinicurso - Introdução ao Blender
Minicurso - Introdução ao Blender
 
Aula 00 qs - apresentação da disciplina
Aula 00   qs - apresentação da disciplinaAula 00   qs - apresentação da disciplina
Aula 00 qs - apresentação da disciplina
 
Aula 02 qs - 5 s
Aula 02   qs - 5 sAula 02   qs - 5 s
Aula 02 qs - 5 s
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcados
 
Minicurso Linux
Minicurso Linux Minicurso Linux
Minicurso Linux
 
Aula 06 qs - garantia da qualidade de sw
Aula 06   qs - garantia da qualidade de swAula 06   qs - garantia da qualidade de sw
Aula 06 qs - garantia da qualidade de sw
 
Aula 01 qs - 6 sigma
Aula 01   qs - 6 sigmaAula 01   qs - 6 sigma
Aula 01 qs - 6 sigma
 
Desenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcadosDesenvolvimento de sistemas embarcados
Desenvolvimento de sistemas embarcados
 
Aula 07 qs - cmmi
Aula 07   qs - cmmiAula 07   qs - cmmi
Aula 07 qs - cmmi
 

Semelhante a Validação de Transformações de Modelos e MDE

Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Sandro Andrade
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Javaarmeniocardoso
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Processo de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeProcesso de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeLuiz Matos
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareEdson Oliveira Junior
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Edson Oliveira Junior
 
Aula 02 - Processo de Software I.pdf
Aula 02 - Processo de Software I.pdfAula 02 - Processo de Software I.pdf
Aula 02 - Processo de Software I.pdfDaniloPereira341965
 
TEES - MDA Apresentação Final
TEES - MDA Apresentação FinalTEES - MDA Apresentação Final
TEES - MDA Apresentação Finalguestc7f5eb
 
Mda Apresentacao
Mda ApresentacaoMda Apresentacao
Mda Apresentacaoguestff06a
 
Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011Uirá Kulesza
 

Semelhante a Validação de Transformações de Modelos e MDE (20)

Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
 
Análise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e JavaAnálise e Projeto de Sistemas com UML e Java
Análise e Projeto de Sistemas com UML e Java
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Processo de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeProcesso de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidade
 
Outras Metodologias Ágeis Parte 3
Outras Metodologias Ágeis Parte 3Outras Metodologias Ágeis Parte 3
Outras Metodologias Ágeis Parte 3
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
 
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
Proposta de uma Abordagem Formal para o Gerenciamento de Variabilidades em Mo...
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Aula 02 - Processo de Software I.pdf
Aula 02 - Processo de Software I.pdfAula 02 - Processo de Software I.pdf
Aula 02 - Processo de Software I.pdf
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Apostila uml
Apostila umlApostila uml
Apostila uml
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
TEES - MDA Apresentação Final
TEES - MDA Apresentação FinalTEES - MDA Apresentação Final
TEES - MDA Apresentação Final
 
Mda Apresentacao
Mda ApresentacaoMda Apresentacao
Mda Apresentacao
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011Linhas de Processos de Software - Minicurso - SBQS 2011
Linhas de Processos de Software - Minicurso - SBQS 2011
 

Validação de Transformações de Modelos e MDE

  • 1. Alexandre Augusto Giron Validação de Transformações de Modelos e Engenharia Dirigida a Modelos (MDE)
  • 2. Roteiro ● Contextualização ● Engenharia Dirigida a Modelos – MDE – Exemplos ● Validação de Transformações de Modelos ● Futuro da MDE
  • 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)
  • 10. Exemplos de Aplicação ● Classes UML → Código Java Créditos – Visual Paradigm
  • 11. Exemplos de Aplicação ● Especificação IFML → Página Web Créditos – Tutorial WebRatio
  • 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
  • 18. Google Ngram Viewer ● Qual será o futuro da MDE? –
  • 19. Google Ngram Viewer ● Qual será o futuro da MDE? –