Você está na página 1de 57

Introduo a Mtricas de Software

Alexandre Vasconcelos
amlv@cin.ufpe.br

Mtricas de Software

2005, Alexandre Vasconcelos

1/57

Objetivos

Entender porque medio importante para

avaliao e garantia da qualidade de


software
Entender as abordagens principais de
mtricas e como elas so utilizadas
Conhecer algumas mtricas e suas
aplicaes
Entender o que um Plano de Mtricas e
como escrever um

Mtricas de Software

2005, Alexandre Vasconcelos

2/57

Motivao
Um dos objetivos bsicos da Engenharia de Software : a transformao da
criao de sistemas software de uma maneira artstica, indisciplinada e pouco
entendvel para uma forma devidamente controlada, quantificada e
previsvel

Mtricas de Software um assunto discutido h mais de 20 anos na engenharia de


software ... e no entanto no verificada sua utilizao, na prtica, pela grande maioria
dos projetos de construo de software

Pesquisas realizadas em empresas de software indicam que mais da metade


de grandes projetos de software se deparam com algum tipo de atraso,
excesso de custo ou prazo ou algum fracasso na execuo quando
implantado
Falta de
controle dos projetos

Mtricas de Software

2005, Alexandre Vasconcelos

3/57

Motivao

No se pode gerenciar o que no se pode


medir.
Tom De Marco

Se voc no sabe para onde voc quer ir,


qualquer caminho voc pode seguir. Se voc
no sabe onde voc est, um mapa no vai
ajudar!.
Roger Pressman

Mtricas de Software

2005, Alexandre Vasconcelos

4/57

O que so mtricas de software?

Uma mtrica a medio de um atributo (propriedades ou


caractersticas ) de uma determinada entidade (produto,
processo ou recursos). Exemplos:

Tamanho do produto de software (ex: Nmero de Linhas de cdigo)


Nmero de pessoas necessrias para implementar um caso de uso
Nmero de defeitos encontrados por fase de desenvolvimento
Esforo para a realizao de uma tarefa
Tempo para a realizao de uma tarefa
Custo para a realizao de uma tarefa
Grau de satisfao do cliente (ex: adequao do produto ao
propsito, conformidade do produto com a especificao)

Mtricas de Software

2005, Alexandre Vasconcelos

5/57

Por que medir software?

Entender e aperfeioar o processo de desenvolvimento


Melhorar a gerncia de projetos e o relacionamento com
clientes
Reduzir frustraes e presses de cronograma
Gerenciar contratos de software
Indicar a qualidade de um produto de software
Avaliar a produtividade do processo
Avaliar os benefcios (em termos de produtividade e
qualidade) de novos mtodos e ferramentas de engenharia
de software
Avaliar retorno de investimento

Mtricas de Software

2005, Alexandre Vasconcelos

6/57

Por que medir software?

Identificar as melhores prticas de desenvolvimento de


software
Embasar solicitaes de novas ferramentas e treinamento
Avaliar o impacto da variao de um ou mais atributos do
produto ou do processo na qualidade e/ou produtividade
Formar uma baseline para estimativas
Melhorar a exatido das estimativas
Oferecer dados qualitativos e quantitativos ao
gerenciamento de desenvolvimento de software, de forma a
realizar melhorias em todo o processo de desenvolvimento
de software

Mtricas de Software

2005, Alexandre Vasconcelos

7/57

Propriedades desejveis de uma mtrica

Facilmente calculada, entendida e testada


Passvel de estudos estatsticos
Expressa em alguma unidade
Obtida o mais cedo possvel no ciclo de vida do
software
Passvel de automao
Repetvel e independente do observador
Sugere uma estratgia de melhoria

Mtricas de Software

2005, Alexandre Vasconcelos

8/57

Em resumo...

Uma mtrica deve ser:

Vlida: quantifica o que queremos medir


Confivel: produz os mesmos resultados dadas as mesmas
condies
Prtica: barata, fcil de computar e fcil de interpretar

Dois contextos para medio de software

Processo: ex. produtividade


Produto: ex. qualidade

Mtricas de Software

2005, Alexandre Vasconcelos

9/57

Categorizao de Mtricas

Mtricas diretas (fundamentais ou bsicas)

