jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o...

26
Jelenleg haszn´alatos szoftvermetrik´ ak ¨osszehasonl´ ıt´oelemz´ ese (Tanulm´ any) dr. Porkol´ ab Zolt´an, Pataki Norbert, Sipos ´ Ad´am {gsd,patakino,shp}@elte.hu 2006. m´ajus 6. T´amogatta:GVOP-3.2.2.-2004-07-0005/3.0 1

Upload: others

Post on 31-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Jelenleg hasznalatos szoftvermetrikakosszehasonlıto elemzese

(Tanulmany)

dr. Porkolab Zoltan, Pataki Norbert, Sipos Adam{gsd,patakino,shp}@elte.hu

2006. majus 6.

Tamogatta: GVOP-3.2.2.-2004-07-0005/3.0

1

Page 2: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Tartalomjegyzek

1. Bevezetes 3

2. Alapfogalmak 42.1. Metrikak osztalyozasa . . . . . . . . . . . . . . . . . . . . . . 42.2. Strukturalis meroszamok . . . . . . . . . . . . . . . . . . . . . 52.3. Metrikak validalasa . . . . . . . . . . . . . . . . . . . . . . . . 6

3. Szoftvermetrikak attekintese 73.1. Meret metrikak . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2. A McCabe metrika . . . . . . . . . . . . . . . . . . . . . . . . 73.3. Howatt es Baker . . . . . . . . . . . . . . . . . . . . . . . . . 103.4. Halstead-fele termek mertekek . . . . . . . . . . . . . . . . . . 103.5. Henry- es Kafura-fele informacioaramlas metrika . . . . . . . . 113.6. Objektum-orientalt metrikak . . . . . . . . . . . . . . . . . . . 123.7. AV-metrika . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.8. Jelenlegi metrikak kritikaja . . . . . . . . . . . . . . . . . . . 16

4. Weyuker axiomak 20

5. Osszefoglalas 25

2

Page 3: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

1. fejezet

Bevezetes

A szoftvermetrikak fogalma egyidos a programozassal. Nyilvanvalo, hogyegy ,,bonyolultabb” program eseteben, tobb idobe (es ıgy tobb penzbe) telika megfelelo teszteles, a szoftver karbantartasa, stb..

Ebbol az elgondolasbol indultak el a metrikak, amelyek a programokhozegy szamerteket rendelnek, ami kifejezne annak bonyolultsagat. Mivel nemegyertelmu, hogy mit is ertunk bonyolultsag alatt, ezert szamtalan szoftver-metrikat talaltak ki.

A szoftver eletciklus egyre kisebb reszet foglalja el az uj rendszer spe-cifikalasa, megtervezese es implementalasa. A fejlesztesi ido nagyon nagyresze, gyakran akar fele telik a tesztelessel, es az ott feltart hibak javıtasaval.A szoftverre az elettartama alatt koltott koltseg legnagyobb resze pedig arendszer karbantartasaval kapcsolatos. A szoftver tesztelesenek, utolagos kar-bantartasanak es modosıtasanak koltsege nagyreszben a program strukturalisbonyolultsaganak fuggvenye. Egy jol hasznalhato szoftver bonyolultsagi mer-tek mar a fejlesztesi fazisban felfedheti a szoftver kritikus pontjait, elosegıt-heti az attekinthetobb, modosıthato es ujrafelhasznalhato kod keszıteset, esbecsleseket adhat a fejlesztesi folyamat varhato koltsegeire.

A metrikak egyutt fejlodtek a programozasi nyelvekkel illetve paradig-makkal. A metrikak tobbsege egy adott programozasi paradigman mukodikprecızen.

3

Page 4: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

2. fejezet

Alapfogalmak

2.1. Metrikak osztalyozasa

A metrikaknak ket fo tıpus ismeretes:

• termek mertekek (product metrics)

• folyamat mertekek (process metrics)

A termek mertekek a fejlesztes soran keszıtett szoftvert meri, ugyanakkorhasznalhato fejlesztes barmely pontjan is, peldaul annak az eldontesere, hogya programozok egy adott helyzetben helyesen dontottek-e az implementacioszempontjabol. Ezek a metrikak merhetik a kod meretet, a modell bonyo-lultsagat, vagy akar a dokumentaciot is.

Fontos lehet a fejlesztesi folyamat meresi is, ezekhez szokas hasznalni a fo-lyamat mertekeket. A folyamat mertek a termek letrehozasahoz szukseges fej-lesztesi folyamat jellemzoit meri, (peldaul a termek kifejlesztesehez szuksegesrafordıtasi idot) es/vagy a resztvevo fejlesztok (szukseges minimalis) kvali-fikacioja alapjan mer. A meres tortenhet

• a fejlesztes koltsege alapjan (cost metrics)

• a szukseges kifejtendo erofeszıtes alapjan (effort metrics)

• projekt elorehaladasa alapjan (advancement metrics)

• a fejlesztesi folyamat megbızhatosaga (hibai) alapjan (process non-reliability metrics)

• a folyamatban elkeszult termekek ujrahasznalhatosaga alapjan (reusemetrics)

4

Page 5: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

A termek mertekek egy resze a termek azon tulajdonsagait meri, melyeka termek felhasznaloja szamara is lathatoak. E felhasznalo lehet egy prog-ramot hasznalo egyen, egy osztalykonyvtarat felhasznalo tovabbi kod, stb.Az ilyen, kıvulrol is lathato tulajdonsagokat megjelenıto mertekek a kulsotermek mertekek (external product metrics). Ezek lehetnek:

• termek megbızhatosagi mertekek (product non-reliability metrics)

• funkcionalitasi mertekek (functionality metrics)

• teljesıtmeny mertekek (performance metrics)

• hasznalhatosagi mertekek (usability metrics)

Fontos ugyanakkor merni azokat a tulajdonsagokat is, melyek a felhasznaloszamara nem, vagy csak korlatozott mertekben latszanak. A belso termekmertekek (internal product metrics) ilyen tulajdonsagokat mernek, melyek atermeket fejlesztok szamara fontos reszleteken alapulnak. Ilyenek a

• meret mertekek (size metrics)

• bonyolultsagi mertekek (complexity metrics)

• stılus mertekek (style metrics)

Amikor egy szoftver termek ertekesıthetoseget vizsgaljuk, elsosorban akulso metrikak eredmenyei az erdekesek. A belso metrikak es folyamat met-rikak abbol a szempontbol erdekesek, hogy minosıtik azt a folyamatot ill.eszkozrendszert, melynek keretei kozott a termek letrejott. Idealis esetbena termek letrehozasaba befektetett erofeszıtes (melyet folyamat mertekkelmerunk) osszhangban all az ıgy letrejott termek belso jellemzoivel (melyet abelso termek mertekkel merjuk), es a termek felhasznalok szamara mutatotthasznalhatosagaval (kulso termek mertek).

2.2. Strukturalis meroszamok

