Upload
lekhanh
View
215
Download
0
Embed Size (px)
Citation preview
Medição e Métricas de Software
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
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
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.
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
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?
77
Conceitos Básicos - Medição
n Medida n Mediçãon Métrican Indicador
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.
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.
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)
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.
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
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
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.
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
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
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.
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.
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.
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.
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?
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?
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
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
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.
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
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
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?
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
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
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
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...
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
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
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
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”);}
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
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
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
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