A szoftver-folyamat Szoftver életciklus modellek Irodalom Ian Sommerville: Software Engineering, 7th e. chapter 4. Roger S. Pressman: Software Engineering, 5th e. chapter 2. 2
A szoftver-folyamat Szoftver rendszer fejlesztésére irányuló tevékenység struktúrált meghatározott lépések Absztrakt reprezentáció 3 A szoftver-folyamat technológiai nézetben A szoftver-folyamat rétegz!dése folyamat réteg keret, kontextus management módszerek, módszertan réteg tevékenységek irányítása eszköz réteg automatikus, félautomatikus támogatás CASE Folyamat Módszer 1 Módszer 2 Eszköz 1 Eszköz 2 Eszköz 3 4
A szoftver-folyamat szerepl!i Megrendel! szervezet Szoftvert fejleszt! szervezet Managerek Szoftver mérnökök (informatikusok) Eszközök a kapcsolódó háttérrel 5 Generikus szoftverfolyamat A folyamat fázisai definíciós fázis (mit?) fejlesztési fázis (hogyan?) támogatási fázis (változások) 6
Átfogó tevékenységek a szoftver-folyamatban Projekt követés, ellen!rzés Szoftver min!ségbiztosítási megoldások Konfiguráció management Dokumentációs tevékenység Kockázat kezelés 7 Szoftver-folyamat modellek Munkafolyamat modellek (workflow) tevékenységek sorrendje, függéseik Adatfolyam modellek (dataflow) tevékenységek mint adat transzformációk Szerep modellek (role) szerepekhez tartozó tevékenységek 8
Generikus szoftverfolyamat modellek Vízesés modell / lineáris szekvenciális modell elválasztott specifikációs és fejlesztési fázis Evolúciós fejlesztés specifikáció, fejlesztés és validáció váltogatja egymást Komponens alapú fejlesztés fejlesztés létez! komponensekb!l 9 Követelmények meghatározása Vízesés modell Rendszer- és szoftvertervezés Implementáció és egységtesztelés Integráció és rendszertesztelés M!ködtetés és karbantartás 10
A vízesés modell jellemz!i Nehéz a változások figyelembevétel Csak a el!z! fázis befejezése után kezdhet! a következ! Jól meghatározott követelmények és kevés változás esetén alkalmazható 11 Evolúciós fejlesztés Explorációs fejlesztés Jól megértett követelmények, kezdeti specifikáció Megrendel! által felvetett funkciók hozzáadása Eldobható prototípusok Cél a követelmények megértése, tisztázása 12
Evolúciós fejlesztés (folyt.) Specifikálás Kiindulási verzió Körvonalazott követelmények Fejlesztés Átmeneti verziók Validálás Konkurrens tevékenységek Végs! verzió 13 Az evolúciós fejlesztés jellemz!i Nem jó a folyamat láthatósága Rosszul struktúrált rendszer Speciális eszközök szükségesek Kis és közepes méret" interaktív rendszerek fejlesztése Nagy rendszerek részrendszereinek fejlesztése Rövid életciklusú szoftverek fejlesztése 14
Komponens alapú szoftverfejlesztés Újrafelhasználható komponensekb!l integrált rendszerek el!állítása buy, don t build rapid prototyping Komponens szabványok szerepe 15 Komponens alapú szoftverfejlesztés (folyt.) Követelmények specifikálása Komponensek elemzése Követelmény módosítás Rendszertervezés Komponens alkalmassági értékelése Komponens adaptálása Fejlesztés, komponens integrálás Validálás white box gray box black box 16
Iteratív folyamatok Követelmények változása Korábbi fázisok újra átdolgozása Iteratív fejlesztési modellek Iteráció alkalmazható a generikus modellekre Inkrementális fejlesztés Spirál modell 17 Inkrementális fejlesztés Követelmények priotás alapú felosztása Fejlesztés felbontása inkrementumokra követelmények befagyasztása kívánt funkcionalitású inkrementum létrehozása els! inkrementum - core product 18
Inkrementális fejlesztés (folyt.) Követelmények meghatározása Követelmények inkrementumokhoz rendelése Inkrementum fejlesztése Inkrementum validálása Inkrementum integrálása Rendszer validálása Végs! rendszer nem teljes rendszer 19 Inkrementális fejlesztés (folyt.) Kovetelmény meghatározás Tervezés Implementálás Tesztelés 1. inkrementum Kovetelmény meghatározás Tervezés Implementálás Tesztelés 2. inkrementum Kovetelmény meghatározás Tervezés Implementálás Tesztelés 3. inkrementum id! 20
Az inkrementális fejlesztés jellemz!i Korai megjelenés Inkrementumok prototípusként m"ködhetnek Kockázat csökkentése Legfontosabb komponensek több tesztelést kapnak 21 Spirál fejlesztési modell Nincsenek rögzített fázisok, tevékenység szekvenciák a spirál egy köre felel meg egy fázisnak Explicit kockázat kezelés 22
Célok, alternatívák meghatározása Spirál fejlesztési modell (folyt.) Kockázat elemzés Kockázat elemzés Kockázat elemzés Proto 1 Proto 2 Alternatívák értékelése, kockázat elemzése Proto 3 Proto 4 Következ! fázis tervezése Követelmény elemzési terv Fejlesztési terv Integrálási, tesztelési terv Koncepció kialakítása Követelmények validálása Validálás Követelmények Terv V&V Integr. teszt Bench mark Termék terv Egység teszt Kódolás Részletes terv Fejlesztés, verifikáció 23 A spirál modell jellemz!i Boehm 88 Tevékenység régiók fejleszt! - megrendel! kommunikációja tervezés kockázat elemzés prototípusok létrehozása konstrukció megrendel!i értékelés 24
Szoftverfejlesztés költségei Vízesés modell 0 25 50 75 100 Specifikálás Tervezés Fejlesztés Integrálás / tesztelés Iteratív fejlesztés Specifikálás Iteratív fejlesztés Rendszer tesztelés Komponen alapú fejlesztés Specifikálás Fejlesztés Integrálás / tesztelés Költségek hosszú távon 100 400 Fejlesztés Karban tartás Sommerville 25 A szoftver-folyamat tevékenységei Szoftver specifikáció Szoftver tervezés Implementáció Szoftver validálás Szoftver karbantartás 26
Szoftver specifikáció Szolgáltatások meghatározása M"ködési és fejlesztési környezet Követelmény meghatározási folyamat Megvalósíthatósági elemzés Követelmények meghatározása, elemzése Követelmények specifikálása Követelmények validálása 27 Követelmény meghatározás Megvalósíthatósági elemzés Követelmény elemzés Követelmény specifikálás Megvalósíthatósági jelentés Követelmény validálás Rendszer modellek Követelmények Követelmény dokumentáció 28
Szoftver tervezés és implementáció Szoftver tervezés A specifikációt megvalósító szoftver struktúra megtervezése Implementáció A szoftver struktúra futtatható szoftverré alakítása Összefügg!, átfed! tevékenységek 29 Tervezési tevékenységek Architektúrális tervezés Interfész tervezés Komponens tervezés Adatstruktúra tervezés Algoritmus tervezés 30
A tervezési folyamat Követelmény specifikáció Architektúrális tervezés Absztrakt specifikáció Interfész tervezés Komponens tervezés Adatstruktúra tervezés Algoritmus tervezés Rendszer architektúra Szoftver specifikáció Interfész specifikáció Komponens specifikáció Adatstruktúra specifikáció Algoritmus specifikáció 31 Programozás, debuggolás A terv programmá (kóddá) alakítása és a hibák eltávolítása A programozásra általában nincsenek generikus folyamatok A debuggolás a programozás során alkalmazott hiba felderítés és elhárítás 32
Szoftver validálás Verifikáció a szoftver megfelel a specifikációjának Validáció a szoftver megfelel a megrendel! igényeinek Eszközök folyamatok felügyelete a rendszer tesztelése 33 Szoftver tesztelés A szoftverben lév! hibák feltárása Komponens / egység tesztelés Rendszer tesztelés Elfogadási / átvételi teszt Szoftver Specifikáció Összehasonlítás Eredmény Tesztesetek 34
Módszerek, módszertanok Struktúrált megközelítés min!ségi követelmények költséghatékonyság A módszerek elemei: rendszer modell leírások (jelölés) szabályok ajánlások, heurisztikák, minták el!írt folyamatok 35 Szoftver karbantartás A szoftver megváltozatása javítás adaptív változtatás kib!vítés A szoftver projektek jelent!s hányada Követelmények meghatározása Meglév! rendszer értékelése A rendszer megváltoztatása Meglév! rendszer Új rendszer 36
CASE technológia CASE eszközök szoftver folyamat támogatása tevékenységek automatizálása rendszermodellezés (grafikus eszközök) adatszótárak, fejlesztési adattárak kódgenerálás grafikus felhasználói felület konstruálás debuggerek, profilerek, tesztkörnyezetek dokumentálás 37 CASE eszközök CASE eszközök csoportosítása funkcionalitás szerint szoftver-folyamat támogatása szerint integráltság 38
Fejleszt! eszközök Egyszer" eszközök editor, lekérdezés tervez!, stb. Workbenchek szoftver-folyamat egy fázisának támogatása Környezetek integrált eszközök 39 Összefoglalás Szoftver-folyamat: tevékenységek szoftver rendszer létrehozására, karbantartására A szoftver-folyamat elemei: specifikálás, tervezés, implementálás, validálás, karbantartás Szoftver-folyamat modellek: vízesés modell, evolúciós fejlesztés, komponens alapú fejlesztés, spirál modell CASE technológia szoftver-folyamat támogatása 40