M3. Метрика на Холстед за текстуална сложност I. Описание
Статична метрика за програма, написана на произволен език за програми-
ране. Предложена е от Холстед през 1976 г. [7] и е метриката, за която има най-
много публикации.
Програмата се разглежда като състояща се от активни елементи (операто-
ри) и пасивни елементи (операнди). Операндите са константи или променливи,
използвани при реализацията на алгоритъма в конкретна програма. Оператори-
те са елементи, влияещи върху стойностите или наредбата на операндите.
За прилагане на метриката се определят:
88
— брой различни оператори;
— брой различни операнди;
N1 — общ брой оператори;
N2 — общ брой операнди.
Чрез тези оценъчни елементи се изчисляват:
Речник: n = n1 + n2 Дължина на програмата: N = N1 + N2 Изчислена дължина на програмата:
N = n1* log2 * n1 + n2 log2 n2 Обем на програмата: V = (N1 + N2) * log2 (n1+ n2) Трудност на програмата: D.= (n1 / 2) * (N2/n2)
Ниво на програмата: L = 1 / D
Усилия за създаване на програмата: Е = V * D
Преброяването на n1, n2, N1 и N2, както и изчисляването на метриките за
гореописаните свойства, може да се извършва от инструментално средство (спе-
циализиран лексически анализатор).
II. Приложимост
1. Могат да се оценяват усилията за създаване на програмата. В [8] се
предлага за оптимална сложност на програма стойността Еоp = 60 800 и за мак-
симална Emax = 129 600.
Сравняването на Е за конкретна програма с тези две стойности дава въз-
можност да се класифицират усилията за разработването й като малки, средни
или големи.
2. Може да се оцени времето за програмиране чрез използване на индекса
на Страуд за интензивност на интелектуалните занимания, който за програми-
рането има стойност S = 18. Така
T = E/S = E/18
Гордън доказва [9], че усилията за създаване на нова програма са срав-
ними с усилията за разбиране на съществуваща. Този факт често се използва за
предварителна оценка на усилията за съпровождане в случаите, когато то не се
осъществява от разработчиците.
В [8] се предлагат формули за предварително оценяване на броя на отк-
риваните грешки:
В, = V / 3000 — брой грешки, откривани при изпитанията;
В2 = 4 * B1 = V / 750 — общ брой грешки, открити през жизнения цикъл на
програмата.
5. В [10] се обосновава възможността усилията за тестване да се оценяват чрез
произведението NX * Е, където NX e индекс за ниво на влагане (индикатор за
необходимия брой тестове), а Е е мярката на Холстед за усилията на разработване.
Някои от предлаганите мерки не са очевидни и за разбирането им е необ-
ходимо вникване в създадената от Холстед теория, но от прагматична гледна
точка е важно, че тази метрика е с изключително високо ниво на експериментал-
но валидиране. Ясно дефинираният смисъл на четирите оценъчни елемента, срав-
нително простата и лесна за автоматизиране процедура и множеството допъл-
нително пресмятани мерки правят от метриката на Холстед задължителен еле-
мент на всяка използвана в практиката метрична система.
89