©2005, alexandre vasconcelos métricas de software1/57 introdução a métricas de software...

57
Métricas de Software Métricas de Software 1 /57 /57 ©2005, Alexandre Vasconcelos ©2005, Alexandre Vasconcelos Introdução a Métricas de Software Introdução a Métricas de Software Alexandre Vasconcelos [email protected]

Upload: internet

Post on 16-Apr-2015

139 views

Category:

Documents


25 download

TRANSCRIPT

Page 1: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 11/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Introdução a Métricas de SoftwareIntrodução a Métricas de Software

Alexandre Vasconcelos

[email protected]

Page 2: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 22/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

ObjetivosObjetivos

Entender porque medição é importante para avaliação e garantia da qualidade de software

Entender as abordagens principais de métricas e como elas são utilizadas

Conhecer algumas métricas e suas aplicações

Entender o que é um Plano de Métricas e como escrever um

Page 3: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 33/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

MotivaçãoMotivação

Um dos objetivos básicos da Engenharia de Software é: a transformação da criação de sistemas software de uma maneira artística, indisciplinada e pouco

entendível para uma forma devidamente controlada, quantificada e previsível

“Métricas de Software” é um assunto discutido há mais de 20 anos na engenharia de software ... e no entanto não é verificada sua utilização, na prática, pela grande maioria

dos projetos de construção 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 execução quando implantado Falta de controle

dos projetos

Page 4: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 44/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

MotivaçãoMotivação

“Não se pode gerenciar o que não se pode medir”.

Tom De Marco

“Se você não sabe para onde você quer ir, qualquer caminho você pode seguir. Se você não sabe onde você está, um mapa não vai ajudar!”.

Roger Pressman

Page 5: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 55/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

O que são métricas de software?O que são métricas de software?

Uma métrica é a medição de um atributo (propriedades ou características ) de uma determinada entidade (produto, processo ou recursos). Exemplos: Tamanho do produto de software (ex: Número de Linhas de

código) Número de pessoas necessárias para implementar um caso de uso Número de defeitos encontrados por fase de desenvolvimento Esforço para a realização de uma tarefa Tempo para a realização de uma tarefa Custo para a realização de uma tarefa Grau de satisfação do cliente (ex: adequação do produto ao

propósito, conformidade do produto com a especificação)

Page 6: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 66/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Por que medir software?Por que medir software?

Entender e aperfeiçoar o processo de desenvolvimento Melhorar a gerência de projetos e o relacionamento com

clientes Reduzir frustrações e pressões de cronograma Gerenciar contratos de software Indicar a qualidade de um produto de software Avaliar a produtividade do processo Avaliar os benefícios (em termos de produtividade e

qualidade) de novos métodos e ferramentas de engenharia de software

Avaliar retorno de investimento

Page 7: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 77/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Por que medir software?Por que medir software?

Identificar as melhores práticas de desenvolvimento de software

Embasar solicitações de novas ferramentas e treinamento Avaliar o impacto da variação de um ou mais atributos do

produto ou do processo na qualidade e/ou produtividade Formar uma baseline para estimativas Melhorar a exatidão 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

Page 8: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 88/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Propriedades desejáveis de uma métricaPropriedades desejáveis de uma métrica

Facilmente calculada, entendida e testada Passível de estudos estatísticos Expressa em alguma unidade Obtida o mais cedo possível no ciclo de vida do

software Passível de automação Repetível e independente do observador Sugere uma estratégia de melhoria

Page 9: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 99/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Em resumo...Em resumo...

Uma métrica deve ser: Válida: quantifica o que queremos medir Confiável: produz os mesmos resultados dadas as mesmas

condições Prática: barata, fácil de computar e fácil de interpretar

Dois contextos para medição de software Processo: ex. produtividade Produto: ex. qualidade

Page 10: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1010/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Categorização de MétricasCategorização de Métricas

Métricas diretas (fundamentais ou básicas) Medida realizada em termos de atributos observados

