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