Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System.
Post on 19-Apr-2015
107 Views
Preview:
Transcript
Diêgo Santiago, Leila Soriano e Patrícia Lustosa27/03/2008
JaTSJaTS
Java Transformation Java Transformation SystemSystem
Roteiro
Sistema - JaTS Concerns
Exemplos Atividade de Atribuição dos
Concerns
Métricas Conclusão
2
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
3
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 FonteTransformação Fonte
Transformação Destino
Código Destino
4
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
5
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/JaTS
ParserParser
TransformationTransformation
PrettyPrintingPrettyPrinting
6
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 Casa os valores das
variáveis no template variáveis no template destino que dará origem ao destino que dará origem ao código destinocódigo destino
ProcessorProcessor Processa declarações Processa declarações
executáveis e iterativasexecutáveis e iterativas
ParserParser
TransformationTransformation
PrettyPrintingPrettyPrinting
7
Pretty PrintingPretty Printing
““Imprime” o código destino Imprime” o código destino da transformaçãoda transformação
ParserParser
TransformationTransformation
PrettyPrintingPrettyPrinting
8
Sistema - JaTS9
Concerns
Parse Transformation
Match Process Replacement
Pretty Print Árvore Sintática Lançamento de
Exceções
10
Exemplos11
Exemplos12
Exemplos13
Exemplos14
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
Problemas ConcernTagger
15
Métricas16
Conclusão17
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
Dúvidas?19
top related