(usualmente determinada pela contagem) Ex.: custo, esforço, no. linhas de código, capacidade de

memória, no. páginas, no. diagramas, etc.

Métricas indiretas (derivadas) Medidas obtidas a partir de outras métricas Ex.: complexidade, eficiência, confiabilidade, facilidade de

manutenção

Page 11: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1111/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Categorização de MétricasCategorização de Métricas

Métricas orientadas a tamanho São medidas diretas do tamanho dos artefatos de software

associados ao processo por meio do qual o software é desenvolvido.

Ex.: esforço, custo, no. KLOC, no. páginas de documentação, no. erros

Métricas orientadas por função Consiste em um método para medição de software do ponto

de vista do usuário, determinando de forma consistente o tamanho e a complexidade de um software.

Page 12: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1212/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Categorização de MétricasCategorização de Métricas

Métricas de produtividade Concentram-se na saída do processo de engenharia de software. Ex.: no. de casos de uso/iteração.

Métricas de qualidade Oferecem uma indicação de quanto o software se adeqüa às

exigências implícitas e explícitas do cliente. Ex.: erros/fase

Métricas técnicas Concentram-se nas características do software e não no processo

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

Page 13: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1313/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Possíveis problemas com métricasPossíveis problemas com métricas

Ex: Comparar a produtividade de engenheiros em termos de linha de código Está sendo utilizado a mesma unidade de medida?

O que é uma linha de código válida? O contexto considerado é o mesmo?

Todos os engenheiros são familiarizados com a linguagem de programação?

O que se quer realmente é o tamanho do código?E a qualidade do código?

Como o resultado será interpretado?Produtividade média de um engenheiro?

O que se quer com o resultado?Comparar a produtividade do processo de software?

Page 14: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1414/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Teoria da MediçãoTeoria da Medição

Teoria sobre métricas pode ajudar a resolver estes problemas.

Page 15: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1515/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Relações EmpíricasRelações Empíricas

Ajudam a observar as relações do tipo verdadeiro/falso entre entidades do mundo real

Ex. Relações empíricas entre o atributo altura das pessoas Binária: O Super-homem é mais alto do que papai Noel Unária: O Super-homem é alto Ternária: O Super-homem é mais alto do que papai Noel e

mamãe Noel

Page 16: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1616/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

MedidaMedida

Medida é uma função de mapeamento

Super-homem

Papai Noel

Mamãe Noel

2.10m

1.65m

1.50m

Atributos do mundo real (domínio)

Um símbolo em um conjunto com

relações matématicas conhecidas

Page 17: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1717/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

MediçãoMedição

É a atribuição de uma medida (através de um símbolo) a um atributo do mundo real

Propósito: manipular símbolos na faixa => determinar conclusões sobre os atributos do domínio

Para ser precisa, a medição deve especificar Domínio: 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 calçadas?

Page 18: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1818/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

EscalaEscala

Representa os símbolos na faixa de uma medida mais as manipulações permitidas

Ex. de manipulações: Mapeamento: transformar símbolos em um conjunto em

outros símbolos em outro conjunto.{verdadeiro, falso} {1, 0}

Page 19: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 1919/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Tipos de EscalaTipos de Escala

Kelvin, tamanho, larguraDiferença entre qualquer par consecutivo de valores é preservada. Possui 0 absoluto.

Ratio (razão)

Celsius e FahrenheitDiferença entre qualquer par consecutivo de valores é preservada

Intervalar

{simples, médio, complexo}

Símbolos ordenadosOrdinal

{verdadeiro, falso}Símbolos não ordenadosNominal

ExemplosCaracterísticasNome

Page 20: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2020/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Os Quatros papéis de MediçãoOs Quatros papéis de Medição

Segundo Humphrey, são quatro os principais papéis de Medições de Software:

Processos, Processos, Produtos e Produtos e Serviços de Serviços de

SoftwareSoftware

