SlideShare uma empresa Scribd logo
ContextLongMethod: Uma Ferramenta
Sensível à Arquitetura para Detecção de
Métodos Longos
Cleverton Santos
Marcos Barbosa Dósea
Cláudio Nogueira Sant’Anna
clevertonmaggot@gmail.com, dosea@ufs.br, santanna@dcc.ufba.br
Universidade Federal de Sergipe
Universidade Federal da Bahia
TOOLS 2016
Maringá, Setembro 2016
Introdução
• A erosão do design é percebida pela surgimento
progressivo de anomalias no código.
• Métodos longos estão entre as anomalias de
código mais comuns independente do domínio
da aplicação.
Introdução
Introdução
• Estratégias automáticas para revisão de código
são baseadas em métricas coletadas do código.
– Valores limiares Genéricos;
– Executadas ao final da codificação;
ContextLongMethod
É um sistema de recomendação que extrai
conhecimento do design de um sistema
referência e utiliza-o para recomendar
candidatos a métodos longos para o
desenvolvedor.
Interesse Arquitetural
1. Papel arquitetural da classe.
2. Design do código da aplicação
Interesse Arquitetural
ContextLongMethod
• Plug-in para o Eclipse
• Abordagens disponibilizadas:
a) Valor limiar genérico.
b) Valor limiar genérico extraído do design de um
sistema de referência.
c) Valores limiares para cada interesse arquitetural
extraídos do design de um sistema de referência
ContextLongMethod
• Funcionamento
ContextLongMethod
• Valores Limiares por Interesse Arquitetural
– O papel arquitetural da classe
– O design do código da aplicação
ContextLongMethod
• Identificação dos Métodos Longos
Exemplo de Uso
• Preferências do Plug-in
Exemplo de Uso
• Métodos Longos Identificados
Arquitetura Referência
• Arquitetura Cartoon
Avaliação
• Nove versões do sistema MobileMedia
– Versão 01 como Sistema Referência
– Comparação com resultados de Paiva et al. (2015)
• inFusion, JDeodorant e PMD
• feature envy, god class e god method
– Precision, Recall e F-Score
Avaliação
• Resultados
Precisão (%) Cobertura (%) % F-Score
Paiva et al. (2015)
inFusion 100 26 41,27
Jdeodorant 35 50 41,18
PMD 100 26 41,27
ContextLongMethod
45 LOC/Método 96 47 63,10
Percentil 75 27 100 42,52
Percentil 90 56 95 70,46
Percentil 75 +
interesse 32 100 48,48
Percentil 90 +
interesse 60 89 71,68
Considerações Finais
• Estendendo a utilização das informações
contextuais para detecção de outros code
smells.
• Aprimorando o algoritmo que recupera
informações do design do sistema referência.
• Plug-in open source
– https://github.com/marcosdosea/ContextSmellDetector
ContextLongMethod: Uma Ferramenta
Sensível à Arquitetura para Detecção de
Métodos Longos
Cleverton Santos
Marcos Barbosa Dósea
Cláudio Nogueira Sant’Anna
clevertonmaggot@gmail.com, dosea@ufs.br, santanna@dcc.ufba.br
Universidade Federal de Sergipe
Universidade Federal da Bahia
TOOLS 2016
Maringá, Setembro 2016

Mais conteúdo relacionado

Destaque

Web2 0 in Medicine - 2009 Update
Web2 0 in Medicine - 2009 UpdateWeb2 0 in Medicine - 2009 Update
Web2 0 in Medicine - 2009 Update
Ves Dimov
 

Destaque (8)

Face skin color based recognition using local spectral and gray scale features
Face skin color based recognition using local spectral and gray scale featuresFace skin color based recognition using local spectral and gray scale features
Face skin color based recognition using local spectral and gray scale features
 
Web2 0 in Medicine - 2009 Update
Web2 0 in Medicine - 2009 UpdateWeb2 0 in Medicine - 2009 Update
Web2 0 in Medicine - 2009 Update
 
Magazyn THEY.PL - nr 9 (2014)
Magazyn THEY.PL - nr 9 (2014)Magazyn THEY.PL - nr 9 (2014)
Magazyn THEY.PL - nr 9 (2014)
 
Funcion lineal
Funcion linealFuncion lineal
Funcion lineal
 
Governança Corporativa
Governança CorporativaGovernança Corporativa
Governança Corporativa
 
Modulo 002- Fundamentos do Gerenciamento de Projetos
Modulo 002- Fundamentos do Gerenciamento de ProjetosModulo 002- Fundamentos do Gerenciamento de Projetos
Modulo 002- Fundamentos do Gerenciamento de Projetos
 
Prob anaya
Prob anayaProb anaya
Prob anaya
 
Gestão de Projetos
Gestão de ProjetosGestão de Projetos
Gestão de Projetos
 

Semelhante a ContextLongMethod - CBSOFT 2016 - TOOLS

2008 thomaz passosferrazmoreira
2008 thomaz passosferrazmoreira2008 thomaz passosferrazmoreira
2008 thomaz passosferrazmoreira
Vivaldo Chagas
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
Tiago Vizoto
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
Emmanuel Neri
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
Fábio Costa
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
Fábio Costa
 

Semelhante a ContextLongMethod - CBSOFT 2016 - TOOLS (20)

2 engenharia de software
2   engenharia de software2   engenharia de software
2 engenharia de software
 
Disciplina Gerencia de Projetos - Prof. Rogerio P C do Nascimento, PhD
Disciplina Gerencia de Projetos - Prof. Rogerio P C do Nascimento, PhDDisciplina Gerencia de Projetos - Prof. Rogerio P C do Nascimento, PhD
Disciplina Gerencia de Projetos - Prof. Rogerio P C do Nascimento, PhD
 
Design Patterns - Com Java
Design Patterns  - Com JavaDesign Patterns  - Com Java
Design Patterns - Com Java
 
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
cms_files_81187_1648754282Material_Doutorado_Profissional_em_Engenharia_de_So...
 
2008 thomaz passosferrazmoreira
2008 thomaz passosferrazmoreira2008 thomaz passosferrazmoreira
2008 thomaz passosferrazmoreira
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
Palestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com MétricasPalestra TaSafo Conf-2015: Refatoração com Métricas
Palestra TaSafo Conf-2015: Refatoração com Métricas
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
 
Domain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrõesDomain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrões
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFSApresentação da Disciplina Gerência de Projetos - DCOMP - UFS
Apresentação da Disciplina Gerência de Projetos - DCOMP - UFS
 
Aula03_04_ModelosProcessos.pdf
Aula03_04_ModelosProcessos.pdfAula03_04_ModelosProcessos.pdf
Aula03_04_ModelosProcessos.pdf
 
Princípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV UnipPrincípios de Sistemas de Informação Unidade IV Unip
Princípios de Sistemas de Informação Unidade IV Unip
 
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
Defesa de mestrado: Como a prática de TDD influencia no projeto de classes em...
 
Identificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareIdentificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de software
 
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
Case estágio - Proposta de interface para um módulo de estratégia do sistema ...
 
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
 

ContextLongMethod - CBSOFT 2016 - TOOLS