A szoftver-folyamat Szoftver életciklus modellek
Szoftver-technológia I.
Szoftver-technológia I.
Irodalom
• Ian Sommerville: Software
Engineering, 7th e. chapter 4.
• Roger S. Pressman: Software
Engineering, 5th e. chapter 2.
2
Szoftver-technológia I.
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
Szoftver-technológia I.
•
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 2 Módszer 1 Eszköz 1
Eszköz 2
Eszköz 3
4
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Á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-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
9
Vízesés modell Követelmények meghatározása
Rendszer- és szoftvertervezés
Implementáció és egységtesztelés
Integráció és rendszertesztelés
M!ködtetés és karbantartás
10
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Evolúciós fejlesztés (folyt.) Specifikálás
Körvonalazott követelmények
Fejlesztés
Kiindulási verzió
Átmeneti verziók
Validálás
Konkurrens tevékenységek
Végs! verzió
13
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Komponens alapú szoftverfejlesztés (folyt.)
Követelmények specifikálása
Komponens alkalmassági értékelése
Komponensek elemzése
Követelmény módosítás
Rendszertervezés
Fejlesztés, komponens integrálás
Komponens adaptálása
Validálás white box gray box black box
16
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Inkrementális fejlesztés (folyt.) Követelmények inkrementumokhoz rendelése
Követelmények meghatározása
Inkrementum fejlesztése
Inkrementum validálása
Inkrementum integrálása
Rendszer validálása
Végs! rendszer
nem teljes rendszer
19
Szoftver-technológia I.
Kovetelmény meghatározás
Kovetelmény meghatározás
Inkrementális fejlesztés (folyt.)
Tervezés
Implementálás
Tervezés
Implementálás
Kovetelmény meghatározás
Tervezés
Tesztelés
Tesztelés
Implementálás
1. inkrementum
2. inkrementum
Tesztelés
3. inkrementum
id!
20
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Spirál fejlesztési modell (folyt.)
Célok, alternatívák meghatározása
Kockázat elemzés Kockázat elemzés
Alternatívák értékelése, kockázat elemzése
Kockázat elemzés
Proto 4 Proto 3 Proto 2
Proto 1 Bench mark Követelmény elemzési Koncepció terv kialakítása Követelmények Termék Részletes Követelmények terv terv Fejlesztési validálása terv Kódolás Integrálási, tesztelési terv Következ! fázis tervezése
Terv V&V Integr. Validálás teszt
Egység teszt Fejlesztés, verifikáció
23
Szoftver-technológia I.
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
Szoftver-technológia I.
Szoftverfejlesztés költségei Vízesés modell 0
25
Specifikálás
50
Tervezés
75
Fejlesztés
100
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
Fejlesztés
400
Karban tartás
Sommerville
25
Szoftver-technológia I.
A szoftver-folyamat tevékenységei
• Szoftver specifikáció • Szoftver tervezés • Implementáció • Szoftver validálás • Szoftver karbantartás 26
Szoftver-technológia I.
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
Szoftver-technológia I.
Követelmény meghatározás
Megvalósíthatósági elemzés
Követelmény elemzés Követelmény specifikálás Követelmény validálás
Megvalósíthatósági jelentés
Rendszer modellek
Követelmények
Követelmény dokumentáció
28
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
• 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-technológia I.
• • • •
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