A strukturalis meroszamok a programok alprogramjainak bonyolultsagat me-rik. Az eljarasok es fuggvenyek, mint a strukturalis programok alapkovei,vezerlesi szerkezeteket tartalmaznak, egymast kovetoen, illetve egymasbaagyazva. A vezerlesi szerkezetek szama es az egymashoz valo viszonyukalapjan definialhatok a strukturalis meroszamok.

5

Page 6: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

A strukturalis meroszamokat altalaban vezerlesi grafokon ertelmezzuk.A graf eleinek, csomopontjainak szama, a ki- es bemeno elek szama bonyo-lultsagi szempontbol a graf alaptulajdonsagaihoz tartoznak. Ezeket egyebfogalmakkal bovıtve kapjuk a nevezetes bonyolultsagi szamokat.

Igen meglepo, hogy az irodalom keves szot ejt a vezerlesi grafok es akonkret programok kapcsolatarol. Elterjedt gondolat ugyan, hogy egy prog-ramot matematikailag leginkabb egy iranyıtott graffal jellemezhetunk, de akonkret lekepezes a program szovege es a graf szerkezete kozott altalabanelmarad. Gyakori, hogy csak az alapveto programstrukturakat definialjak,de mara a programok szerkezete a szekvencian, a szelekcion es az iteracionkıvul sok mas, egyeb informaciot is hordoz a megoldott problemarol.

A fenti lekepezes meghatarozasa kulcskerdes, hiszen vegeredmenyben nemegy graf bonyolultsaganak merese a fontos, hanem a teljes programszovegjellemzese.

2.3. Metrikak validalasa

A validalas minden metrika alapveto resze. A metrikak validalasa ket utontortenhet: elmeleti uton – a metrika viselkedesenek vizsgalataval, elsosorbana Weyuker-axiomak segıtsegevel es gyakorlati uton – valodi programokonelvegzett meresekkel.

Az elmeleti vizsgalat alatt azt ellenorizzuk, hogy a Weyuker-axiomakkozul hanyat teljesıt a metrika, illetve hanyat sert meg. Ezenkıvul szokasa metrikat osszehasonlıtani ismert mertekekkel osszehasonlıtani.

A gyakorlati vizsgalat empirikus alapon, konkret meresekkel probalja va-lidalni a merteket.

6

Page 7: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

3. fejezet

Szoftvermetrikak attekintese

3.1. Meret metrikak

A meret metrikak a szoftver bonyolultsagat valamilyen fizikai tulajdonsagaalapjan merik. Tipikusan a forraskod meretet (pl. hosszat, forrasfajlokszamat) hatarozzak meg. Ezek a metrikak nem vizsgaljak a programokszemantikajat, csak szintaktikus szempontokat vesznek figyelembe. Emiattezek a metrikak fuggetlenek a hasznalt programozasi paradigmatol. Viszontelonyuk, hogy maga a szamıtas nagyon egyszeru, ezert gyakran hasznaljak.

3.2. A McCabe metrika

Az 1976-ban McCabe altal definialt metrika (ciklometrikus metrika) lett akiindulo pontja a strukturalis bonyolultsagi mertekeknek[1, 2, 9].

McCabe Fortran programokat vizsgalt es celja annak kutatasa volt, ho-gyan lehet egy szoftverrendszert ugy modularizalni, hogy az a legkedvezobblegyen a tesztelhetoseg es karbantarthatosag szempontjabol. Valoban, hatobb egymasba agyazott elagazast helyezunk el egy programban, akkor atesztelendo esetek szama a ketto hatvanyainak megfeleloen no.

McCabe szandeka olyan matematikai technika kidolgozasa volt, amelyszamszeruen fejezi ki az egyes modulok bonyolultsagat, ıgy azonosıtva a kodkritikus reszeit; azokat, amelyek a teszteles vagy karbantartas soran extrakoltseget jelenthetnek.

Elgondolasasa a fentieknek megfeleloen a kod tesztelesenek koltsegevel(a lehetseges osszes vegrehajtasi ag bejarasaval) kapcsolatos. Miutan azolyan programok, amelyekben akarcsak egyetlen olyan utasıtas is letezik,amely a kod egy megelozo reszere adja at a vezerlest (legyen az valamilyenciklus konstrukcio, vagy GOTO utasıtas), vegtelen sok vegrehajtasi aggal

7

Page 8: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

rendelkeznek, ezert csak azokkal a minimalisan szukseges elemi utvonalakkalszamol, melyek kombinacioibol a programon belul tetszoleges vegrehajtasiutvonal eloallıthato. Ennek megfeleloen a bonyolultsag merteket az alapvetoutvonalak (basic path) fogalma segıtsegevel definialta.

Az n csomoponttal, e elellel es p komponenssel rendelkezo G graf V (G)ciklometrikus szama: V (G) = e− n + 2p.

Bizonyıthato, hogy egy erosen osszefuggo1 G grafban a ciklometrikus szammegegyezik a linearisan fuggetlen korok szamaval.

McCabe az alabbi modon hasznalja fel ezt a tetelt. Egy adott programhozhozzarendel egy olyan iranyıtott grafot, melynek egyetlen belepesi ill. kilepesi(entry/exit) csomopontja van. A graf minden egyes csomopontja megfelela program valamely szekvencialis blokkjanak (elagazast, ciklust vagy ugroutasıtast nem tartalmazo kodreszletenek), mıg az elek a vezerlesatadasoknakfelelnek meg. (McCabe az elagazasokat es ciklusokat, mint vezerlesi szerke-zeteket – a FORTRAN szemleletnek megfeleloen – ugro utasıtasoknak te-kintette.) Minden iranyıtott ut a belepesi es kilepesi pont kozott egy le-hetseges vegrehajtasi utvonalat (execution path) abrazol. Ezt a grafot aprogram vezerlesi grafjanak (control graph) nevezte, es feltetelezte, hogyminden csomopont (azaz programblokk) elerheto a kezdopontbol, es mindencsomopontbol vezet ut a vegpontba.

Az alabbi vezerlesi szerkezeteken mutatjuk be a McCabe metrika muko-deset:

szekvencia (v = 1− 2 + 2 = 1):

Az if-then-else szerkezet (v = 4− 4 + 2 = 2)

A while vezerloszerkezet (v = 3− 3 + 2 = 2)

1erosen osszefuggonek nevezzuk azokat a grafokat, amelyekben barmely ket csucs kozottvan ut

8

Page 9: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Az eredeti feltevesek (egyetlen belepesi es kilepesi csucs, minden csucselerheto a belepesi csucsbol, es minden csucsbol elerheto a kilepesi csucs)szerint minden programnak egyetlen komponensbol allo osszefuggo graf felel-ne meg. Ugyanakkor a ciklometrikus metrika konnyen kiterjesztheto alprog-ramokra is, hiszen egy a metrika defıniciojanak egyszeru kovetkezmenye, hogyk darab Gi komponensbol allo G graf komplexitasa megegyezik az egyes Gi

