IR-fejlesztese

Download Report

Transcript IR-fejlesztese

Gyurkó György
A fejlesztési folyamat az ISO 12207 szerint
Fejlesztési folyamat kialakítása,
elemzés, tervezés
Kivitelezés, tesztelés, bevezetés
Projekt
Folyamatkialakítás
A szoftver átvételi
támogatása
A szoftver telepítése
Rendszer
A rendszerkövetelmények
elemzése
A rendszer minőségi
tesztelése
A rendszer nagyvonalú
tervezése
A rendszer
integrálása
Szoftver
A szoftverkövetelmények
elemzése
A szoftver nagyvonalú
tervezése
A szoftver részletes
tervezése
A szoftver minőségi
tesztelése
A szoftver integrálása
A szoftver kódolása,
tesztelése
Az IR fejlesztésének főbb tevékenységei
Ezek minden életciklus-modellben megjelennek:
• Elemzés
• Tervezés
• Megvalósítás, tesztelés, integráció
• Bevezetés
Vízesés modell
Előrehaladás
Elemzés
Visszacsatolás
Tervezés
Kivitelezés és
Klasszikus
egységteszt
változatban ez a
felépítés a fejlesztési
Integráció és
rendszerteszt
projekt egészére vonatkozik.
Működtetés és
karbantartás
Vízesés modell / 2
• Előnyei:
- Világos struktúra.
- A projekt egyszerűen ütemezhető, irányítható.
• Hátrányai:
- Csak a szakaszok végén van visszacsatolás.
- Feltételezi, hogy a követelmények pontosan
ismertek és nem változnak.
- Hosszú a fejlesztési idő.
V modell
Ez lényegében a vízesés modell egy speciális változata
Rendszer elemzése,
nagyvonalú tervezése
Rendszer integrálása,
minõségi tesztelése
Szoftver minõségi
tesztelése
Szoftver elemzése
Szoftver nagyvonalú
tervezése
Szoftver részletes
tervezése
Szoftver integrálása
Szoftver kódolása,
tesztelése
Idõbeli elõrehaladás
Megfelelés terveknek, követelményeknek
V-modell / 2
Előnyei / hátrányai:
- Többnyire azonosak az egyszerű vízesés
modellével.
- Az egyszerű vízesés modellnél világosabb
képet ad arról, hogy adott tevékenység és
annak terméke mely korábbi tevékenység
termékének kell megfeleljen.
Egyszerű prototípuson alapuló életciklus-modell
 A felhasználó-vezérelt módszertanok sajátja.
 Akkor különösen hasznos lehet, ha bizonytalanok a
felhasználói elvárások.
 A szoftver egyszerű prototípusa a gépek, műszaki
berendezések prototípusával ellentétben nem a tervet,
hanem a követelményeket teszteli.
 A prototípus nem a teljes szoftver egy működő példánya,
hanem általában a szoftvernek csak az a része, amit a
felhasználó látni fog (a felhasználói felület: menük,
képernyő-űrlapok, a dialógus).
 Gyors alkalmazásfejlesztő (RAD) eszközt igényel.
Egyszerű prototípuson alapuló életciklus-modell / 2
 A modell előnyei: Gyorsan elkészülnek az ember-gép kommunikációval kapcsolatos funkciók; idejében kiderülnek a félreértések,
pontosabbak lesznek a követelmények, csökken a kockázat. A
fejlesztő és a felhasználó személyesen együttműködik, mindketten
elkötelezetté válnak a közösen meghatározott célok iránt.
 A modell hátrányai: Újabbnál újabb igények támasztására ad
