A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Contrato de Transformação Visão geral 1 de Transformação.

Apresentações semelhantes


Apresentação em tema: "Contrato de Transformação Visão geral 1 de Transformação."— Transcrição da apresentação:

1 Contrato de Transformação Visão geral 1 robertowm@gmail.comContrato de Transformação

2 Origens Design by Contract Definição e especificação formal, precisa e verificável dos componentes do sistema Baseado na idéia de obrigações e benefícios Obrigações Pré-condições antes de executar uma rotina Garantir pós-condições após uma rotina Manter uma propriedade durante toda a rotina (invariante) Benefício Não é necessário efetuar verificações internas a rotina 2 robertowm@gmail.comContrato de Transformação

3 Origens Design by Contract Formalização das obrigações e benefícios Obrigações devem ser definidas na fase de Design Algumas linguagens dão suporte a assertivas para garantir o contrato 3 robertowm@gmail.comContrato de Transformação

4 Subindo o nível Contrato de transformação = Design by Contract no nível de modelos 4 Modelo de entrada Modelo de saída Transformação Pré condições Pós condições Condições da transformação robertowm@gmail.comContrato de Transformação

5 Metamodelos Modelo que define um modelo Possui as informações estruturais necessárias para definir um modelo de seu tipo Sintaxe abstrata que define uma linguagem de modelagem Definido na forma de um diagrama de classes UML Modelos de entrada e saída utilizados são definidos por metamodelos 5 robertowm@gmail.comContrato de Transformação

6 O que é? Uma especificação sobre o que uma transformação de modelo deve fazer Deve existir uma relação entre o metamodelo de entrada e de saída, que é definido como o metamodelo de transformação União disjunta entre os metamodelo de entrada, metamodelo de saída e relações entre eles Para validar a transformação, um conjunto de invariantes são aplicados sobre o modelo de transformação, que devem ser respeitados 6 robertowm@gmail.comContrato de Transformação

7 Comparação com um compilador 7 programa código (destino) Análise semântica / type - checking parsepretty-print geração de código Compilador Transformação de modelos c modelo de entrada linguagem de modelagem sintaxe concreta de L sintaxe abstrata de L p instância do metamodelo transformação de modelo Análise semântica / validação dos invariantes type - checking do metamodelo p modelo gerado como instância do metamodelo de destino c modelo gerado na sintaxe concreta da linguagem destino robertowm@gmail.comContrato de Transformação

8 Passos para a transformação Passos Carregar o modelo de entrada Validar o modelo de entrada carregado Transformar do modelo de entrada para o modelo de saída Validar o modelo de transformação e de saída Gerar a sintaxe concreta do modelo de saída 8 robertowm@gmail.comContrato de Transformação

9 Passos para a transformação Benefícios Padronização de como deve ocorrer a transformação Garantia que os invariantes são respeitados (passos de validação) 9 robertowm@gmail.comContrato de Transformação

10 Uso dos invariantes Maior garantia de qualidade 10 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

11 Uso dos invariantes Maior garantia de qualidade 11 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

12 Uso dos invariantes Maior garantia de qualidade 12 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

13 Uso dos invariantes Maior garantia de qualidade 13 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

14 Uso dos invariantes Maior garantia de qualidade 14 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

15 Uso dos invariantes Maior garantia de qualidade 15 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

16 Uso dos invariantes Maior garantia de qualidade 16 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

17 Uso dos invariantes Maior garantia de qualidade 17 Designer da linguagem de modelagem Desenvolvedor da transformação de modelos Usuário do transformador de modelos Define sintaxe e semântica da linguagem de modelagem Define a relação entre duas ou mais linguagens de modelagem Modela a aplicação e aplica o transformador ao modelo robertowm@gmail.comContrato de Transformação

18 Padrão de projeto 18 robertowm@gmail.comContrato de Transformação

19 Diagrama de classe 19 robertowm@gmail.comContrato de Transformação

20 robertowm@gmail.comContrato de Transformação Diagrama de seqüência 20

21 robertowm@gmail.comContrato de Transformação Diagrama de seqüência 21

