métricas

A medição é algo comum no mundo da engenharia. A engenharia de software está longe de desenvolver uma medição padrão amplamente aceita e com resultados sem fatores subjetivos. Há discordâncias sobre o que medir e como avaliar o resultado obtido das medições. Métricas de softwares possibilitam realizar uma das atividades mais fundamentais do processo de gerenciamento de projetos: o planejamento. A partir desse, pode-se identificar a quantidade de esforço, de custo e das atividades que serão necessárias para a realização do projeto. As métricas de software, do ponto de vista de medição, podem ser divididas em duas categorias: medidas diretas e indiretas. Podemos considerar como medidas diretas do processo de engenharia de software o custo e o esforço aplicados ao desenvolvimento e manutenção do software e do produto, a quantidade de linhas de código produzidas e o total de defeitos registrados durante um determinado período de tempo. Porém, a qualidade e a funcionalidade do software, ou a sua capacidade de manutenção, são mais difíceis de serem avaliadas e só podem ser medidas de forma indireta. Também podemos dividir as métricas de software, sob o ponto de vista de aplicação, em duas categorias: métricas de produtividade e de qualidade. As métricas de produtividade concentram-se na saída do processo de engenharia de software. As métricas de qualidade indicam o quanto o software atende aos requisitos definidos pelo usuário. Medidas Diretas Custo Esforço Linhas de Código Velocidade de Execução Memória Número de Erros Complexidade ciclomática Medidas Indiretas Funcionalidade Qualidade Complexidade Eficiência Confiabilidade Manutenibilidade Para uma melhor compreensão sobre medidas de softwares, precisamos entender algumas informações: Medida: uma indicação quantitativa da extensão, quantidade, dimensão, capacidade ou tamanho do produto ou do processo. Medição: ato de determinação de uma medida. Indicador: É uma métrica ou a combinação delas, que fornece compreensão do processo de software, de um projeto ou do produto As medições de software podem ser organizadas em outras classes, as quais serão definidas a seguir: Métricas da produtividade, baseadas na saída do processo de desenvolvimento do software com o objetivo de avaliar o próprio processo; Métricas da qualidade, que permitem indicar o nível de resposta do software às exigências explícitas e implícitas do cliente, com relação ao definido pela gerência de qualidade; Métricas técnicas, nas quais encaixam-se aspectos como funcionalidade, modularidade, manutenibilidade, etc… Sob uma outra ótica, é possível definir uma nova classificação das medições: Métricas orientadas ao tamanho, baseadas nas medições diretas da Engenharia de Software; Métricas orientadas à função, que oferecem medidas indiretas; Métricas orientadas às pessoas, as quais dão indicações sobre a forma como as pessoas desenvolvem os programas de computador. Métricas Orientadas ao Tamanho A medida de software mais familiar é a contagem de linhas de código. Esta métrica pode parecer simples, mas existe discordância sobre o que constitui uma linha de código. A medida de linhas de código não deveria contar linhas de comentário e linhas em branco, pois não afeta a sua funcionalidade. Está fortemente ligado à linguagem de programação utilizada, impossibilitando a utilização de dados históricos para projetos que não utilizam a mesma linguagem. Um conjunto de métricas de qualidade e produtividade pode ser desenvolvido com esta técnica. Métricas Orientadas à Função Em vez de contar as linhas de código, a métrica orientada à função concentra-se na funcionalidade do software. Em 1979, Allan Albrecht, introduziu uma técnica de avaliação conhecida como Ponto de Função. Baseada na visão de negócio do usuário; É independente da linguagem utilizada e de qualquer tecnologia em geral; Ela não permite calcular o esforço de desenvolvimento, mas gera uma variável que pode permitir seu cálculo; Auxilia o usuário final a melhorar o exame e avaliação de projetos. Seus objetivos são: Medir o que foi requisitado e recebido pelo usuário; Prover uma métrica de medição para apoiar a análise de produtividade e qualidade; Prover uma forma de estimar o tamanho do software; Prover um fator de normalização para comparação de software. Razões para se medir um software Indicar a qualidade do produto; Avaliar a produtividade dos que desenvolvem o produto; Determinar os benefícios derivados de novos métodos e ferramentas de engenharia de software; Formar uma base para as estimativas; Buscar oportunidades por refatoração; Ajudar na justificativa de aquisição de novas ferramentas ou de treinamentos adicionais; A medição é algo comum no mundo da engenharia. Mas para engenharia de software está longe se ter uma medição padrão amplamente aceita e com resultados sem nenhum fator subjetivo. Com certeza o aumento de produtividade mais representativo será obtido quando conseguirmos estabelecer uma sistemática de métricas significativa para os resultados do desenvolvimento de software e efetivamente usá-la.