Medição e Métricas de Software Ricardo de Almeida Falbo Tópicos Especiais – Qualidade de Software 2007/1 Departamento de Informática Universidade Federal do Espírito Santo Agenda Por que medir? Conceitos Básicos Medição e Estimativas Medição e Acompanhamento de Projetos Medição e Qualidade Problemas Relacionados à Medição Tipos de Métricas de Software Definição de Métricas: Método GQM Tópicos Especiais - Qualidade de Software 2007/1 2 Por que medir? 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). 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úmeros permitem análises, comparações e combinações que são impossíveis de fazer com outros tipos de informação. Tópicos Especiais - Qualidade de Software 2007/1 3 Conceitos Básicos - Qualidade Característica de Qualidade: um conjunto de atributos de uma entidade por meio do qual a qualidade da mesma pode ser avaliada. Atributo: uma propriedade mensurável, física ou abstrata, de uma entidade. Entidade: o que se deseja avaliar. No contexto da QS, um produto, processo, recurso, projeto etc. Características de Qualidade Sub-características Tópicos Especiais - Qualidade de Software 2007/1 4 Exemplo 1 Entidade a ser avaliada: ferramenta CASE de modelagem UML (p.ex., Jude) Características de Qualidade: Funcionalidade (adequabilidade) Usabilidade Eficiência Facilidade para o aprendizado Facilidade para a operação Facilidade de compreender Em termos de tempo Em relação à utilização de recursos Portabilidade Questão: Como medir? Tópicos Especiais - Qualidade de Software 2007/1 5 Conceitos Básicos - Medição Medida Medição Métrica Indicador Tópicos Especiais - Qualidade de Software 2007/1 6 Medida e Medição 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. Quando os dados de um único ponto são coletados, uma medida é estabelecida. Ex: Quantidade de erros descobertos em uma revisão. Medição: é o ato de medir, isto é, de determinar uma medida. Tópicos Especiais - Qualidade de Software 2007/1 7 Métrica e Indicador Métrica: procura correlacionar medidas individuais com o objetivo de se ter uma idéia da eficácia da entidade sendo medida. 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. Tópicos Especiais - Qualidade de Software 2007/1 8 Exemplo 2 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). Ao medir essas dimensões, está-se efetuando uma medição. A métrica “índice de massa corporal (IMC)” é calculada segundo a seguinte fórmula: IMC = P / H2. 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. Tópicos Especiais - Qualidade de Software 2007/1 9 Exemplo 2 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 Tópicos Especiais - Qualidade de Software 2007/1 10 Exemplo 2 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 > 32,3 > 31,1 obeso Tópicos Especiais - Qualidade de Software 2007/1 11 Exemplo 1 Funcionalidade Adequabilidade Cobertura da funcionalidade implementada - CFI Quão correta está a implementação funcional? CFI = 1 – NFNI / NFE NFNI: número de funções ausentes (não implementadas) ou incorretamente implementadas detectado na avaliação NFE: número de funções descritas na especificação de requisitos Quanto CFI mais perto de 1.0, melhor. CFI < 0.8, descartar a possibilidade de adoção do produto. Tópicos Especiais - Qualidade de Software 2007/1 12 Medição e Estimativas Base importante para estimativas: dados históricos. Mas só é possível chegar a boas estimativas com base em dados históricos se os dados forem coletados criteriosamente. Portanto, quando se pretende utilizar dados de projetos anteriores para estimar, dados de métricas são muito importantes. Tópicos Especiais - Qualidade de Software 2007/1 13 Medição e Acompanhamento de Projetos Para acompanhar o andamento do projeto, é preciso medir o progresso e comparar com o estimado. 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. 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. Tópicos Especiais - Qualidade de Software 2007/1 14 Medição e Qualidade 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. Tópicos Especiais - Qualidade de Software 2007/1 15 Medição e Avaliação da Qualidade Definir características de qualidade relevantes para avaliar a qualidade da entidade em questão. Para cada característica de qualidade selecionada, definir subcaracterísticas de qualidade relevantes que tenham influência sobre a mesma, estabelecendo uma maneira de computar a característica a partir das sub-características. Usar procedimento análogo ao anterior para as subcaracterísticas não passíveis de mensuração direta. Para as sub-características diretamente mensuráveis, selecionar métricas, coletar medidas e computar as métricas segundo a fórmula estabelecida. Fazer o caminho inverso, computando sub-características não diretamente mensuráveis, até se chegar a um valor para a característica de qualidade. Comparar os valores obtidos com padrões estabelecidos para a organização, de modo a se obter os indicadores da qualidade. A partir dos indicadores, ações devem ser tomadas visando à melhoria. Tópicos Especiais - Qualidade de Software 2007/1 16 Medição e Melhoria de Processos Coletar dados que meçam o desempenho de cada processo. Analisar o desempenho de cada processo. Reter e utilizar os dados para: Avaliar a estabilidade e a capacidade do processo; Interpretar os resultados das observações e análises; Traçar tendências; Identificar oportunidades de melhorias Ex.: Processo de Engenharia de Requisitos. Tópicos Especiais - Qualidade de Software 2007/1 17 Problemas Relacionados à Medição 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. Influência de Usuários, hardware etc. Que métricas coletar? Tópicos Especiais - Qualidade de Software 2007/1 18 Tipos de Métricas de Software Métricas de projeto Métricas de produto Métricas de processo: coletadas ao longo de todos os projetos. Métricas de qualidade: ex.: métricas relacionadas a defeitos Normalização de Métricas:Medidas de Tamanho / Função Tópicos Especiais - Qualidade de Software 2007/1 19 Definição de Métricas: Método GQM GQM - Goal-Question-Metric (Objetivo-QuestãoMétrica. Passos: Listar os objetivos da organização ou projeto. A partir de cada objetivo, derivar questões que devem ser respondidas para determinar se os objetivos foram atingidos. Decidir o que deve ser medido, de forma a ser capaz de responder às questões de forma apropriada. Tópicos Especiais - Qualidade de Software 2007/1 20 GQM - Exemplo Objetivo: Melhorar a qualidade dos processos de verificação e validação. Questões: Qual a quantidade de erros encontrados na revisão dos artefatos? Qual a quantidade de erros encontrados nos testes? Qual a quantidade de erros detectados quando o sistema já está em operação? Métricas: Defeitos encontrados nas revisões / PF Defeitos encontrados nos testes / PF Defeitos encontrados na operação / PF Tópicos Especiais - Qualidade de Software 2007/1 21