diêgo santiago, leila soriano e patrícia lustosa 27/03/2008 jats java transformation system parte...
TRANSCRIPT
![Page 1: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/1.jpg)
Diêgo Santiago, Leila Soriano e Patrícia Lustosa27/03/2008
JaTSJaTS
Java Transformation Java Transformation SystemSystem
Parte 1Parte 1
![Page 2: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/2.jpg)
Sistema - JaTS Ferramenta e linguagem de Ferramenta e linguagem de
transformação de código Javatransformação de código Java Permite geração e transformação de Permite geração e transformação de
códigocódigo Baseada em templates e variáveisBaseada em templates e variáveis
2
![Page 3: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/3.jpg)
Sistema - JaTSJaTS
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
![Page 4: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/4.jpg)
Arquitetura JaTSArquitetura JaTS
Saída
ParserParser
TransformationTransformation
PrettyPrintingPrettyPrinting
SaídaSaída
Código FonteCódigo FonteTemplate FonteTemplate FonteTemplate DestinoTemplate Destino
Código DestinoCódigo Destino
SaídaSaída
EntradaEntrada
4
![Page 5: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/5.jpg)
ParserParser Analisador Léxico e SintáticoAnalisador Léxico e Sintático Identifica se o código Identifica se o código
Java/JaTS está bem formadoJava/JaTS está bem formado Cria a Árvore Sintática de Cria a Árvore Sintática de
nós Java/JaTSnós Java/JaTSParserParser
TransformationTransformation
PrettyPrintingPrettyPrinting
5
![Page 6: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/6.jpg)
TransformationTransformation MatcherMatcher
Faz o casamento entre o Faz o casamento entre o código fonte e o template código fonte e o template fontefonte
ReplacerReplacer Casa os valores das variáveis Casa os valores das variáveis
no template destino que dará no template destino que dará origem ao código destinoorigem ao código destino
ProcessorProcessor Processa declarações Processa declarações
executáveis e iterativasexecutáveis e iterativas
ParserParser
TransformationTransformation
PrettyPrintingPrettyPrinting
6
![Page 7: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/7.jpg)
Pretty PrintingPretty Printing
““Imprime” o código destino Imprime” o código destino da transformaçãoda transformação
ParserParser
TransformationTransformation
PrettyPrintingPrettyPrinting
7
![Page 8: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/8.jpg)
Sistema - JaTS8
![Page 9: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/9.jpg)
Concerns Parse Transformation
Match Process Replacement
Pretty Print Syntactic Tree ThrowsException
9
![Page 10: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/10.jpg)
Exemplo - Match 10
![Page 11: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/11.jpg)
Exemplo - Replacement11
![Page 12: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/12.jpg)
Exemplo – Syntactic Tree12
![Page 13: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/13.jpg)
Exemplos – Código relacionado a mais de um
Concern13
![Page 14: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/14.jpg)
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
![Page 15: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/15.jpg)
Métricas15
![Page 16: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/16.jpg)
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
![Page 17: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/17.jpg)
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
![Page 18: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/18.jpg)
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
![Page 19: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/19.jpg)
Diêgo Santiago, Leila Soriano e Patrícia Lustosa07/04/2008
JaTSJaTS
Java Transformation Java Transformation SystemSystem
Parte 2Parte 2
![Page 20: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/20.jpg)
20
Gráfico de Clones
![Page 21: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/21.jpg)
Exemplo – Classes Diferentes
21
![Page 22: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/22.jpg)
Exemplo – Classes Diferentes
22
![Page 23: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/23.jpg)
Exemplo – Classes Diferentes
23
![Page 24: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/24.jpg)
Exemplo – Mesma Classe24
![Page 25: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/25.jpg)
Parâmetros de Configuração25
![Page 26: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/26.jpg)
Quantidade de Clones26
![Page 27: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/27.jpg)
Quantidade de Classes591 pares de clones
Parser 24 pares de clones Match 80 pares de clones Replacement 330 pares de clones Process 75 pares de clones Pretty Print 82 pares de clones
27
![Page 28: Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1](https://reader035.vdocuments.mx/reader035/viewer/2022062502/570638451a28abb8238f27ca/html5/thumbnails/28.jpg)
Dúvidas?28