Team Se@Msi: Meranie v softvérovom inžinierstve. - FIIT STU ...
Team Se@Msi: Meranie v softvérovom inžinierstve. - FIIT STU ...
Team Se@Msi: Meranie v softvérovom inžinierstve. - FIIT STU ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Meranie</strong> v etape implementácie 113<br />
operandy patria premenné a konštanty. V praxi je niekedy rozlišovanie<br />
medzi operátormi a operandami netriviálne. Názov funkcie sa počíta<br />
medzi operandy tam, kde sa funkcia definuje, ale medzi operátory tam,<br />
kde sa volá. Ďalšie charakteristiky (napr. vetvenie v programe, obtiažnosť<br />
riešeného problému) sa neberú do úvahy.<br />
Počet rôznych operátorov označme n1 a počet rôznych operandov n2.<br />
Potom veľkosť programového slovníka (angl. vocabulary) n definujeme<br />
ako súčet rôznych operátorov a operandov, teda n = n1 + n2.<br />
Ďalší parameter, ktorý môžeme podľa Halsteada vypočítať, je dĺžka<br />
programu. Definujeme ju ako súčet počtu operátorov a operandov N = N1<br />
+ N2, kde N1 predstavuje celkový počet operátorov a N2 celkový počet<br />
operandov.<br />
Halstead považuje programovanie za nedeterministický proces, počas<br />
ktorého vyberáme operátory a operandy z vopred daného zoznamu.<br />
Predpokladáme, že všetky operátory vyberáme s rovnakou<br />
pravdepodobnosťou. Ďalej predpokladáme, že rozhodovanie<br />
programátora opisuje binárny rozhodovací strom a operátor sa vyberá<br />
pomocou upresňujúcich rozhodnutí. Pre výber n1 operátorov<br />
potrebujeme log2n1 takýchto rozhodnutí. Napr. výber jedného operátora<br />
zo štyroch realizujeme pomocou log24 = 2 odpovedí typu áno/nie.<br />
Ak sa v programe nachádza n1 operátorov, tak vykonáme celkovo<br />
n1log2n1 rozhodnutí. Analogická situácia nastáva pri výbere operandov.<br />
Hodnotu N´ = n1log2n1 + n2log2n2 označujeme ako odhad dĺžky<br />
programu.<br />
Zatiaľ čo dĺžka programu N je metrika, ktorú môžeme priamo zmerať<br />
z dokončeného programu, odhad dĺžky programu N’ je metrika, ktorú<br />
môžeme vypočítať z aktuálnych alebo odhadovaných hodnôt n1 a n2.<br />
Ďalšia metrika, ktorú navrhol Halstead, je objem programu.<br />
Zodpovedá celkovému počtu rozhodnutí, ktoré potrebujeme vykonať pri<br />
voľbe každého z operátorov a operandov, ktoré sme použili v programe.<br />
Rozhodnutie medzi dvomi možnosťami môžeme zakódovať pomocou<br />
jedného bitu. Počet bitov potrebných na rozlíšenie medzi n operátormi a<br />
operandmi je log2n. Objem programu V = Nlog2n predstavuje minimálny<br />
počet bitov, pomocou ktorých môžeme zakódovať sekvenciu N<br />
operátorov a operandov.<br />
Príklad [Churcher98]<br />
procedure BubbleSort(var a : IntArray; N : Positive);<br />
var j, t : integer;<br />
begin<br />
repeat<br />
t := a[1];<br />
for j := 2 to N do<br />
if a[j - 1] > a[j] then<br />
begin