early-fix: um framework para predição de manutenção corretiva de software utilizando métricas...

Post on 20-Dec-2014

2.129 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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.

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

para realização de inspeções e refatorações

(Ware, 2007)

• Identificação de fatores que influenciam na

ocorrência de defeitos (Boehm, 2010)

• Suporte aos modelos de estimativa de custos e

riscos de manutenção corretiva (Yu, 2006).

19

3.1 Predição de Manutenção Corretiva

Trabalhos relacionados

Predição de

Volume de

Defeitos

Modificações

Propensão a

Defeitos

Modificações

Manutenção em

Esforços

Custos

Riscos

Manutenibilidade como

Característica de Qualidade

Esforço de Modificações

Utilizando como preditores

Métricas de Produto (código-fonte)

Tendência de Histórico de Defeitos

Tendência de Histórico de Modificações

Tamanho Funcional (e.g. Pontos de Função)

Fatores coletados em questionários

Focos desta pesquisa

20

3.2 Predição de Defeitos

Algumas empresas que utilizam

(Nagappan, 2005)

21

3.2 Predição de 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

33

5.1 Projetos participantes no survey

34

5.2 Métricas Utilizadas

Métricas de Produto *

• Tamanho• Complexidade• Acoplamento• Coesão• Herança

* na revisão de entrega da classe

Métricas de Volume de Manutenção Corretiva **

• 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

top related