260 likes | 453 Views
Cap 4 – Métricas do Processo e Projeto de Software. Ricardo L Schneider FES. Medidas, métricas e indicadores. “… provêem uma indicação quantitativa de uma extensão, quantia, dimensão, capacidade, ou tamanho de um produto ou processo” Ex: “número de erros encontrados em uma revisão de código”.
E N D
Cap 4 – Métricas do Processo e Projeto de Software Ricardo L Schneider FES
Medidas, métricas e indicadores “… provêem uma indicação quantitativa de uma extensão, quantia, dimensão, capacidade, ou tamanho de um produto ou processo” Ex: “número de erros encontrados em uma revisão de código”
Medidas, métricas e indicadores “… são medidas quantitativas do grau em que um sistema, componente ou processo possui um determinado atributo” Ex: a média do número de erros encontrados por revisão
Medidas,métricas e indicadores “… são métricas ou combinação de métricas que provêem uma percepção interna do processo, projeto ou produto de software. Permite que o técnico ou gerente tome decisões apropriadas” Ex: Seleção do método de teste, com base no resultado da experimentação de dois métodos diferentes
Métricas de processo Produto Processo Caracteristicas do cliente Condições de negócios Pessoas Tecnologia Ambiente de desenvolvimento
Métricas de Projeto • Métricas de processo são usadas com objetivos estratégicos • Métricas de projeto são usadas com objetivos objetivos táticos: • Estimativas de tempo e esforço com base em experiências anteriores • Aumento da qualidade e redução de defeitos • Redução dos custos
Medidas de software • Medidas diretas: • LOC (Lines Of Code) • Velocidade de execução • Tamanho de memória utilizada, … • Medidas indiretas • Funcionalidade • Qualidade • Complexidade • Confiabilidade, …
Métricas orientadas ao tamanho • Número de linhas de código (LOC/KLOC) • Erros por KLOC • Defeitos por KLOC • $ por KLOC • Páginas de documentação por KLOC • Erros por HM (homem.mês) • KLOC / HM
Métricas orientadas a funções • Pontos de Função [Albrecht 1979] “relação empírica entre medidas diretas de informações do domínio do software e a complexidade do desenvolvimento do software”
Ajuste dos FPs FP = ContTotal x [0,65 + 0,01 xS(Fi)] Fi (i = 1 a 14) >> (0 .. 5) Fatores de complexidade FP >> 65% a 135% de ContTotal
Sistema precisa backup? Comunicação de dados? Processamento distribuido? Performance é crítica? Compartilha SO c/outros sistemas? Precisa entrada on-line? Usa múltiplas telas para cada entrada de dados? Os arquivos mestres são atualizados on-line? As entradas, saidas, arquivos ou consultas são complexas? Processamento interno complexo? Código reutilizável? Conversão/instalação incluidas no projeto? Instalações múltiplas? Facilidade de mudanças? Fatores de ajuste:
Métricas relacionadas a FP • Erros por FP • Defeitos por FP • $ por FP • Páginas de documentação por FP • FP por homem x mês • ….
Extensões dos FPs • Pontos de Características (Feature Points) • Aplicados em sistemas e engenharia • Contabiliza “algorítmos” • Pontos de Função 3D (Boeing) • Sistemas de tempo real e engenharia • Dados, Funções e Controle
Reconciliação das métricas: Linguagem LOC/FP (média) - Assembler 320 - C 128 - COBOL 106 - FORTRAN 106 - Pascal 90 - C++ 64 - ADA95 53 - Visual Basic 32 - Smalltalk 22 - Powerbuilder 16
Métricas de qualidade de software • Qualidade em “tempo real”! • Medidas técnicas para avaliar a qualidade de forma objetiva • Força propulsora é medir erros e defeitos: • Erros por FP • Erros descobertos por hora de revisão • Erros descobertos por hora de teste
Fatores que afetam a qualidade [McCall & Cavano – 1978] • Operação do produto (usando-o) • Revisão do produto (modificando-o) • Transição do produto (modificando-o para trabalhar em outro ambiente – “portando-o”)
Medindo a qualidade • Correção – defeitos por KLOC – defeito == verificação de falta de conformidade com a especificação • Manutenibilidade – facilidade com que um programa pode ser corrigido, se um erro for encontrado – medidas indiretas: MTTC (mean time to change) ou Estrago – custo para corrigir defeito depois do software entregue
Integridade – habilidade do sistema em resistir a ataques intencionais ou acidentais – ameaça >> probabilidade de ocorrência de um ataque num determinado tempo;– segurança >> probabilidade que um ataque seja repelidointegridade = S[(1–ameaça)x(1–segurança)]
Usabilidade== amigabilidade • Habilidade física ou intelectual necessária para entender o sistema • Tempo necessário para se tornar eficiente no uso do sistema • O aumento líquido de produtividade obtido por quem domina o sistema • Avaliação subjetiva das atitudes dos usuários
DRE (defect removal efficiency) DRE = E / (E + D) E > erros encontrados antes da entrega D > erros encontrados depois da entrega do produto DREi = Ei / (Ei + Di+1)
Métricas integradas com o processo de software Processo Projeto Medidas Coleta de dados Produto Métricas Computação das métricas Indicadores Avaliação das métricas
Controle estatístico do processo Erros / hora de revisão 15 12 9 6 3 0 +1dp -1dp 1 3 5 7 9 11 13 15 17 19 21 23 Projetos
Programa de métricas de software • Identificar os objetivos do negócio • Identificar o que é necessário saber • Identificar os sub-objetivos • Identificar as entidades e atributos relacionados com os sub-objetivos • Formalizar os objetivos de medições
Identificar questões quantificáveis e indicadores relacionados para atender aos objetivos • Identificar os elementos de dados para atender os indicadores • Definir as medidas a serem usadas • Identificar as ações para implementar as medidas • Preparar o plano para implementar as medidas