A SZOFTVERTECHNOLÓGIA ALAPJAI

Slides:



Advertisements
Hasonló előadás
T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
Advertisements

A MINŐSÉG MEGTERVEZÉSE
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Valós idejű tesztlefedettség- monitorozás JEE környezetben Dr. Ferenc Rudolf, Szegedi Tudományegyetem Bakota Tibor, FrontEndART Szoftver Kft.
C++ programozási nyelv Gyakorlat hét
Erőállóképesség mérése Találjanak teszteket az irodalomban
Clarity üzleti reggeli Budapest, Le Meridien február 19.
Az elemzés és tervezés módszertana
A tervezés mint menedzsment funkció
Rendszerfejlesztés gyakorlat - © Fülöp Lajos
Rendszerfejlesztés.
Humánkineziológia szak
Mellár János 5. óra Március 12. v
A webes tesztelés jövője
Műveletek logaritmussal
Koordináta transzformációk
Utófeszített vasbeton lemez statikai számítása Részletes számítás
Ütemezési algoritmusok (FCFS, SJF, RR)
13.a CAD-CAM informatikus
Vizuális modellezés Uml és osztálydiagram UML eszközök
Elektronikai Áramkörök Tervezése és Megvalósítása
Elektronikai Áramkörök Tervezése és Megvalósítása
Ez a dokumentum az Európai Unió pénzügyi támogatásával valósult meg. A dokumentum tartalmáért teljes mértékben Szegedi Tudományegyetem vállalja a felelősséget,
Ez a dokumentum az Európai Unió pénzügyi támogatásával valósult meg. A dokumentum tartalmáért teljes mértékben Szegedi Tudományegyetem vállalja a felelősséget,
Nincs tökéletes program, csak még nem találtuk meg a hibát!
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Szoftver bonyolultsági mértékek alkalmazási területei Király Roland 2011.
RFID labor az Intézetünkben
Védőgázas hegesztések
Funkciópont elemzés: elmélet és gyakorlat
Szoftver mértékek Szoftver mérték: –A fejlesztési folyamat mérése –Végtermék mérése (termék mérték) Termék mérték: –Külső mértékek: Megbízhatósági mértékek.
Megvalósíthatóság és költségelemzés Készítette: Horváth László Kádár Zsolt.
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
6. Előadás Merevítő rendszerek típusok, szerepük a tervezésben
INNOCSEKK 156/2006 Hasonlóságelemzés-alapú vizsgálat a COCO módszer használatával Készítette: Péter Gábor
Szoftvertechnológia Szoftvergyártás 2..
Szoftvertechnológia Ember-gép rendszerek. Mit értünk rendszer alatt? Kapcsolódó komponensek halmaza – egy közös cél érdekében működnek együtt A rendszer.
Szoftvertechnológia Rendszertervezés.
WEB MES (webes gyártásirányító rendszer) Kiss Miklós (G-5S8)
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
Lineáris egyenletrendszerek (Az evolúciótól a megoldáshalmaz szerkezetéig) dr. Szalkai István Pannon Egyetem, Veszprém /' /
Operációs Rendszerek II.
Matematikai alapok és valószínűségszámítás
szakmérnök hallgatók számára
Magas szintű hardware szintézis
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT
Programtesztelés. Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási)
Minőségtechnikák I. (Megbízhatóság)
VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL
A pneumatika alapjai A pneumatikában alkalmazott építőelemek és működésük vezérlő elemek (szelepek)
Két kvantitatív változó kapcsolatának vizsgálata
Objektumorientált tervezés Út az objektumig Az objektum fogalma, jellemzői Objektummal kapcsolatos fogalmak Hardverfogalmak A rendszer modell nézetei Objektumorientált.
Költség-minimalizálás az ellenőrző kártyák alkalmazásánál Feladatmegoldás, kiegészítés.
Controlling tevékenységek kritériumai Jelentésdialógus A jelentésben fontos tényezők ELŐADÁS ÁTTEKINTÉSE.
Az üzleti rendszer komplex döntési modelljei (Modellekkel, számítógéppel támogatott üzleti tervezés) II. Hanyecz Lajos.
Virtuális Méréstechnika Sub-VI és grafikonok 1 Makan Gergely, Vadai Gergely v
Mérés és adatgyűjtés laboratóriumi gyakorlat - levelező Sub-VI és grafikonok 1 Mingesz Róbert V
Információs rendszer fejlesztése 4. előadás
Gyurkó György. Az állapotmodellezés célja Általánosságban ugyanaz, mint a többi dinamikus modellezési technikáé: Jobban megismerni a problémát. Finomítani.
Programozás, programtervezés
UML modellezés 3. előadás
A TÁRSADALMI JÓL- LÉT KÉRDÉSEINEK ÖSSZEHASONLÍTÁSA EGYES SZOLGÁLTATÓ SZEKTOROKBAN Készítette: Folmegné Czirák Julianna
A költségteljesítmény mérése (költség kontroll) A költségek pontos mérése kritikus fontosságú a projekt előrehaladása során, mert a költség a termelékenység.
2. Operációs rendszerek.
Szoftvermenedzsment A szoftver fogalma programmodulok rendszerdokumentáció konfigurációs adatok, és ezeket tároló fájlok felhasználói dokumentáció a szoftver.
A szoftver mint komplex rendszer: objektumorientált megközelítés.
A könyvtári integrált rendszerek statisztikai moduljának használata
Istvan Simon, CEO & Founder
DRUPAL Előadja: Nagy Nikoletta :05.
A évi kompetenciamérés FIT-jelentéseinek új elemei
Előadás másolata:

