• Nem Talált Eredményt

A szoftver mérése és a metrikák

A szoftverek jellemzőinek mérésével fontos információkat nyerhetünk a szoftver vagy a szoftverfolyamat minőségére vonatkozóan. A szoftvertermékek mérése során a szoftvertermék vagy a szoftverfolyamat valamely jellemzőjéből numerikus értéket állítunk elő. Ezen értékek egymással és az alkalmazott szabványokkal történő összehasonlítása a termék vagy folyamat minőségéről szolgáltat információt. A szoftvertermék mérésének céljai az alábbiak lehetnek:

1. Általános előrejelzés készítése a rendszerről. A rendszer jellemzőinek mérésével, és a mérések összegzésével általános becslést készíthetünk a rendszer jellemzőire. Pl.

a rendszerben előforduló kódolási hibák számára.

2. Rendellenes komponensek azonosítása. A mérések azokat a szoftverkomponenseket azonosítják, amelyek jellemzői nem felelnek bizonyos előírásoknak. Pl. a kódolási hibát tartalmazó modulok azonosítása.

Szoftvermetrikának nevezünk minden olyan mérést, amely egy szoftverhez, a szoftverfolyamathoz vagy az ezekhez kapcsolódó dokumentációhoz kapcsolódik.

A szoftver számos minőségi jellemzőjét nem lehet közvetlenül mérni. Ilyen jellemzők a nem-funkcionális külső tulajdonságok, mint például a karbantarthatóság, megbízhatóság, bonyolultság, stb. Azonban, ha a szoftver valamely belső jellemzőjét (például a méretet) mérni tudjuk, és valamilyen szoros kapcsolat létezik a között, amit mérni tudunk, és amit tudni szeretnénk, akkor közvetetten mérni tudjuk ezeket a jellemzőket is. Ahhoz, hogy a belső jellemzőt fel tudjuk használni a külső szoftverjellemzők meghatározásában három feltételnek kell teljesülnie:

1. A belső jellemzőnek pontosan mérhetőnek kell lennie.

2. Egyértelmű kapcsolatnak kell lenni a mérhető és a külső jellemzők között, amely megadható matematikai egyenlet formájában.

158

3. A kapcsolatnak validáltnak kell lennie.

13.5.1 A mérési folyamat

A 12.2. ábrán látható a szoftvermérés folyamata. A szoftverek mérésénél a rendszer kiválasztott komponenseit külön elemzik és a kapott értékeket rögzítik. Az összegyűjtött adatokat a későbbiekben, mint szervezeti erőforrás karbantartják. A rendellenes mérési eredményeket mutató komponensekre a minőségbiztosítás során nagyobb figyelmet kell fordítani. A mért értékek az adatbázisokban tárolt korábbi projektek eredményeivel összehasonlíthatók és a specifikus metrikák finomítása segít a minőség további növelésében.

12.2. ábra. A termék mérési folyamata A mérési folyamat egymást követő lépései az alábbiak:

1. Az alkalmazandó mérések kiválasztása. A minőség ellenőrzés céljainak megfelelő mérések kiválasztása.

2. A mérni kívánt komponensek kiválasztása. Nem minden esetben szükséges minden komponens mérése. Ilyen esetekben elegendő reprezentatív komponensek kijelölése a mérés végrehajtására.

3. A komponensek jellemzőinek mérése. A kiválasztott komponensek mérése, és a mérések alapján a jellemzők metrikus értékeinek kiszámítása.

4. A rendellenes mérések azonosítása. A mért értékek összehasonlítása egymással és a mérési adatbázisban feljegyzett korábbi mérésekkel. A szokatlanul magas vagy alacsony értékek azonosítása.

5. A rendellenes komponensek elemzése. A rendellenes értéket mutató komponenseket meg kell vizsgálni, hogy a rendellenes metrikus értékek veszélyeztetik-e a komponens minőségét.

13.5.2 A termékmetrikák

A termékmetrikák a szoftver jellemzőihez kapcsoló mérhető metrikák. A könnyen mérhető szoftverjellemzők, mint például a kódméret vagy a ciklomatikus komplexitás, és a minőségi jellemzők, mint például az érthetőség, komplexitás vagy a karbantarthatóság között nincs egyértelmű a kapcsolat. A belső és külső szoftverjellemzők közötti kapcsolatok felderítéséhez és validálásához a létező rendszerről sok adatot kell gyűjteni.

Az összegyűjtött és karbantartott adatokat a későbbiekben arra használhatjuk, hogy kiderítsük, hogyan kapcsolódnak külső minőségi jellemzők a szoftvertermék mért jellemzőihez a szoftvermetrikákhoz.

159

A termékmetrikák két osztályba sorolhatók:

1. Dinamikus metrikák. Ezeket a metrikákat a program futása közben készített mérések alapján állítják elő.

2. Statikus metrikák. Ezek olyan metrikák, amelyek a program futtatása nélkül, a programkód vagy valamilyen szoftver dokumentáció mérésével jönnek létre.