ötletet, ezért az igények parttalan szaporodásának erélyesen gátat
kell szabni a rendszer határainak megvonásával. Inkább csak az
ember-gép párbeszédre vonatkozó követelmények tisztázódnak.
Nem derülnek ki azok a belső összefüggések, amelyek nincsenek
közvetlen kapcsolatban a felhasználói felületen megjelenő
tartalommal. Gyorsaság -> átgondolatlan rendszer. Ki nem derített
összefüggések: -> hézagos rendszer.
Iteratív fejlesztés / 1
Iteráció: Azonos tevékenység vagy tevékenységsor ismételt
végrehajtása.
Iteratív fejlesztés: Minden iteráció újabb minőséget ad az előző
végrehajtás termékéhez. - Az iterációkat határozott célkitűzés,
átfogó projektterv előzi meg.
Nem önálló modell, hanem egy olyan, a célt fokozatosan
közelítő megoldás, amelyet klasszikus életciklus-modellekkel
kombinálva új életciklus-modellt kapunk.
Iteratív fejlesztésen alapuló nevezetes modellek:
• az inkrementális modell
• a spirálmodell
Iteratív fejlesztés / 2
Az iteratív fejlesztés motivációi:
• kezelni, hogy kezdetben nem lehet ismert minden követelmény;
• számolni az ismert követelmények megváltozásával;
• különlegesen nagy kockázatú projekteket is kezelhetővé tenni (lásd
spirálmodell);
• minél korábban szülessen egy működő, átadott verzió (lásd
inkrementális modell);
• az előző iterációk során szerzett tapasztalatok felhasználásával a
módszerek, a termékminőség folyamatos javítása (inkrementális
modell);
• megbízhatóbb termék (inkrementális modell: előbbi
következménye; spirálmodell: kifejezetten a minőségi kockázatok
csökkentését célzó prototípusok).
1.rész
Elemzõ team
Elemzés
Tervezõ team
2.rész
Tervezés
Elemzés
Kivitelezõ és
integrációs team
3.rész
Kivitelezés
Inkrementális
modell átlapolással
Tervezés
Elemzés
Kivitelezés
Tervezés
Kivitelezés
Müködtetés
Követelmények
meghatározása
Iteratív és inkrementális
modell
Követelmények
inkrementumokhoz
rendelése
Inkrementum
fejlesztése
Inkrementum
validálása
Inkrementum
integrálása
nem teljes rendszer
Rendszer
validálása
Teljes
rendszer
Inkrementális fejlesztés
 A modell előnyei: Rövidebb időn belül állnak elő
működő részek, így mindenképpen csökkenek a
hosszú átfutási időből eredő kockázatok. Bizonytalan
esetben is járható utat ad az igények fokozatos
közelítésével.
 A modell hátrányai: A teljes rendszer lassan készül el.
A soklépéses folyamat és a párhuzamos
tevékenységek irányítása nehéz feladat. A már
működő részeket és a későbbi lépések eredményeit
újra és újra integrálni kell.
Boehm-féle spirálmodell
Iteratív, de nem inkrementális modell
Boehm-féle spirálmodell / 2
 A modell előnyei: Különösen nagy kockázatú
projektek (pl. életveszély) esetén tehet jó szolgálatot.
Minimálisra csökken a kockázat, kezelhetővé válik a
felhasználó és/vagy a fejlesztő bizonytalansága.
 A modell hátrányai: Nagyon hosszú idő telik el a
megvalósítás (kivitelezés) megkezdéséig.
RUP életciklus-modell
Ellenőrzötten inkrementális és iteratív modell
RUP életciklus-modell / 2
 Jellemzők rá az iteratív és inkrementális modellek
előnyei.
 A korábbi iteratív és inkrementális modellekhez
képest a hátrányok itt kevésbé jelentkeznek, mivel a
modell egyaránt figyelembe veszi mind a
menedzsment, mind a fejlesztői szakma (a
technológia) szempontjait.
 Kifejezetten az OO technológiát feltételezve jött létre.
További életciklus-modellek
• A felhasználó és a fejlesztő közötti jobb megértést, a
követelmények pontosabb meghatározását, valamint a
fejlesztés gyorsítását szolgálja még az egyszerű prototípusmodellnek az evolúciós fejlesztés nevű változata is.
• A követelmények megváltozásával szemben különösen
toleráns modellek az agilis módszertanok - extrém
programozás.
• A ráfordítások – megvásárolható kész komponensek
beépítésével való – csökkentő modell a komponens alapú
fejlesztés.