Processos, Processos, Produtos e Produtos e Serviços de Serviços de

SoftwareSoftware

EntenderEntender

AvaliarAvaliar PreverPrever

ControlarControlar

Page 21: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2121/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Os Quatros papéis de MediçãoOs Quatros papéis de Medição

Entender Métricas ajudam a entender o comportamento e funcionamento de

processos, produtos e serviços de software

Avaliar Métricas podem ser utilizadas para tomar decisões e determinar o

estabelecimento de padrões, metas e critérios de aceitação

Controlar Métricas podem ser utilizadas para controlar processos, produtos e

serviços de software

Prever Métricas podem ser utilizadas para prever valores de atributos

Page 22: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2222/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

O Paradigma Goal Question Metrics O Paradigma Goal Question Metrics (GQM)(GQM)

Usado para definir o conjunto de métricas a ser coletado

Proposto por: Basili and Rombach’s, Goal-Question-Metrics Paradigm,

IEEE Transactions on Software Engineering, 1988.

Baseia-se no fato de que deve existir uma necessidade clara associada a cada métrica

Page 23: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2323/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

O Paradigma Goal Question Metrics O Paradigma Goal Question Metrics (GQM)(GQM)

Inicia-se com a identificação dos interessados na medição. Com base nos interessados, estabelecem-se os principais

objetivos da medição para a organização, o projeto ou uma tarefa específica. Ex: reduzir defeitos, aumentar produtividade, etc.

A partir dos objetivos, geram-se perguntas cujas respostas dirão se os objetivos foram ou não alcançados (ex: Qual a taxa de defeito atual? Qual a taxa de defeito após a implantação do novo processo?)

A partir das perguntas, definem-se métricas: que dados serão necessários? Quais os formatos? Como coletar (fórmula e processo)? Onde armazenar e como utilizar?

Page 24: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2424/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

O Paradigma Goal Question Metrics O Paradigma Goal Question Metrics (GQM)(GQM)

Goal 1Goal 1 Goal 2Goal 2

Questão 1Questão 1 Questão 2Questão 2 Questão 3Questão 3 Questão 4Questão 4

Métrica 1 Métrica 1 Métrica 2Métrica 2 Métrica 3Métrica 3 Métrica 4Métrica 4 Métrica 5Métrica 5

Page 25: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2525/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Exemplo do uso do GQMExemplo do uso do GQM

Objetivo: Assegurar que todos os defeitos são corrigidos antes do software ser liberado para uso.

Perguntas: Quantos defeitos temos atualmente? Qual o status de cada defeito? Qual a cobertura dos testes?

Métricas: Número de defeitos Número de defeitos por status Número de casos de testes planejados x executados Número de requisitos testados

Page 26: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2626/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Selecionando ObjetivosSelecionando Objetivos

Devem estar associados a um período de tempo Aumentar a produtividade em 20% no prazo de 12 meses Facilita o acompanhamento e a tomada de ações para

viabilizar objetivo pois existe um prazo!!!

Estudos indicam que objetivos muito complexos e de longo prazo podem causar impacto na motivação Objetivos menores, a curto prazo, permitem que as pessoas

visualizem o progresso e alcancem sucessos Com o tempo e com a maturidade da organização, os

objetivos devem se tornar mais complexos e mais desafiadores

Page 27: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2727/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Selecionando MétricasSelecionando Métricas

Seja realista e prático

Considere o processo e o ambiente de desenvolvimento atual Não selecione métricas em que os dados sejam difíceis de serem

coletados na sua realidade

Comece com o que for possível

A equipe não deve ser muito impactada

Utilize a abordagem incremental Com o tempo, com os benefícios, mais dados estarão

disponíveis...

Page 28: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2828/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Selecionando MétricasSelecionando Métricas

Objetivo: Aumentar satisfação do cliente Que atributos dos nossos produtos e serviços são mais

importantes para os nossos clientes?

Aspectos Relevantes de Produto e Serviço para Clientes

