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

19
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/200 8 JaTS JaTS Java Transformation Java Transformation System System

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

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

Diêgo Santiago, Leila Soriano e Patrícia Lustosa27/03/2008

JaTSJaTS

Java Transformation Java Transformation SystemSystem

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

Roteiro

Sistema - JaTS Concerns

Exemplos Atividade de Atribuição dos

Concerns

Métricas Conclusão

2

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

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

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

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

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

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

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

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

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

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

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

Pretty PrintingPretty Printing

““Imprime” o código destino Imprime” o código destino da transformaçãoda transformação

ParserParser

TransformationTransformation

PrettyPrintingPrettyPrinting

8

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

Sistema - JaTS9

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

Concerns

Parse Transformation

Match Process Replacement

Pretty Print Árvore Sintática Lançamento de

Exceções

10

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

Exemplos11

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

Exemplos12

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

Exemplos13

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

Exemplos14

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

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

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

Métricas16

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

Conclusão17

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

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.

Dúvidas?19