Szoftver fejlesztés mint folyamat

Szoftver fejlesztés folyamat szemlélet kialakításának elindítója az a felismerés, hogy:
• a program termékké vált,
• az előállításához technológiára van szükség.

 

A szoftver termék ebből következik, hogy:
• van szolgáltatási funkciója,
• van minősége,
• van előállítási költsége,
• van előállítási határideje

 

Szoftver fejlesztés célkitűzései:
• előírt minőségű programtermék
• előre megállapított határidőre,
• előre meghatározott költségen történő előállítása.
Szoftverfejlesztés tevékenységei
-Elvárások, követelmények elemzése és specifikáció
-Tervezés
-Implementálás, fejlesztés, kódolás
-Kipróbálás, validálás, tesztelés
-Szoftverevolúció: karbantartás, továbbfejlesztés

 

Szoftverfejlesztés kiegészítő tevékenységek
-Projekt menedzsment
-Verzió kezelés / verzió követés (reelese)
-Erőforrás menedzsment
-Minőségbiztosítás
-Terméktámogatás
-Projekt értékelés, fejlesztési folyamat továbbfejlesztése

 

Szoftverfejlesztési fogalmak:
Cél: az elemzés tárgya.
Korlátozás: ami a megvalósításban határt szab a lehetőségeknek.
Alternatívák: a célok megvalósításának különböző útjai.
Kockázatok: az egyes alternatívák nagy valószínűséggel hibát okozó forrásai.
Kockázat kezelése: stratégia a kockázat hatásának a csökkentésére.
Validáció: a terv előírt célok szerinti teljesülésének ellenőrzése.
Életciklus : Az igény felmerülésétől a termék használatból való kivonásáig (feledésbe merülésig) terjedő időtartam
Az életciklus modellek feladata, hogy segítsenek rendszerezetten átgondolni a folyamat egészét.
A folyamatok egy rendszeren belül történnek, általában egy szervezeten belül és így lényeges szempont e folyamatok egységes (integrált) kezelése.
Az egységes megközelítés akkor is igen fontos (nélkülözhetetlen), ha az adott rendszer egyes elemei kerülnek megtervezésre és kivitelezésre.

 
Szoftverfejlesztés folyamat modellek
-Vízesés
-V modell
-Boehm féle spirál
-Gyors prototípus
-Inkrementális (evolúciós)
-Újrafelhasználás orientált (komponens alapú)
-OMT (Object Modelling Technique)
-RUP (Rational Unified Process)
-Agilis módszerek:
— Agilis
— XP – eXtreme Programming
— SCRUM
— Lean
— MDA – Model Driven Architecture
— MDD – Model Driven Design
— TDD – Test Driven Design
— BDD – Behaviour Driven Design

 

Vízesés modell

A vízesés modellek szemlélete szerint a fejlesztés az egymásra épülő lépések előre pontosan meghatározott sorrendjéből áll.

 

Vízesés modell elemei és egymásutánisága:
– A probléma elemzése, meghatározása, követelmények felmérése ->
– Rendszerjavaslat kidolgozása ->
– Rendszerspecifikáció ->
– Logikai és fizikai tervezés ->
– Implementáció, megvalósítás ->
– Szoftvervalidáció, tesztelés ->
– Rendszerátadás és bevezetés ->
– Üzemeltetés és karbantartás ->

 

 

Vízesés modell elemeinek tartalma
•Követelmények felmérése:
igények, elvárások meghatározása, összefoglalása. Jelen állapot (helyzetfelmérés), probléma, elérendő cél definiálása.

•Rendszerjavaslat:
Alternatívák, szükséges erőforrások, költségek megválaszolása, alapvető lépések a projektterv összeállításához.
A rendszerjavaslat az első olyan dokumentum, amelyet a megrendelő megkap, melyből az eddig végzett munkát megítélheti,
a fejlesztés perspektíváiról képet alkothat.

 

•Rendszerspecifikáció:
rendszertervezőnek szól. Input-output típusok, fájlok definiálása, nagyvonalú rendszerterv (hardver és szoftveres),
adatstruktúra, interfész-definíció. Döntések, azok bemutatása (pl.: vásárolt v. fejlesztett részek), stb.

 

•Logikai és fizikai tervek:
a szoftver és adatbázis. A lépések konkrét definiálása. Megvalósítási terv (idő, erőforrások, ember, pénzügyi források,
hogyan érjük el a célokat) és rendszerterv elkészítése. Architektúra, hálózati topológia, funkcióspec., navigációs és oldal desing-ek,
adatterv – DB diagram, osztálydiagrammok.

