Você está na página 1de 10

Mtricas de processo e projeto de software

Introduo
Mtrica um conjunto de medidas. Medio existe em qualquer processo de construo de qualquer coisa. A medio realizada no apenas na Engenharia de Software. fundamental para qualquer atividade, principalmente de engenharia. Seu propsito avaliar alguma coisa. A partir dela, podemos ter o entendimento da eficcia de algumas situaes, como do processo de software. Por exemplo, para avaliar se o processo pelo qual uma empresa produz software bom ou ruim, como se faz? O CMM um modelo para avaliar a qualidade do processo. Ele se baseia em medidas como tempo, nmero de erros, de linhas de cdigo, de manutenes, etc., para saber se o processo est funcionando bem. No possvel avaliar algo sem alguma medio. Os processos que esto no nvel mximo do CMM tm um melhoramento contnuo, o que significa que eles so constantemente medidos. As mtricas so aqui quantitativas (nmeros). Medidas de qualidade e medidas de produtividade so extradas do processo de software. A medio, alm de ajudar na avaliao do processo de software, ajuda ainda nas estimativas, por exemplo, para estimar quanto tempo necessrio para a produo de um sistema. Atualmente erra-se muito nessas estimativas por no se ter muito conhecimento ou medio do processo. Com a medio, aperfeioamentos reais podem ser conseguidos ao longo do tempo. Ento, as razes para medir processos, produtos e recursos de software podem ser:

para caracterizar, para avaliar, para prever ou para aperfeioar.

Um engenheiro de software realiza medidas e desenvolve mtricas de modo a obter indicadores. Medida um valor real, quantidade, dimenso, capacidade ou tamanho de algum atributo. Ex. nmero de erros encontrados. Mtrica um conjunto de medidas tentando obter algum sentido. Ex. erros encontrados por pessoa-hora empregada. Traz alguma informao que pode ser til.

Indicador uma mtrica, ou conjunto de mtricas, que fornece compreenso de um processo de software, de um projeto de software ou do produto propriamente dito. Ex. comparando duas mtricas, chega-se a uma concluso que permite embasar uma tomada de deciso.

Exemplos
1. O que medida, mtrica e indicador? Vide acima. 2. Defina duas medidas, uma mtrica e um indicador para avaliar um carro. Medidas: potncia, peso bruto; Mtrica: potncia por peso bruto; Indicador: comparando-se a potncia por peso bruto de dois carros, pode-se concluir qual mais veloz. 3. O que so mtricas do processo? E do projeto? Qual a principal diferena entre elas? Mtricas do processo e do projeto de software so medidas quantitativas que permitem ao pessoal de software ter idia da eficcia do processo de software. Indicadores de projeto permitem organizao de engenharia de software ter idia da eficcia de um determinado processo existente, enquanto os indicadores de processo tentam identificar problemas que atingem a produo de todos os projetos na empresa.

Mtricas de Processo e Projeto de Software


A medio fundamental para qualquer atividade de engenharia. A medio nos permite obter entendimento nos dando um mecanismo para avaliao objetiva. A medio pode ser aplicada ao processo de software, com o objetivo de melhor-lo continuamente. Mtricas do processo e do projeto de software so medidas quantitativas que permite ao pessoal de software ter idia da eficcia do processo de software.
o

Dados bsicos de qualidade e de produtividade so coletados.

Com medies, as tendncias (boas ou ms) podem ser detectadas, melhores estimativas podem ser feitas e aperfeioamentos reais podem ser conseguidos ao longo do tempo. H quatro razes para medir processos, produtos e recursos de software: para caracterizar, para avaliar, para prever ou para aperfeioar.

Medidas, Mtricas e Indicadores


o

Uma medida fornece uma indicao quantitativa da extenso, quantidade, dimenso, capacidade ou tamanho de algum atributo de um produto, ou de um processo. A IEEE define mtricas como medida quantitativa de grau em que um sistema, componente ou processo possui um determinado atributo. Quando dados de um nico ponto so coletados (por exemplo, quantidade de erros descobertos na reviso de um nico mdulo, pessoas-horas gastas na reviso de um nico mdulo, etc...), uma medida estabelecida. Um medio ocorre como resultado da coleta de um ou mais pontos. Uma mtrica de software relaciona as medidas individuais de alguma forma (por exemplo, um nmero mdio de erros encontrados por reviso ou um nmero mdio de erros encontrados por pessoa-hora, emprega nas revises). Um engenheiro de software realiza medidas e desenvolve mtricas de modo a obter indicadores. Um indicador uma mtrica, ou combinao de mtricas, que fornece compreenso de um processo de software, de um projeto de software, ou do produto propriamente dito.

