Você está na página 1de 57

2005, Alexandre Vasconcelos Mtricas de Software 1/57

Introduo a Mtricas de Software


Alexandre Vasconcelos
amlv@cin.ufpe.br
2005, Alexandre Vasconcelos Mtricas de Software 2/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
2005, Alexandre Vasconcelos Mtricas de Software 3/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

2005, Alexandre Vasconcelos Mtricas de Software 4/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
2005, Alexandre Vasconcelos Mtricas de Software 5/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)

2005, Alexandre Vasconcelos Mtricas de Software 6/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
2005, Alexandre Vasconcelos Mtricas de Software 7/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
2005, Alexandre Vasconcelos Mtricas de Software 8/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

2005, Alexandre Vasconcelos Mtricas de Software 9/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
2005, Alexandre Vasconcelos Mtricas de Software 10/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
2005, Alexandre Vasconcelos Mtricas de Software 11/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.
2005, Alexandre Vasconcelos Mtricas de Software 12/57
Categorizao de Mtricas
Mtricas de produtividade
Concentram-se na sada do processo de engenharia de software.
Ex.: no. de casos de uso/iterao.
Mtricas de qualidade
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
2005, Alexandre Vasconcelos Mtricas de Software 13/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?
2005, Alexandre Vasconcelos Mtricas de Software 14/57
Teoria da Medio
Teoria sobre mtricas pode ajudar a resolver estes
problemas.
2005, Alexandre Vasconcelos Mtricas de Software 15/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
2005, Alexandre Vasconcelos Mtricas de Software 16/57
Medida
Medida uma funo de mapeamento

Super-homem
Papai Noel
Mame Noel
2.10m
1.65m
1.50m
Atributos do mundo
real (domnio)
Um smbolo em um
conjunto com
relaes
matmaticas
conhecidas
2005, Alexandre Vasconcelos Mtricas de Software 17/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?
2005, Alexandre Vasconcelos Mtricas de Software 18/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}

2005, Alexandre Vasconcelos Mtricas de Software 19/57
Tipos de Escala
Kelvin, tamanho, largura Diferena entre qualquer par
consecutivo de valores
preservada. Possui 0 absoluto.
Ratio
(razo)
Celsius e Fahrenheit Diferena entre qualquer par
consecutivo de valores
preservada
Intervalar
{simples, mdio,
complexo}
Smbolos ordenados Ordinal
{verdadeiro, falso} Smbolos no ordenados Nominal
Exemplos Caractersticas Nome
2005, Alexandre Vasconcelos Mtricas de Software 20/57
Os Quatros papis de Medio
Segundo Humphrey, so quatro os principais papis de Medies
de Software:
Processos,
Produtos e
Servios de
Software
Entender
Avaliar Prever
Controlar
2005, Alexandre Vasconcelos Mtricas de Software 21/57
Os Quatros papis de Medio
Entender
Mtricas ajudam a entender o comportamento e funcionamento de
processos, produtos e servios de software
Avaliar
Mtricas podem ser utilizadas para tomar decises e determinar o
estabelecimento de padres, metas e critrios de aceitao
Controlar
Mtricas podem ser utilizadas para controlar processos, produtos e
servios de software
Prever
Mtricas podem ser utilizadas para prever valores de atributos
2005, Alexandre Vasconcelos Mtricas de Software 22/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
2005, Alexandre Vasconcelos Mtricas de Software 23/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?
2005, Alexandre Vasconcelos Mtricas de Software 24/57
O Paradigma Goal Question Metrics
(GQM)
Goal 1 Goal 2
Questo 1
Questo 2
Questo 3
Questo 4
Mtrica 1
Mtrica 2 Mtrica 3 Mtrica 4 Mtrica 5
2005, Alexandre Vasconcelos Mtricas de Software 25/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
2005, Alexandre Vasconcelos Mtricas de Software 26/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
2005, Alexandre Vasconcelos Mtricas de Software 27/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...
2005, Alexandre Vasconcelos Mtricas de Software 28/57
Selecionando Mtricas
Objetivo: Aumentar satisfao do cliente
Que atributos dos nossos produtos e servios so mais
importantes para os nossos clientes?



Aspectos Relevantes de Produto e Servio para Clientes
0
5
10
15
20
Qualidade Custo Prazo Visibilidade do
Progresso
Flexbilidade p/
mudanas
Aspectos Relevantes Para os Clientes
C
l
i
e
n
t
e
s

q
u
e

C
o
n
s
i
d
e
r
a
m

o

A
s
p
e
c
t
o
# Clientes
2005, Alexandre Vasconcelos Mtricas de Software 29/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
2005, Alexandre Vasconcelos Mtricas de Software 30/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
2005, Alexandre Vasconcelos Mtricas de Software 31/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
2005, Alexandre Vasconcelos Mtricas de Software 32/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

2005, Alexandre Vasconcelos Mtricas de Software 33/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
2005, Alexandre Vasconcelos Mtricas de Software 34/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
2005, Alexandre Vasconcelos Mtricas de Software 35/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
2005, Alexandre Vasconcelos Mtricas de Software 36/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!!!
2005, Alexandre Vasconcelos Mtricas de Software 37/57
Aps todo o planejamento...
Executar as atividades com base no
planejamento realizado
Utilizar o plano de medio como base!!

Tomar aes com base
nos resultados
Acompanhar os
itens de ao
Comunicar os
resultados ao
pblico alvo de
cada mtrica
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
2005, Alexandre Vasconcelos Mtricas de Software 38/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
2005, Alexandre Vasconcelos Mtricas de Software 39/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
2005, Alexandre Vasconcelos Mtricas de Software 40/57
Estimativas de Software
2005, Alexandre Vasconcelos Mtricas de Software 41/57
Por que to difcil estimar?
difcil conhecer se
possvel desenvolver o
produto desejado pelo
cliente antes de conhecer
os detalhes do projeto.
2005, Alexandre Vasconcelos Mtricas de Software 42/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


2005, Alexandre Vasconcelos Mtricas de Software 43/57
O Processo de Estimativas
1. Estimar o tamanho do produto
2. Estimar o esforo
3. Estimar o prazo
4. Fornecer estimativas dentro de uma faixa permitida
e refinar essa faixa medida que o projeto
progride
2005, Alexandre Vasconcelos Mtricas de Software 44/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

2005, Alexandre Vasconcelos Mtricas de Software 45/57
Tipos de Estimativas
Prazo
Geralmente so dirigidos a datas fornecidas pelo Cliente
Qualidade
Medidas de resultados
Ex. defeitos por fase, esforo de mudanas
2005, Alexandre Vasconcelos Mtricas de Software 46/57
Evoluo Histrica & Tendncias
2005, Alexandre Vasconcelos Mtricas de Software 47/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
2005, Alexandre Vasconcelos Mtricas de Software 48/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
2005, Alexandre Vasconcelos Mtricas de Software 49/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)
2005, Alexandre Vasconcelos Mtricas de Software 50/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
2005, Alexandre Vasconcelos Mtricas de Software 51/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

2005, Alexandre Vasconcelos Mtricas de Software 52/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
2005, Alexandre Vasconcelos Mtricas de Software 53/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!!
2005, Alexandre Vasconcelos Mtricas de Software 54/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
2005, Alexandre Vasconcelos Mtricas de Software 55/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
2005, Alexandre Vasconcelos Mtricas de Software 56/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

2005, Alexandre Vasconcelos Mtricas de Software 57/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/maria
isabel/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.

Você também pode gostar