Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMarcelo Pinto Alterado mais de 9 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.