Transcript
Page 1: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

METACOMUm Método para Análise de Correlação entre Métricas de Produto de Software e Volume de Manutenção

Gabriel de Souza Pereira Moreira - ITARoberto Pepato Mellado - ITAProf. Adilson Marques da Cunha - ITAProf. Luiz Alberto Vieira Dias - ITA

Page 2: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

2Agenda

• 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

Page 3: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

3Manutençã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]

Page 4: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

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 software

Qualidade de Produto x Manutenção de Software

4

Page 5: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

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]

Page 6: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

6

Manutenibilidade

Modelo de Qualidade Interna / Externa [ISO/IEC 25000]

Qualidade Externa/Interna

Funcionalidade

Segurança

Acurácia

Interoperabilidade

Adequabilidade

Manutenibilidade

Testabilidade

Estabilidade

Modificabilidade

Analisabilidade

Usabilidade

Atratividade

Compreensibilidade

Apreensibilidade

Operabilidade

Confiabilidade

Maturidade

Tolerância à Falhas

Recuperabilidade

Eficiência

Comportamento temporal

Utilização de recursos

Portabilidade

Adaptabilidade

Instalabilidade

Co-existência

Substitutibilidade

Page 7: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

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

Page 8: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

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))

Page 9: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

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

9

Page 10: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

10Estudo 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 se deveria 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 volume de manutenção

Page 11: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

11Projetos 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

Page 12: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

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 CargaDataExtractor

 

7 – Análise de correlações entre métricas de produto e volume de manutenções

SPSS 17.0

Page 13: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

13Estratégia de Análise Exploratória

Classe AClasse B

Caso de Uso 001

Classe CClasse D

Caso de Uso 002

Revisão

Mês Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez Jan Fev Mar Abr1 3 12 35 40 62 97

Métricas de Produto

ManutençãoDesenvolvimento

Métricas de Volume de Manutenção

Exemplo da Estratégia de Análise do METACOM

LegendaPeríodo de DesenvolvimentoPeríodo de Manutenção (Caso de Uso validado pelo cliente)Alteração da Classe

Page 14: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

14Mé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 início da manutenção

LoC Rem. Soma do número de linhas de código removidas da classe, após início da manutenção

Nº Revisões Total de revisões em que a classe foi alterada, após a início da manutenção

Meses Após Revisão Total de meses transcorridos entre o início da manutenção e a data atual

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.

Page 15: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

15Base de dados

• Medidas de Produto• 484.200 registros (Produto x Classes x Revisões)

• Histórico de Manutenção• 17.430 (Produto x Classes Modificadas em Revisões)

• Amostra considerada• 40 variáveis independentes (métricas de produto)• 5 variáveis dependentes (métricas de volume de manutenção)• 374 registros (classes)

Page 16: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

16

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

AcoplamentoAC -,126 -,168 -,139 -,156 -,165EC ,563 ,538 ,527 ,632 ,601ABC ,628 ,608 ,585 ,643 ,609

Coesão LCOM ,044 ,020 ,015 ,002 -,019

ComplexidadeMCC ,510 ,486 ,453 ,486 ,444HUOpt ,574 ,527 ,516 ,558 ,510HUOpd ,654 ,608 ,593 ,653 ,603

Manutenibilidade MI -,404 -,419 -,393 -,397 -,409

Correlações entre Métricas de Produto e Volume de Manutenção

Correlação de Postos de Spearman - Significância de 0.01

Page 17: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

17

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

Page 18: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

18Limitaçõ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.

• Tipos de Manutenção (Corretiva, Adaptativa, Preventiva e de Melhoria) não categorizados

Page 19: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

19Conclusõ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 representativa com volume de manutenção

Page 20: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

20Recomendação e Sugestão para 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).

Page 21: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

21

Trabalhos relacionados

Aprovados

• Moreira, G. S. P., Mellado, R. P., Montini, D. A., Dias, L. A. V., Cunha, A. M. “Software Product Measurement and Analysis in a Continuous Integration Environment”, ITNG, Abril 2010, Las Vegas, NE, EUA

• Mellado, R. P., Moreira, G. S. P., Monteiro, R. L., Dias, L. A. V., Cunha, A. M. “An Empirical Analysis of eXtreme Programming Practices and its Impact on Software Quality Metrics”, Workshop Brasileiro de Métodos Ágeis, Jun. 2011, Fortaleza, CE

Submetidos

• Moreira, G. S. P., Monteiro, R. L., Mellado, R. P., Dias, Cunha, A. M, L. A. V. “Predicting Change and Error Proneness in OO Software Corrective Maintenance”, IEEE ICSM, Set. 2011, Williamsburg, EUA

Page 22: METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção

06:01

22Perguntas

?


Recommended