ferramentas de detecção de Bad Smell Apresentação: Maria Luísa Costa Pinto

Documentos relacionados
DEFINING METRIC THRESHOLDS FOR SOFTWARE PRODUCT LINES: A COMPARATIVE STUDY

10 Lições Aprendidas ao Desenvolver um Estudo na Indústria

3 Trabalhos Relacionados

Refatoração de Software

6 Hist-Inspect: A Ferramenta de Medição e Avaliação

A Multidimensional Empirical Study on Refactoring Activity

3 Trabalhos Relacionados

Avaliação e Integração de Ferramentas de Análise Estática de Código

Aplicando regras de programação para refatoração de programas em Dafny: uma linguagem imperativa com especificação nativa

Code Smell Analyzer: A Tool To Teaching Support Of Refactoring Techniques Source Code

Engenharia de Software Experimental

A UTILIDADE DOS VALORES REFERÊNCIA DE MÉTRICAS NA AVALIAÇÃO DA QUALIDADE DE SOFTWARES ORIENTADOS POR OBJETO.

Detectando Problemas de Design em Diagramas de Classes: Um Estudo Experimental

6 Estudos Experimentais

Avoiding code pitfalls in Aspect-Oriented Programming

Reengenharia, Refatoração e Bad Smell

Identifying thresholds for object-oriented software metrics

Arquitectura de Sistemas de Software

Capítulo 1. Introdução 14

A Preliminary Investigation Towards the Impact of Composition Properties on Code Anomalies

Qualidade de Software Apresentação da Unidade Curricular 2018/19

2D Platform Game Problem Based Learning. Apresentação Luis Adães, Paulo Pinto e Tiago Ferreira DCC-FCUP

Revisão Sistemática da Literatura sobre Métodos de Localização de Características

ArchLint: Uma Ferramenta para Detecção de Violações Arquiteturais usando Histórico de Versões

Um Estudo sobre Extração de Métodos para

Qualidade, Processos e Gestão de Software no contexto de Sitemas Embarcados. Metodologias Ágeis. Guilherme A. Dantas

Esta é a terceira carreira de um conjunto de três, que compõem a carreira mais longa, a Cyber Security.

Um Método para Identificação de Bad Smells a partir de Diagramas de Classes

Time Series Trend Detection and Forecasting Using Complex Network Topology Analysis

Isela Macía Bertrán. Avaliação da Qualidade de Software com Base em Modelos UML. Dissertação de Mestrado

Modelagem de Interação e Navegação de Sistemas Interativos: Protocolo de um Mapeamento Sistemático da Literatura

Modulo I Introdução ao XP

UNIVERSIDADE FEDERAL DO CEARÁ CAMPUS QUIXADÁ BACHARELADO EM ENGENHARIA DE SOFTWARE JÚLIO SERAFIM MARTINS

Minerando Código Comentado

Relatório de Progresso

Uma Avaliação Empírica de um Ambiente Favorável para o Desenvolvimento Dirigido por Testes

Certificamos que o trabalho Distribuição de Conhecimento de Código em Times de Desenvolvimento - uma Análise Arquitetural de autoria de Mívian

SEMINÁRIO Visão Computacional Aluno: Afonso Pinheiro

Sistema de Reconhecimento de Logotipos

Usando aprendizagem de máquina para identificar anomalias de design prejudiciais à manutenibilidade: um estudo preliminar

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação

Metodologias de Teste de Software

Uma análise da associação de co-ocorrência de anomalias de código com métricas estruturais

Run-Time Variability through Component Dynamic Loading

Certificamos que o trabalho Systematic Functional Testing with Decision Table de autoria de Gilmar Arantes, Diogo de Freitas, Plínio Leitão-Júnior,

Design Patterns na Geração de Código

Lip Recognition. Victor Mocelin

On the Detection of Architecturally-Relevant Code Anomalies in Software Systems

Ferramenta de apoio aos testes baseados em requisitos

SEMINÁRIO DOS ARTIGOS:

Uma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos

TITULO: Implementação do alinhamento de proteínas em GPU utilizando OpenCL PROPOSTA DE TRABALHO DE GRADUAÇÃO

Diego Martin Mancini Orientador: Prof. Paulo A. V. de Miranda Instituto de Matemática e Estatística Universidade de São Paulo

Topic Title. API-first

Padrões de Testes Automatizados

Início. A diferença da AVG Visão geral de desempenho, outubro de 2010

Desenvolvimento de uma Ferramenta para Auxiliar a Execução de Revisões Sistemáticas da Literatura

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2008 IME/USP Mariana Bravo & Hugo Corbucci