Medida realizada em termos de atributos observados


(usualmente determinada pela contagem)
Ex.: custo, esforo, no. linhas de cdigo, capacidade de
memria, no. pginas, no. diagramas, etc.

Mtricas indiretas (derivadas)

Medidas obtidas a partir de outras mtricas


Ex.: complexidade, eficincia, confiabilidade, facilidade de
manuteno

Mtricas de Software

2005, Alexandre Vasconcelos

10/57

Categorizao de Mtricas

Mtricas orientadas a tamanho

So medidas diretas do tamanho dos artefatos de software


associados ao processo por meio do qual o software
desenvolvido.
Ex.: esforo, custo, no. KLOC, no. pginas de
documentao, no. erros

Mtricas orientadas por funo

Consiste em um mtodo para medio de software do ponto


de vista do usurio, determinando de forma consistente o
tamanho e a complexidade de um software.

Mtricas de Software

2005, Alexandre Vasconcelos

11/57

Categorizao de Mtricas

Mtricas de produtividade

Mtricas de qualidade

Concentram-se na sada do processo de engenharia de software.


Ex.: no. de casos de uso/iterao.
Oferecem uma indicao de quanto o software se adeqa s
exigncias implcitas e explcitas do cliente.
Ex.: erros/fase

Mtricas tcnicas

Concentram-se nas caractersticas do software e no no processo


por meio do qual o software foi desenvolvido.
Ex.: complexidade lgica e grau de manutenibilidade

Mtricas de Software

2005, Alexandre Vasconcelos

12/57

Possveis problemas com mtricas

Ex: Comparar a produtividade de engenheiros em termos de


linha de cdigo

Est sendo utilizado a mesma unidade de medida?


O que uma linha de cdigo vlida?

O contexto considerado o mesmo?


Todos os engenheiros so familiarizados com a linguagem de
programao?

O que se quer realmente o tamanho do cdigo?


E a qualidade do cdigo?

Como o resultado ser interpretado?


Produtividade mdia de um engenheiro?

O que se quer com o resultado?


Comparar a produtividade do processo de software?

Mtricas de Software

2005, Alexandre Vasconcelos

13/57

Teoria da Medio

Teoria sobre mtricas pode ajudar a resolver estes


problemas.

Mtricas de Software

2005, Alexandre Vasconcelos

14/57

Relaes Empricas

Ajudam a observar as relaes do tipo


verdadeiro/falso entre entidades do mundo real
Ex. Relaes empricas entre o atributo altura das
pessoas

Binria: O Super-homem mais alto do que papai Noel


Unria: O Super-homem alto
Ternria: O Super-homem mais alto do que papai Noel e
mame Noel

Mtricas de Software

2005, Alexandre Vasconcelos

15/57

Medida

Medida uma funo de mapeamento


Super-homem

2.10m

Papai Noel

1.65m

Mame Noel

1.50m

Atributos do mundo
real (domnio)

Mtricas de Software

Um smbolo em um
conjunto com
relaes
matmaticas
conhecidas
2005, Alexandre Vasconcelos

16/57

Medio

a atribuio de uma medida (atravs de um


smbolo) a um atributo do mundo real
Propsito: manipular smbolos na faixa => determinar
concluses sobre os atributos do domnio
Para ser precisa, a medio deve especificar

Domnio: Ser medido a largura ou altura das pessoas?


Faixa: A medida da altura foi feita em m ou cm?
Regras de mapeamento: Ser permitido medir altura
considerando pessoas caladas?

Mtricas de Software

2005, Alexandre Vasconcelos

17/57

Escala

Representa os smbolos na faixa de uma medida


mais as manipulaes permitidas
Ex. de manipulaes:

Mapeamento: transformar smbolos em um conjunto em


outros smbolos em outro conjunto.
{verdadeiro, falso} {1, 0}

Mtricas de Software

2005, Alexandre Vasconcelos

18/57

Tipos de Escala
Nome

Caractersticas

Exemplos

Nominal

Smbolos no ordenados

{verdadeiro, falso}

Ordinal

Smbolos ordenados

{simples, mdio,
complexo}

Intervalar Diferena entre qualquer par


consecutivo de valores
preservada

Celsius e Fahrenheit

