EARLY-FIX Um Framework para Predição de Manutenção Corretiva de Software utilizando Métricas de Produto Gabriel de Souza Pereira Moreira (mestrando) Prof. Dr. Adilson Marques da Cunha (orientador) Instituto Tecnológico de Aeronáutica Pós-Graduação em Engenharia Eletrônica e Computação Área de Informática 14 de Dezembro de 2011
57
Embed
EARLY-FIX: Um Framework para Predição de Manutenção Corretiva de Software utilizando Métricas de Produto
Dissertação de mestrado de Gabriel de Souza Pereira Moreira, defendida e aprovada na Pós-Graduação do Instituto Tecnológico de Aeronáutica (ITA) em 14/12/2012.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
EARLY-FIXUm Framework para Predição de Manutenção Corretiva
de Software utilizando Métricas de Produto
Gabriel de Souza Pereira Moreira(mestrando)
Prof. Dr. Adilson Marques da Cunha(orientador)
Instituto Tecnológico de AeronáuticaPós-Graduação em Engenharia Eletrônica e Computação
Área de Informática
14 de Dezembro de 2011
2
Agenda
1. Introdução
2. Qualidade, Manutenção e Medição de Software
3. Predição de Manutenção Corretiva
4. EARLY-FIX
5. Prova de Conceito
6. Conclusão
3
>50%(Kemerer et. Al, 1999)
1.1 Contextualização e Motivação
do esforço
Manutenção de Software
4
(Jones, 2007)
1.1 Contextualização e Motivação
dos profissionais
>50%
Manutenção de Software
5
entre 40 e 90%
(Bennet, 2002)
1.1 Contextualização e Motivação
dos custos
Manutenção de Software
6
1.1 Contextualização e Motivação
Manutenção
Desenvolvimento
(Blanc, 2009)
Aumento do ciclo de vida do software (Ware, 2007)
Menor foco em práticas e técnicas para atividades de
manutenção
7
1.1 Contextualização e Motivação
Desafios para academia e indústria
de software
1 – Identificação de fatores
que influenciam na
produtividade da manutenção
2 – Elaboração de métodos para estimativa de manutenção
(Boehm, 2010)
8
1.1 Contextualização e Motivação
Tipos de Manutenção
21%
(ISO 14764, 2006)(Singh, 2007)
CorretivaAdaptativa
de MelhoriaPreventiva
9
Características de Qualidade do Produto de
Software
Esforço e Assertividade da Manutenção
(Ware 2007), (Ahn 2003), (ISO 25000)
1.1 Contextualização e Motivação
10
Investigação, concepção, implementação e
verificação de um arcabouço (framework)
para a Predição de Manutenção Corretiva
baseada em Métricas de Produto de
Software, envolvendo modelos, métodos,
técnicas e ferramentas, a fim de fornecer
informações que possam embasar decisões
técnicas e gerenciais durante um projeto para a
redução de esforços, custos e riscos em
futuras manutenções corretivas.
1.2 Objetivo
11
1.3 Requisitos da pesquisa
• Um levantamento bibliográfico
• Uma investigação sobre trabalhos relacionados
• A concepção e a elaboração de um framework
para predição de manutenção corretiva
• A implementação e verificação do framework
em dois projetos da indústria
• A comparação dos modelos preditivos obtidos
• Uma análise e discussão dos principais
resultados.
12
2.1 Processos Tradicionais de Desenvolvimento
(Royce, 1970)
13
2.2 Processos Iterativos de Desenvolvimento
RUP
Scrum
XP
FDD
Open UP
14
2.3 Qualidade de Produto de Software
Modelo de Qualidade no Ciclo de Vida (ISO 25000, 2005)
ISO/IEC 25000:2005 - Software Quality Requirements and Evaluation (SQuaRE)
Focos desta pesquisa
15
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
2.4 Métricas de Qualidade Interna de Software
Principais métricas utilizadas nesta pesquisa
16
2.4 Técnicas de Garantia de Qualidade
Testes
Inspeções
17
2.5 Custos de Correção de Defeitos após Implantação
10xmaiores do que na fase
de construção(McConnell, 2004)
100x
maiores do que na fase de análise e design(Boehm, 2001)
18
3.1 Predição de Manutenção Corretiva
Benefícios
• Suporte ao planejamento e execução das
atividades de testes (Denaro, 2006)
• Priorização de módulos mais propensos a defeitos
* Segundo revisão sistemática conduzida em (Pontes, 2009)
Regressã
o Binomial Nega
tiva
Regressã
o Logís
tica
Classifi
cador B
ayesia
no
Árvore de Decis
ão C4.5
Árvore de Decis
ão J.4
8
Regressã
o Linear
02468
Técnicas de Predição de Defeitos mais utilizadas em artigos entre 2005 e 2008 *
22
4.1 EARLY-FIX
Framework para Predição de Manutenção Corretiva
Principal Contribuição
23
4.2 Modelo Conceitual de Indicadores de Volume (MC-IV)
Baseado no paradigma Goal-Question-Indicator-Measure (GQIM)
24
4.3 Modelo de Indicadores de Predição de Volume (MI-PV)
1ª contribuição complementar
25
4.4 Desafios de Predição em Projetos Iterativos
1 – Como identificar as
modificações corretivas?
2 – Como identificar os módulos mais defeituosos?
26
4.4 Modelo de Rastreabilidade
27
4.4 Método de Rastreabilidade entre Produto de Software . e Histórico de Manutenções (MR-PHM)
2ª contribuição complementar
28
4.6 Método de Medição de Produto de Software (MM-PS)
1 - Copiar localmente a última revisão do código-fonte do sistema, a partir do repositório do SCV
2 - Realizar a compilação do código-fonte e gerar os respectivos arquivos binários
3 - Utilizar técnicas de análise estática para extração de medidas de módulos de software
4 - Armazenar as medidas dos módulos em um repositório de dados, associadas à data da revisão.
3ª contribuição complementar
29
4.7 Método de Medição de Histórico de Manutenções Corretivas (MM-HMC)
Para cada arquivo de código-fonte (módulo de software) do sistema
Para cada revisão (do SCV) onde o arquivo foi modificado
Se a revisão estiver associada a correção de um defeito registrado no sistema Issue Tracker
1 - Incrementar e armazenar a medida Quantidade de Defeitos encontrados no módulo de software, associada à data da detecção
2 - Calcular a quantidade de linhas inseridas, alteradas e removidas em relação à revisão anterior do arquivo
3 - Armazenar a medida Quantidade de Modificações Corretivas, associada à data da correção
4ª contribuição complementar
30
5ª contribuição complementar
4.8 Método de Medições Consolidadas (MM-C)
Para cada arquivo de código-fonte (módulo de software) do sistema
1 - Identificar a data em que o módulo de software foi implantado no ambiente do usuário
2 - Obter as medidas do módulo de software na última revisão antes de sua implantação
3 - Acumular a quantidade de defeitos detectados após a implantação do módulo, agrupada por período de tempo
4 - Acumular a quantidade de modificações corretivas realizadas após a implantação do módulo, agrupada por período de tempo
5 - Inserir na tabela consolidada um registro com as medidas do módulo de software obtidas, a quantidade de defeitos e de modificações corretivas por período.
31
6ª contribuição complementar
4.9 Método de Calibração de Predição de Volume (MC-PV)
1 - Utilizar como variáveis independentes as medidas do módulo de software em sua revisão de entrega
2 - Definir a variável dependente para construção do modelo (Quantidade de Defeitos ou de Modificações Corretivas) para um determinado período (3, 6 ou 12 meses)
3 - Definir uma técnica de regressão para gerar modelos preditivos das variáveis dependentes
4 - Definir o método de seleção de variáveis
5 - Calibrar modelos de predição utilizando a técnica de regressão e o método de seleção de variáveis selecionado
6 - Selecionar o modelo cujas predições melhor se aproximem dos valores observados na variável dependente, utilizando uma medida estatística
7 - Armazenar os coeficientes do modelo preditivo selecionado e associar ao indicador correspondente
8 - Aplicar a função do modelo preditivo selecionado para calcular o valor dos indicadores de volume de manutenção corretiva
32
7ª contribuição complementar
4.10 Método de Detecção de Módulos Propensos à manutenção corretiva (MD-MP)
1 - Definir o indicador de manutenção corretiva que será utilizado na Análise de Pareto (Quantidade de Defeitos ou de Modificações Corretivas de um período)
2 - Ordenar, em ordem decrescente, os módulos pelos valores estimados para o indicador de manutenção corretiva selecionado
3 - Definir o percentual do critério de corte da Análise de Pareto
4 - Selecionar os módulos com maiores valores, até que seja atingido o percentual de módulos definido no critério de corte
5 - Priorizar os módulos selecionados para realização de atividades relacionadas à qualidade
• Quantidade de Defeitos• Quantidade de Modificações Corretivas
** para os primeiros 3, 6 e 12 meses pós-implantação
Variáveis Independentes
Variáveis Dependentes
Pred
ição
35
5.3 Implementação dos Métodos de Medição
3, 4 e 5ª contribuições
complementares
36
5.4 Implementação do Método de Medições Consolidadas (MM-C)
Estrutura da tabela consolidada de medidas
5ª contribuição complementar
37
5.5 Análise Exploratória das Medidas
Histograma das variáveis dependentes
38
5.6 MC-PV - Técnicas de Regressão implementadas
Regressão Linear Multivariada (MLR)
Regressão de Poisson (PR)
Regressão de Poisson Inflada de Zeros (ZIP)
Regressão Binomial Negativa (NB)
Regressão Binomial Negativa Inflada de Zeros (ZINB)
1
2
3
4
5
6ª contribuição complementar
39
5.6 MC-PV - Comparação dos Modelos de Defeitos
Comparação dos coeficientes R2
Comparação dos coeficientes R2 de McFadden
6ª contribuição complementar
40
5.7 MC-PV - Comparação dos Modelos de Modificação Corretiva
Comparação dos coeficientes R2
Comparação dos coeficientes R2 de McFadden
6ª contribuição complementar
41
5.8 Diagramas de Dispersão – Observado x Estimado
42
5.9 MD-MP - Estimativa de Defeitos
7ª contribuição complementar
43
5.10 MD-MP - Estimativa de Modificações Corretivas
7ª contribuição complementar
44
5.11 Limitações da Prova de Conceito (1/2)
• Projetos investigados:– Contexto semelhante– Defeitos não associados às modificações que os corrigiram.
(Projetos A e B com 67% e 45% dos defeitos associados, respectivamente)– Diferença entre datas de entrega de iteração e datas de implantação
• Métricas de Produto e de Manutenção Utilizadas:– Críticas a Complexidade Ciclomática e da suíte de Halstead– As métricas de produto utilizadas para calibração dos modelos referem-se à revisão
de entrega, não sendo atualizadas após manutenções futuras
45
5.11 Limitações da Prova de Conceito (2/2)
• Análise Estatística:– Utilização do método de seleção de variáveis Backward Elimination removeu
variáveis de baixa significância, porém reduziu a eficiência de predição– As variáveis dependentes, especialmente de modificações corretivas, apresentaram
super-dispersão. Mesmo assim, as técnicas de Regressão de Poisson geraram os modelos com melhor predição de variabilidade e desvio
– Não utilização de técnicas de segmentação de base, calibrando os modelos sobre toda a base que se deseja prever
46
7. Conclusão
• O framework EARLY-FIX concebido resultou da investigação e da elaboração de modelos, métodos e técnicas.
• O EARLY-FIX propiciou:
• Coleta de medidas
• Predição de volume de manutenção corretiva
• Detecção de módulos propensos a defeitos
• Endereçamento de projetos iterativos de software
47
7.1 Conclusões Específicas (1/5)
O framework EARLY-FIX foi implementado:
• Em 2 projetos iterativos, em fase de manutenção, da indústria de software
• Utilizando uma integração entre os sistemas de issue tracker Mantis e de controle de versão SVN
• A partir de duas ferramentas e scripts desenvolvidos para automatização da implementação dos métodos de medição
48
7.1 Conclusões Específicas (2/5)
A partir de uma análise estatística exploratória verificou-se:
• A correteza das medidas obtidas de produto
• Outliers nas medidas de volume de manutenção
• Semelhanças entre distribuições das variáveis dependentes e de Poisson
49
7.1 Conclusões Específicas (3/5)
O Método de Calibração de Predição de Volume (MC-PV) foi implementado com 5 técnicas de regressão:
• Linear Multivariada (MLR)• Poisson (PR)• Poisson Inflada de Zeros (ZIP)• Binominal Negativa (NB)• Binomial Negativa Inflada de Zeros (ZINB)
50
7.1 Conclusões Específicas (4/5)
Na verificação do MC-PV:
• Comparou-se os modelos preditivos obtidos com os coeficientes R2 e R2 de McFadden
• Observou-se que as técnicas de PR e ZIP geraram os modelos com maior predição da variabilidade (R2) e do desvio (R2 de McFadden) das variáveis dependentes
• Verificou-se distribuições segundo a Lei de Pareto (80-20) nas variáveis dependentes
51
7.1 Conclusões Específicas (5/5)
Na implementação do Método de Detecção de Módulos Propensos à manutenção corretiva (MD-MP):
• Utilizou-se a técnica de Análise de Pareto sobre os valores estimados pelos modelos
• Com 5% (14 das 274 classes) como critério de corte, selecionou-se as que representaram: • 51% das modificações corretivas• 57% das mais defeituosas dos projetos.
52
7.2 Considerações Gerais
• Relacionamentos entre métricas de produto de software (especialmente de tamanho, complexidade e acoplamento), e de volume de manutenções corretivas normalmente ocorrem (Riaz, 2009)
• Defeitos apresentam, em geral, uma distribuição segundo a Lei de Pareto (Endres, 2010)
• Métricas de produto de software:
• Buscam mensurar características de código-fonte e de design (ISO 25000, 2005)
• Apresentam potencial para predição de volume de manutenção corretiva (Nair, 2010)
53
2ª contribuição complementar
7.3 Principais Contribuições
7ª contribuição complementar
1ª contribuição complementar
3ª contribuição complementar
5ª contribuição complementar
6ª contribuição complementar
4ª contribuição
complementar
Principal
Contribuição
EARLY-FIX
54
7.3 Contribuições Adicionais
1. Implementação e verificação do EARLY-FIX em uma prova de conceito em 2 projetos de software para a indústria
2. Comparação entre os modelos gerados pelas 5 técnicas de regressão, utilizando os 2 coeficientes de performance:
• R2
• R2 de McFadden
55
7. 4 Recomendações
• Implementação do EARLY-FIX em outros contextos
• Extensão do framework EARLY-FIX com novos Métodos de Calibração e Modelos de Indicadores
• Criação de modelos de apoio a tomada de decisão, visando reduzir o volume de manutenções corretivas futuras
• Criação de mecanismos que evitem commits de correções não associados a defeitos, visando reduzir desvios nos modelos preditivos
56
7.5 Sugestões de Trabalhos Futuros
• Construção de modelos baseados em métricas de produto, para estimativa de esforços, custos e riscos de manutenção corretiva
• Implementação do EARLY-FIX em projetos em execução e análise dos benefícios obtidos com ações direcionadas a partir das informações obtidas com o framework
• Extensão do EARLY-FIX, utilizando modelos de análise temporal, para avaliar tendências a defeitos, em futuras iterações
57
7.6 Artigos publicados relacionados com esta pesquisa
1. CARVALHO, H. P. B. ; BATTAGLIA, Danilo ; MONTINI, Denis Ávila ; MOREIRA, Gabriel de Souza Pereira ; DIAS, Luiz Alberto Vieira; TASINAFFO, P. M. . ETL Integration of Software Model for Production Line Manufacture Cells MIS. In: ITNG '10. Seventh International Conference on Information Technology: New Generations, 2010, 2010, Las Vegas, NE, USA. ITNG 2010 Proceedings, 2010
2. MOREIRA, Gabriel de Souza Pereira ; MELLADO, Roberto Pepato ; MONTINI, Denis Ávila ; DIAS, Luiz Alberto Vieira; CUNHA, Adilson Marques da . Software Product Measurement and Analysis in a Continuous Integration Environment. In: ITNG '10. Seventh International Conference on Information Technology: New Generations, 2010, 2010, Las Vegas, NE, USA. ITNG 2010 Proceedings, 2010
3. MOREIRA, Gabriel de Souza Pereira ; MELLADO, Roberto Pepato ; CUNHA, Adilson Marques da ; DIAS, Luiz Alberto Vieira. METACOM: Um Método para Análise de Correlação entre Métricas de Produto de Software e Propensão a Manutenção. In: Simpósio Brasileiro de Qualidade de Software - SBQS, 2011, Curitiba-PR. Proceedings of Simpósio Brasileiro de Qualidade de Software 2011, 2011
4. MELLADO, R. P. ; MOREIRA, Gabriel de Souza Pereira ; Junior, R. L. M. ; CUNHA, Adilson Marques da ; DIAS, Luiz Alberto Vieira. An Empirical Analysis of eXtreme Programming Practices and its Impact on Software Quality Metrics. In: Workshop Brasileiro de Métodos Ágeis - WBMA, 2011, Fortaleza - CE. Proceedings of Workshop Brasileiro de Métodos Ágeis 2011, 2011