Exemplo:

Quatro equipes de software esto trabalhando em um grande projeto de software. Cada equipe precisa conduzir revises de projeto, mas pode selecionar o tipo de reviso que ir usar. Pelo exame da mtrica, erros encontrados por pessoa-hora empregada, o gerente de projeto nota que duas equipes que esto usando mtodos de reviso mais formais, exibem um valor para os erros encontrados por pessoa-hora empregada, que 40% maior do que o valor das outras equipes. Considerando todos os outros parmetros iguais, isso, para o gerente de projeto, um indicador de que os mtodos de revises formais podem fornecer um retorno maior do investimento em tempo que outra abordagem de reviso menos formal. Este pode, ento, decidir sugerir que todas as equipes usem a abordagem menos formal.

A mtrica pode fornecer compreenso ao gerente de um projeto. E compreenso leva a uma tomada de deciso mais precisa. A medio comum no mundo da engenharia. Medimos consumo de energia, peso, dimenses fsicas, temperatura, voltagem, relao entre sinal e rudo.....

Na engenharia de software a medio muito menos comum temos dificuldade em concordar quanto ao que medir e dificuldade em avaliar as medidas que so coletadas. Mtricas devem ser coletadas de modo que os indicadores de processo e de produto possam ser determinados.

Mtricas de Processo

Indicadores de processo permitem organizao de engenharia de software ter idia da eficcia de um processo existente. Elas permitem aos gerentes e profissionais avaliarem o que funciona e o que no funciona. Mtricas de processo so coletadas ao longo de todos os projetos e durante longos perodos. Seu objetivo fornecer indicadores que levem ao aperfeioamento do processo de software a longo prazo.

Mtricas de Projeto

Indicadores de Projeto permitem ao gerente de projeto de software:


1. Avaliar o status de um projeto em andamento; 2. Acompanhar riscos potenciais; 3. Descobrir reas-problemas antes que elas se tornem crticas; 4. Ajustar o fluxo de trabalho ou tarefas; 5. Avaliar a capacidade da equipe de projeto e controlar a

qualidade dos produtos do trabalho de software.

Em alguns casos, as mesmas mtricas de software podem ser usadas para determinar indicadores de projeto e de processo de software.

Mtricas de Processo e aperfeioamento do processo de software


Medimos a eficcia de um processo de software indiretamente - originamos um conjunto de mtricas, baseadas nas sadas que podem ser derivadas do processo. As sadas incluem - medidas de erros descobertos antes da entrega do software, defeitos entregues aos usurios finais e por ele relatados, produtividade dos produtos de trabalho entregues, esforo humano despendido, tempo gasto, cumprimento de cronograma e outras medidas. Algumas dessas medidas, tais como defeitos entregues aos usurios finais, s podem ser utilizadas para avaliar o processo, enquanto que outras, tais como erros descobertos antes da entrega do software, podem ser utilizados para avaliar tanto o processo quanto um projeto em especfico.

As mtricas de processo de software podem fornecer benefcios significativos, medida que a organizao trabalha para aperfeioar seu nvel gerencial de maturidade de processo. Todavia, essas mtricas podem ser mal utilizadas, criando mais problemas do que conseguem resolver. Grady (1992) sugere uma etiqueta de mtricas de software, que apropriada tanto para os gerentes quanto para os profissionais, quando eles instituem um programa de mtricas de processo: Use bom senso e sensibilidade empresarial quando interpretar dados de mtricas. Fornea regularmente realimentao aos indivduos e equipes que coletam medidas e mtricas.

No use mtricas para avaliar indivduos. Trabalhe com profissionais e equipes para estabelecer metas claras e mtricas que devem ser usadas para alcan-las. Nunca use mtricas para ameaar indivduos ou equipes. Dados de mtricas que indicam uma rea problemtica no devem ser considerados negativos. Esses dados so meramente um indicador para melhoria do processo. No fique obcecado com uma nica mtrica em detrimento de outras mtricas importantes.