Ratio
(razo)

Kelvin, tamanho, largura

Diferena entre qualquer par


consecutivo de valores
preservada. Possui 0 absoluto.

Mtricas de Software

2005, Alexandre Vasconcelos

19/57

Os Quatros papis de Medio

Segundo Humphrey, so quatro os principais papis de Medies


de Software:
Entender

Controlar
Processos,
Processos,
Produtos
Produtos e
e
Servios
Servios de
Software
Software

Avaliar

Mtricas de Software

Prever

2005, Alexandre Vasconcelos

20/57

Os Quatros papis de Medio

Entender

Avaliar

Mtricas podem ser utilizadas para tomar decises e determinar o


estabelecimento de padres, metas e critrios de aceitao

Controlar

Mtricas ajudam a entender o comportamento e funcionamento de


processos, produtos e servios de software

Mtricas podem ser utilizadas para controlar processos, produtos e


servios de software

Prever

Mtricas podem ser utilizadas para prever valores de atributos

Mtricas de Software

2005, Alexandre Vasconcelos

21/57

O Paradigma Goal Question Metrics


(GQM)

Usado para definir o conjunto de mtricas a ser


coletado
Proposto por:

Basili and Rombachs, Goal-Question-Metrics Paradigm,


IEEE Transactions on Software Engineering, 1988.

Baseia-se no fato de que deve existir uma


necessidade clara associada a cada mtrica

Mtricas de Software

2005, Alexandre Vasconcelos

22/57

O Paradigma Goal Question Metrics


(GQM)

Inicia-se com a identificao dos interessados na medio.


Com base nos interessados, estabelecem-se os principais
objetivos da medio para a organizao, o projeto ou uma
tarefa especfica. Ex: reduzir defeitos, aumentar produtividade,
etc.
A partir dos objetivos, geram-se perguntas cujas respostas
diro se os objetivos foram ou no alcanados (ex: Qual a taxa
de defeito atual? Qual a taxa de defeito aps a implantao do
novo processo?)
A partir das perguntas, definem-se mtricas: que dados sero
necessrios? Quais os formatos? Como coletar (frmula e
processo)? Onde armazenar e como utilizar?

Mtricas de Software

2005, Alexandre Vasconcelos

23/57

O Paradigma Goal Question Metrics


(GQM)

Goal 2

Goal 1

Questo 1

Questo 2

Questo 3

Questo 4

Mtrica 1

Mtrica 2

Mtrica 3 Mtrica 4

Mtrica 5

Mtricas de Software

2005, Alexandre Vasconcelos

24/57

Exemplo do uso do GQM

Objetivo: Assegurar que todos os defeitos so


corrigidos antes do software ser liberado para uso.
Perguntas:

Quantos defeitos temos atualmente?


Qual o status de cada defeito?
Qual a cobertura dos testes?

Mtricas:

Nmero de defeitos
Nmero de defeitos por status
Nmero de casos de testes planejados x executados
Nmero de requisitos testados

Mtricas de Software

2005, Alexandre Vasconcelos

25/57

Selecionando Objetivos

Devem estar associados a um perodo de tempo

Aumentar a produtividade em 20% no prazo de 12 meses


Facilita o acompanhamento e a tomada de aes para
viabilizar objetivo pois existe um prazo!!!

Estudos indicam que objetivos muito complexos e de


longo prazo podem causar impacto na motivao

Objetivos menores, a curto prazo, permitem que as pessoas


visualizem o progresso e alcancem sucessos
Com o tempo e com a maturidade da organizao, os
objetivos devem se tornar mais complexos e mais
desafiadores

Mtricas de Software

2005, Alexandre Vasconcelos

26/57

Selecionando Mtricas

Seja realista e prtico

Considere o processo e o ambiente de desenvolvimento atual

No selecione mtricas em que os dados sejam difceis de serem


coletados na sua realidade

Comece com o que for possvel

A equipe no deve ser muito impactada

Utilize a abordagem incremental

Com o tempo, com os benefcios, mais dados estaro disponveis...

Mtricas de Software

2005, Alexandre Vasconcelos

27/57

Selecionando Mtricas

Objetivo: Aumentar satisfao do cliente

Que atributos dos nossos produtos e servios so mais