Maringá, setembro de 2016.

DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA

JUnit: framework de testes unitários. Fred Lopes

Desenvolvimento guiado por testes e ferramentas xunit

Ferramenta Selenium. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

DIREITO DA SOCIEDADE DA INFORMAÇÃO

Testes de Unidade. Curso de Verão IME/USP Hugo Corbucci

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

Ciclo de vida: fases x atividades

Refatoração: Melhorando a Qualidade de Código Pré-Existente. Cursos de Verão 2009 IME/USP Mariana Bravo & Hugo Corbucci

Rickson Guidolini Orientador: Nivio Ziviani Co-orientador: Adriano Veloso

Refatorando

Estratégias e Perfis de Programadores Iniciantes na Identificação de Anomalias de Modularidade de Software

10º Congresso Interinstitucional de Iniciação Científica CIIC a 04 de agosto de 2016 Campinas, São Paulo ISBN

CRIAÇÃO DE BIBLIOTECA DE METADADOS PARA FRAMEWORK DE GAMIFICAÇÃO RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA.

Refatoração: Melhorando código existente

UERJ Programa de Pós-graduação em Engenharia Mecânica (PPGEM) Seminary Class

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais

Manual do Sistema de Gestão de Pautas

SQLLOMining: Obtenção de Objetos de Aprendizagem utilizando técnicas de Aprendizado de Máquina

Técnicas para Análise de Similaridade de Código de Software em Litígios de Propriedade Intelectual. PSI prof. Volnys Bernal

Tipos para uma Linguagem de Transformação

Otávio de Pinho Forin Braga. Uma Arquitetura para Síntese de Imagens Fotorrealistas baseada em Técnicas de Monte Carlo DISSERTAÇÃO DE MESTRADO

Odyssey-PSW: Uma Ferramenta de Apoio à Verificação e Validação de Especificações de Restrições OCL

Desenvolvimento de uma Linha de Produto de Software para Módulos de Aprendizagem Interativa

POO Documentation. Release 1.0. Felipe Dau e Francisco Pereira Junior

Programming in C# Conteúdo Programático. Área de formação Plataforma e Tecnologias de Informação

II Dia D (Debian) do Debian BA

Disciplina Medições e Qualidade de Software. Tópicos da Disciplina. Método de Avaliação. Qualidade de Software.

2 Fundamentação. 2.1 Problemas de qualidade de código

Um Método para Descoberta Automática de Regras para a Detecção de Bad Smells

Uma ferramenta didática para o dimensionamento e detalhamento de pilares de concreto armado

Aplicação de Histograma de Gradientes Orientados para detecção de hidrômetros em imagens de fundo complexo

ACCURATE IRIS LOCALIZATION USING CONTOUR SEGMENTS

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 26 de outubro de 12

II Workshop de Acreditação de Produtores de Materiais de Referência e de Provedores de Ensaios de Proficiência. Limites dos Sistemas Analíticos

Avaliação de Desempenho de SRI

Introdução ao Teste Unitário com JUnit

CRI Minas Indústria 4.0. Case Vallourec: Golden Batch na produção de tubos

Transcrição:

estudo comparativo revisão de ferramentas de detecção de Bad Smell Apresentação: Maria Luísa Costa Pinto

Este trabalho apresenta uma revisão sistemática da literatura sobre ferramentas de detecção de bad smell. Além disso trazer um estudo comparativo de quatro ferramentas de detecção.

1. Introdução

1. Introdução

1. Introdução revisão sistemática da literatura (SLR) de ferramentas de detecção de bad smell

1. Introdução estado da arte em relação às ferramentas para detecção de bad smells Agreement Recall Precision

2. Revisão da literatura identificação análise interpretação planejamento condução geração de relatórios

2.1 Objetivo e questões de pesquisa identificar e documentar todas as ferramentas relatadas e usadas na literatura para detecção de bad smell. RQ1: RQ2: RQ3:

2.1 Objetivo e questões de pesquisa RQ1 (quais as ferramentas) RQ2 (quais as características)

2.1 Objetivo e questões de pesquisa RQ3 (quais bad smells)

2.2 Cadeia de pesquisa e critérios de seleção (tool* AND ( bad smell* OR design smell* OR code smell* OR architecture smell* OR design anomaly* OR code anomaly* ))

2.2 Cadeia de pesquisa e critérios de seleção Inclusion Criteria Exclusion Criteria

2.2 Cadeia de pesquisa e critérios de seleção

2.3 Fontes de dados eletrônicas

