Měření složitosti Halstead - Halstead complexity measures - Wikipedia
Měření složitosti Halstead jsou softwarové metriky představil Maurice Howard Halstead v roce 1977[1] v rámci svého pojednání o založení empirické vědy o vývoji softwaru. Halstead uvedl, že metriky softwaru by měly odrážet implementaci nebo vyjádření algoritmů v různých jazycích, ale měly by být nezávislé na jejich provádění na konkrétní platformě. Tyto metriky jsou proto vypočítán staticky z kódu.
Cílem společnosti Halstead bylo identifikovat měřitelné vlastnosti softwaru a vztahy mezi nimi. Je to podobné jako identifikace měřitelných vlastností hmoty (jako je objem, hmotnost a tlak plynu) a vztahů mezi nimi (analogicky k plynová rovnice Jeho metriky tedy ve skutečnosti nejsou jen metrikami složitosti.
Výpočet
Pro daný problém, Let:
- = počet odlišných operátorů
- = počet odlišných operandů
- = celkový počet operátorů
- = celkový počet operandů
Z těchto čísel lze vypočítat několik měr:
- Slovník programu:
- Délka programu:
- Vypočítaná odhadovaná délka programu:
- Objem:
- Obtížnost:
- Úsilí:
Míra obtížnosti souvisí s obtížností programu psát nebo rozumět, např. když děláš kontrola kódu.
Míra úsilí se promítne do skutečné doby kódování pomocí následujícího vztahu,
- Čas potřebný k programování: sekundy
Halsteadovy doručené chyby (B) představují odhad počtu chyb v implementaci.
- Počet doručených chyb: nebo v poslední době je přijat[Citace je zapotřebí ].
Příklad
Zvažte následující C program:
hlavní(){ int A, b, C, prům; scanf("% d% d% d", &A, &b, &C); prům = (A + b + C) / 3; printf(„průměr =% d“, prům);}
Jedinečnými operátory jsou: hlavní
, ()
, {}
, int
, scanf
,&
, =
, +
, /
, printf
, ,
, ;
Unikátní operandy jsou: A
, b
, C
, prům
, "% d% d% d"
, 3
, „průměr =% d“
- , ,
- , ,
- Vypočítaná odhadovaná délka programu:
- Objem:
- Obtížnost:
- Úsilí:
- Čas potřebný k programování: sekundy
- Počet doručených chyb:
Viz také
Reference
- ^ Halstead, Maurice H. (1977). Prvky softwarové vědy. Amsterdam: Elsevier North-Holland, Inc. ISBN 0-444-00205-7.
externí odkazy
- Metriky Halstead - Rozsáhlá diskuse o výpočtu a použití Halstead Metrics v objektově orientovaném prostředí (se specifickým odkazem na Javu).
- Výpočet metrik Halstead - Měření Halsteadových metrik.
- Vysvětlení se vzorovým programem - Příklad (na straně 6 PDF)
- Skriptové výpočty Halstead Metrics a jejich použití pro detekci komentovaného kódu
- IBM
- Kalkulačka pro výpočet metrik Halstead