A SZOFTVERTECHNOLÓGIA ALAPJAI 13. előadás: Szoftvertesztelés, A szoftver becslése A SZOFTVERTECHNOLÓGIA ALAPJAI Szoftvertesztelés A szoftver becslése 12. előadás PPKE-ITK PPKE-ITK A Szoftvertechnológia alapja-2011

13. előadás: Szoftvertesztelés, A szoftver becslése Tartalom 1. A hiányosságok tesztelése 1.1 A fekete doboz tesztelés 1.2 Ekvivalencia-osztályozás 1.3 Struktúrateszt 1.4 Útvonal tesztelés 2. Integrációs tesztelés 2.1 Az integrációs tesztelés stratégiái 2.2 Interfésztesztelés 2.3 Terhelési (stressz) tesztek 3. Objektumorientált tesztelés PPKE-ITK Szoftvertechnológia-2011 PPKE-ITK A Szoftvertechnológia alapja-2011

13. előadás: Szoftvertesztelés, A szoftver becslése A szoftvertesztelés A tesztelési folyamat alapelemei: Komponens tesztelés: Az egyedi programkomponensek tesztelése. Általában a komponens fejlesztőjének feladata (a kritikus rendszerek kivételével). Integrációs tesztelés Komponensek, majd modulok csoportjának tesztelése, amelyek egy rendszert vagy alrendszert alkotnak. Független tesztelő csoport feladata. A tesztek a rendszer specifikációja alapján készülnek. PPKE-ITK Szoftvertechnológia-2011 PPKE-ITK A Szoftvertechnológia alapja-2011

Funkció- és objektumorientált rendszerek tesztelése A funkcióorientált rendszereknél: A rendszer alapvető program-egységei (függvények – modulok) jól elkülöníthetők, Ezek külön tesztelhetők. Az objektumorientált rendszerek esetén: Az ilyen megkülönböztetés nem lehetséges, az objektumok lehetnek egyszerű ( pl. lista), vagy komplex entitások (pl. egy alrendszer objektumai), Olykor nincs egyértelmű hierarchia az objektumok között, ezért az integrációs tesztek (fentről lefelé, vagy lentről felfelé) nem alkalmazhatók. PPKE-ITK Szoftvertechnológia-2011

