46
Uma Avaliação do Impacto da Evolução de Software sobre sua Arquitetura Aluno: Mário Monteiro Orientador: Sérgio Soares 1

Aluno: Mário Monteiro Orientador: Sérgio Soares 1

Embed Size (px)

Citation preview

  • Slide 1
  • Aluno: Mrio Monteiro Orientador: Srgio Soares 1
  • Slide 2
  • MOTIVAO Estudos empricos so essenciais para o avano cientfico. H uma demanda cada vez maior por sistemas mais complexos. POA e Arquitetura em camadas prometem benefcios fundamentais para Engenharia de Software. 2
  • Slide 3
  • Arquitetura em Camadas Vantagens: Facilidade de Manuteno e Entendimento Melhora de Coeso e Acoplamento Auxiliar o reso e facilidade de estender o sistema. Desvantagens: Aumento da troca de mensagens Pode ocasionar ineficincia 3
  • Slide 4
  • Programao Orientada a Aspectos Benefcios so bastante promissores Objetivo de suprimir problemas da POO Disciplina ainda recente, porm em grande crescimento. 4
  • Slide 5
  • POA e Arquitetura em Camadas Existem poucos estudos que envolvem esses dois temas. Falta de avaliao de violaes de camadas em sistemas AO. Carncia de estudos de violaes de camadas em evoluo de software. 5
  • Slide 6
  • ESTUDO EMPRICO Objetivos: Avaliar impactos da POA com relao a violaes de camadas. Avaliar aderncia arquitetura em camadas em um ambiente de evoluo de software. Realizar anlises quantitativas e qualitativas. 6
  • Slide 7
  • ESTUDO EMPRICO Fases: Seleo da Aplicao Documentao e classificao dos mdulos. Desenvolvimento de um Framework para coleta das mtricas. Anlises e Extenso das mtricas. Avaliao quantitativa e qualitativa dos resultados. 7
  • Slide 8
  • ESTUDO EMPRICO Seleo da Aplicao: Health Watcher J foi utilizado em outros estudos empricos da rea Possui duas verses de implementao: OO (Java) e AO (AspectJ). Nove cenrios de evoluo. Vrios interesses transversais implementados. 8
  • Slide 9
  • ESTUDO EMPRICO Cenrios: 2- Permitir o uso de mltiplos servlets a fim de melhorar a estensibilidade. 3 - Garantir que o estado de uma queixa seja atualizado quando bloqueado, a fim de proteg-lo de mltiplas atualizaes. 4 Encapsular operaes de atualizao a fim de melhorar a manutenabilidade atravs de uso de prticas comuns em engenharia de software. 9
  • Slide 10
  • ESTUDO EMPRICO Cenrios: 5 Aperfeioar o encapsulamento do requisito de distribuio, a fim de melhorar seu reso e customizao. 6 Aperfeioar o mecanismo de persistncia para melhorar seu reso e estensibilidade. 7 Remover as dependncias de objetos do tipo request e response, a fim de facilitar o processo de adio de novos componentes na camada GUI. 10
  • Slide 11
  • ESTUDO EMPRICO Cenrios: 8 Tornar o requisito de distribuio mais fcil de reutilizar e de estender. 9 Adio de novo requisito funcional para permitir consultas com mais tipos de dados. 10 Modularizao do tratamento de exceo e incluso de recuperao de erros mais efetivos nos tratamentos atuais. 11
  • Slide 12
  • ESTUDO EMPRICO Documentao e Classificao dos Mdulos: A princpio, existem quatro camadas: GUI Comunicao Negcio Gerncia de Dados Problemas com classificao de alguns mdulos: Elementos Reusveis Aspectos 12
  • Slide 13
  • ESTUDO EMPRICO Camadas do HW 13
  • Slide 14
  • ESTUDO EMPRICO Violaes de camadas 14
  • Slide 15
  • APRESENTAO DO FRAMEWORK Desenvolvimento de um Framework para coleta das mtricas. Identificao das Dependncias Coleta das mtricas 15
  • Slide 16
  • 16
  • Slide 17
  • APRESENTAO DO FRAMEWORK Identificao das Dependncias. Mdulo A depende de B da seguinte forma: A invoca mtodo de B, ou A instancia B A l atributo de B A atribui um valor a um atributo de B B uma exceo e A trata B. 17
  • Slide 18
  • APRESENTAO DO FRAMEWORK Identificao das Dependncias. Abordagem utilizada atravs de aspectos da seguinte forma: 18
  • Slide 19
  • 19
  • Slide 20
  • APRESENTAO DO FRAMEWORK Coleta das Mtricas Cada dependncia consultada no grafo. As camadas dos mdulos so consultados para determinar violaes. Os ciclos so determinados a partir de componentes fortes no grafo. 20
  • Slide 21
  • AVALIAO DOS RESULTADOS Skip-Call - Origem 21
  • Slide 22
  • AVALIAO DOS RESULTADOS Skip-Call - Destino 22
  • Slide 23
  • AVALIAO DOS RESULTADOS Skip-Call - Total 23
  • Slide 24
  • AVALIAO DOS RESULTADOS Skip-Call ndice de Violao para Sistema 24
  • Slide 25
  • AVALIAO DOS RESULTADOS Skip-Call ndice de Violao para Sistema 25
  • Slide 26
  • AVALIAO DOS RESULTADOS Skip-Call ndice de Violao para Sistema 26
  • Slide 27
  • AVALIAO DOS RESULTADOS Back-Call - Origem 27
  • Slide 28
  • AVALIAO DOS RESULTADOS Back-Call - Destino 28
  • Slide 29
  • AVALIAO DOS RESULTADOS Back-Call ndice de Violao para Sistema 29
  • Slide 30
  • AVALIAO DOS RESULTADOS Back-Call ndice de Violao para Sistema 30
  • Slide 31
  • AVALIAO DOS RESULTADOS Dependncia de Ciclo Strongly Connected Component 31
  • Slide 32
  • AVALIAO DOS RESULTADOS Dependncia de Ciclo ndice de Violao para Sistema 32
  • Slide 33
  • AVALIAO DOS RESULTADOS Dependncia de Ciclo ndice de Violao para Sistema 33
  • Slide 34
  • AVALIAO DOS RESULTADOS Dependncia entre Aspectos e Arquitetura em Camadas 34
  • Slide 35
  • AVALIAO DOS RESULTADOS Dependncia entre Aspectos e Arquitetura em Camadas 35
  • Slide 36
  • AVALIAO DOS RESULTADOS Dependncia entre Aspectos e Arquitetura em Camadas 36
  • Slide 37
  • AVALIAO DOS RESULTADOS Dependncia entre Aspectos e Arquitetura em Camadas 37
  • Slide 38
  • AVALIAO DOS RESULTADOS Dependncia entre Aspectos e Arquitetura em Camadas 38
  • Slide 39
  • AVALIAO DOS RESULTADOS Boas Prticas de Programao A abordagem proposta detecta as violaes aps a fase de construo do software. Evitar que erros se transformem em defeitos Ambientes de desenvolvimento de software complexos podem envolver vrios desenvolvedores (experientes e inexperientes). A deteco imediata de uma violao de camada pode ser um importante benefcio. 39
  • Slide 40
  • AVALIAO DOS RESULTADOS Boas Prticas de Programao 40
  • Slide 41
  • AVALIAO DOS RESULTADOS Boas Prticas de Programao 41
  • Slide 42
  • CONCLUSES Analisadas as diferenas entre POA e POO no contexto de violaes da arquitetura em camadas. O Framework ajudou a encontrar problemas triviais. Foi analisado como a POA influencia o resultado das mtricas. O total de violaes menor na verso OO. 42
  • Slide 43
  • CONCLUSES A mtrica SCVI(Health Watcher) se mostrou mais problemtica na verso OO. Pouca ocorrncia de back-call. Nenhuma na verso AO. Houve apenas uma nica ocorrncia de dependncia de ciclo. A mtrica DCVI(Health Watcher) apresentou o pior resultado possvel. 43
  • Slide 44
  • CONCLUSES Houve dependncias dos aspectos para todas as camadas em todos os cenrios. O Framework foi til para validar os objetivos de alguns cenrios de evoluo. As mtricas SCVI(Sistema) e DCVI(Sistema) se mostraram inadequadas. De forma geral, as anlises quantitativas se mostraram coerente com as anlises qualitativas. 44
  • Slide 45
  • TRABALHOS FUTUROS Avaliar em sistemas mais complexos em diferentes contextos. Implementar o framework em IDEs. Utilizar outras linguagens AO. Avaliar a proposta de boas prticas. 45
  • Slide 46
  • TRABALHOS FUTUROS Implementar novos cenrios para o Health Watcher Analisar eficincia do Framework. Criao de novas mtricas para suprir problemas atuais Comprovar hipteses com as mtricas atuais. 46