•Implementáció = megvalósítás

•Szoftvervalidáció = tesztelés

•Rendszerátadás (élesbe helyezés -> online)

•Üzemeltetés, karbantartás -> visszamutat a korábbi állapotokra.

 
Rendszerterv típusok
– Logikai rendszerterv:
a felmerült probléma megoldására kidolgozott működési-, szervezeti-, adat- és folyamatmodell,
mely többféle eszközkörnyezetben megvalósítható módon, logikai szinten van megfogalmazva.
— A rendszer működési logikájának tervezése
— Folyamatok (funkciók) tervezése
— Adattervezés
— Felhasználói interfészek tervezése

– Fizikai rendszerverv:
egy logikai rendszerterv alapján több fizikai is készíthető más-más hardver/szoftver környezetre is tervezhető,
megvalósítható. Ez már egy konkrét eszközbázisra, adott környezetre épül.
— Adatterv
— Rendszerspecifikációk (fejlesztési, futtatási környezet)
— Szoftverarchitektúra (rétegek)
— A rendszer működésének elve
— Programspecifikációk – funkciótervek
— I/O tervek, rendszer interfészek
— Biztonsági terv
— SLA

 

Vízesés modell szabály rendszere jellemzői
– A következő fázis addig nem indulhat el, amíg az előző be nem fejeződött.
Ez a modell akkor működik jól, ha a követelmények teljesen ismertek.

 

– Előny: Jól menedzselhető és ellenőrizhető. Minden fázisban jól definiált feladatok.
Minden fázis jól dokumentálható. Előre jól definiálható követelmények esetén jól alkalmazható.

 

– Hátrány:
Nagyon sok probléma csak az utolsó fázisban derül ki, így a javítás nagyon költséges.
Korán kell jelentős döntéseket hozni, ez hibás döntésekhez vezethet.
Nehéz a rendszert a fejlesztés közben változó követelményekhez igazítani.
Sok dokumentációs munkát igényel.

 

V modell jellemzői

– Egy módosított vízesés modell.
– Megkülönbözteti a fejlesztésen belül a konstrukciós és a tesztelési fázisokat.
– Definiálja a tesztelés szintjeit.
– Szemlélteti, hogy a tesztelési munka végigköveti a teljes fejlesztési folyamatot.
– Összefüggést tételez fel az egyes konstrukciós fázisok és az egyes tesztelési szintek között.

 

 

(Boehm féle) Spirál modell elve

A spirál modellek szemlélete szerint a fejlesztés iteratív, újra és újra visszatér ugyanazokhoz a lépésekhez,
és folyamatosan csiszolja a terveket, prototípusokat egészen addig, míg el nem ér egy, az igényeket maximálisan kielégítő termékhez.
Prototípusok :
A prototípusok fő jellemzője, hogy a tervbe vett rendszer főbb tulajdonságait viszonylag gyorsan bemutatják (még az előtervezési szakaszban),
ami lehetővé teszi megoldási módok vizsgálatát, vagy a feladat megoldhatóságának bemutatását, és természetesen lehetővé teszi a továbbfejlesztést a teljes rendszer kialakulásáig.
A spirál modell ciklikusan ismétli a fejlesztési fázisokat.
A spirál minden ága ugyanazon fejlesztési fázisokat tartalmazza,
de a korábbi spirálágban elkészült változatot fokozatosan továbbfejleszti egységes szempontok alapján.

Alapelvek a spirál modell alkalmazása esetén:
– Egy munkafolyamat a célok megértésével kezdődik, amelyek kockázatot is tartalmaznak.
– Az alternatív megoldások kiértékelése alapján azokat az eszközöket használjuk, melyek leginkább csökkentik a kockázatot.
– Minden érdekelt személyt vonjunk bele az áttekintés készítésébe, ugyanis ebben határozzuk meg a következő ciklus terveit és tevékenységeit.
– A fejlesztés minden szakaszban inkrementálisan folytatódhat.

 
Spirál modell jellezői
– Előny:
a kockázati tényezőkkel explicite számol. A spirális modellben nincsenek rögzített fázisok,
és felölelhet más folyamatmodelleket is (vízesés, evolúciós, stb.).