grafok komplexitasanak osszegevel. Ezek alapjan a metrika hasznalhato al-programokat hasznalo programokra is, sot a fuggveny konyvtar bonyolultsagais meghatarozhato.

A predikatum csomopontok kozponti hangsulyt kapnak tehat a McCabemetrikaban. Nem mindegy ezert, hogy pontosan mit tekintunk egy pre-dikatumnak. A gyakorlatban ugyanis egy predikatum csomopont tartalmaz-hat osszetett feltetelt is, pl. IF c1 and c2 THEN

Ez a valosagban ket feltetelt jelent: IF c1 THEN IF c2 THEN

ezert McCabe szerint esszerubb a feltetelek szamat szamolni, mint magu-kat a predikatum-csomopontokat. Az N erteku ertekkivalasztasos (case)utasıtasokban N − 1 feltetel vizsgalata szukseges; ezt a szerkezetet ismetcsak N − 1 IF utasıtassal szimulaljuk.

A ciklometrikus bonyolultsagi szamra tobb alapveto allıtast mondhatunkki:

1. v(G) ≥ 1.

2. v(G) a G-beli maximalis szamu linearisan fuggetlen korok szama.

3. Fuggveny- vagy eljarashıvasok hozzavetele vagy elhagyasa nem be-folyasolja G bonyolultsagat.

4. G-ben csak egyetlen ut letezik, akkor es csak akkor, ha v(G) = 1.

5. G kiegeszıtese egy uj ellel egysegnyit noveli a v(G) bonyolultsagot.

6. v(G) csak G dontesi strukturajatol fugg.

9

Page 10: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Szamos elonye van a ciklometrikus metrikanak: a tesztelesi fazis jol be-csulheto az alkalmazasaval, egyszeruen alkalmazhato – nem kizarolag a fe-jlesztes vegen.

Hatranyai koze sorolhato, hogy proceduralis programokra talalta ki Mc-Cabe, ıgy objektum-orientalt kornyezetben torzıt. Nem veszi figyelembe abeagyazasokat es az adataramlasokat, pedig mindketto fontos egy programmegıtelese kapcsan.

3.3. Howatt es Baker

McCabe megfontolasaibol kiindulva Howatt es Baker matematikai alapondefinialta a beagyazas fogalmat. Munkajuk azert is jelentos, mert eloterbehelyeztek a matematikai pontossagot, lehetove teve a pontos fogalmazast.

Mıg a McCabe bonyolultsagban csak az elagazasok szama a meghatarozo,addig itt az egyes csomopontokhoz vezeto uton szereplo dontesi pontok sza-mat vesszuk figyelembe. A beagyazas merteke azert fontos szempont, mertegy melyebbre agyazott utasıtas megertese feltetelezi a megelozo dontesi pon-tok elemzeset is.

Egy csomopont hatokoren (scope) utasıtasok halmazat ertjuk, aminekkiertekelese szukseges, annak eldontesere, hogy az adott csomopontban mi-lyen dontest hozunk. Egy csomopont beagyazasi szintjet a hatokoreben levoutasıtasok szamaval definialjak.

A beagyazottsagi szempont bevezetesevel a McCabe metrika hianyossagaitsikerult kikuszobolni, am a Howatt es Baker-fele szam inkabb elmeleti je-lentosegu. Hasonlokeppen viszont figyelmen kıvul hagyja az adataramlast,es az objektum-orientalt paradigma hasznalata eseten torzıthat.

3.4. Halstead-fele termek mertekek

A metrikak tobbsege a meresnel csak egy fajta szemszogbol vizsgalja a prog-ramot, ezert M. H. Halstead javasolt egy olyan merteket, ami a program tobbtulajdonsagan alapszik. Ezen tulajdonsagok koze tartozik: a programszotarmerete (n), a programhossz (N), a program tarhely merete (V ), a szuksegeserofeszıtes (E) es a fejlesztesi ido(T ).

A programszotar metrika a programot tokenek sorozatanak tekinti, ahola tokennek ket tıpusa lehetseges: vagy operandus, vagy operator. A prog-ramszotar merete a programban elofordulo kulonbozo tokenek szamaval de-finialhato: n = n1 + n2, ahol n1 a kulonbozo operatorok es n2 a kulonbozooperandusok szama.

10

Page 11: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

A programhossz metrika a bonyolultsagot az programban elofordulo (nemfeltetlenul kulonbozo) operatorok(N1) es operandusok (N2) osszegekent de-finialja: N = N1 + N2. Halstead adott N-re egy kozelıto kepletet: N ′ =n1 log2 n1 + n2 log2 n2. N -et a kesz a programbol szamolhatjuk, N ′ viszontfejlesztes kozben is szamolhato N becslesere. Ekkor az n1 es n2 is becsultertekek.

A program tarhely merete V = N · log2 n. A V ertek a program fizikaimegvalosıtasat jellemzi. Halstead szerint osszefugges van a program abszt-rakcios szintje (L) es a szukseges tarterulet kozott: V ∗ = L · V = konstans.

Ebbol: L = V ∗V

.Halstead egyik gyakran emlegetett merteke a szukseges erofeszıtes. Ez az

ertek arra ad becslest, hogy mekkora erofeszıtes a progam implementalasaegy adott nyelven. Elve a kovetkezo: minden V meretu program eloallıtasafelfoghato N darab valasztasnak az n elemu szokeszletbol.

E =V

L=

V 2

V ∗Ez a metrika – ellentetben peldaul a ciklometrikussal – nem a tesz-

telesre helyezi a hangsulyt, hanem inkabb a varhato hibak szamat tudjamegbecsulni, illetve a karbantartas koltseget. Egyszeruen szamolhato, estobb szempont alapjan meri a programokat. Ez a metrika fuggetlen az alkal-mazott programozasi nyelvtol.

A metrika problemaja, hogy fejlesztes kozben tovabbra sem hasznalhatoigazan.

3.5. Henry- es Kafura-fele informacioaramlas

metrika

Sallie Henry es Dennis Kafura informacioaramlas alapu bonyolultsagi mer-teket definialt programokra. Ezek a metrikak a programokat alprogramok(fuggvenyek, eljarasok) gyujtemenyenek tekintik, es az alprogramok kozottikapcsolatokat elemzik. Azt vizsgaljak, hogy az adatok hogyan haladnakaz egyes alprogramok kozott: a vezerlesatadasok es az adatok segıtsegevel,peldaul objektumok ırasa, illetve olvasasa reven.

Henry es Kafura merteke szerint informacioaramlasnak tekintjuk az egyesmodulok kozotti aktivizaciokat, azaz a vezerles atadasat es visszaadasat, vala-mint az adatok ırasat es olvasasat.

A metrika elonye, hogy mar a tervezesi fazisban is jol hasznalhato.Hatranya, hogy ha egy alprogramnak nem kommunikal a kulvilaggal, ak-

kor 0 a bonyolultsaga – ez felrevezeto lehet. Masik hatranya, hogy erosen

11

Page 12: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

