Ugrás a fő tartalomra

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

Megjegyzések