METACOM - Um Método para Análise de Correlação entre Métricas de Produto de Software e Propensão a Manutenção
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 310 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
310
On Slideshare
310
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. METACOMUm Método para Análise de Correlação entre Métricasde Produto de Software e Propensão a ManutençãoGabriel de Souza Pereira Moreira - ITARoberto Pepato Mellado - ITAProf. Adilson Marques da Cunha - ITAProf. 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 SoftwareMais de 50% do esforço de desenvolvimento [Kemerer1999]Entre 40% e 90% do custo total do ciclo de vida[Bennett 2002]Mais de 50% dos profissionais de softwareenvolvidos em modificar aplicações [Jones 2007]Fenômeno mal compreendido na academia[Kemerer 1999]
  • 4. Características deQualidade do Produto deSoftwareEsforço e Assertividade daManutenção[Ware 2007], [Ahn 2003], [ISO 25000]• Aumento do ciclo de vida do software implica em tempoestendido de manutenção, aumentando a importância daqualidade do produto [Blanc 2009]• Segundo [Jones 2008], os maiores responsáveis peloaumento do custo de manutenção relacionam-se aotamanho, complexidade e idade do softwarQualidade de Produto x Manutenção de Software
  • 5. Qualidade de ProdutoISO/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. ManutenibilidadeModelo de Qualidade Interna / Externa [ISO/IEC 25000]
  • 7. Métricas de Produto OOTamanho• LOC• N. Métodos• N. AtributosComplexidade•CC - ComplexidadeCiclomática•Métricas deHalstead•MCD - MaxConditional Depth•MLD - Max LoopDepth•DD - DecisionDensityAcoplamento• AC – AferentCoupling• EC – EferentCoupling• ABC –AssociationBetween ClassesCoesão• LCOM – Lack ofCohesionMethods• LCOM-HS -Lack ofCohesion OfMethodsHenderson-SellersHerança• NOC - Numberof Children• DIT - Depth ofInheritance 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 MaintainabilityIndex (MI) [Oman 1992], [Oman 1994] e [Welker 1995]• Outros trabalhos avaliam a manutenibilidade de formaobjetiva relacionando, por exemplo, métricas de produtode uma versão com o volume de manutenção observadoapó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 demétricas de produto e devolume de manutenção• Aplicável a projetos emdesenvolvimento, manutenção ou finalizados• Requisitos:• Sistema de Controle deVersão• Issue Tracker• Mecanismo derastreabilidade entremodificações e casos deuso ou defeitos
  • 10. Estudo de Caso• Quais funcionalidades do código possuem maior probabilidadede causar problemas no futuro, se não forem ajustadas agora?• Em que partes do código deveriam-se investir mais esforçosem inspeções e testes?• Para quais partes do código deveriam ser atribuídos os esforçosdos membros dos times mais habilidosos e experientes?Métricas de produto de software podem ser utilizadas paraindicar classes com maior propensão à manutenção
  • 11. Projetos ConsideradosProj.InícioDesenv.Nº Revisões*DesenvolvedoresDistintosDefeitos Casos de UsoA 08/2008 2.977 20 1.387 103B 08/2009 1.358 8 313 93Projetos considerados no estudo de casoProj.Plataforma(Linguagem)LoCTotalLoCCompilávelLinhas deComentáriosTiposA Web (C#.NET) 97.488 51.017 31.670 297B Web (C#.NET) 70.735 33.644 27.795 407Tamanho dos Produtos de Software* Revisão – Identificador único de um conjunto de alterações no código-fonte
  • 12. Implementação do METACOMPasso do METACOM Ferramenta1 - Checkout das revisões SVN Extractor2 - Compilação NAnt e MSBuild3 - Análise Estática de Código NDepend e SDMetrics C#4 - Extração do Histórico de Modificações SVNStat5 - Extração de informações de Casos deUso e rastreabilidadeMantis6 - Transformação e CargaDataExtractor7 – Análise de correlações entre métricasde produto e volume de manutençõesSPSS 17.0
  • 13. Métricas de Volume de ManutençãoMétricas BásicasLoC AdicSoma do número de linhas de código adicionadas a classe, apósa revisão analisada (revisões posteriores até o momento deextração das métricas)LoC Rem.Soma do número de linhas de código removidas da classe, apósa revisão analisada (revisões futuras)Nº RevisõesTotal de revisões em que a classe foi alterada, após a revisãoanalisada (revisões futuras)Meses Após RevisãoTotal de meses transcorridos entre a revisão e a extração dasmétricasMétricas DerivadasMédia Mensal de LoCModificado (Adic. + Rem.)Soma das linhas de código modificadas (adicionas eremovidas), normalizadas pelo número de Meses ApósRevisão.Média Mensal de RevisõesTotal de revisões de alteração da classe normalizado pelonúmero de Meses Após Revisão.
  • 14. Resultados ObtidosMétricas das Classes (antesdo início das manutenções)Métricas Básicas de Volume deManutençãoMétricas Derivadas deVolume de Manutençãonormalizadas por mêsCategoria deMétricaMétrica LoC Adic.PosteriorLoC Rem.PosteriorRevisõesPost.Média Mensalde LoCModificado(Adic. + Rem.)Post.MédiaMensal deRevisõesPosterioresTamanho LoC ,586 ,511 ,491 ,609 ,518AcoplamentoAC -,126 -,168 -,139 -,156 -,165EC ,563 ,538 ,527 ,632 ,601ABC ,628 ,608 ,585 ,643 ,609Coesão LCOM ,044 ,020 ,015 ,002 -,019ComplexidadeMCC ,510 ,486 ,453 ,486 ,444HUOpt ,574 ,527 ,516 ,558 ,510HUOpd ,654 ,608 ,593 ,653 ,603Manutenibilidade MI -,404 -,419 -,393 -,397 -,409Correlações entre Métricas de Produto e Volume de Manutenção
  • 15. Análise e Discussão dos ResultadosTamanho• LOC – Correlação moderada. Classes com muitas responsabilidadespodem indicar problemas de design OO, pois ferem o SingleResponsability Principle (SRP)Acoplamento• EC e ABC – Entre as maiores correlações encontradas. Confirma osresultados de outros estudos como [Ferneley 1999]. Quanto maior adependê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 eHUOpt, referentes ao número de operandos e operadoresÍndice de Manutenibilidade (MI)• Ao contrário do esperado, observou-se fraca correlação com esteindicador, calibrado a partir de análise subjetiva de especialistas.Volume deManutenção X
  • 16. Limitações do Experimento• Realizado com dois produtos de software desenvolvidospela mesma empresa, na mesma plataforma (web) etecnologia (ASP.NET e C#), com o mesmo processo(baseado em RUP).• Rastreabilidade entre modificações de código e casos deuso/defeitos depende de processo manual.• Manutenção avaliada apenas no nível de classes, a partirdo momento em que o respectivo caso de uso éconsiderado em manutenção.
  • 17. Conclusões• Concepção do METACOM, com objetivo de identificarmétricas com potencial de indicar classes com propensão a ummaior volume de manutenção• Implementação do METACOM em estudo de caso com doisprodutos de software da indústria• Análise de correlações (método de Spearman) permitiuconfirmar e invalidar expectativas prévias sobre o potencialpreditivo de algumas métricas.• As métricas mais correlacionadas ao volume de manutençãoreferem-se aos aspectos tamanho, complexidade e acoplamento• O Índice de Manutenibilidade (MI), bastante citado, utilizado erecomendado pela SEI, não apresentou correlação com volumede manutenção
  • 18. Recomendações eTrabalhos 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 linguagensOO estaticamente tipadas (como Java, Object Pascal eC++) e dinâmicas (como Perl, Python, PHP, Javascript eRuby).
  • 19. Perguntas