SZOFTVERMINŐSÉG ÉS A SZOFTVER FOLYAMAT ISO 8402 /1996. Folyamat: egymásnak kölcsönös kapcsolatban álló erőforrások és tevékenységek összessége, amelyek a bemenetet kimenetté alakítják. Termék: tevékenységek, vagy folyamatok eredménye. Termék csoportok: Hardver: a fizikailag megfogható eszközök összessége. Szoftver: Szellemi termék. A szoftver, programok, eljárások, információk, adatok és a fejlesztések összessége. Feldolgozási anyagok: folyadékok, gázok, csövek, mindazok, amit feldolgozunk. Szolgáltatások SZOFTVER A vállalt sikerességét alapvetően befolyásolja a szoftver, szoftvertechnológia. Szoftver válság lényege: a vállalati igényekkel szemben állnak az igényeket kielégíteni szándékozó, szoftver gyártók. A vállalat oldaláról vizsgálva a válságot: A vezetés nem ismeri fel a szoftverek jelentőségét. Nem tudja megfogalmazni azokat az igényeket, amelyeket elvárunk a szoftverektől. A szoftver gyártók oldaláról vizsgálva a válságot: Megkísérli a meglévő szoftver technológiai környezetbe beszorítani a vállalati tevékenységet. A "válság" feloldására tervezett megoldások: Saját (vállalaton belüli fejlesztés) erőforrás felhasználása útján készített szoftverek: minőségük általában nem megfelelő. A külső fejlesztések, pedig: nem érzékenyek a vállalati problémák kezelésére. Általában a tervezett szoftver fejlesztések meghaladják a vállalat belső erőforrásait, ezáltal többnyire ezeket a fejlesztéseket a vállalat külső fejlesztő cégeknek adja ki. A vállalat oldaláról nem látják a szoftvertechnológia jelentőségét, nem érzékelik a technológiai különbségeket. A SZOFTVER FOLYAMAT JELLEGŰ FELFOGÁS Szoftver folyamat: Olyan technikai (termelési) és menedzselési folyamatoknak az összessége, amelyek a szoftver követelmények meghatározására és ezen követelményeket kielégítő szoftverek kidolgozására szolgálnak. TERMÉK_FEJLESZTÉS.DOC 1
Technológiai ág A technikai tevékenységek mikroszintű modellezése. - Modellező nyelvek, - Eljárások. SZOFTVER FOLYAMAT Javítási ág A szoftverfolyamat struktúrájának és érettségének makroszintű modellezése. - A szervezeti struktúrát és a tervezet érettség szintjét javítani. - A cégnek azon képességeit javítani, amely segítségével a vevői követelmények teljesülnek. Fontos vállalati szemléleti igény, hogy tervezhető legyen a szoftver folyamat is. (Mibe fog kerülni??) DÖNTÉS HOZATAL: Szempontok alapján kerül meghozatalra. Szempontok alcsoporjai: Tulajdonságok, Célirányok, Végcél. A tulajdonságoknak és a célirányoknak mennyiségekkel kifejezett értéke. SZOFTVERMINŐSÉGE 1. Funkcionalitás: működési funkciókkal és azok meghatározott tulajdonságaival összefüggő attribútumok halmaza. (Tartalmazza-e azokat az elemeket, amelyek kielégítik az igényeket. Azt teszi-e, amit elvárunk tőle.) A funkcionalitás minőségjellemző részjellemzői: célnak való megfelelőség, helyes működés, más rendszerekkel való együttműködési képesség, illeszkedés szakterületi szabványokhoz, védelem a jogosulatlan (véletlen vagy szándékos) hozzáférések ellen. 2. Megbízhatóság: A szoftver azon attribútumainak halmaza, amelyek utalnak a szoftver a- dott feltételek mellett, adott időtartamon keresztül fenntartható, rendeltetésének megfelelő működési szintje. (Két meghibásodás között eltelt idő. A szoftver minden lehetséges helyzetet kezel-e.) A megbízhatóság minőségjellemző részjellemzői: érettség, azaz hiba-előfordulás gyakorisága, hibatűrő képesség, helyreállíthatóság. 3. Használhatóság: környezet függő. A szoftver használatához szükséges erőfeszítésekkel, valamint a felhasználók egyéni megítélésével kapcsolatos attribútumok halmaza. A használhatóság minőségjellemző részjellemzői: megérthetőség, megtanulhatóság, működtethetőség. TERMÉK_FEJLESZTÉS.DOC 2
4. Hatékonyság: az adott szoftver termék mennyire használja ki a rendelkezésre álló erőforrásokat. A szoftver teljesítményszintje és a felhasznált erőforrások mennyisége közötti kapcsolatra vonatkozó attribútumok halmaza. (A hatékonyság szempontjából nem csak a gépi erőforrásokat, hanem a kezelői tevékenységet is figyelembe kell venni.) A hatékonyság minőségjellemző részjellemzői: megtanulhatóság, működtethetőség. - Hatékonyság a kezdeti időszakban: hasznos - Hatékonyság az üzemszerű működés során: hátrányos. Rendszer szintű működés jellemzőit kell megadni a hatékonyság szempontjából. (A kezelő képessége a fő szempont.) 5. Karbantarthatóság: A szoftver módosításokhoz szükséges erőfeszítéseket jellemző attribútumok halmaza. Ezek a módosítások a: - hibakijavítás, - továbbfejlesztés, - szoftver környezeti változásokhoz és a változó követelményekhez történő igazítás. A karbantarthatóság minőségjellemző részjellemzői: hibafeltáráshoz szükséges erőfeszítés, módosításhoz, hibakijavításhoz szükséges erőfeszítés, stabilitás, azaz a módosítások mellékhatásainak kockázata, tesztelhetőség. A karbantartásnál jelentkező főprobléma, hogy a struktúra összekeveredik és a későbbiekben nehezen kezelhető. A fejlesztőrendszerek által kialakított struktúra, dokumentált és jó karbantartható. 6. Hordozhatóság: a szoftver egyik környezetből a másikba viteli lehetőségével kapcsolatos attribútumok halmaza. A hordozhatóság minőségjellemző részjellemzői: adaptálhatóság (a felhaszn. feladatra hogyan, mennyire könnyen lehet a szoftvert alkalmazni), telepíthetőség, (milyen erőfeszítést igényel a szoftver telepítése: kézikönyv, telepítő lemez) illeszkedés hordozhatósági szabványokhoz és megállapodásokhoz SZOFTVERFOLYAMAT-MODELLEK / Gyártói oldalról nézve a szoftver fejlesztést / 1. A programozásjavítás modell: A szoftver fejlesztés kezdeteikor használt modell, két lépésből áll: Kódírás. Javítás. A modell problémái: - Néhány javítás után a kód olyan rosszul struktúrálttá válik, hogy a további javítások túl drágák lesznek. - Még a jól megtervezett szoftverek is olyan kevéssé felelnek meg a felhasználói követelményeknek, hogy vagy eldobják azokat, vagy drágán újrafejlesztik őket. TERMÉK_FEJLESZTÉS.DOC 3
2. A Vízesésmodell: Felülről - lefelé irányuló tervezés. Előnye: könnyű megérteni, és jól meghatározhatóak az egyes szakaszokhoz tartozó dokumentációk. Hátránya: időnként indokolatlanul sok dokumentációt hoz létre. Rendszer követelmények Szoftver követelmények Előzetes programterv Elemzés Programterv Programozás Tesztelés MŰKÖDÉS 3. A Spirálmodell: elméleti jellegű, gyakorlatban a fejlesztői technológiák nem támogatják. E modell nagy figyelmet fordít a kockázatokra és a költségproblémákra, valamint előtérbe helyezi a prototípus-építést. A sugárirányú dimenzió a halmozott költségeket, míg a szögelfordulás az időbeli előrehaladást szemlélteti. A modell legfontosabb jellemzője, hogy minden ciklust érvényességvizsgálati és ellenőrzési szemle követ. Minden ciklusban készül egy újabb prototípus. költség idő TERMÉK_FEJLESZTÉS.DOC 4
4. Minél kevesebb paramétert kell a fejlesztés során definiálni!! (Ezáltal kevessebbet kell leellenőrizni.) A kiindulási és a végcélt kell paraméterezni. 5. Evolúciósmodell: Tulajdonságai: Többcélú tervezés: azt hangsúlyozza, hogy nem csak a funkcionális követelmények a fontosak, hanem pl. a használhatóság, vagy a karbantarthatóság is nagyon fontos. Korai és gyors iteráció: a végcél felé vezető úton a legkevesebb erőforrást igénylő hasznos lépést keresi. Minden lépésben teljes elemzés, tervezés, építés és teszt: a részletes követelményelemzés elvetése és a minden lépésben teljesülő komplex tevékenységet részesíti előnyben. Felhasználó orientáltság: a felhasználói igények és a fejlesztési költség becslések hangsúlyozása. Rendszer megközelítés: a szoftver - hardver együttes specifikálás, a dokumentáció, betanítás, marketing és a motiváció hangsúlyozása. Nyíltvégű rendszerfelépítés: folyamatosan elemezni kell azokat a lehetőségeket, amelyek minél adaptálhatóbb, változtatást tűrő (robosztus) rendszerhez vezetnek. Eredmény orientáltság: a vízesésmodell-lel szemben az eredmény (végcél) fontosságának kiemelése a "folyamattal" szemben. SZOFTVERÉRETTSÉG - MODELL Képesség - érettség modell (CMM): A gyártó képességét mutatja meg (a szoftver előállításával kapcsolatban). Meghatározó szerepe van a szoftver folyamat felmérés és fejlesztés területén. 18 db kulcs-folyamatterület: kulcs-tevékenységekből állnak. 5 db érettségi szint. Érettségi szintek: az érett szoftverfolyamat irányába megtett lépések egy jól meghatározott szintje. Kezdeti szint: Egy kezdeti szintű szervezet nem biztosít stabil környezetet a szoftver fejlesztés és karbantartás területén. Tűzoltásszerű tevékenység folyik. Ismételhető szint: Egy ismételhető szintű szervezetnél, vannak bevezetett irányelvek a szoftverprojektek menedzselésére, valamint eljárások ezen irányelvek betartására. Így lehetővé válik a korábbi projektekben kidolgozott sikeres megközelítések, tevékenységek megismétlésére, akkor is, ha maguk a folyamatok eltérnek egymástól. Meghatározott szint: Ezen a szinten a szoftverfejlesztés és - karbantartás technológiai és menedzselési feladatainak végrehajtása dokumentált, szabványos folyamatot követve megy végbe. Egy a szervezetnél egy képzési program biztosítja az alkalmazottak és a menedzserek tudás szintjének javítását. Menedzselt szint: E szinten lévő szervezeteknél a termékre és a folyamatokra mérhető minőségi célokat írnak elő, amelyek szórását elfogadható mennyiségi korlátok közé szorítják. TERMÉK_FEJLESZTÉS.DOC 5
Optimalizáló szint: Az ezen szinten lévő szervezeteket az állandó folyamatfejlesztés jellemzi. Az egyes folyamatokat, projekteket elemzik a hibákat, meghatározzák azok okait, és intézkednek az ismételt bekövetkezés elkerülése érdekében. Képességek: a szoftver folyamat képessége határozza meg, hogy a folyamatot követve milyen eredmény várható, megjósolható a szervezet által elvégzendő következő szoftverprojekt legvalószínűbb kimenetele. Kulcsterületek: Mindegyik érettségi szint kulcsterületekből áll. A kulcsterületek egymáshoz tartozó tevékenységek csoportja, amelyek az adott szint célkitűzéseinek elérését célozzák meg. A kulcsterületek mindig egyetlen érettségi szinten helyezkednek el. (pl. a 2. - ismételhető szint -) egyik kulcsterülete a szoftverprojekt tervezése. A SZINTEK és KULCSTERÜLETEIK: 1. KEZDETI SZINT: 2. ISMÉTELHETŐ SZINT: Szoftverkonfiguráció-menedzselés Szoftverminőség-biztosítás Szoftveralvállalkozó-menedzselés Szoftverprojekt-követés Szoftverprojekt-tervezés Követelménymenedzselés 3. MEGHATÁROZOTT SZINT: Integrált szoftvermenedzselés Szoftvertermék technológia Csoportközi együttműködés Szemlék Képzési program Szervezeti folyamat meghatározása Folyamat-központúság 4. MENEDZSELT SZINT: Minőségmenedzselés Folyamatmérés és elemzés 5. OPTIMALIZÁLT SZINT: Folyamatváltozás menedzselés Technológiai innováció Hibamegelőzés A SZOFTVER FEJLESZTÉS ÜZLETI MOTIVÁCIÓI 1. Pénzügyi előny: A fejlesztésnek feltétlenül pénzügyi előnyt kell, hogy biztosítson. Ez akkor következik be, amennyiben saját pénzforrásain felül felvett hiteleket azok TERMÉK_FEJLESZTÉS.DOC 6
költségeinél magasabb hozammal tudja befektetni a szervezet. Akkor jó, ha a megtérülés igen nagy. 2. Működési előny: A cég nyereségét nagymértékben befolyásolja a költségek (állandó, változó )struktúrája. A működési előny egy relatív termelési mennyiségváltozás által eredményezett relatív nyereségváltozás, minél alacsonyabb változó költség szinten (ember / év). 3. Termelési előny: azt a nyereségnövekedést jelenti, amely a termelés hosszú távú fenntartásából eredő költségcsökkenésből származik. Segíti a termelési előnyhöz jutást a korábbi tapasztalatok ellenőrzött felhasználása. A tapasztalatok összegyűjtése és újrafelhasználása a szoftverfolyamat-javítás elsődleges célja. 4. Marketing előny: A marketing előny a cég korábbi sikeres referenciáiból fakadó magasabb termék ár realizálásában, valamint sikeres piaci terjeszkedésében nyilvánuló meg. 5. Emberi előny: Az alkalmazottak "ÖRÖME" arányos a helyesen megválasztott motivációval, valamint sikeresen átadott fejlesztési eredményekkel. Az alkalmazottak hangulatát kedvezően befolyásolja a szervezetük magasabb érettségi szintre történő fejlesztése. TERMÉK_FEJLESZTÉS.DOC 7