Folyamatmodellek¶
A szoftverfejlesztési életciklus modelljeinek célja fejlesztési folyamat modellezése. A folyamatmodellek lényegében reprezentálják
-
a megvalósítás kontrollját
-
a meghatározza a fejlesztés lépéseit, azok közötti kapcsolatot
-
a feladatok ütemezését
-
illetve, hogy hogyan kell végezni az egyes feladatokat
Az évek során több különböző modell fejlődött ki, ezek a modellek más-más nézőpontból reprezentálják a folyamatot. Összetettebb rendszereknél akár több modell egyidejű alkalmazása is előfordulhat. Így tehát a tervezés fontos része a megfelelő folyamatmodell kiválasztása.
Vízesés modell¶
-
A fejlesztésben felmerülő tevékenységeket jól elválasztható lépésekre határolhatóak
-
Feladatok rögzített sorrendje (specifikáció, tervezés, implementáció, tesztelés, kitelepítés, karbantartás)
-
Minden fázist be kell fejezni, mielőtt továbblépnénk, nincs visszalépés
-
Nem flexibilis, nincs visszacsatolás
-
Akkor lehet jó, ha már előre ismerjük a követelményeket, melyeket részletes és pontos specifikáció követ
-
Bár a vízesés modell lineáris, néhány változatában megengedett a visszalépés is, de ez nem könnyen kivitelezhető.
V modell¶
-
A vízesés modell kiterjesztése
-
bemutatja a kapcsolatokat a fejlesztési életciklus egyes fázisai és hozzá kapcsolódó tesztelési fázisok között
-
Az egyik szára: vízesés modell (fejlesztési szár)
-
A másik szára a létrejövő termékek tesztjeit tartalmazza (tesztelési szár)
-
Az egy szinten lévő fejlesztési és tesztelési lépések összetartoznak
-
A tesztelési lépés a fejlesztési lépés során létrejött terméket (vagy annak komponenseit) és dokumentumait használja
-
A V modell erőteljesen támaszkodik a korai tesztelési tervezésre
Iteratív és inkrementális modell¶
-
Szoftverfolyamatot ne lineárisan, hanem tevékenységek ismétlődő folyamaként nézzük
-
Iterációkként átdolgozzuk a rendszert
-
Köztes megközelítés a vízesésmodell és az evolúciós modell között
-
Vázlatos követelményrendszer
-
Osztályozzuk a szolgáltatásokat fontosság szerint
-
A fontosakat elkezdjük megvalósítani
-
Rövid fejlesztési ciklusok
-
Gyors, egyre bővülő prototípusok készítése
-
Gyorsan változó, vagy nem teljes specifikáció esetére
-
Flexibilis, a megrendelő nem csak a végén látja a terméket
Evolúciós modell¶
-
A projektcsapat kifejleszt egy kezdeti implementációt
-
Ezt véleményezteti a felhasználókkal
-
Majd verziókon keresztül addig finomítják, amíg a megfelelő rendszert el nem érik
-
A specifikáció, fejlesztés, validálás párhuzamos tevékenységek
-
Gyors visszacsatolás
-
az iteratív és az inkrementális modell kombinációja
Komponens alapú modell¶
-
Újrafelhasználható komponensek fejlesztése
-
Akár a szoftverpiacon megvásárolható szoftverkomponensekre is támaszkodik
-
Komponenselemzés: követelményspecifikációnak megfelelő komponensek megkeresése (lehetséges, hogy egy komponens nem fed le mindent)
-
Követelménymódosítás: a komponenselemzés eredményét felhasználva szükséges lehet a komponensek módosítása
-
Rendszertervezés újrafelhasználással: a több (különböző forrásból származó) komponenseknek megfelelő szerkezet kialakítása
-
Fejlesztés és integráció: szükség esetén saját komponens fejlesztésére is szükség lehet
-
-
Hátránya, hogy a követelményeknél elkerülhetetlenek a kompromisszumok
RAD modell¶
-
gyors alkalmazásfejlesztés
-
a prototípus és az inkrementális modellre épít
-
párhuzamos fejlesztés több csapat segítségével
-
Kompromisszumokkal jár a használhatóság és sebesség terén
-
megköveteli a magasan képzett munkaerőt
Spirális modell¶
-
Szintén ismétlődő tevékenységek alkotják
-
Nem tevékenységek és visszalépések sorozata, inkább spirál
-
A spirál minden egyes körben a szoftverfolyamat egy-egy fázisát reprezentálja
-
Tetszőleges számú kör, mint iteráció tehető meg
-
Kockázatelemzések, teljesítményértékelések is a része
-
A spirál szektorai
-
Célkitűzések megállapítása
-
Alternatívák értékelése, kockázatbecslés
-
Következő fázis tervezése
-
Fejlesztés és verifikáció
-
Agilis módszertan¶
-
Extrém iteratív modell
-
Több Agilis módszertan is létezik, pl. Scrum, Kanban, Extreme Programming
-
Emberközpontú, gyakori kommunikáció a megrendelővel
-
Gyakori szoftververziók kibocsátása
-
Az Agilis Kiáltvány
-
Egyének és interakcióik, szemben az eljárásokkal és eszközökkel
-
Működő szoftver, szemben a teljes körű dokumentációval
-
Együttműködés a megrendelővel, szemben a szerződésről való alkudozással
-
Változásokra való reagálás, szemben a terv követésével
-
Scrum¶
-
Rövid napi megbeszélések
-
Könnyen idomul a megrendelő igényeinek változásához
-
Product owner, Team, Scrum master
-
„Sprint” fejlesztés (1-4 hét)
-
A csapat egy működő terméket (szoftvert vagy más eredményt) hoz létre
-
Rövid periódusokban a kockázatok is könnyebben kezelhetőek
Kapcsolódó linkek¶
-
https://www.visual-paradigm.com/guide/software-development-process/what-is-a-software-process-model/