medição e métricas de software - brhott.files.wordpress.com · n avaliar os benefícios (em...

40
Medição e Métricas de Software

Upload: lekhanh

Post on 19-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

Medição e Métricas de Software

Page 2: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

2

Motivaçã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

Page 3: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

3

Motivaçãon “Não se pode gerenciar o que não se pode

medir”.Tom De Marco

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

Roger Pressman

Page 4: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

44

Por que medir?n Se não é possível medir, expressando em

números, apenas uma análise qualitativa (e, portanto, subjetiva) pode ser feita (o que, na maioria das vezes, é insuficiente).

n Com medições, as tendências (boas ou más) podem ser detectadas, melhores estimativas podem ser feitas e melhorias reais podem ser conseguidas.

n Números permitem análises, comparações e combinações que são impossíveis de fazer com outros tipos de informação.

Page 5: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

55

Conceitos Básicos - Qualidaden Característica de Qualidade: um conjunto de

atributos de uma entidade por meio do qual a qualidade da mesma pode ser avaliada.

n Atributo: uma propriedade mensurável, física ou abstrata, de uma entidade.

n Entidade: o que se deseja avaliar. No contexto da Qualidade de Software, um produto, processo, recurso, projeto etc.

n Características de Qualidaden Sub-características

Page 6: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

66

Exemplo 1n Entidade a ser avaliada: ferramenta CASE de

modelagem UML (p.ex., Jude)n Características de Qualidade:

n Funcionalidade (adequabilidade)n Usabilidade

n Facilidade para o aprendizadon Facilidade para a operaçãon Facilidade de compreender

n Eficiêncian Em termos de tempo n Em relação à utilização de recursos

n Portabilidaden Questão: Como medir?

Page 7: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

77

Conceitos Básicos - Medição

n Medida n Mediçãon Métrican Indicador

Page 8: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

88

Medida e Medição

n Medida: número ou categoria atribuído fornece uma indicação quantitativa da extensão, quantidade, dimensão, capacidade ou tamanho de um atributo de uma entidade.

n Medição: é o ato de medir, isto é, de determinaruma medida.

Page 9: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

99

Métrica e Indicador

n Métrica: procura correlacionar medidas individuais com o objetivo de se ter uma idéia da eficácia da entidade sendo medida.

n Indicador: informação relacionada a uma medida, métrica ou combinação de métricas que pode ser utilizada para se ter uma compreensão da entidade sendo medida.

Page 10: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

10

Em resumo - Métricasn Uma métrica é a medição de um atributo (propriedades ou

características ) de uma determinada entidade (produto, processo ou recursos). Exemplos: n Tamanho do produto de software (ex: Número de Linhas de

código)n Número de pessoas necessárias para implementar um caso

de uson Número de defeitos encontrados por fase de desenvolvimenton Esforço para a realização de uma tarefan Tempo para a realização de uma tarefan Custo para a realização de uma tarefan Grau de satisfação do cliente (ex: adequação do produto ao

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

Page 11: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

1111

Exemplo 2n Deseja-se saber se uma pessoa está com seu

peso ideal ou não. Para tal, duas medidas são importantes: altura (H) e peso (P).

n Ao medir essas dimensões, está-se efetuando uma medição.

n A métrica “índice de massa corporal (IMC)” é calculada segundo a seguinte fórmula: IMC = P / H2.

n A partir dessa métrica, foram estabelecidos indicadores que apontam se um adulto está acima do peso, se está obeso ou abaixo do peso ideal considerado saudável.

Page 12: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

1212

Exemplo 2n Indicadores da Organização Mundial de Saúde

Condição IMC em adultos

abaixo do peso abaixo de 18,5

no peso normal entre 18,5 e 25

acima do peso entre 25 e 30

obeso acima de 30

Page 13: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

1313

Exemplo 2n Indicadores da National Health and Nutrition

Examination Survey

Condição IMC em Mulheres IMC em Homens

abaixo do peso < 19,1 < 20,7

no peso normal 19,1 - 25,8 20,7 - 26,4

marginalmente acima do peso 25,8 - 27,3 26,4 - 27,8

acima do peso ideal 27,3 - 32,3 27,8 - 31,1

obeso > 32,3 > 31,1

Page 14: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

1414

Exemplo 1n Funcionalidade

n Adequabilidaden Cobertura da funcionalidade implementada - CFI

n Quão correta está a implementação funcional?n CFI = 1 – NFNI / NFE

n NFNI: número de funções ausentes (não implementadas) ou incorretamente implementadas detectado na avaliação

n NFE: número de funções descritas na especificação de requisitos

n Quanto CFI mais perto de 1.0, melhor. n CFI < 0.8, descartar a possibilidade de adoção do

produto.

Page 15: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

15

Por que medir software?n Entender e aperfeiçoar o processo de

desenvolvimenton Melhorar a gerência de projetos e o relacionamento

com clientesn Reduzir frustrações e pressões de cronograman Gerenciar contratos de softwaren Indicar a qualidade de um produto de softwaren Avaliar a produtividade do processon Avaliar os benefícios (em termos de produtividade e

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

n Avaliar retorno de investimento

Page 16: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

16

Por que medir software?n Identificar as melhores práticas de desenvolvimento de

softwaren Embasar solicitações de novas ferramentas e

treinamenton Avaliar o impacto da variação de um ou mais atributos

do produto ou do processo na qualidade e/ou produtividade

n Formar uma baseline para estimativasn Melhorar a exatidão das estimativasn 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 17: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

1717

Medição e Estimativasn Base importante para estimativas: dados

históricos.n Mas só é possível chegar a boas estimativas com

base em dados históricos se os dados forem coletados criteriosamente.

n Portanto, quando se pretende utilizar dados de projetos anteriores para estimar, dados de métricas são muito importantes.

Page 18: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

1818

Medição e Acompanhamento de Projetosn Para acompanhar o andamento do projeto, é

preciso medir o progresso e comparar com o estimado.

n Medidas coletadas dão visibilidade ao estado do projeto, permitindo verificar se o rumo está correto e fornecendo a base para a tomada de ações corretivas, quando necessário.

n Métricas têm um importante papel na rápida identificação e correção de problemas ao longo do desenvolvimento do projeto. Com a sua utilização, fica muito mais fácil justificar e defender as decisões tomadas.

Page 19: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

1919

Medição e Qualidaden A única maneira de avaliar e melhorar a

qualidade de uma entidade é medir atributos específicos dessa entidade, obter um conjunto de métricas significativas baseadas nesses atributos e usar os valores das métricas para fornecer indicadores que nortearão um processo de melhoria.

Page 20: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

2020

Medição e Melhoria de Processosn Coletar dados que meçam o desempenho de

cada processo.n Analisar o desempenho de cada processo.n Reter e utilizar os dados para:

n Avaliar a estabilidade e a capacidade do processo;n Interpretar os resultados das observações e análises;n Traçar tendências;n Identificar oportunidades de melhorias

n Ex.: Processo de Engenharia de Requisitos.

Page 21: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

21

Possíveis problemas com métricasn Ex: Comparar a produtividade de engenheiros em termos

de linha de códigon Está sendo utilizado a mesma unidade de medida?

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

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

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

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

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

Page 22: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

2222

Problemas Relacionados à Mediçãon Procedimentos de Coleta de Dados: todo

trabalho de avaliação é colocado em risco se não puder garantir-se a obtenção de dados confiáveis.

n Influência de Usuários, hardware etc.n Que métricas coletar?

Page 23: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

2323

Tipos de Métricas de Softwaren Métricas de projeton Métricas de produto

n Métricas estáticas: Fan-in/Fan-out, Complexidade ciclomática, Profundidade da árvore de herança etc

n Métricas dinâmicas: tempo para realizar determinada função

n Métricas de processo: coletadas ao longo de todos os projetos.

n Métricas de qualidade: ex.: métricas relacionadas a defeitos

Page 24: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

24

Categorização de Métricasn Métricas diretas (fundamentais ou básicas)

n Medida realizada em termos de atributos observados (usualmente determinada pela contagem)

n Ex.: custo, esforço, no. linhas de código, capacidade de memória, no. páginas, no. diagramas, etc.

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

de manutenção

Page 25: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

25

Categorização de Métricasn Métricas orientadas a tamanho

n São medidas diretas do tamanho dos artefatos de software associados ao processo por meio do qual o software é desenvolvido.

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

n Métricas orientadas por funçãon 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 26: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

26

Categorização de Métricasn Métricas de produtividade

n Concentram-se na saída do processo de engenharia de software.

n Ex.: no. de casos de uso/iteração.

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

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

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

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

Page 27: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

27

O Paradigma Goal Question Metrics (GQM)

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

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

IEEE Transactions on Software Engineering, 1988.n Baseia-se no fato de que deve existir uma

necessidade clara associada a cada métrica

Page 28: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

28

O Paradigma Goal Question Metrics (GQM)n Inicia-se com a identificação dos interessados na medição.n 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.

n 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?)

n 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 29: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

29

GQM – Exemplo 1n Objetivo: Assegurar que todos os defeitos são

corrigidos antes do software ser liberado para uso.

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

n Métricas:n Número de defeitosn Número de casos de testes planejados x executadosn Número de requisitos testados

Page 30: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

3030

GQM – Exemplo 2n Objetivo: Melhorar a qualidade dos processos de

verificação e validação.n Questões:

n Qual a quantidade de erros encontrados na revisão dos artefatos?

n Qual a quantidade de erros encontrados nos testes? n Qual a quantidade de erros detectados quando o

sistema já está em operação?n Métricas:

n Defeitos encontrados nas revisõesn Defeitos encontrados nos testesn Defeitos encontrados na operação

Page 31: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

31

Selecionando Objetivosn Devem estar associados a um período de tempo

n Aumentar a produtividade em 20% no prazo de 12 meses

n Facilita o acompanhamento e a tomada de ações para viabilizar objetivo à pois existe um prazo!!!

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

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

objetivos devem se tornar mais complexos e mais desafiadores

Page 32: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

32

Selecionando Métricasn Seja realista e prático

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

serem coletados na sua realidade

n Comece com o que for possível

n A equipe não deve ser muito impactada

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

disponíveis...

Page 33: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

33

Selecionando Métricasn Objetivo: Aumentar satisfação do cliente

n 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

ntes

que

C

onsi

dera

m o

Asp

ecto

# Clientes

Page 34: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

34

Métricas - Manutenibilidaden Tipos de manutenção

n Corretiva: modificações para corrigir defeitos ou não-conformidades

n Adaptativa: utilizada em resposta a modificações nos requisitos (algumas partes do produto já foram testadas e implementadas)

n Incremental: acréscimos às especificações do produto (ex.: funções que não foram previstas anteriormente)

n Preventiva (Pressman): produto é modificado de forma a facilitar a realização dos outros tipos de manutenção

n Métricas de manutenibilidade são aplicadas em dois casosn Prever o esforço necessário para modificar o softwaren Criar uma base de dados histórica que acompanha o

desenvolvimento

Page 35: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

35

Métricas – Medidas de tamanhon Tamanho pode ser indicador de várias

características:n Programas maiores demoram mais tempo para serem

desenvolvidosn Programas maiores envolvem trabalho mais complexo

n Vantagens:n Aplicação simplesn Fácil interpretação quando não se precisa de muita

precisãon Baixo custo de aplicação

n Desvantagens:n Interpretação: para programar o dobro de linhas de

código, em geral, é preciso mais do que duplicar o tempo

Page 36: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

36

Medidas de tamanho - Linhas de códigon Medidas básicas

n LOC (Lines of Code) – NÃO se distingue linhas de código de linhas em branco ou de comentários

n SLOC (Source Lines of Code) físico – linhas em branco e comentários não são considerados

n SLOC lógico – cada comando conta como uma linhan Exemplo

n 3 LOCS, 2 SLOCS, 3 LOCS lógicos (pois há três comandos)

// uma comparaçãoif (a > b) { a++; puts (“ok”);}

Page 37: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

37

Medidas de tamanho – Complexidade estrutural

n Avalia a construção interna do software: número de componentes, a quantidade e a natureza da relação entre eles

n Motivo: um software cuja estrutura é mais complexa oferece dificuldades para ser analisado e compreendido

n São baseadas, em geral, no código fonte

Page 38: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

38

Complexidade ciclomátican Proposto por McCabe (1976)n Avalia o número de caminhos de execução

diferentes de um dado programan Premissa básica: nível de aninhamento de laços

e comandos de decisão tem relação com a complexidade de execução e complexidade psicológica

Page 39: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

39

Complexidade ciclomática

n Baseada na Teoria dos grafosn A complexidade ciclomática, V(G), para um fluxo de

grafo G é definida por:n V(G) = E – N + 2, onde E corresponde ao número

de ramos e N o número de nós do grafo de fluxo.n A complexidade ciclomática, V(G), para um fluxo de grafo

G é:n V(G) = P + 1, onde P é o número de nós

predicativos (comandos de desvio condicionais) contidos no grafo. Só funciona com nós com duas arestas de saída

Page 40: Medição e Métricas de Software - brhott.files.wordpress.com · n Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de ... n Com base

40

Complexidade ciclomática – Exemploint fib (int n) {

int a = 1;1 int b = 1;

int c = 2;

2 if (0 == n) return 0; 83 if (3 > n) return 1; 9

4 while (n-- > 2) {c = a+b;

5 a = b;b = c;

}

6 return c;

} 7

Número de ramos ( E = 11 )Número de nós( N = 9)Número de nós predicativos( P = 3 )

V(G) = E – N + 2 = 4

V(G) = P + 1 = 4