fugg peldaul a programozasi nyelvek szemantikajatol is: a parameteratadasoklehetosege nyelvenkent valtozhat.

3.6. Objektum-orientalt metrikak

Az objektum-orientalt paradigma a 80-as evek masodik fele ota a legelfo-gadottabb tervezesi es programozasi modszer. Mivel az objektum-orientaltprogramok magasabb strukturajukban elternek a proceduralis programoktol,az alkalmazott metrikak is kovettek a paradigmavaltast.

A leggyakrabban hasznalt objektum-orientalt metrikak[4, 5, 6]:

• Sulyozott metodusok osztalyonkent (WMC – Weighted Methods perClass)

Az osztaly bonyolultsaga az osztalyon definialt metodusok bonyolult-saganak az osszege. A mertek alkalmazhatosaga melletti erv, hogy abonyolultabb, es/vagy tobb metodussal rendelkezo osztalyok tesztelesees karbantartasa tobb idot, es nagyobb erofeszıtest igenyelnek. Meg-figyelheto az is, hogy a tobb metodussal rendelkezo osztalyok nagyobbhatast gyakorolnak a beloluk szarmaztatott osztalyokra, (es ezen ke-resztul a teljes programra), hiszen a leszarmaztatott osztalyok min-den metodust orokolnek a bazisosztalytol. Ezenkıvul a tapasztalatazt mutatja, hogy minel tobb metodust tartalmaz egy osztaly, annalkevesbe valoszınu, hogy egy altalanos, jol definialt absztakciot meg-valosıto kodreszlettel van dolgunk, ıgy egy ilyen osztaly ujrafelhaszna-lasa nehezebb.

• Az oroklodesi hierarchia melysege (DIT – Depth of Inheritance Tree)

A legtobb objektum-orientalt program jellemzoen osszetett osztalyhi-erarchiaval rendelkezik. Szamos nyelv minden osztalya kozvetve egykozos bazisosztalybol szarmazik (ilyen peldaul a Java nyelv Objectosztalya), ilyenkor az osztaly bonyolultsagat jellemzi, hogy milyen ,,ta-volsagra” van a gyoker osztalytol. Minel melyebben van egy osztalya hierarchiaban, annal tobb metodust orokol oseitol, ennelfogva ossze-tettebb lesz viselkedese. A melyebb oroklodesi fak nagyobb tervezesibonyolultsagot eredmenyeznek, mivel tobb metodust es osztalyt kellmegerteni.

Bizonyos nyelvekben nem kotelezo minden osztalyt egyetlen kozos ba-zisosztalybol szarmaztatni (ilyen peldaul a C++); tetszoleges osztalylehet egy uj oroklodesi hierarchia kezdopontja. Az ebbol az osztalybolindıtott oroklodesi lanc hossza azonban szinten jellemzi a resztvevok

12

Page 13: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

bonyolultsagi erteket. Nemi gondot jelenthet azonban a tobbszorosoroklodes, amennyiben ez az adott nyelvben megengedett.

• Leszarmazott osztalyok szama (NOC – Number of Children)

Ebben az esetben az osztalybol kozvetlenul leszarmaztatott gyerekosz-talyok szama lesz a bonyolultsag merteke. Chidamber es Kemererazzal ervelnek, hogy minel nagyobb a leszarmazott osztalyok szama,annal tobb az ujrafelhasznalas, illetve annal nagyobb az eselye, hogynem megfelelo absztrakciot alkalmaztuk az ososztalyban. Vegul, minelnagyobb a szarmaztatottainak szama, annal fontosabb szerepet tolt beegy adott osztaly a tervezes es a teszteles folyamataban.

• Osszefonodas az osztalyok kozott (CBO – Coupling between object clas-ses)

Ezt a merteket az adott osztalyhoz kapcsolodo osztalyok szamaval de-finialjuk. Ket osztaly akkor kapcsolodik egymashoz, ha az egyik fel-hasznalja a masik metodusait vagy attributumait.

Egy C osztaly fan-out erteke azon kulonbozo osztalyok szama, melyek-re hivatkozunk a C osztalyban. A C osztaly fan-in erteke azon masosztalyok szama, melyek hivatkoznak a C osztalyra. Az osszefonodasta ,,kimeno” hivatkozasok (fan-out) szamaval merjuk.

Az osztalyok tulzott osszefonodasa hatranyos a modularis tervezes szem-pontjabol, es akadalyozza az ujrafelhasznalast. Minel fuggetlenebb egyosztaly, annal kevesebb zavaro korulmenyt kell figyelembe vennunk akod ujrafelhasznalasakor, peldaul orokleskor. Karbantartaskor, modo-sıtaskor a nagyobb kapcsolat torekenyebbe teszi a kodot is. Surubb kap-csolat az osztalyok kozott komolyabb tesztelesi erofeszıteseket igenyel.Az osztalyok kozotti kapcsolat leheto legalacsonyabb szinten tartasatszolgalja az enkapszulacio.

• Uzenetek altal kivaltott metodusok szama (RFC – Response For a Class)

A bonyolultsagot ezen mertek szerint az osztaly egy peldanyahoz erkezouzeneteket kezelo metodusok, es az altaluk meghıvott tovabbi metodu-sok szamaval definialjuk.

Minel tobb metodus lephet mukodesbe egy metodushıvas erkezesekor,annal nehezebb az osztaly tesztelese, mivel nehezebb a vezerlesi fo-lyamat megertese. Az uzenetek kapcsan meghıvott metodusok szama-nak novekedese az osztaly bonyolultsaganak novekedeset jelzi.

13

Page 14: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

• Kohezios hiany a metodusokban (LCOM – Lack of Cohesion in Me-thods)

Legyen adott a C osztaly az M1,M2, . . . ,Mk metodusokkal. Jelolje Ii

az Mi metodus altal hasznalt adattagok halmazat.P = {(Ii, Ij)|Ii ∩ Ij = ∅}.Q = {(Ii, Ij)|Ii ∩ Ij 6= ∅}.Ekkor, ha |P | > |Q|, akkor LCOM = |P | − |Q|, kulonben 0.

Ez a metrika azon a tapasztalati tenyen alapul, hogy az osztalyonbeluli kohezio elonyos, hiszen valoszınusıti, hogy az adott osztaly helyesabsztrakciot valosıt meg. Az eros kohezio elosegıti az enkapszulacio al-kalmazasat is. A kohezio hianyaban szenvedo osztalyok valoszınulegszetbonthatok ketto vagy tobb alosztalyra.

Jol lathato, hogy ezek a metrikak nem hasznalhatoak proceduralis nyel-vek eseteben. Szamos mas kritika is erheti ezeket a meroszamokat: peldaul,hogy NOC eseteben egy implementalt osztaly bonyolultsaga ne fuggjon olyankodreszlettol, amelyet nem feltetlenul valosıtanak meg. Az oroklodes tipiku-san olyan objektum-orientalt nyelvi elem, amely a bazisosztalyra semmilyenmodon sincsen visszahatassal2. Masreszt, ha ugyanazt a kodot tobbszor tud-juk ujrahasznalni, az eppenhogy a kodminoseg pozitıv jellemzoje, nem pedignegatıv kriterium.

