2.3. Análise de desempenho de processos de software
2.3.5. Gráficos de controle
Os gráficos de controle são uma das principais ferramentas para a análise de
desempenho de processos. Um gráfico de controle é uma ferramenta de controle estatístico de
processos que apresenta a execução de determinado processo geralmente no decorrer do
tempo, incluindo uma linha central que representa a média ou mediana do desempenho
observado no processo, e limites de controle superior e inferior para avaliação da estabilidade
do processo (STEPENHRUST, 2005, p. 447).
A estrutura clássica de um gráfico de controle é apresentada na Figura 3. Os limites de
controle superior (LCS) e inferior (LCI) em cada lado da linha central (LC) são derivados de
uma das possíveis medidas de variação do processo: amplitude, desvio padrão, amplitude
móvel, entre outras.
Figura 3: Estrutura do gráfico de controle (Adaptada de Florac e Carleton, 1999, p. 77).
Os limites de controle superior e inferior são definidos a mais e menos 3 sigmas da
linha central, respectivamente. Quando um limite de controle é definido com um valor além
da variação possível do processo, este limite é normalmente omitido do gráfico, como por
exemplo, no caso de um limite de controle inferior (LCS) negativo para a medida densidade
de defeitos (FLORAC; CARLETON, 1999, p. 77).
Como descrito nas seções seguintes, existem diferentes tipos de gráficos de controle
disponíveis para uso como instrumento controle estatístico de processos. Características como
o tipo de dado sendo representado no gráfico, bem como o agrupamento destes dados em cada
observação do gráfico são fatores determinantes para a seleção do gráfico e análise correta do
desempenho do processo.
2.3.5.1.
Tipos de dados
Segundo Florac e Carleton (1999, p. 78), Kulpa e Johnson (2008, p. 247), Stapenhrust
(2005, p. 265), e Oakland (2003, p. 45), os dados utilizados para análise de desempenho de
processos podem ser classificados como variáveis ou atributos. Ao exibir os dados em um
gráfico de controle, é importante ter um entendimento claro das diferenças entre os tipos de
dados, já que os tipos de gráficos de controle e seus limites são em geral diferentes para
variáveis e atributos.
Dados variáveis, também chamados de dados de medições, medem normalmente
fenômenos contínuos ou contagens que representam medição de tamanho ou situação.
Exemplos de variáveis para a área de software incluem esforço gasto, anos de experiência,
utilização de memória e custo de retrabalho.
Por outro lado, os dados são classificados como atributos, ou dados discretos, nos
casos onde a informação é registrada somente quando o processo atende a determinado
critério. Atributos são normalmente medidos como contagens, como por exemplo: número de
defeitos encontrados, número de itens defeituosos, número de linhas de código de
determinado tipo, número de pessoas com determinada habilidade, entre outros.
2.3.5.2.
Subgrupos de dados
Para Wheeler e Chambers (1992, pp. 40-42), dado determinado processo, medido a
partir de uma quantidade de valores numéricos, é importante determinar como estes dados
serão utilizados para análise e conclusão a respeito do fenômeno.
O conceito de subgrupo de dados trata da organização dos dados de maneira racional,
de forma que seja possível monitorar tanto o valor quanto a dispersão dos valores produzidos
pelo processo. Um subgrupo envolve um conjunto de múltiplas observações da medida
coletadas dentro de um curto espaço de tempo e, principalmente, sob as mesmas condições de
execução do processo (WHEELER; CHAMBERS, 1992, pp. 40-42) (FLORAC;
CARLETON, 1999, p. 137).
As medidas de um determinado subgrupo são apresentadas no gráfico de controle
como uma única observação do processo, representada pela média ou mediana dos dados da
amostra. Espera-se, portanto que exista uniformidade nos dados do subgrupo, e que variações
internas ao subgrupo sejam resultado de causas semelhantes de variação (FLORAC;
CARLETON, 1999, p. 137).
A homogeneidade dos subgrupos de dados é importante porque a variação das
observações dentro do subgrupo é utilizada para compor os limites de controle para o
processo. Minimizar esta variação torna os limites de controle mais ajustados ao desempenho
real do processo e, portanto torna mais fácil e precisa a identificação de causas especiais de
variação entre os subgrupos (FLORAC; CARLETON, 1999, p. 138).
2.3.5.3.
Seleção do gráfico de controle
Diferentes tipos de gráficos de controle são disponíveis para uso pela organização, e a
seleção de qual tipo é o mais adequado para cada situação não é trivial (KULPA; JOHNSON,
2008, pp. 244-247).
A Figura 4 apresenta de forma resumida as características envolvidas na seleção e as
questões que a organização precisa responder a respeito dos seus processos antes da decisão
de que gráfico de controle utilizar.
Figura 4: Fluxograma de decisão do gráfico de controle (Adaptado de Stapenhrust, 2005, p. 264)
O processo de seleção apresentado na Figura 4 inicia-se pela decisão de que tipo de
dado a medida representa (1), conforme explicado anteriormente na seção 2.3.5.1. Caso a
medida represente um dado variável, a segunda pergunta a ser respondida é qual o tamanho
do subgrupo de dados apresentado em cada observação da medida (1.1), conforme descrito na
seção 2.3.5.2.
Considerando o dado é variável (1), caso o gráfico contenha apenas valores
individuais, ou seja, subgrupo de tamanho igual a 1 (1.1), então o gráfico de controle mais
adequado é o de médias e amplitudes móveis (XmR). Se o subgrupo for maior do que uma
coleta da medida (1.1), então se deve perguntar se o gráfico de controle será apresentado a
partir do desvio padrão ou amplitude das medidas dentro do subgrupo (1.1.1).
Neste caso, se o gráfico de controle for representado pela amplitude das medidas do
subgrupo, alternativa normalmente adequada quando o subgrupo tiver tamanho menor ou
igual a 10 medidas, o gráfico de médias e amplitudes (X-bar e R) é o indicado. Agora, se o
gráfico for construído a partir do desvio padrão dos dados do subgrupo, normalmente
indicado para subgrupos de tamanho maior que 10 medidas, então o gráfico de médias e
desvio padrão (X-bar e S) passa a ser o selecionado.
Caso a medida seja um atributo ao invés de uma variável (1), o próximo passo é
avaliar o seu modelo de distribuição estatística (1.2). Este modelo pode ser binomial, como no
caso quando a medida baseia-se na quantidade de produtos com defeito, ou Poisson, quando,
por exemplo, a medida representa a quantidade de defeitos de um ou mais produtos.
Independentemente do modelo de distribuição (1.2) selecionado, a última pergunta
(1.2.1 e 1.2.2) refere-se à configuração das amostras de dados, ou áreas de oportunidade.
Neste caso, é necessário avaliar se as amostras de dados possuem tamanhos fixos ou variáveis
dentro de cada medida.
Por exemplo, uma medida de densidade de produtos defeituosos a cada 100 produtos
avaliados, representa uma distribuição binomial de amostras de tamanho fixo (100 produtos).
Neste caso o gráfico mais adequado é o np Chart. Já uma medida de densidade de defeitos por
ponto de função em sistemas de escopo diferentes, será representada por uma distribuição
Poisson em amostras de tamanhos variáveis, sendo mais adequado o uso de gráficos do tipo u
chart.
O Quadro 6 apresenta os principais tipos de gráficos de controle, suas aplicações e
exemplos de utilização em processos de engenharia de software.
Quadro 6: Resumo dos tipos de cartas de controle
Tipo de gráfico de
controle Descrição e aplicação Exemplos para área de software
X-bar e R
(XbarR) Gráficos para médias (X-bar) e dispersão (R) são úteis para determinar quando a média (X-bar) ou a dispersão do subgrupo (R) são afetadas por causas especiais.
Estes gráficos de controle respondem às perguntas: ‘Qual é a tendência central do processo?’ e ‘Quanta variação ocorreu de um subgrupo a outro no decorrer do tempo?’
Utilizada para dados do tipo variável com subgrupos pequenos (menores ou iguais a 10 observações).
• Média de esforço realizado diariamente com retrabalho por semana (neste caso o subgrupo é de 1 semana ou 5 dias úteis)
• Produtividade média de projetos Java por mês (neste caso o subgrupo é o conjunto de projetos Java finalizados no mês)
X-bar e S
(XbarS) Gráficos para médias (X-bar) e desvio padrão (S) são semelhantes às cartas X-bar e R, porém são mais eficientes que a primeira para subgrupos grandes (maiores que 10 observações).
• Taxa de revisão de código (LOC/hora) por release (neste caso o subgrupo é cada release, contendo mais do que 10 revisões de código)
X e mR
(XmR) Nos casos onde as medições são coletadas de forma esparsa ou quando são utilizadas individualmente para avaliação do processo, somente é possível apresentar valores individuais nos gráficos de controle. O gráfico X é utilizado para valores individuais (subgrupo de tamanho 1), enquanto o gráfico mR apresenta a variação entre dois valores consecutivos do processo.
Utilizada tanto para variáveis quanto para atributos, independente de modelo de distribuição e com valores individuais (subgrupo igual a 1).
Aplicável para a maioria das medidas de processos de software:
• Produtividade de um determinado projeto por mês
• Variação de prazo de um determinado projeto por fase
• Esforço realizado
diariamente com retrabalho em determinado projeto
Quadro 6 (cont.): Resumo dos tipos de cartas de controle
Tipo de gráfico
de controle
Descrição e aplicação Exemplos para área de software
c-chart Utilizada para dados do tipo atributo com distribuição Poisson e amostras de tamanhos constantes, normalmente maiores que 5 observações.
• Número de defeitos encontrados durante inspeção ou testes
• Número de shutdowns não planejados no servidor de aplicação
u-chart Gráfico de controle mais utilizado em processos de software caso os dados sejam atributos e a distribuição seja Poisson. É mais flexível que a carta c, pois permite a normalização dos dados (conversão para taxas), já que o tamanho das amostras não é constante.
Utilizada para dados do tipo atributo com distribuição Poisson e amostras de tamanhos variáveis.
• Defeitos por milhares de linhas de código
• Defeitos por pontos de função
np-
chart Utilizada para dados do tipo atributo com distribuição binomial e todas as amostras de tamanhos constantes, normalmente maiores ou iguais a 50 observações.
Praticamente não é utilizado para processos de software. Mais adequado para processos industriais.
p-chart Utilizada para dados do tipo atributo com distribuição binomial e amostras de tamanhos variáveis, normalmente maiores ou iguais a 50 observações.
• Percentual de código fonte em um módulo que possui determinada instrução (ex.: comentário)
De acordo com Florac e Carleton (1999) e Kulpa e Johnson (2008), os gráficos de
controle do tipo XmR são quase sempre os mais adequados para a análise de desempenho de
processos de software. As razões para a sugestão de uso de gráficos do tipo XmR são:
• Os gráficos XmR são recomendados para uso tanto para variáveis quanto para
atributos.
• A utilização de valores individuais em cartas do tipo XmR evita a preocupação
quanto à homogeneidade do subgrupo.
• Os gráficos do tipo XmR não possuem como requisito nenhum modelo de
distribuição específico. Sendo assim, estes provêem um instrumento confiável
para análise do desempenho do processo, sem a preocupação em garantir que
o processo respeite uma distribuição normal, binomial ou Poisson.
• Por fim, os gráficos de controle XmR são mais fáceis de utilizar, mais fáceis de
entender e mais fáceis de implementar, além de serem os mais encontrados
em organizações de elevado nível de maturidade.
Por outro lado, apesar das vantagens apresentadas acima, o gráfico de controle do tipo
XmR não é a ferramenta mais adequada para a análise da medida de Densidade de defeitos
(FLORAC; CARLETON, 1999, p. 121). Normalmente, esta medida respeita um modelo de
distribuição Poisson, onde a densidade de defeitos tende a diminuir enquanto aumenta o
tamanho do objeto de verificação. Para estes casos, as cartas de controle dos tipos c e u
aparecem como uma melhor opção em relação à XmR.
2.3.5.4.
Cálculo da linha central e limites de controle
Segundo Florac e Carleton (1999, p. 76), os parâmetros utilizados para avaliação do
desempenho futuro do processo não devem ser definidos arbitrariamente, já que devem
representar o desempenho real do processo sob avaliação.
Os cálculos da linha central e limites de controle variam conforme o tipo de gráfico de
controle e a composição dos subgrupos utilizados para representar a medida. No ANEXO A
são apresentadas as tabelas de fórmulas e as constantes utilizadas para cálculo da linha central
e dos limites de controle superior e inferior do gráfico de controle. Para ilustrar este processo,
são apresentados detalhadamente a seguir o raciocínio de cálculo para os gráficos de controle
dos tipos XmR e u Chart.
Em um gráfico de controle XmR supõe-se que é possível apenas estabelecer subgrupos
de dados de tamanho igual a 1, ou seja, que os valores exibidos no gráfico correspondem a
observações individuais da execução do processo (FLORAC; CARLETON, 1999, p. 94).
Nesta situação não é possível calcular o valor do sigma a partir de uma única medida, então o
cálculo dos limites de controle dá-se a partir das mudanças ocorridas no processo entre duas
observações sucessivas (amplitude móvel - mR).
O gráfico de controle de valores individuais (X) demonstra a evolução das medidas em
relação ao tempo. Neste gráfico, conforme fórmulas apresentadas no Quadro 7, a linha
central (LC) é calculada a partir da média dos valores da medida ( X ) e os limites de controle
superior (LCS) e inferior (LCI) são calculados, respectivamente, a partir da soma e subtração
do valor constante de 2,66 vezes a média das amplitudes móveis ( mR ) em relação à linha
central (LC).
O cálculo do valor do sigma, utilizado para estabelecer limites intermediários de
controle, é realizado a partir da divisão da média das amplitudes móveis ( mR ) pelo valor
constante de 1,128.
Para o gráfico de controle de amplitudes móveis (mR) a linha central (LC) é calculada
a partir da média das variações do indicador ( mR ), o limite de controle superior (LCS) é
calculado a partir de 3,268 vezes a média ( mR ). Neste gráfico o limite inferior (LCI) é
sempre igual a zero, pois os valores de amplitude são absolutos.
As constantes
23
d
,
d e
2D utilizadas nos cálculos são fatores tabulados por
4estatísticos para conversão das médias de amplitudes para estimativas de limites 3-sigma.
Para este gráfico de controle, estas variáveis assumem os valores únicos de 2,66, 1,128 e
3,268, respectivamente, já que a amostra utilizada para cálculo (n) é sempre de tamanho igual
a 2, representada pela amplitude móvel a cada dois valores consecutivos da medida. A tabela
completa de fatores de correção e constantes para este e outros tipos de gráficos de controle é
apresentada no ANEXO A.
Quadro 7: Fórmulas para o gráfico de controle XmR (Adaptado de Florac e Carleton, 1999, p. 95)
Fórmulas base Linha central e Limites de controle
n
X
X
X
X
k n+
+
+
=
1 2K
1
1
onde
,
1−
≤
≤
−
=
X
+X
i
k
mR
i i ik
k i i imR
mR
∑
= ==
1mR
X
d
mR
X
LCS
X2,660
3
2+
=
+
=
X
LC
X=
mR
X
d
mR
X
LCI
X2,660
3
2−
=
−
=
128
,
1
2mR
d
mR
sigma
X=
=
mR
mR
D
LCS
mR=
4=3,268
mR
LC
mR=
0
=
LCI
mRPara o caso do gráfico de controle do tipo u Chart, conforme fórmulas apresentadas no
Quadro 8, considera-se que o valor de cada observação da medida (u ) é calculado a partir da
itaxa de ocorrência de determinado evento (c ) em relação ao tamanho da amostra (
ia ). Neste
igráfico, a premissa é que o tamanho das amostras não é constante, ou seja, variam para cada
coleta da medida, como nos exemplos de densidade de defeitos, onde o tamanho do produto
testado é variável. (FLORAC; CARLETON, 1999, p. 115).
A linha central (LC) para o u Chart é calculada a partir da média geral dos eventos
sobre o tamanho total das amostras ( u ). A presença do tamanho da amostra (a ) na
icomposição da fórmula dos limites de controle tem como conseqüência limites de controle
superior (LCS) e inferior (LCI) variáveis, ou seja, para cada observação da medida, os limites
são re-calculados a partir da média geral ( u ) mais ou menos três vezes o valor do sigma, que
por sua vez é representado pela relação entre esta média e o tamanho a amostra para cada
observação da medida (a ).
iQuadro 8: Fórmulas para o gráfico de controle u Chart (Adaptado de Florac e Carleton, 1999, p. 116)
Fórmulas base Linha central e Limites de
controle
a
c
u
i i=
i , onde:•
c
i é igual à quantidade de ocorrências (defeitos)•
a
i é igual à área de oportunidade ou tamanho da amostra∑∑
=
a
c
i iu
a
LCS
i uu
u+3
=
u
LC
u=
a
LCI
i uu
u−3
=
a
sigma
i uu
=
De acordo com Florac e Carleton (1999, p. 2008), mesmo com subgrupos de dados de
tamanho igual a 1 (XmR), 3 a 4 subgrupos já são suficientes para estabelecer limites de
controle temporários (trial limits) e a partir destes identificar situações de processos de fora de
controle. Porém, é prematuro concluir que um processo é estável com menos de 20 a 30
subgrupos de dados coletados, no caso de subgrupos de tamanho maior que 1 (X-bar e S), ou
pelo menos 40 a 45 dados individuais, no caso de gráficos XmR.
2.3.5.5.
Regras para avaliação de processos em gráficos de controle
Os gráficos de controle são examinados a procura de padrões que mostrem
comportamentos incomuns do processo que o coloquem em situações de instabilidade ou fora
de controle.
Segundo Wheeler e Chambers (1992, p. 96), as quatro regras listadas abaixo e
exemplificadas na Figura 5Erro! Fonte de referência não encontrada. são suficientes para
detectar situações de instabilidade do processo em um gráfico de controle:
• Teste 1: Um ou mais pontos fora dos limites de controle superior (LC + 3
sigmas) e inferior (LC - 3 sigmas).
• Teste 2: Pelo menos dois de três pontos consecutivos a mais de 2 sigmas
da linha central (LC), no mesmo lado da linha central. Processos
previsíveis tendem a apresentar 85% a 90% dos dados mais próximos à
linha central (LC).
• Teste 3: Pelo menos quatro de cinco pontos consecutivos a mais de 1
sigma da linha central (LC), no mesmo lado da linha central. Processos
previsíveis tendem a apresentar 85% a 90% dos dados mais próximos à
linha central (LC).
• Teste 4: Pelo menos oito pontos consecutivos localizados no mesmo lado
da linha central (LC). Demonstra que provavelmente tenha ocorrido uma
mudança no desempenho do processo que impacta a sua linha de base
(linha central e limites de controle).
Figura 5: Testes de instabilidade de processo