importantes para os nossos clientes?

Mtricas de Software

2005, Alexandre Vasconcelos

28/57

O processo de medio

um processo cclico que envolve:

Planejar
Medir
Analisar os dados
Tomar decises baseadas na anlise
Implementar as decises
Voltar a planejar e medir

Mtricas de Software

2005, Alexandre Vasconcelos

29/57

Princpios de um Processo de Medio

Um processo de medio deve:

Fornecer uma base para melhoria contnua do processo


Quantificar a qualidade e produtividade
Estar integrado com o ciclo de vida de desenvolvimento
Medir o impacto de vrios mtodos, ferramentas, e tcnicas
de melhorias

Mtricas de Software

2005, Alexandre Vasconcelos

30/57

Princpios de um Processo de Medio

Medies devem ser usadas para medir processos,


no pessoas
O processo de medio deve ter objetivos claros e
bem-definidos
O processo de medio deve ser fortemente
acoplado com o processo de gerncia da qualidade e
integrado dentro de planos e oramentos

Mtricas de Software

2005, Alexandre Vasconcelos

31/57

Princpios de um Processo de Medio

O processo de coleta de dados deve ser simples, e


ferramentas automticas para extrao de dados
devem ser usadas
O processo de medio contnuo e sujeito a
melhoria

Mtricas de Software

2005, Alexandre Vasconcelos

32/57

Caractersticas de um programa efetivo


de medio

Escolha um conjunto adequado de mtricas


Relacione as mtricas ao processo de tomada de deciso (suportado pela alta
administrao)
Avalie processos e no pessoas (explique os objetivos da medio)
No use as mtricas para punir
Envolva vrias pessoas na seleo e formulao das mtricas
Estabelea alta prioridade (recursos, ferramentas, etc.)
Integre o programa ao desenvolvimento de software
Alinhe aos objetivos de negcio
Padronize e documente
Compartilhe as mtricas obtidas
Institucionalize como parte da cultura da organizao
Integre com o programa de melhorias (ilustre o progresso e as melhorias
obtidos a partir do programa)
Oferea planos de ao

Mtricas de Software

2005, Alexandre Vasconcelos

33/57

Plano de Mtricas

Para cada objetivo tcnico o plano contm informao


sobre:

POR QUE as mtricas satisfazem o objetivo


QUE mtricas sero coletadas, como elas sero definidas, e
como sero analisadas
QUEM far a coleta, quem far a anlise, e quem ver os
resultados
COMO ser feito: que ferramentas, tcnicas e prticas sero
usadas para apoiar a coleta e anlise das mtricas
QUANDO no processo e com que freqncia as mtricas
sero coletadas e analisadas
ONDE os dados sero armazenados

Mtricas de Software

2005, Alexandre Vasconcelos

34/57

Especificando as Medies Definies


Operacionais
Definir e documentar para cada mtrica :
Objetivos
Pblico alvo da mtrica
Quem precisa da informao?
Quem ir usar as informaes fornecidas pela mtrica?
Uma mtrica til sempre tem um cliente

Procedimento de coleta e armazenamento


Quando o dado deve ser coletado? Periodicamente ou por eventos?
Quem o responsvel pela coleta e armazenamento?
Como o dado deve ser coletado? A partir de que ferramentas e produtos de
trabalho do projeto / organizao?
Onde ele ser armazenado? Quando o dado deve ser armazenado?
Avaliar mtricas que podem acarretar em muito esforo e pouco valor
Buscar automatizar a coleta dos dados sempre que possvel
Ferramentas para controle de tempo, bugtracking, helpdesk, controle de
verso, gesto de requisitos

Mtricas de Software

2005, Alexandre Vasconcelos

35/57

Especificando as Medies Definies


Operacionais

Procedimentos de Anlise
Necessrios para
Entendimento da mtrica
Avaliao (critrio para tomada de deciso)
A anlise dos dados deve enderear os objetivos das medies
Seleo dos mtodos e ferramentas de anlise:
Como a mtrica ser visualmente apresentada?
Grficos de barras, linhas, colunas, pizza, histogramas, diagramas de scatter,
tabelas...
Ferramentas de Ishikawa
A equipe de desenvolvimento deve ser envolvida sempre que necessrio

