1 / 19

Diêgo Santiago, Leila Soriano e Patrícia Lustosa

Diêgo Santiago, Leila Soriano e Patrícia Lustosa. JaTS Java Transformation System. 27/03/2008. Sistema - JaTS. 2. 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. Sistema - JaTS. 3. public class Livro {

louie
Download Presentation

Diêgo Santiago, Leila Soriano e Patrícia Lustosa

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Sistema - JaTS 2 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

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

  4. Arquitetura JaTS 4 Parser Saída Saída Saída Saída Entrada Transformation PrettyPrinting Código FonteTemplate FonteTemplate Destino Código Destino

  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 5 Parser Transformation PrettyPrinting

  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 6 Parser Transformation PrettyPrinting

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

  8. Sistema - JaTS 8

  9. Parse Transformation Match Process Replacement Pretty Print Syntactic Tree ThrowsException Concerns 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 14 • 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

  15. Métricas 15

  16. Conclusão 16 • 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

  17. Conclusão 17 • 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.

  18. Referências 18 • 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/

  19. Dúvidas? 19

More Related