22 TCLib Implementação do padrão de projeto 22 robertowm@gmail.comContrato de Transformação

23 Diagrama de classe 23 robertowm@gmail.comContrato de Transformação

24 Implementando um transformador Dicas de como fazer um transformador 24 robertowm@gmail.comContrato de Transformação

25 Passos Entenda os domínios de entrada e saída Modelo os domínios (diagrama de classes) Defina os invariantes de cada domínio (OCL) Modele o domínio da transformação (relação entre os metamodelos) Defina os invariantes do domínio da transformação 25 robertowm@gmail.comContrato de Transformação

26 Passos Implemente os domínios de entrada e saída Caso não queira implementar o parse(), faça um modelo por código e use nos testes Não implemente o prettyPrint() do domínio de saída Implemente os validadores para os invariantes OCL (domínio de entrada e saída) Implemente o domínio da transformação Implemente o validador para os invariantes OCL(domínio da transformação) Implemente o prettyPrint() 26 robertowm@gmail.comContrato de Transformação

27 TCLib Exemplo de uso 27 robertowm@gmail.comContrato de Transformação

28 Metamodelo UML 28 robertowm@gmail.comContrato de Transformação

29 Metamodelo UML 29 robertowm@gmail.comContrato de Transformação

30 Código-fonte (metamodelo) 30 robertowm@gmail.comContrato de Transformação

31 Invariantes 31 robertowm@gmail.comContrato de Transformação

32 Parser 32 robertowm@gmail.comContrato de Transformação

33 Metamodelo conjunto 33 robertowm@gmail.comContrato de Transformação

34 Invariantes 34 robertowm@gmail.comContrato de Transformação

35 Código Java para a transformação 35 robertowm@gmail.comContrato de Transformação

36 Código Java para a transformação 36 robertowm@gmail.comContrato de Transformação

37 Projetos Visão geral 37 robertowm@gmail.comContrato de Transformação

38 UMLtoSQL Transformador de diagramas de classe UML para SQL Transformação baseada no livro MDA Explained Validação por invariantes nos três domínios Geração de comandos em SQL para criação de tabelas 38 robertowm@gmail.comContrato de Transformação

39 Metamodelo UML 39 robertowm@gmail.comContrato de Transformação

40 Metamodelo SQL 40 robertowm@gmail.comContrato de Transformação

41 UMLtoJava Transformador de diagramas de classe UML para código-fonte em Java Validação por invariantes nos três domínios Geração de código-fonte em Java (classes com atributos e seus getters/setters) 41 robertowm@gmail.comContrato de Transformação

42 Metamodelo Java 42 robertowm@gmail.comContrato de Transformação

43 Projetos Trabalho a ser entregue 43 robertowm@gmail.comContrato de Transformação

44 Trabalho a ser feito 44 robertowm@gmail.comContrato de Transformação Consertar alguns problemas no transformador Melhorar alguns aspectos do transformador Implementar um elemento de modelagem não suportado O trabalho deve compilar em três diagramas de classe Blog.xmi Meeting.xmi Breakfast.xmi

45 Erro/Melhoria no UMLtoSQL Permitir que o código resultante funcione um um banco de dados relacional Adicionar as constraints de foreign key no pretty-print MySQL:... FOREIGN KEY (fk_id) REFERENCES OtherTable(column_id)... Consertar os invariantes inválidos 45 robertowm@gmail.comContrato de Transformação

46 Erro/Melhoria no UMLtoJava Permitir que o código resultante seja compilável Falta adicionar o código referente aos setters gerados Adicionar código nos getters gerados Consertar os invariantes inválidos 46 robertowm@gmail.comContrato de Transformação

47 Implementação de um novo elemento Adicionar suporte a classes associativas Requer mudanças em todo o processo de transformação Criação de invariantes nos três domínios Carregar esses elementos durante parse Criar a regra de transformação e implementá-la Atualizar o pretty-print 47 robertowm@gmail.comContrato de Transformação

48 Dúvidas 48 robertowm@gmail.comContrato de Transformação


Carregar ppt "Contrato de Transformação Visão geral 1 de Transformação."

Apresentações semelhantes


Anúncios Google