Para mtricas de controle:


Estabelecimento de limites de controle
Estabelecimento de thresholds (limiar)
Padres ou requisitos de mercado de performance
Mdia de mercado para custo da baixa qualidade = 4%
Temos que correr atrs dessa meta!!!

Mtricas de Software

2005, Alexandre Vasconcelos

36/57

Aps todo o planejamento...


Executar as atividades com base no
planejamento realizado
Utilizar o plano de medio como base!!

Comunicar os
resultados ao
pblico alvo de
cada mtrica
Tomar aes com base
nos resultados
Acompanhar os
itens de ao

Ajustar o processo com melhorias a partir


dos resultados de sua execuo:
Inicialmente vai ser difcil definir todos
esses procedimentos da melhor forma
Eles devem ser melhorados a medida
em que o processo executado
Novos objetivos e mtricas surgem...
Melhores forma de coleta so
identificadas
As orientaes para realizao da
anlise vo sendo refinadas a medida
que conhecemos melhor os dados

Mtricas de Software

2005, Alexandre Vasconcelos

37/57

Aps todo o planejamento... (2)

Armazenar os resultados

Tanto os dados, como os resultados, as aes tomadas,


tudo que for relevante
Toda informao que contextualize a mtrica ou que fornea
alguma informao adicional
Dados histricos no so
apenas nmeros

Mtricas de Software

2005, Alexandre Vasconcelos

38/57

Cuidado com...

Elaborar um poltica de controle de acesso

Apenas pessoas autorizadas devem ter acesso a certos


tipos de dados

Evitar o uso indevido dos dados

Avaliao de pessoas
Comparao entre projetos, grupos ou reas da empresa de
forma indevida
Publicao de informaes que foram fornecidas de forma
confidencial
Ateno: O
uso indevido dos dados impacta fortemente
e negativamente um programa de medies

Mtricas de Software

2005, Alexandre Vasconcelos

39/57

Estimativas de Software

Mtricas de Software

2005, Alexandre Vasconcelos

40/57

Por que to difcil estimar?

difcil conhecer se
possvel desenvolver o
produto desejado pelo
cliente antes de conhecer
os detalhes do projeto.

Mtricas de Software

2005, Alexandre Vasconcelos

41/57

Por que to difcil estimar?

Desenvolvimento um processo gradual de


refinamento

Incerteza da natureza do produto contribui para a incerteza


da estimativa
Requisitos e escopo mudam
Defeitos so encontrados e demandam retrabalho
Produtividade varia

Mtricas de Software

2005, Alexandre Vasconcelos

42/57

O Processo de Estimativas
1.
2.
3.
4.

Estimar o tamanho do produto


Estimar o esforo
Estimar o prazo
Fornecer estimativas dentro de uma faixa permitida
e refinar essa faixa medida que o projeto
progride

Mtricas de Software

2005, Alexandre Vasconcelos

43/57

Tipos de Estimativas

Tamanho

Quantidade de software a ser produzida


Ex. no. linhas de cdigo, no. pontos de funo, n.o de
requisitos, pontos de casos de uso

Esforo

Derivado da estimativa de tamanho


Ex. dividindo a estimativa de tamanho por produtividade
produz-se o esforo

Mtricas de Software

2005, Alexandre Vasconcelos

44/57

Tipos de Estimativas

Prazo

Geralmente so dirigidos a datas fornecidas pelo Cliente

Qualidade

Medidas de resultados
Ex. defeitos por fase, esforo de mudanas

Mtricas de Software

2005, Alexandre Vasconcelos

45/57

Evoluo Histrica & Tendncias

Mtricas de Software

2005, Alexandre Vasconcelos

46/57

A Dcada de 70: Medio do Cdigo


Fonte

Caracterizada por

Mtricas para cdigo fonte propostas por Halstead (ex:


nmero de operadores distintos, nmero de operandos
distintos, etc.)
Mtricas de Complexidade Ciclomtica de McCabe
Medida do nmero de caminhos linearmente independentes
num mdulo

Influenciada por:

Aceitao crescente da programao estruturada


Primeiras noes de complexidade cognitiva

Mtricas de Software

2005, Alexandre Vasconcelos

47/57

A Dcada de 80: Medio no incio do