3.7. AV-metrika

Az eddigi metrikak attekintese soran lattuk, hogy azok gyakran egyoldaluan– csak a program vezerlesi stukturaja vagy csak az adatok viselkedese szem-pontjabol – mernek hatekonyan. A mai programozasi paradigmak hasznalataeseteben ez kulonosen veszelyes, hiszen az adatszerkezet es a rajta vegzettmuveletek egyenrangu szerepet jatszanak. Ezzel szemben az AV-metrika[1]egy paradigma-fuggetlen metrika, ami a meres kapcsan tobb kiemelt tenyezotis figyelembe vesz:

• a program vezerlesi szerkezetet: a legtobb program ugyanazokat avezerlesi szerkezeteket hasznalja, paradigmatol fuggetlen modon. Avezerlesi szerkezetet egy graffal lehet leırni, amelyben a csucsok jelen-tik az utasıtasokat, es az ıranyıtott elek jelentik az adataramlast. Azegynel tobb kimeneti ellel rendelkezo csucsokat predikatum csucsoknaknevezik. A beagyazasi szinttel lehet sulyozni a csucsokat.

2Ez alol a virtualis fuggvenyek alkalmazasa nemileg kivetelt kepez.

14

Page 15: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

• az adattıpusok bonyolultsagat: ez mutatja a programban hasznalt ada-tok bonyolultsagat. Ezek a grafban eltero tıpusu csucsokkent jelennekmeg.

• az adatkezeles bonyolultsagat: Ez ırja le a vezerlesi szerkezet es aadattıpusok kozotti kapcsolatot. A grafban ezek az adatcsucsok esvezerlesi csucsok kozotti elekkent jelenik meg a hasznalat alapjan. Ezekaz elek is ıranyıtottak a grafban. Az ıranyıtas az adataramlas ıranyatırja le, peldaul csak olvassa az adatot. Az elek is sulyozottak, az utasıtascsucs sulyaval, azaz az utasıtas beagyazasi szintje az el sulya.

A metrika fontos jellemzoje, hogy egy deklaraciokor nem meri az adatke-zeles bonyolultsagat, hanem pontosan az adataramlaskor szamolja. Implicitmodon tud merni a deklaracional is, peldaul a lokalis valtozok csak egy rovi-debb kornyezetben hasznalhatoak (az alprogramban).

Ugyanezt vehetjuk eszre, ha feltesszuk, hogy a grafos modellben nincsenadatcsucs es adatel, de ezeket lecsereljuk specialis vezerlesi csucsokra: ,,ol-vasora” es/vagy ,,ırora”, amelyek informaciot fogadnak es kuldenek. Ha ezt amodellt kiegeszıtjuk a sulyozasi ertekekkel, akkor is az AV-grafokhoz jutunk.

Termeszetes modon lehet ezt a modellt kiterjeszteni az objektum-orientaltprogramokra. Ennek a paradigmanak a kozeppontjaban az osztaly all, tehateloszor definialni kell, hogy mit ertunk egy osztaly bonyolultsagan. Az osztaly(lokalis) adatok es fuggvenyek halmaza, ahol a fuggvenyek elerik ezeket azadatokat.

Ezek alapjan az AV-metrika egy osztaly bonyolultsagan az adattagjaies a metodusai bonyolultsaganak osszeget erti. A metodusokhoz tartozoAV-grafokat osszekapcsolja az osztaly adatainak elerese, mivel az adatta-gok elerhetoek a tagfuggvenyekbol. Ezeknek a megosztott adatoknak letezikadateleres ele a grafban a kulonbozo taggrafokhoz.

Ez a termeszetes modellja az osztalyoknak. Ravilagıt arra a tenyre, hogyaz osztalyok osszetartozo adatok es rajtuk ertelmezett metodusok osszessege.A metodusok (tagfuggvenyek) alprogramok, amiket kulon AV-grafokkal le-het reprezentalni. Minden ilyen taggrafnak van egy kezdo- es egy vegcsucsa,mint a hagyomanyos (nem tag) fuggvenyek eseteben. Ami megkulonboztetiegy kulonallo fuggveny konyvtartol, az a tagfuggvenyek altal hasznalt ada-tok halmaza. Ezek az adattagok csak az objektumra nezve lokalisak, atagfuggvenyekre nezve viszont nem lokalisak, hiszen szamos alprogrambolelerhetoek.

Vegyuk eszre, hogy a metrika megengedi egy osztaly kapcsan, hogy nelegyen tagfuggvenye. Ebben az esetben visszakapjuk a szokasos adattıpusfogalmat. Egy klasszikus adattıpus bonyolultsaga az adatcsucsok bonyo-lultsaganak az osszege. A fordıtott helyzet is lehetseges, azaz, hogy egy

15

Page 16: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

osztalynak nincs a fuggvenyei kozott megosztott adata. Ebben az esetben azosztaly bonyolultsaga a diszjunkt fuggvenyek bonyolultsaganak az osszege.Ez a konstrukcio azonosıthato egy szokasos fuggveny konyvtarral.

Ezek a peldak jol bemutattak az AV-metrika paradigma fuggetlenseget.A metrika jol hasznalhato akar proceduralis, akar objektum-orientalt prog-ramokon, vagy eppen abban az esetben, amikor mindketto elkerul egy prog-ramon belul.

3.8. Jelenlegi metrikak kritikaja

A szoftver mertekek kutatasa mar tobb, mint 30 eve van jelen a szamıtastu-domanyban. Az eddig elert ketsegbevonhatatlan eredmenyek ellenere tobbeneros kritikat fogalmaznak meg a jelenleg hasznalt mertekekkel szemben. Nor-man Fenton es Martin Neil cikkukben[8] felvetik, hogy a legtobb szoftvermet-rika eppen a veluk szemben felmerulo legalapvetobb igenyt nem teljesıti: aszoftver eletciklusa alatt nem biztosıt a donteshozok szamara kello mennyi-segben szamszeru adatokat a termekrol.

Reszben a fentek miatt a szoftvermetrikak hasznalata illetve a metrikakkalkapcsolatos fejlesztesek jellemzoen nem a szoftvertechnologiaban erdekeltcegek tudatos minosegjavıto elhatarozasainak az eredmenye. Sokszor egyfejlesztes elakadasa, az elerendo celok veszelybe kerulese, vagy csak valamelykulso eloırasnak valo megfeleles szandeka miatt kerul eloterbe valamely met-rika alkalmazasa. Az Egyesult Allamokban a metrikakkal kapcsolatos iparitevekenyseg donto resze peldaul a CMM-el (Capability Maturity Model) kap-csolatos, mivel valamely metrika hasznalata elofeltetele a vallalat magasabbCMM szinten valo elismeresenek. (A CMM keretein belul bevezetett met-rikak magyarorszagi gyakorlati tapasztalatairol ırt egy jo konyvet[7] BallaKatalin.)

