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

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

Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.

Apresentações semelhantes


Apresentação em tema: "Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1."— Transcrição da apresentação:

1 Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1

2 Sistema - JaTS  Ferramenta e linguagem de transformação de código Java  Permite geração e transformação de código  Baseada em templates e variáveis 2

3 JaTS Sistema - JaTS public class Livro { private String autor private String editora; } ModifierList:#MODIFICADOR class #NOME_CLASSE { FieldDeclarationSet:#ATRIBUTOS; } ModifierList:#MODIFICADOR class #NOME_CLASSE { FieldDeclarationSet:#ATRIBUTOS; private String isbn; } public class Livro { private String autor private String editora; private String isbn; } Código Fonte Transformação Fonte Transformação Destino Código Destino 3

4 Arquitetura JaTS Saída Parser Transformation PrettyPrinting Saída Código Fonte Template Fonte Template Destino Código Destino Saída Entrada 4

5 Parser  Analisador Léxico e Sintático  Identifica se o código Java/JaTS está bem formado  Cria a Árvore Sintática de nós Java/JaTS Parser Transformation PrettyPrinting 5

6 Transformation  Matcher  Faz o casamento entre o código fonte e o template fonte  Replacer  Casa os valores das variáveis no template destino que dará origem ao código destino  Processor  Processa declarações executáveis e iterativas Parser Transformation PrettyPrinting 6

7 Pretty Printing  “Imprime” o código destino da transformação Parser Transformation PrettyPrinting 7

8 Sistema - JaTS 8

9 Concerns  Parse  Transformation  Match  Process  Replacement  Pretty Print  Syntactic Tree  ThrowsException 9

10 Exemplo - Match 10

11 Exemplo - Replacement 11

12 Exemplo – Syntactic Tree 12

13 Exemplos – Código relacionado a mais de um Concern 13

14 Atividade de Atribuição dos Concerns  Número de linhas de código marcadas: 30.477  Tempo total para marcar: 24 horas  Dúvidas  Classes do pacote util  Interface e classes abstratas  Classes geradas automaticamente  Main  Cloning  Problemas  ConcernTagger 14

15 Métricas 15

16 Conclusão  Parser, Replacement e Pretty Printing não são crosscutting concerns  Transformation, Match, Process e Syntatic Tree são crosscutting concerns entre si  ThrowsException é crosscutting concern em relação a todos os outros concerns 16

17 Conclusão  Foram analisados o CDC e o DOSC  As métricas foram úteis para avaliar os possíveis crosscutting concerns, mas não para avaliar a relação entre eles  Avaliamos os crosscutting pelo que era conhecido do projeto. A métrica que mais se aproximou do analisado foi DOSC. 17

18 Referências  Eaddy, M et al. Do Crosscutting Concerns Cause Defects?  Eaddy, M et al. Identifying, Assigning, and Quantifying Crosscutting Concerns  Site do JaTS  http://www.cin.ufpe.br/~jats/ 18

19 Diêgo Santiago, Leila Soriano e Patrícia Lustosa 07/04/2008 JaTS Java Transformation System Parte 2

20 20 Gráfico de Clones

21 Exemplo – Classes Diferentes 21

22 Exemplo – Classes Diferentes 22

23 Exemplo – Classes Diferentes 23

24 Exemplo – Mesma Classe 24

25 Par â metros de Configuração 25

26 Quantidade de Clones 26

27 Quantidade de Classes 591 pares de clones  Parser 24 pares de clones  Match 80 pares de clones  Replacement330 pares de clones  Process 75 pares de clones  Pretty Print 82 pares de clones 27

28 Dúvidas? 28


Carregar ppt "Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1."

Apresentações semelhantes


Anúncios Google