ciclo de vida

Estimativas de medio: esforo e custo


Medidas na etapa de projeto
Medidas na etapa de especificao

Mtricas de Software

2005, Alexandre Vasconcelos

48/57

A Dcada de 90: Um perspectiva mais


ampla

Surgimento de relatrios sobre programas de


mtricas aplicados em empresas
Benchmarking
Impacto do modelo CMM
Surgimento de ferramentas para medio
Surgimento de uma teoria de medio como um
framework unificado
Surgimento de padres internacionais de medio de
software (ex: Anlise de pontos de funo)

Mtricas de Software

2005, Alexandre Vasconcelos

49/57

Tendncias: procura por mtricas mais


especficas

Medidas que:

capturem a complexidade cognitiva


capturem a complexidade estrutural
capturem a complexidade funcional
sejam independentes de linguagem
possam ser extradas nas etapas iniciais do ciclo de vida

Mtricas de Software

2005, Alexandre Vasconcelos

50/57

ISBSG

International Software Benchmarking Standards


Group

Organizao sem fins lucrativos


Mantm um banco de dados de mtricas de projetos de
software para auxiliar na melhoria gerncia de recursos de
TI

Mtricas de Software

2005, Alexandre Vasconcelos

51/57

Mtricas de Software: Resumo

As atividades de medio devem ser guiadas por


objetivos
Plano de Mtricas detalham como criar programas
de medio para atender a objetivos tcnicos
especficos
Tendncias recentes: evoluo de mtricas ou
modelos especficos para amplos programas
organizacionais de mtricas

Mtricas de Software

2005, Alexandre Vasconcelos

52/57

Principais Barreiras
Falta de comprometimento da alta gerncia
Medir custa caro
Os maiores benefcios vm a longo prazo
M utilizao das mtricas
Grande mudana cultural necessria
Dificuldade de estabelecer medies apropriadas e teis
Interpretaes dos dados realizadas de forma incorreta
Obter o comprometimento de todos os envolvidos e impactados
Estabelecer um programa de medies fcil, o difcil manter!!
Mtricas de Software

2005, Alexandre Vasconcelos

53/57

Mas podemos contornar ...

Foco desde os estgios iniciais da melhoria de processo


Medio faz parte do TODO
Comear Pequeno
Selecionar um conjunto coerente
importante definir cada detalhe da mtrica
Descartar o que no estiver sendo til
Fornecer as informaes corretas, para as pessoas certas
Agregar valor, ao invs de gerar apenas dados
Mtricas de Software

2005, Alexandre Vasconcelos

54/57

Mas podemos contornar ...

Incentivar a equipe de desenvolvimento a fazer uso das mtricas


Envolvimento de todos os impactados
Estabelecer as expectativas
Educao e Treinamento
Ganhar Confiana
Adotar uma Abordagem Evolucionria
Compreender que a Adoo leva Tempo

Mtricas de Software

2005, Alexandre Vasconcelos

55/57

Referncias

Fenton NE and Pfleeger SL, Software Metrics: A


Rigorous & Practical Approach (2nd Ed.), PWS,
1998.
www.csr.city.ac.uk/people/norman.fenton
www.softwaremetrics.com
IFPUG International Function Point Users Group:
www.ifpug.org
Total Metrics: www.totalmetrics.com

Mtricas de Software

2005, Alexandre Vasconcelos

56/57

Referncias

Chou, Tim. The Hidden Cost of Software. Maio 29, 2003. Url:
http://itmanagement.earthweb.com/entdev/print.php/2214031.
Negulescu, Radu. Software Engineering Practice Software
Metrics II. McGill University, 2002.
Mtricas de Software. Url:
http://www.internext.com.br/mssa/medidas.html
Haufe, Maria Isabel. Produtividade no Desenvolvimento de
Software. Url:
http://www.inf.ufgrs.br/pos/SemanaAcademica/Semana99/mariaisa
bel/mariaisabel.html
Mtricas e Estimativas de Software O incio de um rally de
regularidade. Url: http://www.apinfo.com/artigo44.htm
Pressman, Roger. S. Engenharia de Software. Makron Books,
1995.

Mtricas de Software

2005, Alexandre Vasconcelos

57/57

Você também pode gostar