-
Notifications
You must be signed in to change notification settings - Fork 0
/
Метрика Холстеда с ХабраХабр.txt
45 lines (23 loc) · 1.72 KB
/
Метрика Холстеда с ХабраХабр.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Также к группе метрик, основанных на подсчете некоторых единиц в коде программы, относят метрики Холстеда [3]. Данные метрики основаны на следующих показателях:
n1 — число уникальных операторов программы, включая символы-
разделители, имена процедур и знаки операций (словарь операторов),
n2 — число уникальных операндов программы (словарь операндов),
N1 — общее число операторов в программе,
N2 — общее число операндов в программе,
n1' — теоретическое число уникальных операторов,
n2' — теоретическое число уникальных операндов.
Учитывая введенные обозначения, можно определить:
n=n1+n2 — словарь программы,
N=N1+N2 — длина программы,
n'=n1'+n2' — теоретический словарь программы,
N'= n1*log2(n1) + n2*log2(n2) — теоретическая длина программы (для стилистически корректных программ отклонение N от N' не превышает 10%)
V=N*log2n — объем программы,
V'=N'*log2n' — теоретический объем программы, где n* — теоретический словарь программы.
L=V'/V — уровень качества программирования, для идеальной программы L=1
L'= (2 n2)/ (n1*N2) — уровень качества программирования, основанный лишь на параметрах реальной программы без учета теоретических параметров,
EC=V/(L')2 — сложность понимания программы,
D=1/ L' — трудоемкость кодирования программы,
y' = V/ D2 — уровень языка выражения
I=V/D — информационное содержание программы, данная характеристика позволяет определить умственные затраты на создание программы
E=N' * log2(n/L) — оценка необходимых интеллектуальных усилий при разработке программы, характеризующая число требуемых элементарных решений при написании программы
При применении метрик Холстеда частично компенсируются недостатки, связанные с возможностью записи одной и той же функциональности разным количеством строк и операторов.