1. A hiányosságok tesztelése A cél: feltárni a rejtett hibákat a rendszerben. A sikeres hiányosság teszt a rendszer helytelen működését eredményezi (ellentétben a validációs teszttel, amely a rendszer helyes működését ellenőrzi). A hibák jelenlétét és nem azok hiányát mutatja ki. Tesztadatok és tesztesetek: A tesztesetek a teszthez szükséges inputok és a várt outputok specifikációi, A tesztadatok a rendszer tesztelésére kidolgozott input adatok. PPKE-ITK Szoftvertechnológia-2011

A tesztelés súlyponti kérdései Csak teljes körű tesztelés bizonyíthatná, hogy a rendszer hibamentes, de a teljes tesztelés lehetetlen. A funkcionális teszteknek a rendszer a képességeit kell vizsgálniuk, nem a komponenseket. A fejlesztés során a rendszer régi (korábban már letesztelt) képességeinek tesztelése sokszor fontosabb, mint az újonnan hozzáadott képességeké. A tipikus helyzetek tesztelése fontosabb, mint a határesetek tesztelése. PPKE-ITK Szoftvertechnológia-2011

A hiányosságok tesztelésének folyamata Teszt- esetek Teszt- adatok Teszt- eredmények Teszt- jelentések Teszt- esetek tervezése Teszt- adatok készítése Program futtatása tesztadatokkal Eredmények összevetése a tesztesetekkel PPKE-ITK Szoftvertechnológia-2011

1.1 A fekete doboz tesztelés Funkcionális tesztelésnek is nevezik. A programot fekete doboznak tekintjük, a tesztesetek a programspecifikáció alapján készülnek. Nem foglalkozik a program implementációjával. A tesztek tervezése a szoftverfolyamat korai szakaszában megkezdődhet. (Egyes Agilis módszereknél előbb, mint a program tervezése!) Az előreláthatóan hibát okozó tesztesetek tervezéséhez szakterületi ismeretekre van szükség. PPKE-ITK Szoftvertechnológia-2011

A fekete doboz tesztelés Input tesztadatok Rendellenes viselkedést okozó input adatok Ie Rendszer Output teszt- eredmények A hiányosságokat felfedő outputok Oe PPKE-ITK Szoftvertechnológia-2011

1.2 Ekvivalencia-osztályozás A rendszer input és output adatait valamilyen közös jellegzetesség szerint csoportosítják, amelyekre a rendszer hasonló módon reagál: Például: ha az input 5 jegyű valós szám 10.000 és 99.000 között, akkor az ekvivalencia-osztályok: < 10.000, 10.001 – 99.000, < 99.999 A fejlesztők legtöbbször az inputok tipikus értékeit veszik figyelembe. A teszteseteket a határértékek közelében és az osztályok közepéből célszerű kiválasztani: 00000, 09999, 10000, 99999, 10001 PPKE-ITK Szoftvertechnológia-2011

1.3 Struktúrateszt Fehér doboz vagy üvegdoboz tesztelésnek is nevezik, mert a tesztek a program struktúrájának, implementációjának ismeretében készülnek. A struktúra és a kód ismeretében újabb ekvivalencia-osztályok definiálhatók. A tesztelő a tesztesetek készítésekor elemzi a kódot, hogy biztosítsa minden utasítás legalább egyszeri végrehajtását (az összes lehetséges út-kombináció tesztelésére nincs reális lehetőség). PPKE-ITK Szoftvertechnológia-2011

1.4 Útvonal tesztelés Az útvonal tesztelés strukturális tesztelési stratégia. Célja, hogy minden független útvonalon végighaladjon a teszt. Ekkor legalább egyszer biztosan sor került minden utasítás végrehajtására, és minden feltételes utasítás igaz és hamis eseteire. A kiindulás a program folyamat-gráfja, amely a döntéseket reprezentáló csomópontokból és a vezérlés irányát képviselő élekből áll. Előállítása viszonylag egyszerű, ha programban nincs goto. Csak kisebb programok tesztelhetők ilyen módon. PPKE-ITK Szoftvertechnológia-2011