medida que uma organizao sente-se mais confortvel, coletando e usando mtricas de processo, a derivao de indicadores simples d lugar a uma abordagem mais rigorosa, chamada melhoria estatstica de processo de software - statistical software process improvement (SSPI). A SSPI usa a anlise de falhas de software para coletar informao sobre todos os erros e defeitos encontrados medida em que uma aplicao, sistema ou produto desenvolvido e usado. Erro - falha num produto de trabalho de engenharia de software, ou resultado a ser produzido, que encontrado por engenheiros de software antes do software ser entregue ao usurio final. Defeito - falha encontrada depois da entrega ao usurio final. A anlise de falhas funciona da seguinte maneira:
1. Todos os erros e defeitos so categorizados por origem (por exemplo: falha

na especificao, falha de lgica, no atendimento padres)


2. O custo para corrigir cada erro e defeito registrado.

3. A quantidade de erros e defeitos de cada categoria contada e ordenada

de forma decrescente.
4. O custo total de erros e defeitos de cada categoria calculado. 5. Os dados resultantes so analisados, para descobrir as categorias que

produzem um maior custo para a organizao.


6. So desenvolvidos planos para modificar o processo, com o objetivo de

eliminar (ou reduzir a frequncia das) classes de erros e defeitos que so mais dispendiosas.

Mtricas de Projeto
Mtricas de processo de software so usadas com finalidade estratgica. Medidas de projeto de software so tticas - mtricas de projeto e indicadores derivados delas so usados por um gerente de projeto e por uma equipe de software, para adaptar o fluxo de trabalho e as atividades tcnicas do projeto. A primeira aplicao das mtricas de projeto, na maioria dos projetos de software, ocorre durante as estimativas. Mtricas coletadas de projetos anteriores so usadas como base, a partir da qual as estimativas de esforo e de tempo so feitas para o trabalho atual de software. medida que o projeto prossegue, medidas de esforo e de tempo despendidos so comparadas com as estimativas originais - o gerente de projeto usa esses dados para monitorar e controlar o progresso. medida que o trabalho tcnico se inicia, outras mtricas de projeto comeam a ter importncia, como:

Taxa de produo - representada em termos de pginas de documentao, horas de reviso, pontos-por-funo e linhas de cdigo fonte entregue.

O objetivo das mtricas de projeto duplo:

Primeiro essas mtricas so usadas para minimizar o cronograma de desenvolvimento, fazendo os ajustes necessrios para evitar atrasos e problemas, e riscos em potencial. Mtricas de projeto so usadas para avaliar a qualidade do produto durante sua evoluo e, quando necessrio modificar a abordagem tcnica para aperfeioar a qualidade.

medida que a qualidade aperfeioada, os defeitos so minimizados, e, medida que a contagem de defeitos decresce, a quantidade de retrabalho durante o projeto tambm reduzida. Isto leva diminuio do custo total do projeto.

Mtricas Orientadas ao Tamanho


Mtricas orientadas ao tamanho so originadas pela normalizao das medidas de qualidade e/ou produtividade, considerando o tamanho do software que foi produzido. Se uma organizao de software mantm registros simples, uma tabela de medidas orientadas ao tamanho, pode ser criada.
Projeto 01 02 03 . . . LOC 12100 27200 20200 . . . Esforo (pessoas-ms) 24 60 43 . . . R$ (.000) 150 440 314 . . . Pag. Doc 365 1224 1050 . . . Erros 134 321 256 . . . Defeitos 29 86 64 . . . Pessoas 3 5 6 . . .

A tabela lista cada projeto de software desenvolvido e as correspondentes medidas daqueles projetos. Deve-se notar que o esforo e o custo registrados na tabela referem-se a todas as atividades de engenharia de software (anlise, projeto, codificao e teste), no apenas codificao. Para o desenvolvimento de mtricas foi escolhida uma medida base da tabela anterior - LOC (Linhas de Cdigo-Fonte) A partir dos dados rudimentares, contidos na tabela anterior, um conjunto de mtricas simples orientadas a tamanho pode ser desenvolvido para cada projeto.

Erros por KLOC (milhares de Linhas de Cdigo Fonte) Defeitos por KLOC R$ por LOC (estimado...) Pginas de documentao por KLOC.

Adicionalmente, outras mtricas interessantes podem ser calculadas:


Erros por pessoa-ms LOC por pessoa-ms $ por pgina de documentao (estimado...)

Mtricas orientadas a tamanho no so universalmente aceitas como o melhor modo de medir o processo de desenvolvimento de software.