A dinamikus és statikus metrikák különböző minőségi jellemzőkhöz kapcsolhatók. A dinamikus metrikák a program működési közbeni jellemzőinek, mint pl. a hatékonyság és megbízhatóság, megállapításában, míg a statikus metrikák a szoftverrendszer komplexitásának, érthetőségének és karbantarthatóságának felmérésében használhatók.

A 12.4. táblázat példaként több olyan statikus metrikát is bemutat, amelyek alkalmasak a minőségi jellemzők mérésére. Ezek közül az érthetőséget az azonosítók hossza, a feltételek egymásba ágyazásának mélysége és a ciklomatikus komplexitás méri; a rendszer komplexitását és karbantarthatóságát a kód hossza jelzi előre a legmegbízhatóbban.

12.4. táblázat. A szoftvertermékek metrikái

Szoftvermetrika Leírás

A kód hossza A program méretének mértéke

Azonosítók hossza A program különböző azonosítóinak átlagos hosszát méri

A feltételek egymásba ágyazásának mélysége Azt méri, hogy a program feltételes utasításai milyen mélyen vannak egymásba ágyazva

Ciklomatikus komplexitás A program vezérlésének bonyolultságát méri 13.6 Ellenőrző kérdések

1. Soroljon fel néhány minőségi szoftverjellemzőt!

2. Mi a célja a termékszabványoknak?

3. Mi a célja a folyamatszabványoknak?

4. Soroljon fel néhány termék és folyamatszabvány típust?

5. Milyen nemzetközi szabványokat ismer, amelyek felhasználhatók a szoftverfejlesztési projektekben?

6. Milyen dokumentációs szabványokat ismer?

7. Ismertesse a minőségtervezés főbb pontjai!

8. Ismertesse a minőség mérésének folyamatát!

9. Milyen termékmetrikákat ismer?

160

14 SZOFTVERKÖLTSÉG

A projekt ütemezése során a projektet számos, egymást követő vagy párhuzamosan végrehajtható fejlesztési tevékenységre osztjuk fel a tevékenységek egymástól való függésének figyelembe vételével. Az ütemezéshez kapcsolódó további fontos kérdés, hogy a mennyi munkaerőt rendeljünk hozzá az egyes tevékenységekhez. E tekintetben a szoftver előállítási költségének becslésekor a projektvezetőknek az alábbi kérdésekre kell választ találniuk [1]:

1. Mennyi munkaórát és naptári napot igényel a tevékenység elvégzése?

2. Mekkora lesz a tevékenység várható teljes költsége?

A projekt tervezése során a projekt ütemezését és költségbecslését általában párhuzamosan végzik el. A fejlesztés költségek legnagyobb részét a munkaráfordítások teszik ki, így az ezzel kapcsolatos számítások és becslések felhasználhatók mind a költség, mind az ütemezés becslésénél. A munkaráfordítások költségbecslése jelentős szerepet játszik a projekt költségvetésének felállításánál és így a szoftver eladási árának megállapításánál is. A szoftverfejlesztési projekt összköltsége a következő fő költségsorokból áll:

1. Munkaköltség.

2. A fejlesztés hardver és a szoftver igényének költsége.

3. Szervezet fenntartásából adódó fajlagos költségek.

4. Egyéb költségek, pl. utazási, képzési költség.

A projektben általában a költségek legnagyobb részét a munkaköltség teszi ki. A szervezetnél alkalmazott költség elszámolás típusától függően a munkaköltség lehet egyszerűen a projekten dolgozó szoftvermérnökök bruttó fizetésének költsége vagy magában foglalhatja azokat az általános és fajlagos költségeket is, amelyek a szervezet fenntartásából adódnak. Ez utóbbi esetben a fenti felsorolás első és harmadik pontjának költségei összesítve jelennek meg. A fejlesztő szervezetnél felmerülő főbb általános költségek az alábbiak lehetnek:

1. Az irodai helyiségek fenntartási (fűtés, világítás stb.) költsége.

2. A kisegítő személyzet (a könyvelők, a titkárság, a takarítók és a technikusok) költsége.

3. A hálózathasználat és a kommunikáció költsége, pl. internet, telefon.

4. A központi szórakozási lehetőségek (könyvtár, pihenési lehetőségek stb.) költsége.

5. A társadalombiztosítási költségek (nyugdíj és betegbiztosítás).

A fejlesztési projekt költségbecslésének fő célja az, hogy segítségével pontosan előre lehessen jelezni a megrendelő számára a szoftverfejlesztés várható költségét. A legegyszerűbb, klasszikus esetben a szerződéses ár a fejlesztés teljes költségéből és a profit összegéből tevődik össze, de a projekt költsége és a vásárlónak tett ár közötti kapcsolat általában nem minden esetben ilyen egyszerű. A projekt folyamán a projektvezetőnek folyamatosan felügyelnie kell a források felhasználását és a projekt ütemezését, amely alapján hatékonyabban használhatók fel a rendelkezésre álló erőforrások.

161