Ciklomatikus komplexitás A független utak száma a programban. Egy program ciklomatikus komplexitása: CC = Élek száma – Csomópontok száma + 2 CC megmutatja, hogy hány tesztet kell végrehajtani az összes független út végrehajtásához, vagyis minden vezérlő utasítás legalább egyszeri végrehajtásához. Nem lehet a független utak összes kombinációját végrehajtani. A dinamikus programelemzők a fordításkor kiegészítő kódot adnak a programhoz, amelyek mérik, hogy az egyes vezérlő utasítások hányszor kerültek végrehajtásra. PPKE-ITK Szoftvertechnológia-2011

2. Integrációs tesztelés Teljes rendszerek vagy alrendszerek tesztelése, amelyek előzőleg már tesztelt komponensekből állnak. A komponensek együttműködéséből származó hibák feltárására szolgál. Az integrációs teszt fekete doboz tesztelés, a tesztek a specifikációból származnak. Komplex rendszerben az észlelt hibás eredményből nehéz a hiba helyére következtetni. Az inkrementális integrációs tesztelés némileg segít. PPKE-ITK Szoftvertechnológia-2011

Inkrementális integrációs tesztelés A B C D Tesztsorozat 1. Tesztsorozat 2. Tesztsorozat 3. T3 T5 T4 T2 T1 PPKE-ITK Szoftvertechnológia-2011

2.1 Az integrációs tesztelés stratégiái Fentről lefelé tesztelés: A rendszer magas szintű komponenseit még a tervezés és az implementáció alatt integrálják. A még el-nem készült komponenseket azonos interfésszel készült „csonkok” helyettesítik, ahol szükséges. Ezeket fokozatosan kicserélik a kész elemekkel. (Evolúciós fejlesztésnél alkalmazható) Lentről felfelé tesztelés: A hierarchia alsó szintjein lévő modulok integrálásával és tesztelésével kezdik, ahol a magasabb szinteket tesztgenerátorok helyettesítik. (Inkrementális és újrafelhasználás alapú fejlesztésnél alkalmazható) A gyakorlatban a kettő kombinációját alkalmazzák. PPKE-ITK Szoftvertechnológia-2011

Tesztelés fentről lefelé A tesztelés sorrendje 1. szint 1. szint 2. szint 2. szint 2. szint 2. szintű csonkok 3. szintű csonkok PPKE-ITK Szoftvertechnológia-2011

Tesztelés lentről felfelé Teszt meghajtók N. szint N. szint N. szint N. szint N. szint A tesztelés sorrendje Teszt meghajtók N-1 szint N-1 szint N-1 szint PPKE-ITK Szoftvertechnológia-2011

A tesztelési stratégiák összehasonlítása Szerkezeti validáció A fentről lefelé teszteléssel felfedhetők a hibák a rendszerarchitektúrában és a magas szintű tervekben, még a folyamat korai szakaszában. Ez a lentről felfelé tesztelésnél csak később lehetséges. Rendszerdemonstráció A fentről lefelé integráció korán lehetővé teszi a korlátozott demonstrációt. Újrafelhasználható komponensek alkalmazásával a lentről felfelé megközelítéssel is lehetséges. Tesztimplementáció A programcsonkokat nehéz implementálni, a lentről felfelé tesztelés tesztmeghajtóit valamivel egyszerűbb, de mindenképpen jelentős addicionális fejlesztést igényel. Tesztmegfigyelés A tesztek eredményét mindkét módszernél nehéz megfigyelni. Mesterséges környezetre, extra kódra van szükség. Különösen a fentről lefelé megközelítésnél, ahol a magasabb szintek sokszor nem szolgáltatnak outputokat. PPKE-ITK Szoftvertechnológia-2011