– Hátrányai: a modell alkalmazása bonyolult, munkaigényes feladat;
a párhuzamos foglalkoztatás csak a 3. szektorban lehetséges.

A spirál modell arra helyezi a legnagyobb súlyt, hogy folyamatosan ellenőrizze, korrigálja az előrehaladást, hogy a folyamat végén létrejövő termék biztosan megfeleljen az igényeknek.

 

Program fejlesztési módszerek és eszközök:

CASE (Computer-Aided Software Engineering) fejlesztői eszközök jellemzői
– Követelményspecifikáció:
grafikus rendszermodellek, üzleti és domain

– Elemzés/tervezés során:
adatszótár kezelése, mely a tervben található egyedekről és kapcsolataikról tartalmaz információt;
felhasználói interfész generálását egy grafikus interfész-leírásból, melyet a felhasználóval együtt készíthetünk el.;
a terv ellentmondás mentesség vizsgálata

– Implementáció során:
automatikus kódgenerálás (Computer Aided Programming – CAP);verziókezelés

– Szoftvervalidáció során:
automatikus teszt-eset generálás, teszt-kiértékelés, -dokumentálás

– Szoftverevolúció során:
forráskód visszafejtés (reverse engineering); régebbi verziójú programnyelvek automatikus újrafordítása újabb verzióba.

– Automatikus dokumentumgenerálás;

– Projektmenedzsment támogatás (ütemezés, határidők figyelése, erőforrás-tervezés, költéség- és kapacitásszámítás, stb. )

A CASE-eszközök korai pártolói azt jósolták, hogy a szoftverek minőségében
és a termelékenységben nagyságrendi javulást okoznak ezek az eszközök,
de valójában csak 40% körüli a javulás.

 

Szoftverfejlesztési specifikáció 4 jellemző leírási, jelölési módszere
– Forgatókönyv, szkenáriók leírása jellemzően mondatos, vagy egyszerű táblázatos leírás: megrendelők számára jól érthető
– Részletes, felsorolás-szerű leírás
– Formális követelmény-leírás pl.: UML használati eset diagrammok segítségével, stb.
– Formális specifikáció: „matematikai képletekkel” leírt specifikáció – a weben nem nagyon használt

Az UML (Unified Modeling Language) egy grafikus nyelv, amelyben lehetőségünk van a probléma
• specifikációjára,
• megoldására,
• a megoldás dokumentálására.

 

 

Egy UML leírás :
– elemekből (tárgy, ügy),
– relációkból,
– diagramokból
áll

Az UML elemek lehetnek :
– Strukturális elemek:
— Objektum.
— Osztály.
— Használati eset.

– Megnyilvánulási elemek:
— Művelet végzése.
—- Interakció (üzenetküldés).
—- Állapotautomata.

– Annotációs elemek:
— Kiegészítés.
— Megjegyzés.
— Megszorítás

– Csoportos elemek:
— Alrendszer
— Package.

 

 
UML diagramjai lehetnek:
– Statikus szempont szerint:
— Osztálydiagram (Class): a rendszer objektumelvű szerkeze
tének leírása.
— Objektumdiagram (Object): az osztálydiagram egy példá
nyát mutatja be.

– Dinamikus szempont szerint:
— Állapotdiagram (Statechart): azt mutatja meg, hogy a rendszer
milyen állapotokon keresztül, milyen állapotátmenetekkel
oldja meg a feladatot.
—- Szekvenciadiagram (Sequence): az objektumok közötti üzenetváltások
időbeli menetét szemlélteti.

 

 

Szoftver fejlesztéshez kapcsolódó adatbázis tervezés lépései
1.Cél meghatározás, a feladat:
Meghatározzuk a tárolandó adatok körét, az adatbázis használatának módját, az elvégzendő részfeladatokat.

2.Logikai (koncepcionális) adatmodell készítése

3.Fizikai adatmodell készítése

4.Táblák meghatározása:
Az összegyűjtött információkat témakörökre, táblákra bontjuk (normalizálás).
Kerülni kell a többszörös adatbevitelt, de minden szükséges adatot tárolni kell.

5.A táblák mezőinek meghatározása, funkcionális függőségek megállapítása

6.Kapcsolatok felállítása a táblák között

7.Teszt változat elkészítése, a terv finomítása

8.Üzembehelyezés

9.Karbantartás

 

 

A bejegyzés kategóriája: Informatika, Oktatás
Kiemelt szavak: , .
Közvetlen link.