0

5

10

15

20

Qualidade Custo Prazo Visibilidade doProgresso

Flexbilidade p/mudanças

Aspectos Relevantes Para os Clientes

Clie

nte

s q

ue

Co

nsi

der

am o

Asp

ecto

# Clientes

Page 29: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 2929/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

O processo de mediçãoO processo de medição

É um processo cíclico que envolve: Planejar Medir Analisar os dados Tomar decisões baseadas na análise Implementar as decisões Voltar a planejar e medir

Page 30: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3030/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Princípios de um Processo de MediçãoPrincípios de um Processo de Medição

Um processo de medição deve: Fornecer uma base para melhoria contínua do processo Quantificar a qualidade e produtividade Estar integrado com o ciclo de vida de desenvolvimento Medir o impacto de vários métodos, ferramentas, e técnicas

de melhorias

Page 31: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3131/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Princípios de um Processo de MediçãoPrincípios de um Processo de Medição

Medições devem ser usadas para medir processos, não pessoas

O processo de medição deve ter objetivos claros e bem-definidos

O processo de medição deve ser fortemente acoplado com o processo de gerência da qualidade e integrado dentro de planos e orçamentos

Page 32: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3232/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Princípios de um Processo de MediçãoPrincípios de um Processo de Medição

O processo de coleta de dados deve ser simples, e ferramentas automáticas para extração de dados devem ser usadas

O processo de medição é contínuo e sujeito a melhoria

Page 33: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3333/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Características de um programa efetivo Características de um programa efetivo de mediçãode medição

Escolha um conjunto adequado de métricas Relacione as métricas ao processo de tomada de decisão (suportado pela alta

administração) Avalie processos e não pessoas (explique os objetivos da medição) Não use as métricas para punir Envolva várias pessoas na seleção e formulação das métricas Estabeleça alta prioridade (recursos, ferramentas, etc.) Integre o programa ao desenvolvimento de software Alinhe aos objetivos de negócio Padronize e documente Compartilhe as métricas obtidas Institucionalize como parte da cultura da organização Integre com o programa de melhorias (ilustre o progresso e as melhorias

obtidos a partir do programa) Ofereça planos de ação

Page 34: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3434/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Plano de MétricasPlano de Métricas

Para cada objetivo técnico o plano contém informação sobre: POR QUE as métricas satisfazem o objetivo QUE métricas serão coletadas, como elas serão definidas, e

como serão analisadas QUEM fará a coleta, quem fará a análise, e quem verá os

resultados COMO será feito: que ferramentas, técnicas e práticas

serão usadas para apoiar a coleta e análise das métricas QUANDO no processo e com que freqüência as métricas

serão coletadas e analisadas ONDE os dados serão armazenados

Page 35: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3535/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Especificando as Medições – Definições Especificando as Medições – Definições OperacionaisOperacionais

Definir e documentar para cada métrica : Objetivos Público alvo da métrica

Quem precisa da informação? Quem irá usar as informações fornecidas pela métrica? Uma métrica útil sempre tem um cliente

Procedimento de coleta e armazenamento Quando o dado deve ser coletado? Periodicamente ou por eventos? Quem é o responsável pela coleta e armazenamento? Como o dado deve ser coletado? A partir de que ferramentas e produtos de

trabalho do projeto / organização? Onde ele será armazenado? Quando o dado deve ser armazenado? Avaliar métricas que podem acarretar em muito esforço e pouco valor Buscar automatizar a coleta dos dados sempre que possível

Ferramentas para controle de tempo, bugtracking, helpdesk, controle de versão, gestão de requisitos

Page 36: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3636/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Especificando as Medições – Definições Especificando as Medições – Definições OperacionaisOperacionais

Procedimentos de Análise Necessários para

Entendimento da métrica Avaliação (critério para tomada de decisão)

A análise dos dados deve endereçar os objetivos das medições Seleção dos métodos e ferramentas de análise:

Como a métrica será visualmente apresentada? Gráficos de barras, linhas, colunas, pizza, histogramas, diagramas de scatter,

tabelas... Ferramentas de Ishikawa

A equipe de desenvolvimento deve ser envolvida sempre que necessário

Para métricas de controle: Estabelecimento de limites de controle Estabelecimento de thresholds (limiar) Padrões ou requisitos de mercado de performance

Média de mercado para custo da baixa qualidade = 4%– Temos que correr atrás dessa meta!!!

Page 37: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3737/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Após todo o planejamento...Após todo o planejamento...

Executar as atividades com base no planejamento realizado

Utilizar o plano de medição como base!!

Tomar ações com base nos resultados

Acompanhar os itens de ação

Comunicar os resultados ao público alvo de cada métrica

Ajustar o processo com melhorias a partir dos resultados de sua execução:

Inicialmente vai ser difícil definir todos esses procedimentos da melhor forma

Eles devem ser melhorados a medida em que o processo é executado

Novos objetivos e métricas surgem...

Melhores forma de coleta são identificadas

As orientações para realização da análise vão sendo refinadas a medida

que conhecemos melhor os dados

Page 38: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3838/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Após todo o planejamento... (2)Após todo o planejamento... (2)

Armazenar os resultados Tanto os dados, como os resultados, as ações tomadas,

tudo que for relevante Toda informação que contextualize a métrica ou que

forneça alguma informação adicional

Dados históricos não são Dados históricos não são apenas númerosapenas números

Page 39: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 3939/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Cuidado com...Cuidado com...

Elaborar um política de controle de acesso Apenas pessoas autorizadas devem ter acesso a certos

tipos de dados

Evitar o uso indevido dos dados Avaliação de pessoas Comparação entre projetos, grupos ou áreas da empresa de

forma indevida Publicação de informações que foram fornecidas de forma

confidencialAtenção: O uso indevido dos dados impacta fortemente Atenção: O uso indevido dos dados impacta fortemente e negativamente um programa de mediçõese negativamente um programa de medições

Page 40: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4040/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Estimativas de Software

Page 41: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4141/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Por que é tão difícil estimar?Por que é tão difícil estimar?

É difícil conhecer se é possível desenvolver o produto desejado pelo cliente antes de conhecer os detalhes do projeto.

Page 42: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4242/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Por que é tão difícil estimar?Por que é tão difícil estimar?

Desenvolvimento é um processo gradual de refinamento Incerteza da natureza do produto contribui para a incerteza

da estimativa Requisitos e escopo mudam Defeitos são encontrados e demandam retrabalho Produtividade varia

Page 43: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4343/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

O Processo de EstimativasO Processo de Estimativas

1. Estimar o tamanho do produto

2. Estimar o esforço

3. Estimar o prazo

4. Fornecer estimativas dentro de uma faixa permitida e refinar essa faixa à medida que o projeto progride

Page 44: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4444/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Tipos de EstimativasTipos de Estimativas

Tamanho Quantidade de software a ser produzida Ex. no. linhas de código, no. pontos de função, n.o de

requisitos, pontos de casos de uso

Esforço Derivado da estimativa de tamanho Ex. dividindo a estimativa de tamanho por produtividade

produz-se o esforço

Page 45: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4545/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Tipos de EstimativasTipos de Estimativas

Prazo Geralmente são dirigidos a datas fornecidas pelo Cliente

Qualidade Medidas de resultados Ex. defeitos por fase, esforço de mudanças

Page 46: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4646/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Evolução Histórica & TendênciasEvolução Histórica & Tendências

Page 47: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4747/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

A Década de 70: Medição do Código A Década de 70: Medição do Código FonteFonte

Caracterizada por Métricas para código fonte propostas por Halstead (ex:

número de operadores distintos, número de operandos distintos, etc.)

Métricas de Complexidade Ciclomática de McCabeMedida do número de caminhos linearmente independentes

num módulo

