1 / 16

Orientação a Aspectos: π -PSF

Orientação a Aspectos: π -PSF. Killer Team Amirton Chagas, Elton Renan, José Dihego, Natanael Silva, Thiago Alexandre. Cenário Antigo. Aproximadamente 20.000 linhas de código, em 90 classes. Concerns identificados: Armazenamento de Dados Remoção de Dados Atualização de Dados

luka
Download Presentation

Orientação a Aspectos: π -PSF

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. Orientação a Aspectos: π-PSF Killer Team Amirton Chagas, Elton Renan, José Dihego, Natanael Silva, Thiago Alexandre

  2. Cenário Antigo • Aproximadamente 20.000 linhas de código, em 90 classes. • Concerns identificados: • Armazenamento de Dados • Remoção de Dados • Atualização de Dados • Inserção de Dados • Verificar Pertinência • Recuperação de dados • Recuperação Elemento ID • Recuperação Lista Elementos • GUI • Serialização • Tratamento de Exceção • Internacionalização • Conceito de Aplicação • Conversão • Regras de Negócio • Geração de Relatórios

  3. Código Entrelaçado e Espalhado

  4. Vários Clones • Parâmetrosescolhidos: • Comprimentomínimo: 60 • Qtdmínima de Tokens: 14 • Clones detectados: 1332 • Muitos clones nacamada de Persistência • Alguns clones longosna Interface Gráfica

  5. Analisando melhor o projeto • Descobrimos os concerns chave da nossa aplicação analisando os clones: • Controle de Transação • Inicialização de Componentes de Interface Gráfica • Outras descobertas: • Camada de negócio estava intimamente ligada ao Oracle • Serialização e GUI estavam entrelaçadas • Conceitos da aplicação entrelaçados com o BD (ID) • Internacionalização estava espalhada pela GUI

  6. O que foi feito [1] • Nem tudo necessitava do uso de aspectos • Inicialização de Componentes da Interface Gráfica Classe auxiliar para inicializar os componentes -> Redução significativa da repetição de código

  7. O que foi feito [2] • Se mudarmos o SGBD agora alteramos um único arquivo.

  8. O que foi feito [3] • serialVersionUID não faz parte da semântica de nenhum componente da GUI.

  9. O que foi feito [4] O Banco de Dados requer chave primária - Id ... ... Nossas classes de conceito de aplicação não !

  10. O que foi feito [5] Os outputs ao usuário se adequam ao idioma escolhido.

  11. O que foi feito [6] • Controlar as transações no banco era essencial, código extremamente repetido. • A solução foi modificar o código utilizando orientação a objetos + orientação a aspectos

  12. Solução[2] • Orientada a Aspectos

  13. Comparativo ANTES DEPOIS

  14. Número de Clones caiu • Mesmos parâmetros, muito menos clones.

  15. Resultados obtidos[1]

  16. Conclusões • Muitos dos problemas do projeto foram solucionados simplesmente com Orientação a Objetos • O restante deles AOP resolveu • Código muito mais legível • Diminuição do número de linhas de código • Redução drástica do número de clones

More Related