Você está na página 1de 57

Mtricas de Software

Adjailton Cabrera
adjailton.cabrera@aedu.com

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

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

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

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

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

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

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

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

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

10

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

11

11/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
Mtricas de Software

12

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

13

13/57

Teoria da Medio

Teoria sobre mtricas pode ajudar a resolver


estes problemas.

Mtricas de Software

14

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

15

15/57

Medida

Medida uma funo de mapeamento

Super-homem

2.10m

Papai Noel

1.65m

Mame Noel

1.50m
Um smbolo em um
conjunto com
relaes
matmaticas
conhecidas

Atributos do mundo
real (domnio)

Mtricas de Software

16

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

17

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

18

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

19

19/57

Os Quatros papis de Medio

Segundo Humphrey, so quatro os principais papis de


Medies de Software:
Entender

Controlar
Processos,
Produtos e
Servios de
Software

Avaliar
Mtricas de Software

Prever

20

20/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
Mtricas de Software
21/57
21

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

22

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

23

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

24

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

25

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

26

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

27

27/57

Selecionando Mtricas

Objetivo: Aumentar satisfao do cliente

Que atributos dos nossos produtos e servios so mais


importantes para os nossos clientes?

Clientes que
Consideram o Aspecto

Aspectos Relevantes de Produto e Servio para Clientes


20
15
10

# Clientes

5
0
Qualidade

Custo

Prazo

Visibilidade do Flexbilidade p/
Progresso
mudanas

Aspectos Relevantes Para os Clientes

Mtricas de Software

28

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

29

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

30

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

31

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

32

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

33

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 frequncia as
mtricas sero coletadas e analisadas
ONDE os dados sero armazenados

Mtricas de Software

34

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

35

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

36

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

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

Acompanhar os
itens de ao

As orientaes para realizao da


anlise vo sendo refinadas a medida
que conhecemos melhor os dados

Mtricas de Software

37

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

38

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
confidencial
Ateno:de
O forma
uso indevido
dos dados impacta fortemente
e negativamente um programa de medies

Mtricas de Software

39

39/57

Estimativas de Software

Mtricas de Software

40

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

41

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

42

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

43

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

44

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

45

45/57

Evoluo Histrica & Tendncias

Mtricas de Software

46

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

47

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

48

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

49

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

50

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

51

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

52

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

53

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

54

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

55

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

56

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/Sema
na99/mariaisabel/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

57

57/57

Você também pode gostar