SlideShare ist ein Scribd-Unternehmen logo
1 von 19
METACOM
Um Método para Análise de Correlação entre Métricas
de Produto de Software e Propensão a Manutenção
Gabriel de Souza Pereira Moreira - ITA
Roberto Pepato Mellado - ITA
Prof. Adilson Marques da Cunha - ITA
Prof. Luiz Alberto Vieira Dias - ITA
Agenda
• Manutenção de Software
• Qualidade de Produto de Software
• Métricas de Software
• Trabalhos sobre Manutenibilidade
• METACOM
• Estudo de Caso
• Análise e Discussão dos Resultados Obtidos
• Limitações
• Conclusões, Recomendações e Trabalhos Futuros
Manutenção de Software
Mais de 50% do esforço de desenvolvimento [Kemerer
1999]
Entre 40% e 90% do custo total do ciclo de vida
[Bennett 2002]
Mais de 50% dos profissionais de software
envolvidos em modificar aplicações [Jones 2007]
Fenômeno mal compreendido na academia
[Kemerer 1999]
Características de
Qualidade do Produto de
Software
Esforço e Assertividade da
Manutenção
[Ware 2007], [Ahn 2003], [ISO 25000]
• Aumento do ciclo de vida do software implica em tempo
estendido de manutenção, aumentando a importância da
qualidade do produto [Blanc 2009]
• Segundo [Jones 2008], os maiores responsáveis pelo
aumento do custo de manutenção relacionam-se ao
tamanho, complexidade e idade do softwar
Qualidade de Produto x Manutenção de Software
Qualidade de Produto
ISO/IEC 25000:2005 - Software Quality Requirements and Evaluation (SQuaRE)
Qualidade no ciclo de vida de um produto de software [ISO/IEC 9126-1/25000]
Manutenibilidade
Modelo de Qualidade Interna / Externa [ISO/IEC 25000]
Métricas de Produto OO
Tamanho
• LOC
• N. Métodos
• N. Atributos
Complexidade
•CC - Complexidade
Ciclomática
•Métricas de
Halstead
•MCD - Max
Conditional Depth
•MLD - Max Loop
Depth
•DD - Decision
Density
Acoplamento
• AC – Aferent
Coupling
• EC – Eferent
Coupling
• ABC –
Association
Between Classes
Coesão
• LCOM – Lack of
Cohesion
Methods
• LCOM-HS -
Lack of
Cohesion Of
Methods
Henderson-
Sellers
Herança
• NOC - Number
of Children
• DIT - Depth of
Inheritance Tree
Trabalhos sobre Manutenibilidade
• Em sua maior parte, relacionam métricas de produto à
análise subjetiva de manutenibilidade [Kafura 1987],
[Oman 1992], [Riaz 2009].
• Deste grupo de trabalhos, destaca-se o Maintainability
Index (MI) [Oman 1992], [Oman 1994] e [Welker 1995]
• Outros trabalhos avaliam a manutenibilidade de forma
objetiva relacionando, por exemplo, métricas de produto
de uma versão com o volume de manutenção observado
após esta versão [Ware 2007]
MI = 171-5.2* ln(aveV)-0.23 * aveV(g')-16.2 * ln (aveLoC)-50 * sin(sqrt(2.4*perCM))
METACOM
• Processo de ETL de
métricas de produto e de
volume de manutenção
• Aplicável a projetos em
desenvolvimento, manuten
ção ou finalizados
• Requisitos:
• Sistema de Controle de
Versão
• Issue Tracker
• Mecanismo de
rastreabilidade entre
modificações e casos de
uso ou defeitos
Estudo de Caso
• Quais funcionalidades do código possuem maior probabilidade
de causar problemas no futuro, se não forem ajustadas agora?
• Em que partes do código deveriam-se investir mais esforços
em inspeções e testes?
• Para quais partes do código deveriam ser atribuídos os esforços
dos membros dos times mais habilidosos e experientes?
Métricas de produto de software podem ser utilizadas para
indicar classes com maior propensão à manutenção
Projetos Considerados
Proj.
Início
Desenv.
Nº Revisões*
Desenvolvedores
Distintos
Defeitos Casos de Uso
A 08/2008 2.977 20 1.387 103
B 08/2009 1.358 8 313 93
Projetos considerados no estudo de caso
Proj.
Plataforma
(Linguagem)
LoC
Total
LoC
Compilável
Linhas de
Comentários
Tipos
A Web (C#.NET) 97.488 51.017 31.670 297
B Web (C#.NET) 70.735 33.644 27.795 407
Tamanho dos Produtos de Software
* Revisão – Identificador único de um conjunto de alterações no código-fonte
Implementação do METACOM
Passo do METACOM Ferramenta
1 - Checkout das revisões SVN Extractor
2 - Compilação NAnt e MSBuild
3 - Análise Estática de Código NDepend e SDMetrics C#
4 - Extração do Histórico de Modificações SVNStat
5 - Extração de informações de Casos de
Uso e rastreabilidade
Mantis
6 - Transformação e Carga
DataExtractor
7 – Análise de correlações entre métricas
de produto e volume de manutenções
SPSS 17.0
Métricas de Volume de Manutenção
Métricas Básicas
LoC Adic
Soma do número de linhas de código adicionadas a classe, após
a revisão analisada (revisões posteriores até o momento de
extração das métricas)
LoC Rem.
Soma do número de linhas de código removidas da classe, após
a revisão analisada (revisões futuras)
Nº Revisões
Total de revisões em que a classe foi alterada, após a revisão
analisada (revisões futuras)
Meses Após Revisão
Total de meses transcorridos entre a revisão e a extração das
métricas
Métricas Derivadas
Média Mensal de LoC
Modificado (Adic. + Rem.)
Soma das linhas de código modificadas (adicionas e
removidas), normalizadas pelo número de Meses Após
Revisão.
Média Mensal de Revisões
Total de revisões de alteração da classe normalizado pelo
número de Meses Após Revisão.
Resultados Obtidos
Métricas das Classes (antes
do início das manutenções)
Métricas Básicas de Volume de
Manutenção
Métricas Derivadas de
Volume de Manutenção
normalizadas por mês
Categoria de
Métrica
Métrica LoC Adic.
Posterior
LoC Rem.
Posterior
Revisões
Post.
Média Mensal
de LoC
Modificado
(Adic. + Rem.)
Post.
Média
Mensal de
Revisões
Posteriores
Tamanho LoC ,586 ,511 ,491 ,609 ,518
Acoplamento
AC -,126 -,168 -,139 -,156 -,165
EC ,563 ,538 ,527 ,632 ,601
ABC ,628 ,608 ,585 ,643 ,609
Coesão LCOM ,044 ,020 ,015 ,002 -,019
Complexidade
MCC ,510 ,486 ,453 ,486 ,444
HUOpt ,574 ,527 ,516 ,558 ,510
HUOpd ,654 ,608 ,593 ,653 ,603
Manutenibilidade MI -,404 -,419 -,393 -,397 -,409
Correlações entre Métricas de Produto e Volume de Manutenção
Análise e Discussão dos Resultados
Tamanho
• LOC – Correlação moderada. Classes com muitas responsabilidades
podem indicar problemas de design OO, pois ferem o Single
Responsability Principle (SRP)
Acoplamento
• EC e ABC – Entre as maiores correlações encontradas. Confirma os
resultados de outros estudos como [Ferneley 1999]. Quanto maior a
dependência externa, maior a propensão à modificações.
• AC – Fraca correlação. Resultado também alinhado com o estudo de
[Ferneley 1999].
Coesão
• LCOM – Ao contrário do esperado, observou-se fraca correlação.
Complexidade
• MCC – Correlação moderada.
• Métricas de Halstead – Maior correlação encontrada com HUOpd e
HUOpt, referentes ao número de operandos e operadores
Índice de Manutenibilidade (MI)
• Ao contrário do esperado, observou-se fraca correlação com este
indicador, calibrado a partir de análise subjetiva de especialistas.
Volume de
Manutenção X
Limitações do Experimento
• Realizado com dois produtos de software desenvolvidos
pela mesma empresa, na mesma plataforma (web) e
tecnologia (ASP.NET e C#), com o mesmo processo
(baseado em RUP).
• Rastreabilidade entre modificações de código e casos de
uso/defeitos depende de processo manual.
• Manutenção avaliada apenas no nível de classes, a partir
do momento em que o respectivo caso de uso é
considerado em manutenção.
Conclusões
• Concepção do METACOM, com objetivo de identificar
métricas com potencial de indicar classes com propensão a um
maior volume de manutenção
• Implementação do METACOM em estudo de caso com dois
produtos de software da indústria
• Análise de correlações (método de Spearman) permitiu
confirmar e invalidar expectativas prévias sobre o potencial
preditivo de algumas métricas.
• As métricas mais correlacionadas ao volume de manutenção
referem-se aos aspectos tamanho, complexidade e acoplamento
• O Índice de Manutenibilidade (MI), bastante citado, utilizado e
recomendado pela SEI, não apresentou correlação com volume
de manutenção
Recomendações e
Trabalhos Futuros
• Utilização de regressão linear multivariada para compor
índices de estimativa de volume de manutenção futura,
baseados em métricas de produto
• Experimentação do METACOM em outras linguagens
OO estaticamente tipadas (como Java, Object Pascal e
C++) e dinâmicas (como Perl, Python, PHP, Javascript e
Ruby).
Perguntas

Weitere ähnliche Inhalte

Ähnlich wie METACOM - Um Método para Análise de Correlação entre Métricas de Produto de Software e Propensão a Manutenção

Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de SoftwareWagner Zaparoli
 
Métricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetosMétricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetosJosé Claudemir Pacheco Júnior
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Marcelo Schumacher
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareEdson Oliveira Junior
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoIntel Software Brasil
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
Medições de synchrophasor sob o padrão ieee c37.118.1 2011
Medições de synchrophasor sob o padrão ieee c37.118.1 2011Medições de synchrophasor sob o padrão ieee c37.118.1 2011
Medições de synchrophasor sob o padrão ieee c37.118.1 2011Rairon Fernandes de Azevedo Cruz
 
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGGESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGMarcos Lottermann
 
Iterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMapIterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMapJosé Correia
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfRodolphoCesar2
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009Ramon Durães
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line VariabilitiesMichel Alves
 

Ähnlich wie METACOM - Um Método para Análise de Correlação entre Métricas de Produto de Software e Propensão a Manutenção (20)

Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de Software
 
Métricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetosMétricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetos
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenho
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Medições de synchrophasor sob o padrão ieee c37.118.1 2011
Medições de synchrophasor sob o padrão ieee c37.118.1 2011Medições de synchrophasor sob o padrão ieee c37.118.1 2011
Medições de synchrophasor sob o padrão ieee c37.118.1 2011
 
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MININGGESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
GESTÃO DE DEMANDAS DE TESTE E ANÁLISE DE PADRÕES COM TEXT MINING
 
Iterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMapIterasys Test Show 2010 - Estratégia Baseada no TMap
Iterasys Test Show 2010 - Estratégia Baseada no TMap
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
Gestão de Configuração de Software
Gestão de Configuração de Software Gestão de Configuração de Software
Gestão de Configuração de Software
 
Aula Gestão de Projetos
Aula Gestão de ProjetosAula Gestão de Projetos
Aula Gestão de Projetos
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line Variabilities
 

METACOM - Um Método para Análise de Correlação entre Métricas de Produto de Software e Propensão a Manutenção

  • 1. METACOM Um Método para Análise de Correlação entre Métricas de Produto de Software e Propensão a Manutenção Gabriel de Souza Pereira Moreira - ITA Roberto Pepato Mellado - ITA Prof. Adilson Marques da Cunha - ITA Prof. Luiz Alberto Vieira Dias - ITA
  • 2. Agenda • Manutenção de Software • Qualidade de Produto de Software • Métricas de Software • Trabalhos sobre Manutenibilidade • METACOM • Estudo de Caso • Análise e Discussão dos Resultados Obtidos • Limitações • Conclusões, Recomendações e Trabalhos Futuros
  • 3. Manutenção de Software Mais de 50% do esforço de desenvolvimento [Kemerer 1999] Entre 40% e 90% do custo total do ciclo de vida [Bennett 2002] Mais de 50% dos profissionais de software envolvidos em modificar aplicações [Jones 2007] Fenômeno mal compreendido na academia [Kemerer 1999]
  • 4. Características de Qualidade do Produto de Software Esforço e Assertividade da Manutenção [Ware 2007], [Ahn 2003], [ISO 25000] • Aumento do ciclo de vida do software implica em tempo estendido de manutenção, aumentando a importância da qualidade do produto [Blanc 2009] • Segundo [Jones 2008], os maiores responsáveis pelo aumento do custo de manutenção relacionam-se ao tamanho, complexidade e idade do softwar Qualidade de Produto x Manutenção de Software
  • 5. Qualidade de Produto ISO/IEC 25000:2005 - Software Quality Requirements and Evaluation (SQuaRE) Qualidade no ciclo de vida de um produto de software [ISO/IEC 9126-1/25000]
  • 6. Manutenibilidade Modelo de Qualidade Interna / Externa [ISO/IEC 25000]
  • 7. Métricas de Produto OO Tamanho • LOC • N. Métodos • N. Atributos Complexidade •CC - Complexidade Ciclomática •Métricas de Halstead •MCD - Max Conditional Depth •MLD - Max Loop Depth •DD - Decision Density Acoplamento • AC – Aferent Coupling • EC – Eferent Coupling • ABC – Association Between Classes Coesão • LCOM – Lack of Cohesion Methods • LCOM-HS - Lack of Cohesion Of Methods Henderson- Sellers Herança • NOC - Number of Children • DIT - Depth of Inheritance Tree
  • 8. Trabalhos sobre Manutenibilidade • Em sua maior parte, relacionam métricas de produto à análise subjetiva de manutenibilidade [Kafura 1987], [Oman 1992], [Riaz 2009]. • Deste grupo de trabalhos, destaca-se o Maintainability Index (MI) [Oman 1992], [Oman 1994] e [Welker 1995] • Outros trabalhos avaliam a manutenibilidade de forma objetiva relacionando, por exemplo, métricas de produto de uma versão com o volume de manutenção observado após esta versão [Ware 2007] MI = 171-5.2* ln(aveV)-0.23 * aveV(g')-16.2 * ln (aveLoC)-50 * sin(sqrt(2.4*perCM))
  • 9. METACOM • Processo de ETL de métricas de produto e de volume de manutenção • Aplicável a projetos em desenvolvimento, manuten ção ou finalizados • Requisitos: • Sistema de Controle de Versão • Issue Tracker • Mecanismo de rastreabilidade entre modificações e casos de uso ou defeitos
  • 10. Estudo de Caso • Quais funcionalidades do código possuem maior probabilidade de causar problemas no futuro, se não forem ajustadas agora? • Em que partes do código deveriam-se investir mais esforços em inspeções e testes? • Para quais partes do código deveriam ser atribuídos os esforços dos membros dos times mais habilidosos e experientes? Métricas de produto de software podem ser utilizadas para indicar classes com maior propensão à manutenção
  • 11. Projetos Considerados Proj. Início Desenv. Nº Revisões* Desenvolvedores Distintos Defeitos Casos de Uso A 08/2008 2.977 20 1.387 103 B 08/2009 1.358 8 313 93 Projetos considerados no estudo de caso Proj. Plataforma (Linguagem) LoC Total LoC Compilável Linhas de Comentários Tipos A Web (C#.NET) 97.488 51.017 31.670 297 B Web (C#.NET) 70.735 33.644 27.795 407 Tamanho dos Produtos de Software * Revisão – Identificador único de um conjunto de alterações no código-fonte
  • 12. Implementação do METACOM Passo do METACOM Ferramenta 1 - Checkout das revisões SVN Extractor 2 - Compilação NAnt e MSBuild 3 - Análise Estática de Código NDepend e SDMetrics C# 4 - Extração do Histórico de Modificações SVNStat 5 - Extração de informações de Casos de Uso e rastreabilidade Mantis 6 - Transformação e Carga DataExtractor 7 – Análise de correlações entre métricas de produto e volume de manutenções SPSS 17.0
  • 13. Métricas de Volume de Manutenção Métricas Básicas LoC Adic Soma do número de linhas de código adicionadas a classe, após a revisão analisada (revisões posteriores até o momento de extração das métricas) LoC Rem. Soma do número de linhas de código removidas da classe, após a revisão analisada (revisões futuras) Nº Revisões Total de revisões em que a classe foi alterada, após a revisão analisada (revisões futuras) Meses Após Revisão Total de meses transcorridos entre a revisão e a extração das métricas Métricas Derivadas Média Mensal de LoC Modificado (Adic. + Rem.) Soma das linhas de código modificadas (adicionas e removidas), normalizadas pelo número de Meses Após Revisão. Média Mensal de Revisões Total de revisões de alteração da classe normalizado pelo número de Meses Após Revisão.
  • 14. Resultados Obtidos Métricas das Classes (antes do início das manutenções) Métricas Básicas de Volume de Manutenção Métricas Derivadas de Volume de Manutenção normalizadas por mês Categoria de Métrica Métrica LoC Adic. Posterior LoC Rem. Posterior Revisões Post. Média Mensal de LoC Modificado (Adic. + Rem.) Post. Média Mensal de Revisões Posteriores Tamanho LoC ,586 ,511 ,491 ,609 ,518 Acoplamento AC -,126 -,168 -,139 -,156 -,165 EC ,563 ,538 ,527 ,632 ,601 ABC ,628 ,608 ,585 ,643 ,609 Coesão LCOM ,044 ,020 ,015 ,002 -,019 Complexidade MCC ,510 ,486 ,453 ,486 ,444 HUOpt ,574 ,527 ,516 ,558 ,510 HUOpd ,654 ,608 ,593 ,653 ,603 Manutenibilidade MI -,404 -,419 -,393 -,397 -,409 Correlações entre Métricas de Produto e Volume de Manutenção
  • 15. Análise e Discussão dos Resultados Tamanho • LOC – Correlação moderada. Classes com muitas responsabilidades podem indicar problemas de design OO, pois ferem o Single Responsability Principle (SRP) Acoplamento • EC e ABC – Entre as maiores correlações encontradas. Confirma os resultados de outros estudos como [Ferneley 1999]. Quanto maior a dependência externa, maior a propensão à modificações. • AC – Fraca correlação. Resultado também alinhado com o estudo de [Ferneley 1999]. Coesão • LCOM – Ao contrário do esperado, observou-se fraca correlação. Complexidade • MCC – Correlação moderada. • Métricas de Halstead – Maior correlação encontrada com HUOpd e HUOpt, referentes ao número de operandos e operadores Índice de Manutenibilidade (MI) • Ao contrário do esperado, observou-se fraca correlação com este indicador, calibrado a partir de análise subjetiva de especialistas. Volume de Manutenção X
  • 16. Limitações do Experimento • Realizado com dois produtos de software desenvolvidos pela mesma empresa, na mesma plataforma (web) e tecnologia (ASP.NET e C#), com o mesmo processo (baseado em RUP). • Rastreabilidade entre modificações de código e casos de uso/defeitos depende de processo manual. • Manutenção avaliada apenas no nível de classes, a partir do momento em que o respectivo caso de uso é considerado em manutenção.
  • 17. Conclusões • Concepção do METACOM, com objetivo de identificar métricas com potencial de indicar classes com propensão a um maior volume de manutenção • Implementação do METACOM em estudo de caso com dois produtos de software da indústria • Análise de correlações (método de Spearman) permitiu confirmar e invalidar expectativas prévias sobre o potencial preditivo de algumas métricas. • As métricas mais correlacionadas ao volume de manutenção referem-se aos aspectos tamanho, complexidade e acoplamento • O Índice de Manutenibilidade (MI), bastante citado, utilizado e recomendado pela SEI, não apresentou correlação com volume de manutenção
  • 18. Recomendações e Trabalhos Futuros • Utilização de regressão linear multivariada para compor índices de estimativa de volume de manutenção futura, baseados em métricas de produto • Experimentação do METACOM em outras linguagens OO estaticamente tipadas (como Java, Object Pascal e C++) e dinâmicas (como Perl, Python, PHP, Javascript e Ruby).