Influenciada por: Aceitação crescente da programação estruturada Primeiras noções de complexidade cognitiva

Page 48: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4848/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

A Década de 80: Medição no início do A Década de 80: Medição no início do ciclo de vidaciclo de vida

Estimativas de medição: esforço e custo Medidas na etapa de projeto Medidas na etapa de especificação

Page 49: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 4949/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

A Década de 90: Um perspectiva mais A Década de 90: Um perspectiva mais amplaampla

Surgimento de relatórios sobre programas de métricas aplicados em empresas

Benchmarking Impacto do modelo CMM Surgimento de ferramentas para medição Surgimento de uma teoria de medição como um framework unificado

Surgimento de padrões internacionais de medição de software (ex: Análise de pontos de função)

Page 50: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5050/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Tendências: procura por métricas mais Tendências: procura por métricas mais específicasespecíficas

Medidas que: capturem a complexidade cognitiva capturem a complexidade estrutural capturem a complexidade funcional sejam independentes de linguagem possam ser extraídas nas etapas iniciais do ciclo de vida

Page 51: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5151/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

ISBSGISBSG

International Software Benchmarking Standards Group Organização sem fins lucrativos Mantém um banco de dados de métricas de projetos de

software para auxiliar na melhoria gerência de recursos de TI

Page 52: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5252/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Métricas de Software: ResumoMétricas de Software: Resumo

As atividades de medição devem ser guiadas por objetivos

Plano de Métricas detalham como criar programas de medição para atender a objetivos técnicos específicos

Tendências recentes: evolução de métricas ou modelos específicos para amplos programas organizacionais de métricas

Page 53: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5353/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Principais BarreirasPrincipais Barreiras

Falta de comprometimento da alta gerênciaFalta de comprometimento da alta gerência

Medir custa caroMedir custa caro

Os maiores benefícios vêm a longo prazoOs maiores benefícios vêm a longo prazo

Má utilização das métricasMá utilização das métricas

Grande mudança cultural necessáriaGrande mudança cultural necessária

Dificuldade de estabelecer medições apropriadas e úteisDificuldade de estabelecer medições apropriadas e úteis

Interpretações dos dados realizadas de forma incorretaInterpretações dos dados realizadas de forma incorreta

Obter o comprometimento de todos os envolvidos e impactadosObter o comprometimento de todos os envolvidos e impactados

Estabelecer um programa de medições é fácil, o difícil é manter!!Estabelecer um programa de medições é fácil, o difícil é manter!!

Page 54: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5454/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Mas podemos contornar ...Mas podemos contornar ...

Foco desde os estágios iniciais da melhoria de processo

Medição faz parte do TODO

Começar Pequeno

Selecionar um conjunto coerente

É importante definir cada detalhe da métrica

Descartar o que não estiver sendo útil

Fornecer as informações corretas, para as pessoas certas

“Agregar valor”, ao invés de gerar apenas dados

Page 55: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5555/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

Mas podemos contornar ...Mas podemos contornar ...

Incentivar a equipe de desenvolvimento a fazer uso das métricas

Envolvimento de todos os impactados

Estabelecer as expectativas

Educação e Treinamento

Ganhar Confiança

Adotar uma Abordagem Evolucionária

Compreender que a Adoção leva Tempo

Page 56: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5656/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

ReferênciasReferências

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

Page 57: ©2005, Alexandre Vasconcelos Métricas de Software1/57 Introdução a Métricas de Software Alexandre Vasconcelos amlv@cin.ufpe.br

Métricas de SoftwareMétricas de Software 5757/57/57©2005, Alexandre Vasconcelos©2005, Alexandre Vasconcelos

ReferênciasReferências

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.

Métricas 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/mariaisabel/mariaisabel.html

Métricas e Estimativas de Software – O início de um rally de regularidade. Url: http://www.apinfo.com/artigo44.htm

Pressman, Roger. S. Engenharia de Software. Makron Books, 1995.