2.2 Interfésztesztelés Interfésztesztelésre akkor van szükség, amikor egy nagyobb rendszer összeépítésekor modulokat vagy alrendszereket integrálunk. Célja az interfészek specifikációs- (félreértések), vagy implementációs hibáinak felfedése. Az interfésztesztelés az objektumorientált fejlesztésnél fontos (különösen objektumok és osztályok újrafelhasználásakor), mert az objektumokat az interfészeikkel definiáljuk. Egyedi objektum tesztelésével az interfészhibákat nem lehet felfedni. A hibák az objektumok közti interakciókban jelentkeznek, nem egy egyedi objektum sajátosságaiként. PPKE-ITK Szoftvertechnológia-2011

Interfész típusok Paraméter interfészek: Osztott memória interfészek: Adatok továbbítása az egyik alrendszertől a másikhoz. Osztott memória interfészek: Az alrendszerek közös memóriablokkon keresztül cserélnek adatot egymással. Procedurális interfészek: Egy alrendszer más alrendszerek által hívható eljárásokat tartalmaz. Üzenet alapú interfészek: Egy alrendszer úgy kér szolgáltatást egy másik alrendszertől, hogy üzenetet juttat el hozzá. A szolgáltatás eredményeit egy válaszüzenetben kapja meg. PPKE-ITK Szoftvertechnológia-2011

Tipikus interfészhibák Interfész hibás alkalmazása: Egy hívó komponens hibája lehet: rossz típusú vagy sorrendű paraméterek, hibás számú paraméter, stb. Interfész félreértése: A hívó komponens hibásan értelmezi az interfészt, vagy a hívott komponens válaszait. Időzítési hibák: A hívó és a hívott komponens különböző sebességgel működik (osztott memória, vagy üzenettovábbító interfész esetén), és a hívott nem aktuális információt kap. PPKE-ITK Szoftvertechnológia-2011

Az interfésztesztelés irányelvei A teszteket úgy kell tervezni, hogy a paraméterek értékei a határértékek közelében legyenek. A pointer jellegű paramétereket null értékkel is tesztelni kell. Olyan tesztesetet is tervezni kell, amely a hívott komponens hibáját okozza. (A specifikációs hibák többsége a hibák értelmezéséből fakad.) Üzenettovábbító, vagy interaktív rendszereknél terhelési (stressz) tesztet kell végrehajtani. Osztott memóriájú interfészeket a komponensek aktiválódása sorrendjének megváltoztatásával is tesztelni kell (szinkronizációs hibák). PPKE-ITK Szoftvertechnológia-2011

2.3 Terhelési (stressz) tesztek A rendszereket a tervezettnél nagyobb terheléssel is tesztelni kell. Fokozatosan növelni kell a terhelést, amíg a rendszer hibázik, vagy teljesítménye elfogadhatatlanná válik. Feladatai: Szélsőséges körülmények között teszteli a rendszer viselkedését. A túlterhelés nem okozhat adatvesztést, vagy a szolgáltatások teljes eltűnését. Erre tervezni kell a rendszert. Olyan hiányosságokat fed fel, amelyek normális esetben nem okoznak rendszerhibát. Különösen fontos az osztott rendszereknél, ahol a nagyobb terhelés a koordinációs adatokkal túlterheli a hálózatot. Ez a folyamatokat lassítja, önmagát erősítő folyamatként túltelíti a rendszert. PPKE-ITK Szoftvertechnológia-2011

3. Objetumorientált tesztelés A komponens- és integrációs tesztelés az objektumorientált rendszereknél is alkalmazható. Fontos különbségek: A tesztelendő objektumok komponensként gyakran nagyobbak, mint az egyszerű függvények. (A fehér doboz tesztelés nehezebben alkalmazható.) Az objektumok lazán kötődnek, és a rendszernek/alrendszernek nincs egyértelmű teteje. Az újrafelhasznált komponensek kódjához nem mindig lehet hozzájutni, elemezni. PPKE-ITK Szoftvertechnológia-2011

