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
2005, Alexandre Vasconcelos 2/57

Mtricas de Software

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
2005, Alexandre Vasconcelos 6/57

Mtricas de Software

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 Processo: ex. produtividade Produto: ex. qualidade

Dois contextos para medio de software


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. Medidas obtidas a partir de outras mtricas Ex.: complexidade, eficincia, confiabilidade, facilidade de manuteno

Mtricas indiretas (derivadas)


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 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 orientadas por funo

Mtricas de Software

2005, Alexandre Vasconcelos

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. Oferecem uma indicao de quanto o software se adeqa s exigncias implcitas e explcitas do cliente. Ex.: erros/fase 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 qualidade

Mtricas tcnicas

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


2.10m 1.65m 1.50m
Um smbolo em um conjunto com relaes matmaticas conhecidas
2005, Alexandre Vasconcelos 16/57

Super-homem Papai Noel Mame Noel


Atributos do mundo real (domnio)

Mtricas de Software

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
Nominal Ordinal

Caractersticas
Smbolos no ordenados Smbolos ordenados

Exemplos
{verdadeiro, falso} {simples, mdio, complexo} Celsius e Fahrenheit

Intervalar Diferena entre qualquer par consecutivo de valores preservada

Ratio (razo)

Diferena entre qualquer par consecutivo de valores preservada. Possui 0 absoluto.

Kelvin, tamanho, largura

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 Processos, Produtos e Servios de Software Avaliar Prever

Controlar

Mtricas de Software

2005, Alexandre Vasconcelos

20/57

Os Quatros papis de Medio


Entender

Mtricas ajudam a entender o comportamento e funcionamento de processos, produtos e servios de software Mtricas podem ser utilizadas para tomar decises e determinar o estabelecimento de padres, metas e critrios de aceitao Mtricas podem ser utilizadas para controlar processos, produtos e servios de software Mtricas podem ser utilizadas para prever valores de atributos

Avaliar

Controlar

Prever

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 1

Goal 2

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? Nmero de defeitos Nmero de defeitos por status Nmero de casos de testes planejados x executados Nmero de requisitos testados

Mtricas:

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?
Aspectos Relevantes de Produto e Servio para Clientes

Clientes que Consideram o Aspecto

20 15 10 5 0 Qualidade Custo Prazo Visibilidade do Flexbilidade p/ Progresso mudanas # Clientes

Aspectos Relevantes Para os 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
2005, Alexandre Vasconcelos 34/57

Mtricas de Software

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!!! 2005, Alexandre Vasconcelos 36/57

Mtricas de Software

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
2005, Alexandre Vasconcelos

Mtricas de Software

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 Derivado da estimativa de tamanho Ex. dividindo a estimativa de tamanho por produtividade produz-se o esforo

Esforo

Mtricas de Software

2005, Alexandre Vasconcelos

44/57

Tipos de Estimativas

Prazo

Geralmente so dirigidos a datas fornecidas pelo Cliente Medidas de resultados Ex. defeitos por fase, esforo de mudanas

Qualidade

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/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.
2005, Alexandre Vasconcelos 57/57

Mtricas de Software

Você também pode gostar