Métrica de software

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

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 das medições obtidas.

Métricas de softwares possibilitam realizar uma das atividades mais fundamentais do processo de gerenciamento de projetos: o planejamento. A partir deste, 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 se concentram 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[editar | editar código-fonte]

  • Custo
  • Esforço
  • Linhas de Código
  • Velocidade de Execução
  • Memória
  • Número de Erros
  • Complexidade ciclomática

Medidas Indiretas[editar | editar código-fonte]

  • 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[editar | editar código-fonte]

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[editar | editar código-fonte]

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 o software[editar | editar código-fonte]

  • 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.

Exemplos de métricas[editar | editar código-fonte]

  • Número de defeitos introduzidos por programador por hora.
  • Número de patches disponibilizados.
  • Número de mudanças no documento de requisitos
  • Número de linhas de código.
  • Análise de pontos de função (APF) : mede o tamanho funcional do software, subsídios para o cálculo da produtividade do processo de desenvolvimento com base na funcionalidade ou utilidade dos programas. Esta avaliação é realizada sob o ponto de vista do usuário que avalia o tamanho e a complexidade de um software. Nesta contagem são consideradas os seguintes itens da aplicação(software):Arquivos Lógicos Internos, Arquivos de Interface Externa, Entradas Externas, Consultas Externas e Saídas Externas. Cada item deste define um peso que no final determina a quantidade de pontos de função da aplicação, para o desenvolvimento de um novo sistema ou os pontos necessários para se realizar uma manutenção em um sistema já existente. Os pontos calculados servem para se chegar as horas totais do projeto.1 .

Objetivos da Medição de Software e utilidade das métricas[editar | editar código-fonte]

Entender: ajudam a entender o comportamento e o funcionamento de produtos de software.

Avaliar: utilizadas para determinar padrões, metas e critérios de aceitação.

Controlar: utilizadas para controlar processos, produtos e serviços de software.

Prever: utilizadas para prever valores de atributos.

Ver também[editar | editar código-fonte]


Referências

  1. Boas referências em português sobre a APF podem ser encontradas nos seguintes sítios: BFPUG (Brazilian Function Point Users Group) e TI Métricas
Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.