Az objektumorientált tesztelés szintjei Az objektumokhoz kapcsolódó műveletek tesztelése: Függvények, vagy eljárások, fekete- vagy fehér doboz eljárással tesztelhetők. Objektumosztályok tesztelése: A fekete doboz eljárás alkalmazható, de az ekvivalencia-osztályokat a műveletsorozatokra is ki kell terjeszteni. Együttműködő objektumcsoportok tesztelése: Forgatókönyv alapján kijelölhető az objektumok csoportja. Objektumorientált rendszer tesztelése: A rendszerkövetelmények verifikációja és validációja más rendszerekhez hasonlóan történhet. PPKE-ITK Szoftvertechnológia-2011

3.1 Objektumosztályok tesztelése A teljes (minden utasítás és minden független útvonal) teszt lefedettséghez szükség van: Az objektumhoz kapcsolódó összes művelet tesztelésére, Az összes attribútum beállítására és tesztelésére, Az objektum összes lehetséges állapotának végrehajtására. Az öröklődés még nehezíti az objektumosztályok tesztelését, mert az összes örökölt műveletet is tesztelni kell. PPKE-ITK Szoftvertechnológia-2011

3.2 Objektumintegráció Az objektumorientált rendszerekben az integráció szintjét nehéz meghatározni. A modultesztnek nincs megfelelője, de alkalmazható az együttműködő objektumosztályok csoporttesztje. A csoportok az objektumok működésének és a rendszer tulajdonságainak ismeretében jelölhetők ki. PPKE-ITK Szoftvertechnológia-2011

Csoporttesztelés Használati eset vagy forgatókönyv alapján: A tesztek a felhasználói interakciókon alapulnak. Előnye, hogy a felhasználók által leggyakrabban használt részeket teszteli. Száltesztelés: A rendszernek egy eseményre adott válaszát vizsgálja, amint az a rendszeren keresztülhalad. Objektum együttműködési teszt: Az objektumok együttműködésének egy sorozatát vizsgálja, amely akkor ér véget, ha egy objektumművelet nem hív meg más objektumszolgáltatást. PPKE-ITK Szoftvertechnológia-2011

Forgatókönyv alapú tesztelés A használati eset diagram alapján meghatározott forgatókönyvet kiegészíti egy olyan szekvencia diagrammal, amely az érintett objektumokat is megmutatja. Olyan forgatókönyveket kell választani, amelyek végül biztosítják, hogy minden objektum minden művelete legalább egyszer tesztelve legyen. A szekvencia diagram arra is alkalmas, hogy meghatározzuk a teszt input és output adatait. A forgatókönyvben ki kell térni a kivételekre (hibaesetekre) is.! PPKE-ITK Szoftvertechnológia-2011

4. Tesztelő eszközök A tesztelés drága és időigényes folyamat. A tesztelő eszközök automatizálják, amit lehet, így csökkentik a tesztelés idő- és erőforrásigényét, ezáltal a költségeket. Nagy rendszerek esetén a tesztelő eszközöket a rendszer funkcióihoz és felelősségéhez szabják. A tesztelő eszközöket nem könnyű integrálni a tervező, fejlesztő CASE eszközökkel. PPKE-ITK Szoftvertechnológia-2011

Tesztelő eszközrendszer Tesztadat- generátor Specifi- káció Teszt menedzser Forráskód Tesztadat Előrejelző Dinamikus elemző Tesztelt program Teszt- eredmények Teszt- előrejelzések Futtatási jelentés Szimulátor Állomány össze- hasonlító Jelentés- generátor Teszteredmény jelentések PPKE-ITK Szoftvertechnológia-2011