Cikkukben a szerzok megkulonboztetik a szoftver mertekek ket elteromodelljet: a regresszios (regression) es az ok-okozati (casual) modellt. Aregresszios modell egyszeru statisztikai osszefuggest keres a merheto adatokes a metrika erteke kozott, fuggetlenul attol, hogy letezik-e kozvetlen ok-okozati osszefugges kozottuk. Szamos esetben szeretnenk megjosolni peldaula feladat elvegzesehez szukseges befektetett munkat, ez motivalja a szuksegeserofeszıtes-mertekek hasznalatat. Ezek tipikusan regresszio-alapon mukodnek,ahol a kifejtendo erofeszıtes a termek meretenek valamely fuggvenye. Ez amegkozelıtes azonban felrevezeto. Miutan a termek merete nagy valoszınu-seggel nem oka a termek eloallıtasahoz szukseges erofeszıteseknek, az ilyenmodellek alkalmatlanok a donteshozok szamara szukseges informaciok fej-lesztes kozbeni szolgaltatasara.

16

Page 17: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Az ok-okozati modell megprobalja felterkepezni azokat az osszetevoket (esa koztuk levo kapcsolatokat), melyek befolyasolhatjak a rendszer altalunkmegfigyelheto parametereit. Ez a modell kifejezi az egyes komponensekegymasra gyakorolt hatasat:

Ezen kapcsolatok segıtsegevel Fenton es Neil olyan kerdesek megvalaszo-lasat is elkepzelhetonek tartja, melyek a komponensek kozotti kapcsolatokbolszamıthatoak, mint peldaul:

• Adott bonyolultsagu specifikacio es adott korlatozott eroforrasok mel-lett milyen valoszınuseggel erheto el a megfelelo minosegu termek ki-fejlesztese?

• Mennyire csokkenthetjuk a felhasznalando eroforrasok mennyiseget, a-mennyiben elfogadjuk a kifejlesztendo termek alacsonyabb minosegi pa-rametereit?

• A modell elorejelzese szerint 4 fejleszto 2 eves munkaja szukseges atermek kifejlesztesehez, de csak 3 fejleszto all rendelkezesre 1 evig.Ugyanazon termekminoseg celkituzese mellett mennyivel jobb minosegufejlesztocsapatra van szukseg?

Egy regresszios modell termeszetesen nem tartalmaz informaciot ezen kerde-sek megvalaszolasahoz. Az ok-okozati modell legfobb elonye, hogy kepes ke-zelni a kulonbozo fejlesztesi- es termek parametereket, a tapasztalati tenyeket

17

Page 18: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

es szakertoi donteseket, hiteles ok-okozati osszefuggeseket, a bizonytalan vagyhianyos informaciokat. Mindezek mellett nem szabad sem a fejlesztes, sem akesz termek tekinteteben olyan uj terheket eredmenyeznie, amely szamottevotobbletkoltseggel jarna.

Fenton es Neil az ok-okozati modell megvalosıtasat Bayes-i haloval (Baye-sian belief net, BBN) kepzelik el. A BBN egy grafikus halo, melyhez valo-szınusegi tablazatok tartoznak. Az abra csomopontjai bizonytalan ertekuvaltozokat reprezentalnak, mıg az oket osszekoto nyilak az ok-okozati ossze-fuggeseket abrazoljak. Az egyes valoszınusegi tablak, melyeket a csomopon-tokhoz rendelunk, az adott valtozo egyes allapotaihoz tartozo valoszınusegetadjak meg. A szulo nelkuli csomopontoknal ezek a kiindulo valoszınusegek,a szulovel rendelkezo (okozati) csomopontok eseteben ez a szulo allapotainakkombinaciojahoz rendelt felteteles valoszınusegek. Mint minden BBN-nel, avaloszınusegi tablazatok tapasztalati tenyeket, es szakertoi donteseket tartal-maznak.

Teljesen mas utakon kıvanja a szoftver bonyolultsagi merteket definialniKokol, Podgorelec es Zorman. Jelenlegi mertekekkel szemben megfogalma-zott kritikajuk szerint az egyik fo problema, hogy a metrikak eroteljesennyelvfuggoek. Mas metrikakat kell alkalmaznunk a magasszintu nyelvekre esaz alacsony szintu megvalosıtasokra (pl. egy assembly kodra). Gyakran megaz egyes magasszintu nyelvekre is kulon-kulon kell definialnunk a merteket.

Egy program, vagy informacios rendszer sok formaban jelenhet meg. Akovetelmenyrendszer, a specifikacio, a rendszerterv, a felhasznaloi dokumen-tacio, a felhasznaloi interfesz mind a rendszer egy-egy reprezentacioja. Fugget-lenul attol, hogy ezek milyen megjelenesi formaban elerhetoek, (text doku-mentacio, formalis specifikacios nyelv, UML diagramm, programkod, stb.),egyarant meg kell tudnunk merni bonyolultsagukat (es a bonyolultsag val-tozasat, mikor ezek kozott a reprezentacios formak kozott tranzformacioktortennek). A bonyolultsagi merteket – szelso esetkent – magara a vegre-hajthato kodra is alkalmazhatjuk. A fenti erveles alapjan a szerzok egy uni-verzalis metrikat javasolnak, amely tetszoleges elekronikus dokumentumrameri a bonyolultsagot.

Kiindulopontjuk azon alapul, hogy mind a szamıtogep programok, minda termeszetes nyelven ırodott dokumentumok a kommunikacio egy adottformajat kepezik. Mind a szamıtogepes rendszer egyes osszetevoi kozottvegzett kommunikacio, mind a human kommunikacio kodot hasznal az in-formaciocserehez. A szerzok azt feltetelezik, hogy egy (szamıtogepes vagyhuman) dokumentum informaciotartalma a nyelvi szimbolumok kozotti kap-csolaton alapul.

A bonyolultsag egyik ertelmes meresi modja a Shannon altal beveze-tett entropia fogalmara vezetheto vissza. (Miutan hosszabb dokumentumok

18

Page 19: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

eseten a Shannon-i informacios entropia igen nehezen szamıthato, Grass-berger egy kozelıto szamıtast javasolt az entropia becslesere.) Egy masikmodszer a nagy tavolsagu korrelacio, Long Range Correlation (LRC), melyetSchenkel javasolt, az entropia fogalmanak altalanosıtasan alapul, es rendkıvulhasznosnak bizonyult az (elsosorban human) dokumentumok bonyolultsaga-nak meresere.

Ezzel a mertekkel Kokol es tarsai az alabbi kovetkeztetesekre jutottak:

• Az egyes programok bonyolultsaganak merteke nagymertekben fuggottaz implementacios nyelvtol.

• A forras lefordıtasakor a mert bonyolultsag novekedese tortent, azaz alefordıtott alacsony szintu kod bonyolultabb a magas szintunel.

