METACOM – Uma análise de correlação entre métricas de produto e propensão à manutenção
-
Upload
gabriel-moreira -
Category
Technology
-
view
944 -
download
1
description
Transcript of 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
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
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]
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
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]
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
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
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))
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
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
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
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
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
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.
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)
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
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
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
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
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).
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
06:01
22Perguntas
?