«« ( Date ) »» // «« ( Thread ) »» // nastava - 2003

Re: sistemsko prog!!!

by Daria Komaromi
subota, 22. februar 2003 - 22:35.

> Cula sam da se u januaru pojavilo neko 'cudno' pitanje koje glasi ovako:
> 2.a)Objasniti kako se racuna McCabe-ov broj ciklomatske kompleksnosti.
> Koliko iznosi ovaj broj za zadati dijagram toka?
>
> Imali neko ideju kako se ovo radi (ako su ga ljudi lose uradili u
> januaru,verovatno ce ga ponoviti za februar)
> Hvala puno! Ana

Evo neceg sa nekog papira kojeg je Bojic podelio na vezbama pre neku
godinu,sto je i odgovor na 2.a)

"-pokrivanje putanja(putevi od startnog do zavrsnog cvora u grafu toka
kontrole):potrebno je pokriti bazicni skup putanja.Radi se o skupu svih
linearno nezavisnih putanja.
-Nezavisna:razlikuje se od svih drugih bar po jednom svom segmentu.
-za odredjeni graf moze se u opstem slucaju odrediti vise razlicitih
bazicnih skupova,ali svi imaju istu kardinalnost.McCabe-ov broj
ciklomatske kompleksnosti programa V(G) daje broj linearno nezavisnih
putanja u grafu.
V(G) = e - n + 2p
-gde su:e-broj grana grafa,n-broj cvorova grafa,p-broj povezanih
komponenata(p=1 za regularne procedure i funkcije)
-alternativno, V(G) = b + 1 :gde je b broj binarnih odluka u programu. "


Na istom papiru se nalazi i odgovor na pitanje 1.c) iz januarskog roka:

"testiranje petlji:
Simple loops
The following tests should be applied to simple loops where n is the
maximum number of allowable passes through the loop:
1.skip the loop entirely
2.only pass once through the loop
3.m passes through the loop where m<n
4.n-1,n,n+1 passes through the loop
Nested loops
The testing of nested loops cannot simply extend the technique of simple
loops since this would result in a geometrically increasing number of
test cases.One approach for nested loops:
1.start at the innermost loop.Set all other loops to minimum values.
2.conduct simple loop tests for the innermost loop while holding the
outer loops at their minimums.Add tests for out-of-range or excluded
values.
3.work outward,conducting tests for the next loop while keeping all other
outer loops at minimums and other nested loops to typical values
4.continue untill all loops have been tested."

Za pitanje 2.b) resenje je

Za graf
c ---> g
^ \ ^ i skup putanja b1:abcg
/ / / b2:a(bc)*2g
a -> b < / b3:abefg
\ /
>e->f

putanja abcbefg moze se predstaviti linearnom kombinacijom b3+b2-b1.

Pozdrav
D&T