• A programok verziok kozotti bonyolultsag novekedese kimutathato.

• A szerzok hipotezise szerint a metrika az entropiat meri, ezert fordıtottaranyban kell allnia a hibak szamaval. A meresek szerint a hibakszamanak joslasa kb. 80 szazalekos pontossaggal tortenhet ezen me-trika alapjan.

• A szerzok altal javasolt mertek semmilyen korrelaciot nem mutatott ahagyomanyos szoftver metrikakkal.

19

Page 20: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

4. fejezet

Weyuker axiomak

Metrikak elmeleti vizsgalata soran kiemelt szerepe van a Weyuker-axiomak-nak. Ez a 9 allıtas azt fogalmazza meg, hogy mit erdemes elvarni egy jobonyolultsagi mertektol. Ugyanakkor a Weyuker axiomak se nem szukseges,se nem elegseges feltetelei a gyakorlatban hasznalhato mertekeknek:

• Konstrualtak olyan metrikat, amely telejesıti az axiomakat, de megsemhasznaveheto

• A legtobb gyakorlatban hasznalt metrika sem teljesıti az osszes allıtast.

Weyuker azt az ellentmondast, tobbek kozott azzal magyarazza, hogya szoftver mertekek celja nincsen minden esetben pontosan definialva. Nemvilagos, hogy pontosan mit merunk: az implementalas nehezseget, a tesztelesproblemait, a kod megertesenek vagy modosıtasanak bonyolultsagat? Ezeka fogalmak maguk is gyakran homalyosak. Weyuker azt varta a kriteriumokformalizalasatol, hogy megkonnyıtse a metrikak osszehasonlıtasat a felhasz-nalo sajatos igenyei szempontjabol.

Weyuker az axiomak megfogalmazasahoz definialt egy nyelvet, es enneksegıtsegevel ırta le allıtasait. Ez a nyelv programozasi nyelv-fuggetlen, esveges szamu azonosıtobol all. Az azonosıtokbol (VAR), konstansokbol, es a+, -, * es / muveletekbol aritmetikai kifejezeseket allıthatunk ossze.

Az ertekado utasıtas az alabbi formatumu: V AR ← EXP .Predikatumok azok a logikai kifejezesek, melyek az alabbi formak vala-

melyikebol allnak: B1 = B2, B1 6= B2, B1 < B2, B1 ≤ B2, ahol B1 es B2egy azonosıto vagy konstans.

A programtorzs rekurzıv definıcioja Weyuker-szerint:

1. Az ertekadas programtorzs.

2. Ha PRED egy predikatum, P es Q programtorzsek, akkor azIF PRED THEN P ELSE Q END is programtorzs.

20

Page 21: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

3. Ha PRED egy predikatum, P programtorzs, akkor azIF PRED THEN P END is programtorzs.

4. Ha PRED egy predikatum, P programtorzs, akkor azWHILE PRED DO P ENDWHILE is programtorzs.

5. Ha P es Q programtorzsek, akkor a szekvencia:P ; Q is programtorzs.

Definialjuk a PROGRAM(vars) program-utasıtas es a OUTPUT(vars)kiviteli-utasıtas fogalmat is, ahol vars a bemeneti valtozok listaja. Vegul aprogram egy program-utasıtasbol all, melyet egy programtorzs, majd egy ki-viteli utasıtas kovet. Gyakran fogunk hivatkozni a programtorzsre, mint a,,program”-ra.

Egy adott P program eseten P (c) = b jelentese az, hogy a P program a cinput adatokon vegrehajtva megall. es b outputot produkalja. Ket program,P es Q ekvivalenciaja (P ≡ Q) azt jelenti, hogy a ket program ugyanazokonaz input adatokon all meg, es ezekre a c adatokra P (c) = Q(c).

Miutan a programjainkat elemi programtorzsekbol fogjuk felepıteni, essze-ru a bonyolultsagi mertekeket a programtorzsre definialni. Ezzel ugyan nemfogjuk szamolni a program-utasıtast es a kiviteli utasıtast, de ez elenyeszotorzıtast okoz a metrikakon.

A kovetkezo jelolesekben P , Q es R programtorzseket jelol. |P | jelolia P programtorzs bonyolultsagi szamat. Feltetelezzuk, hogy tetszolegses Pprogramtorzs eseteben kiszamolhato a |P | ertek, es ez nemnegatıv. Ebbol azis kovetkezik, hogy tetszoleges P es Q programtorzsek eseteben: |P | ≤ |Q|vagy |Q| ≤ |P | teljesul, azaz ket tetszoleges programtorzs osszehasonlıthato,es rendezheto.

Elso axioma: (∃P )(∃Q) : (|P | 6= |Q|).Az elso axioma azt kıvanja meg, hogy legyen ket kulonbozo program,

amelynek a bonyolultsaga nem egyezik meg. Ez a feltetel a trivialis, semmit-mondo metrikak kizarasara szolgal.

Masodik axioma: Legyen c egy nemnegatıv szam. Ekkor legfeljebbveges szamu olyan program letezik, amelynek bonyolultsaga c.

Ez az axioma az elozonek a szigorıtasa. Nemcsak azt varjuk el a bonyo-lultsagi metrikatol, hogy legyenek olyan programok, amelyekhez kulonbozoertekeket rendelunk, hanem meg azt is, hogy kelloen sok osztalyba soroljaoket, azaz ,,jol szorjon”. Termeszetesen tekintettel kell lennunk arra a tenyre,hogy a Weyuker altal definialt nyelv – akarcsak a tenylegesen vizsgalandonyelvek – vegesszamu azonosıtoval rendelkeznek. Ezert feltetelezhetjuk, hogyminden esetben adhato felso korlat az utasıtasok abrazolasahoz szuksegestarolohelyre.

21

Page 22: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Erdekes, hogy amıg a kulonbozo meret metrikak es a Halstead metrikakkielegıtik ezt axiomat, a McCabe-fele ciklometrikus- es a Henry es Kafura-fele adataramlasi bonyolultsag mar nem teljesıti ezt a feltetelt. Ennek okapeldaul a McCabe bonyolultsag eseteben abban keresendo, hogy tetszolegeshosszusagu, predikatumot nem tartalmazo utasıtassorozatok ,,nem merheto-ek”. Ket program bonyolultsaga megegyezik, ha vezerlesi szerkezetuk meg-egyezik, fuggetlenul attol, hogy az egyik trivialis utasıtasokat, a masik bonyo-lult szamıtasokat vegez.

Harmadik axioma: (∃P )(∃Q), P 6= Q : |P | = |Q|.E feltetel szerint egy jo metrikanak teljesıtenie kell azt a feltetelt is, hogy

letezzen ket kulonbozo program, melyeknek a bonyolultsaga ugyanaz. Ametrikak tobbsege teljesıti ezt a feltetelt. A tanulmanyban ismertett osszesmetrika megfelel ennek a kriteriumnak. Ez az axioma annak a kivedesereszolgal, hogy egy metrika ne rendeljen minden egyes programhoz kulonbozoerteket.