Összefoglalás Legfontosabb a rendszer gyakran használt részeit tesztelni. Az ekvivalenciaosztályozás egy lehetőség a tesztadatok előállítására. Az osztály határára eső értékek fedik fel a hibákat a legnagyobb valószínűséggel. A strukturális tesztelés a programon átvezető útvonalak tesztelésén alapul. Az integrációs tesztek a komponensek és interfészeik közti interakciót vizsgálják. Interfészhibák a specifikáció hibás értelmezéséből és hibás időzítésből származhatnak. Az objektumosztályokat úgy kell tesztelni, hogy minden műveletet kipróbálunk, minden attribútumnak értéket adunk, minden állapotot tesztelünk. Az OO rendszereket a használati esetek alapján összegyűjtött objektumcsoportokban lehet tesztelni. PPKE-ITK Szoftvertechnológia-2011

A szoftver költségei

A szoftver költségbecslés alapvető kérdései Mekkora munkát igényel egy feladat elvégzése? Mennyi időbe kerül a feladat végrehajtása? Mennyi a tevékenység összes költsége? A költségbecslés és projektütemezés folyamatos projektvezetési tevékenység. A szoftverfejlesztési projekt költségelemei: A hardver és szoftver költségei a karbantartással együtt, Utazási és képzési költségek, Munkaköltségek (bér, közteher, helység, kisegítő munkák, kommunikáció, rekreáció, ...) PPKE-ITK Szoftvertechnológia-2011

A szoftver költsége és ára A költség és az ár között nincs egyszerű arányosság. Befolyásolják: Piaci lehetőségek, A költségbecslés bizonytalanságai, A szerződéses feltételek (tulajdonjog), A követelmények változékonysága, A fejlesztő gazdasági helyzete. PPKE-ITK Szoftvertechnológia-2011

A szoftverfejlesztés termelékenysége Mérni kell a szoftver valamilyen jellemzőjét és osztani a fejlesztési idővel. Mennyiségi mérések: (Forráskód sorok száma, utasítások száma, dokumentáció oldalszáma, stb.) Funkcionális mérések: (Az időegység alatt előállított hasznos funkciók száma: Funkciópontok, objektumpontok.) A termelékenység összehasonlítása: Alacsonyabb szintű nyelven több kódsort lehet írni, de azonos funkciót több kóddal kell megvalósítani, A jó programozó ugyanazt a funkciót kevesebb kóddal készíti el, mint a „bőbeszédű” programozó, Hogyan vegyük figyelembe a kommenteket? PPKE-ITK Szoftvertechnológia-2011

Funkciópontok A program jellemzőinek kombinációján alapuló, nyelv-független módszer. Méri az alábbi jellemzőket: Külső bemenetek és kimenetek Felhasználói interakciók Külső interfészek A rendszer által használt fájlok Mindegyikhez súlyozási tényezőt rendel: Egyszerű külső bemenet: 3 Bonyolult belső állományok: 15 A súlyozási tényezőt egy szervezeten belül, hasonló jellegű szoftverek készítése során gyűjtött statisztikák alapján finomítja. PPKE-ITK Szoftvertechnológia-2011

A funkciópontok számítása A funkciópontok (FP) alapján a kódsorok számára (LOC – Lines Of Code) lehet következtetni: LOC = AVC * FP ahol: AVC nyelvfüggő szorzófaktor (200-300 az assembly és 2-40 a 4GL nyelvekre) A funkciópont számítás nagyon sok szubjektív elemet tartalmaz. Automatikus számítása nem lehetséges, mert a specifikáció alapján kell a funkciópontokat megbecsülni. PPKE-ITK Szoftvertechnológia-2011

Objektumpontok 4GL vagy más magas szintű nyelvek esetén a funkciópontok alternatívája. Magas szintű specifikáció alapján könnyebben becsülhető. Az objektumpont (NTC) nem azonos az objektumok számával, hanem az alábbiakból számítható: A külön megjelenítendő képernyők száma, az egyszerűtől (1), a nagyon bonyolultig (3), A készítendő jelentések száma (2 – 5 – 8) A 4GL kiegészítése miatt szükséges 3GL modulok száma (10) PPKE-ITK Szoftvertechnológia-2011

