Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouHeitor Miranda Alterado mais de 9 anos atrás
1
Detecting bad smells in source code using change history information
Fabio Palomba, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrea De Lucia, Denys Poshyvanyk Este modelo pode ser usado como arquivo de partida para apresentar materiais de treinamento em um cenário em grupo. Seções Clique com o botão direito em um slide para adicionar seções. Seções podem ajudar a organizar slides ou a facilitar a colaboração entre vários autores. Anotações Use a seção Anotações para anotações da apresentação ou para fornecer detalhes adicionais ao público. Exiba essas anotações no Modo de Exibição de Apresentação durante a sua apresentação. Considere o tamanho da fonte (importante para acessibilidade, visibilidade, gravação em vídeo e produção online) Cores coordenadas Preste atenção especial aos gráficos, tabelas e caixas de texto. Leve em consideração que os participantes irão imprimir em preto-e-branco ou escala de cinza. Execute uma impressão de teste para ter certeza de que as suas cores irão funcionar quando forem impressas em preto-e-branco puros e escala de cinza. Elementos gráficos, tabelas e gráficos Mantenha a simplicidade: se possível, use estilos e cores consistentes e não confusos. Rotule todos os gráficos e tabelas. Johnatan Oliveira ASE A1
2
Estrutura Introdução Detecção Smell por Histórico de informações
Design de estudo (RQ) Análise dos Resultados Ameaças à Validade Trabalhos relacionados Conclusões e trabalhos futuros Forneça uma breve visão geral da apresentação. Descreva o foco principal da apresentação e por que ela é importante. Introduza cada um dos principais tópicos. Para fornecer um roteiro para o público, você pode repita este slide de Visão Geral por toda a apresentação, realçando o tópico específico que você discutirá em seguida.
3
Introdução Evolução do Software Bad Smell (pressa ou desinformados)
Esta é outra opção para um slide de Visão Geral usando transições. Manter software pode se tornar mais caro
4
Identificar 5 tipos de Bad Smell através do Histórico de Versão:
Abordagem Abordagens com base em métricas que analisam a estrutura do código fonte. EX: LongMethod (LOC) Falta precision and Recall para verificação ao decorrer do tempo. Identificar 5 tipos de Bad Smell através do Histórico de Versão: Divergent Change Blob Shotgun Surgery Feature Envy Parallel inheritance
5
Hist Exploração das informações em histórico de
Sistemas de controle de versão .
6
Projetos analisados Foram analisados projetos em Java , sendo eles :
Apache Ant TomCat JEdit + 5 API’s Android Precision entre 61 % e 80% Recall está entre 61% e 100% Experimento para levantar oráculo Construção manual do Oráculo Compara os resultados da HIST com análise estrutural
7
Sistemas Utilizados no Estudo
8
Snapshots dos Sistemas
9
Proposta Ideia Chave Identificar Bad Smell através de informações de histórico de sistemas de controle de Versão Minera todo o log do controle de versões . Change history: relatando todas as alterações . Essa proposta pode ser realizada em vários sistemas de controle de versão . Como git, svn ou cvs. O que muda ´é a granularidade . Para deixar a granularidade equivalente para exame , usa a ferramenta Markos. O conjunto de mudanças e computado pelo change history extractor e fornecido como entrada para o code smell detector q identifica a lista de omponentes do código afetado == a ferramenta verifica se problemas anteriores foram corrigidos na nova versão , se sim não os apresenta mais . Processo de Detecção/Extração
10
Extração Mudanças Refinadas
Checkout de revisão i Mudanças Refinadas Versão do Sistema Para apturar o sequente e subsequente , cada par de snapshot é analisado Checkout de revisão i +1 Compara e retorna o conjunto resultante diferente
11
Extração SCV
12
Conjunto de Mudanças Classes: adicionadas/removidas/movidas e renomeadas Atributo: (...) Método: (...) Mudança de assinatura: visibilidade , tipo de retorno e parâmetros Mudança de assinatura do método
13
Heurística Exemplo Divergent Change: regras de associação e análise de
Committed. Mleft => Mright Shotgun Surgery: mudança em um método, resulta em Mudança de métodos em outras classes. Mleft => implica em MRight se ocorrer mudança em um tem q ocorrer no outro . Para analisar a precisao e completude da hist. Parallel Inheritance : os pares de classes das quais a adição de uma subclasse implica a adição de uma subclasse para a outra classe
14
Blob: classes modificadas requerem commit de
Pelo menos uma outra classe Feature Envy: métodos de commit com métodos de outra classe
15
Questões de Pesquisa RQ1: Qual é o desempenho do HIST na detecção
de Bad Smell? RQ2: Como comparar as técnicas existentes com a Hist?
16
Resultados
17
Resultados RQ RQ1: Avaliaram o HIST com o oráculo criado.
Através de precision e recall identificaram que HIST fiou entre 61% e 89% de identificação. RQ2: ????? OBS: uma técnica complementa a outra
18
R2 Implementação de 3 algoritmos de detecção
Divergent Change : DCCA com base em conectividade (coesão) Shotgun Surgery: SSCA chamadas de método entre classes Parallel Inheritance: PICA classes afetadas pela herança Paralela como pares das classes As ferramentas foram calibradas para detecção Blob e Feature Envy
19
Comparação DV DCCA 14 casos em 5 sistemas
DUVIDA DO JEDIT OCORREU EM CLASSE Q TEM VALOR BAIXO DE COESAO 14 casos em 5 sistemas Hist 76%( 79% recall e 73% precision) vs AC 10%( 7% recall e 20% precision)
20
Comparação SS SCCA 4 sistemas afetados com 4 ocorrências
FOI O QUE TEVE MENOR NUMERO DE OCORRENCIA NOS SISTEMAS 4 sistemas afetados com 4 ocorrências Hist 100% com 100% precisão
21
Comparação PI PICA 31 casos 19 foram identificados pelo Hist
0 não foi possível calcular o recall n/a qnd não são bad smell da abordagem 31 casos 19 foram identificados pelo Hist Hist recall 61% com 12 falso positivo VS Algoritmo PICA detectou 14 corretas e 45% recall , falso positivo 4%
22
Comparação Blob Decor Hist precission 76% recall de 61% (média 68%)
0 não foi possível calcular o recall Hist precission 76% recall de 61% (média 68%)
23
Comparação FE JDeodorant
0 não foi possível calcular o recall Oráculo identificou em 5 dos 8 sistemas, totalizando 42. Hist identificou 34 deles , contra 25 do JDeodorant
24
Abordagens Diferenças detectadas pelas abordagens
% code smell correto em ambos 0 não foi possível calcular o recall % Identificação correta pelo HIST % Identificação correta pela análise estática , que não foi Identificada pelo HIST.
25
Ameaças a Validade Ameaça de construção: criação do oráculo manual
Comparação: Comparação da Hist com ferramentas Ameaça Externa: generalização dos resultados . Apenas 5 bad smells Comparação: Comparação da Hist com ferramentas pq tiveram q definir estratégias de detecao
26
Replicação Pacote de Replicação
Repositório dos dados históricos extraídos Histórico de alterações das ferramentas Oráculo manual Código Hist 0 não foi possível calcular o recall
27
Trabalhos Relacionados
Usam apenas métricas como: CBO, LOC, WMC e Redes Bayesianas 0 não foi possível calcular o recall
28
Conclusão Levantou pontos de analise de contexto para evitar
Perdas de informações e qualidade . Proposta de definição de híbrido 0 não foi possível calcular o recall
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.