TERMÉK FEJLESZTÉS PANDUR BÉLA
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 ÁGOSTON MIKLÓS
1
TERMÉK FEJLESZTÉS PANDUR BÉLA
SZOFTVER FOLYAMAT Technológiai ág A technikai tevékenységek mikroszintű modellezése. - Modellező nyelvek, - Eljárások.
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 adott 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 ÁGOSTON MIKLÓS
2
TERMÉK FEJLESZTÉS PANDUR BÉLA
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 ÁGOSTON MIKLÓS
3
TERMÉK FEJLESZTÉS PANDUR BÉLA
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 ÁGOSTON MIKLÓS
4
TERMÉK FEJLESZTÉS PANDUR BÉLA
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 ÁGOSTON MIKLÓS
5
TERMÉK FEJLESZTÉS PANDUR BÉLA
•
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 ÁGOSTON MIKLÓS
6
TERMÉK FEJLESZTÉS PANDUR BÉLA
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 ÁGOSTON MIKLÓS
7