Negyedik axioma: (∃P )(∃Q)(P ≡ Q ∧ |P | 6= |Q|).Az elso harom tulajdonsag minden ertelmes metrikara igaz. A negyedik

axioma – ami szinten az elsonek a szigorıtasa – azt hivatott garantalni, hogymertekunk szintaktikai elemekre epul, azaz letezhet ket teljesen mas imple-mentacioju program, melyek ugyanazt az eredmenyt szolgaltatjak, es ezekbonyolultsagi merteke eltero. Amit merunk tehat, az nem az elvegzendo fe-ladat – a programfuggveny – bonyolultsaga, hanem a konkret megvalosıtasbonyolultsaga.

Minden mertek, ami megfelel ennek az axiomanak, az teljesıti az elsot is.Melyek lehetnek azok a mertekek, amelyek az elso kriteriumot teljesıtik, dea negyediket nem? Mivel ket program ekvivalenciaja nem eldontheto kerdes,ezert nem tudunk definialni olyan metrikat, amely a program viselkedesealapjan osztalyoz. Igy gyakorlati szempontbol az elso es negyedik axiomakekvivalensek.

Otodik axioma: (∀P )(∀Q)(|P | ≤ |P ; Q| ∧ |Q| ≤ |P ; Q|).A programok kisebb alprogramok es modulok osszessege. Ezert ez az

axioma azt fogalmazza meg, hogy egy programot alkoto osszetevok bonyo-lultsaga ne haladja meg a teljes programet. Ez egyfajta monotonitasi krite-rium.

Ezt nem teljesıti peldaul a Halstead-metrika, sem az informacioaramlasmetrikak.

Hatodik axioma:(a): (∃P )(∃Q)(∃R) : (|P | = |Q| |P ; R| 6= |Q; R|).(b): (∃P )(∃Q)(∃R) : (|P | = |Q| |R; P | 6= |R; Q|).

Hetedik axioma: Leteznek olyan P es Q programok, amelyek csak azutasıtasok sorrendjeben kulonboznek, es |P | 6= |Q|.

22

Page 23: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Az allıtas megkoveteli, hogy az utasıtasok sorrendje befolyasolja a prog-ram bonyolultsagi erteket. Nem teljesıtik a feltetelt azok a mertekek, me-lyek az utasıtasok vagy a programsorok szamat merik. Nem felel meg aciklometrikus szam es altalaban egyetlen olyan mas mertek sem, amely nemveszi figyelembe az egymast koveto utasıtasok kozotti interakciokat. Az AV-metrika teljesıti ezt a kriteriumot.

Nyolcadik axioma: Ha a P program a Q program atnevezese, akkor|P | = |Q|.

A program karbantarthatosaganak fontos feltetele a jol megvalasztott ne-vek es azonosıtok. Ez az allıtas viszont azt fejezi ki, hogy az ilyen atnevezesekne valtoztassak meg a program bonyolultsagat.

Kilencedik axioma:(a) (∃P )(∃Q) : (|P |+ |Q| < |P ; Q|).(b) (∀P )(∀Q) : (|P |+ |Q| ≤ |P ; Q|).

A kilencedik axioma (a) esete azt feltetelezi, hogy legalabb nehany esetbenket programtorzs konkatenacioja bonyolultabb programot eredmenyez, minta programtorzsek bonyolultsagainak osszege. Az osszefuzott programreszektehat hatast gyakorolnak egymasra. A ciklometrikus es meret bonyolultsagokkornyezetfuggetlen voltuk miatt ezt az allıtast nem teljesıtik. Az informacio-aramlas metrikakat viszont eppen az ilyen tulajdonsagok meresere talaltakki.

Sem az informacioaramlas-, sem a Halstead-fele metrikak nem teljesıtikaz 5. axiomat, ıgy nem teljesıtik a 9.b. allıtast sem. A meret metrikakmegfelelnek a 9.b.-nek, a ciklometrikus bonyolultsag viszont nem. McCabedefinıcioja alapjan |P ; Q| = |P | + |Q| − 1. Ugyanakkor vilagos, hogy ez akonstans elteres nem erinti a ciklometrikus metrika lenyeget, ezert akar ametrikat javıthatjuk egy (negatıv) konstans taggal. Az AV-metrika ebbol azaxiomabol csak a (b)-t teljesıti.

A Weyuker-axiomak szigoruan veve sem nem szukseges, sem nem eleg-seges feltetelei egy hasznalhato metrikanak. Ugyanakkor az egyes allıtasokteljesulese komoly erv lehet a metrika alkalmazhatosaga mellett. Az alabbitablazatban osszefoglaljuk az ismertett metrikak es az axiomak kapcsolatat:

23

Page 24: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Utasıtasszam McCabe Halstead Adatfolyam AV1 + + + + +2 + - + - jav.3 + + + + +4 + + + + +5 + + - - +6a - - + + +6b - - + + -7 - - - + +8 + + + + +9a - - + + -9b - - + + +

24

Page 25: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

5. fejezet

Osszefoglalas

Ebben a tanulmanyban osszefoglaltuk a metrikak jelentoseget es jelenlegihelyzetuket a szoftveriparban. Osszehasonlıtottuk a jelenleg hasznalatostermek metrikakat kulonbozo szempontok alapjan. Ismertettuk az elmeletiszemszogbol rendkıvul fontos Weyuker-axiomakat. Megmutattuk az ismer-tett metrikak es a Weyuker-axiomak kapcsolatat.

25

Page 26: Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o …patakino.web.elte.hu/IKKK/metrika.pdf · 2006. 5. 6. · Jelenleg haszn¶alatos szoftvermetrik¶ak osszehasonl¶‡t¶o

Irodalomjegyzek

[1] Porkolab Zoltan: Programok Strukturalis Bonyolultsagi Meroszamai,2002

[2] Norman E. Fenton, Shari Lawrence Pfleeger: Software Metrics – A Ri-gorous & Practical Approach, 1997, International Thomson ComputerPress.

[3] Everald. E. Mills: Software Metrics, 1998http://www.literateprogramming.com/cm12.pdf

[4] Linda H. Rosenberg: Applying and Interpreting Object Oriented Me-tricshttp://satc.gsfc.nasa.gov/

support/STC_APR98/apply_oo/apply_oo.html

[5] SATC: Software Quality Metrics for Object Oriented System Environ-ments, 1995http://www.literateprogramming.com/ootech.pdf

[6] Renaat Verbruggen: Object-Oriented Metrics, 1998http://www.computing.dcu.ie/~renaat/objects/OOMetrics/

[7] Balla K.: The Complex Quality World, Eindhoven Univ. Press, 2001

[8] Norman E. Fenton, Martin Neil: Software Metrics: Roadmap, 2000http://www.cs.ucl.ac.uk/staff/A.Finkelstein/fose

/finalfenton.pdf

[9] Complexity Metrics and Modelshttp://www.powersoftware.com/complexity.html

26