A maior parte da controvrsia gira em torno do uso de linhas de cdigo fonte como medidas-chave. Adeptos da medida de linhas de cdigo fonte alegam que LOC um artefato de todos os projetos de desenvolvimento de software, que pode ser facilmente contado e que muitos modelos de estimativa usam tal artefato. Por outro lado, os oponentes argumentam que as medidas de LOC:

So dependentes da linguagem de programao. Penalizam programas curtos, mas bem projetados. No podem acomodar facilmente linguagens no procedimentais e que seu uso na estimativa requer um nvel de detalhes que pode ser difcil de alcanar, ou seja, significa que o planejador deve estimar o LOC a ser produzido, muito antes que a anlise e o projeto tenham sido completados.

Mtricas Orientadas a Funo


Mtricas de software orientadas a funo usam uma medida da funcionalidade entregue pela aplicao como valor da normalizao. Como funcionalidade no pode ser medida diretamente, deve ser originada indiretamente usando outras medidas diretas. Mtricas orientadas a funo foram inicialmente propostas por Albrecht em 1979 que sugeriu uma medida chamada pontos-por-funo. Pontos-por-funo - derivadas a partir da contagem (direta) do domnio da informao do software e avaliao da complexidade do software. So calculados completando a tabela apresentada a seguir. Cinco caractersticas do domnio da informao so determinadas e as contagens so registradas nos lugares prprios da tabela.
Parmetro de Medio Quantidade de entradas do usurio Quantidade de sadas do usurio Quantidade de consulta do usurio Nmero de arquivos Quantidade de interfaces externas Contagem total Contagem Simples Mdio Complexo

X X X X X

3 4 3 7 5

4 5 4 10 7

6 7 6 15 20

Quantidades de entradas do usurio - cada entrada do usurio, que fornece dados distintos orientados aplicao do software, contada. Entradas devem ser distinguidas de consultas, que so contadas separadamente. Quantidade de sadas do usurio - cada sada do usurio, que fornece informao orientada aplicao para o usurio, contada. Nesse contexto, sada refere-se a relatrios, telas, mensagens de erro, etc. Itens de dados individuais dentro de um relatrio no so contados separadamente. Novas consultas do usurio - uma consulta definida como uma entrada online, que resulta na gerao de alguma resposta imediata do software sob forma de sada on-line. Cada consulta distinta contada. Quantidade de arquivos - cada arquivo lgico (isto , grupo de dados lgicos que pode ser parte de uma base de dados maior ou um arquivo separado) contado. Quantidade de interfaces externas - todas as interfaces para transmitir informao a outro sistema, so contadas. que so usadas

Uma vez coletados esses dados, um valor de complexidade associado com cada contagem. Organizaes que usam os mtodos de pontos por funo desenvolvem critrios para determinar se uma instncia particular simples, mdia ou complexa. No entanto, esta determinao um tanto subjetiva. Para determinar os pontos por funo usada a seguinte relao: FP = contagem total X [0,65 + 0,01 X (F )] i Os F (i=1 a 14) so valores de ajuste de complexidade, baseados nas i respostas s seguintes perguntas:
1. O sistema requer salvamento (backup) e recuperao (recovery)? 2. Comunicaes de dados so necessrias? 3. H funes de processamento distribudas? 4. O desempenho crtico? 5. O sistema vai ser executado em um ambiente operacional existente,

intensivamente utilizado?
6. O sistema requer entrada de dados on-line? 7. A entrada de dados on-line, exige que a transao de entrada seja

construda atravs de vrias telas ou operaes?

8. Os arquivos mestre so atualizados on-line? 9. As entradas, sadas, arquivos ou consultas so complexas? 10. 11. 12. 13.

O processamento interno complexo? O cdigo projetado para se reusado? A converso e a instalao esto includas?

O sistema est projetado para instalaes mltiplas em diferentes organizaes? A aplicao est projetada para facilitar modificaes e para facilidade de uso pelo usurio?

14.

Cada uma destas questes respondida usando uma escala que varia entre: 0 - no importante e no aplicvel 5 - absolutamente essencial Os valores na equao e os fatores de peso da tabela, foram determinados empiricamente. Uma vez calculados, os pontos por funo so usados de modo anlogo LOC, como forma de normalizar medidas de produtividade, qualidade e outros atributos de software. Tais como:

Erros por FP Defeitos por FP $ por FP Pginas de documentao por FP FP por ms.

Você também pode gostar