2.3 Fontes de dados eletrônicas 429 65 10 145 217 136

2.3 Fontes de dado eletrônicas

2.4 Extração de dados

2.5 Relatório Bad Smell Alternative Terms

3. Resultados Ano de lançamento das ferramentas

3.2 Lista de ferramentas de detecção de bad smell RQ1

29 Tools Available Online for Download and Installation Borland Together [77], CCFinder (CCFinderX) [29], Checkstyle [19], Clone Digger [8], Code Bad Smell Detector [22], Colligens [45], ConcernReCS [1], ConQAT [13], DECKARD [26], DuDe [75], Gendarme [53], incode [77], infusion [19], IntelliJ IDEA [17], iplasma [43], Java Clone Detector (JCD) [28], jcosmo [71], JDeodorant [70], NiCad [10], NosePrints [53], PMD [19], PoSDef [9], SDMetrics [62], SpIRIT (JSpIRIT) [72], Stench Blossom [49], SYMake [67], TrueRefactor [20], Understand [65], Wrangler [37] 54 Tools Proposed in Literature but Unavailable Online Absinthe [66], Anti-pattern Scanner [76], Arcoverde et al. [3], AutoMeD [78], Bad Smell Detection Tool (BSDT) [12], Bad Smells Finder [21], Bauhaus [59], Bayesian Detection Expert (BDTEX) [33], Bavota et al. [5], Baxter et al. [6], Bug Forecast [16], Clone Detector [64], CloneDetective [27], CocoViz [7], CodeSmellExplorer [57], CodeVizard [79], CP-Miner [38], Crespo et al. [11], Crocodile [63], DÉCOR [47], Dup [4], Duploc [14], EvoLens [58], Hamza et al. [23], Hayashi et al. [24], Hist-Inspect [42], isparql [34], It s Your Code (IYC) [36], JCodeCanine [52], JSmell [61], Kaur and Singh [30], Keivanloo and Rilling [31], Kessentini et al. [32], Komondoor and Horwitz [35], Lui et al. [39], Matthew Munro [48], Mens et al. [46], Pradel et al. [56], PROblem DEtector O-O System (PRODEOOS) [44], Reclipse Tool Suite [73], Refactoring Browser [69], Ribeiro and Borba [60], SCOOP [40], Scorpio [25], Sextant [15], Smellchecker [55], SolidFX [68], Stasys Peldzius [54], SVMDetect [41], VCS-Analyzer [2], Wang et al. [74], WebScent [50], Xquery-based Analysis Framework (XAF) [51], Zang et al. [80] 1 Tool Cited but Unavailable Online for Download Analyst [18]

3.3 Principais Recursos das Ferramentas de Detecção RQ2

3.3 Principais Recursos das Ferramentas de Detecção

3.3 Principais Recursos das Ferramentas de Detecção

3.3 Principais Recursos das Ferramentas de Detecção

3.4 Bad smells detectados RQ3 61 bad smells diferentes

3.4 Bad smells detectados

4. Um estudo comparativo 29 ferramentas

4.1 Seleção de ferramentas de detecção Java livres para uso bad smells apenas ferramentas que estão

4.2 Seleção de bad smells e Aplicações Large Class JUnit MobileMedia Long Method

4.2 Seleção de bad smells e Aplicações

4.3 Resultados Gerais

4.4 Concordância (Agreement)

4.4 Concordância JUnit MobileMedia

4.5 Revocação e Precisão Precisão Revocação

4.5 Revocação e Precisão Revocação Precisão

5. Lições aprendidas 5.1 Código duplicado

5.2 Large Class e Long Method

5.3 Avaliação de usabilidade

6. Ameaças a validade Escopo e Estratégia Validação e Generalização de Dados e Resultados

6. Ameaças a validade Search String Execution Análise de texto completo e extração de dados

6. Ameaças a validade Recursos de Catalogação das Ferramentas A comparação das Ferramentas

7. Trabalhos relacionados revisão de literatura (mas não sistemática) Checkstyle, infusion, JDeodorant e PMD,

7. Trabalhos relacionados Moha comparativo de ferramentas

7. Trabalhos relacionados estado da arte em ferramentas de detecção de bad smell através de uma revisão sistemática da literatura estudo comparativo de ferramentas disponíveis

8. Conclusão 84 ferramentas diferentes, mas apenas 29 delas estão disponíveis on-line a quantidade de ferramentas autônomas e plug-in é praticamente a mesma Java, C e C ++ Duplicated Code, a Large Class e o Long Method

8. Conclusão

8. Conclusão