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.
Métricas de engajamento
Métodos para medir como os usuários estão interagindo com páginas e conteúdo da web. Exemplos de métricas de engajamento incluem:
- Taxa de cliques
- Taxa de conversão
- Taxa de rejeição
- Tempo na página / site
- Novo vs. visitantes de retorno
- Frequência e recência
- Tempo de permanência