A termelékenység becslése Valósidejű, beültetett rendszerek: 40 – 160 LOC / hó Rendszerprogramok: 150 – 400 LOC / hó Kereskedelmi alkalmazások: 200 – 800 LOC / hó Objektumpontban számolva a termelékenység 4 és 50 pont / hónap közötti, az eszköztámogatottságtól és a fejlesztők képességeitől függően. PPKE-ITK Szoftvertechnológia-2011

A termelékenységet befolyásoló tényezők Az alkalmazási terület ismerete: A hatékony szoftverfejlesztéshez szükséges a szakterület ismerete. A folyamat minősége: A fejlesztési folyamat minőségének jelentős hatása van a termelékenységre. A projekt mérete: A nagyobb projekt több csoportkommunikációs és adminisztrációs tevékenységet igényel. Technológiai támogatás: Támogató technológiával (pl. CASE) a termelékenység növelhető. Munkakörnyezet: A jó munkakörülmények és légkör javítják a termelékenységet. PPKE-ITK Szoftvertechnológia-2011

Algoritmikus költségmodellezés COCOMO Empirikus modell, a projektek gyakorlatából gyűjtött adatokon alapul. Jól dokumentált, hosszú tapasztalat áll mögötte (első verzió: 1981) A COCOMO 2 (1995) három szintű modellt alkalmaz: Korai prototípuskészítés szintje (becslés objektumpontok alapján) Korai tervezés szintje (funkciópontok alapján a forráskódok számát becsli) Poszt-architekturális szint (az architektúra terv elkészülte után becsli a szoftver méretét) PPKE-ITK Szoftvertechnológia-2011

Korai prototípuskészítés szintje Prototípuskészítést és újrafelhasználást is figyelembe vesz. A fejlesztői produktivitást objektumpontokkal számolja és a CASE használatot is bekalkulálja. A formula: PM = (NOP * (1 - %reuse)) / PROD Ahol: PM – a munka emberhónapban, NOP – az objektumpontok száma, PROD - produktivitás A fejlesztő gyakorlata és képessége Nagyon kevés Kevés Átlagos Sok Nagyon magas A CASE érettsége és lehetőségei PROD (NOP/hónap) 4 7 13 25 50 PPKE-ITK Szoftvertechnológia-2011

Korai tervezési szint A követelmények tisztázása után végezhető a becslés. Az alábbi képlettel számol: PM = A * MéretB * M + PMm ahol M=PERS*RCPX*RUSE*PDIF*PREX*FCIL*SCED PMm= (ASLOC*(AT/100))/ATPROD A = 2,5 a kezdeti számításban B = 1,1 – 1,24 a projekt mérete, újdonsága függvényében. M = projekttényezők: PERS – személyi képességek, RCPX – termék megbízhatóság, RUSE – szükséges újrafelhasználás, PDIF – platform nehézségei PREX – személyek gyakorlata, FCIL – támogató eszközök, SCED – ütemezés ASLOC = automatikusan generált kódsorok, AT = aut. rendszerkód, ATPRO = termelékenység, PPKE-ITK Szoftvertechnológia-2011

Poszt-architekturális szint Ugyanazt a formulát alkalmazza, mint a korai tervezési becslés, de két tényezőt figyelembe vesz: A követelmények változékonysága, A lehetséges újrafelhasználás mértéke. A szükséges új kódsorok számának becslésekor statisztikai és egyéb értékeket is figyelembe vesz, mint: A korábbi hasonló projektek hiánya, A fejlesztés rugalmassága, A csapat összetartása, A folyamat fejlettsége. PPKE-ITK Szoftvertechnológia-2011