Maurice Halstead, em sua teoria da Ciência do Software, propôs leis quantitativas para o desenvolvimento de software usando um conjunto de medidas, assim definidas de acordo com Pressman e Maxim (2016, p. 675):
- n1 = número de operadores distintos que há em um programa
- n2 = número de operandos distintos que há em um programa
- N1 = número total de ocorrências de n1 (operadores)
- N2 = número total de ocorrências de n2 (operandos)
Com base nestas medidas, podem ser calculados:
n = n1 + n2(vocabulário do programa)
N = n1 log2n1 + n2 log2n2(tamanho do programa)
V = (N1 + N2) x log2(n1 + n2)(volume do programa)
D = n1/2 x N2/n2 (dificuldade do programa)
Exemplo de aplicação das métricas de Halstead
main() {
int a, b, c, med;
scanf("%d %d %d", &a, &b, &c);
med = (a + b + c) / 3;
printf("med = %d", med);
}
n1 (operadores únicos)= 12 main, (), {}, int, scanf, &, =, +, /, printf, " , ;
n2 (operandos únicos)= 7 a, b, c, med, "%d %d %d", 3, "med = %d"
N1= 30
N2= 15
n =n1 + n2 = 19(vocabulário do programa)
N =n1 log2n1 + n2 log2n2= 12x log212 + 7xlog27
=12x3.58 + 7x2.81 = 42.96 + 19.67 = 62.63(tamanho do programa)
V =(N1 + N2) x log2 (n1 + n2) = 45 x log219 =45 x 4.25 = 191.25(volume do programa)
D =n1/2 x N2/n2=12/2 x 15/7 = 12.85 (dificuldade do programa)
Nenhum comentário:
Postar um comentário