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 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
• 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
• 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
-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.
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 ->
– 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.
•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.
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.
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.
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
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.
– 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ó.
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.
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.
– 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.
é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.
– 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 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
– 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
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
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
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.
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.
é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
– 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.
• 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
– 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.
– Strukturális elemek:
— Objektum.
— Osztály.
— Használati eset.
– Megnyilvánulási elemek:
— Művelet végzése.
—- Interakció (üzenetküldés).
—- Állapotautomata.
— Művelet végzése.
—- Interakció (üzenetküldés).
—- Állapotautomata.
– Annotációs elemek:
— Kiegészítés.
— Megjegyzés.
— Megszorítás
— Kiegészítés.
— Megjegyzés.
— Megszorítás
– Csoportos elemek:
— Alrendszer
— Package.
— 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.
— Á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.
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.
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
Megjegyzés küldése