5.48k likes | 5.7k Views
UML-alapú fejlesztés. Software Engineering – szoftverfejlesztési folyamat. Software Engineering értelmezése Az a folyamat, mely eredményekénk létrehozunk egy adott feladatot megvalósító szoftver rendszert. Tevékenységek, technológia, módszerek, eszközök…
E N D
Software Engineering – szoftverfejlesztési folyamat • Software Engineering értelmezése • Az a folyamat, mely eredményekénk létrehozunk egy adott feladatot megvalósító szoftver rendszert. • Tevékenységek, technológia, módszerek, eszközök… • Számítógép alapú rendszert hozunk létre.
Szoftverfejlesztési folyamat • Rendszerfejlesztési folyamat („rendszer”…) • System Engineering • Általános értelemben vett rendszer fejlesztés. • Szoftverfejlesztési folyamat (szoftver…) • Software Engineering • Szoftver alkalmazásokat, eszközöket ad a SE által definiált feladatok megoldására. • A szoftver rendszer (alkalmazás) létrehozására koncentrál.
Rendszerfejlesztés • Rendszerfejlesztés alapkérdései • Általános értelemben vett rendszer fejlesztés • Rendszerfejlesztés lehet: • Business Process Engineeringha vállalat (működésének) (át)szervezésével foglalkozunk • Product Engineeringha egy termék előállítása a célpl.: mobil telefon, repülőgép vezérlő rsz. • Szoftverfejlesztési folyamat
Szoftverfejlesztési folyamat • Szoftverfejlesztés értelmezése • Az a folyamat, amelynek eredményekénk létrehozunk egy adott feladatot megvalósító szoftverrendszert, számítógép alapú rendszert hozunk létre. • Szoftverfejlesztés lépései • Fázisok • Szoftverfejlesztési modellek, módszertanok: • struktúrált (vízesés modell, Boehm-féle spirálmodell, V modell stb.) • objektumorientált (OMT, OOA/OOD, Bocch2, RUP)
A fejlesztés életciklusa • System engineering – Rendszerfejlesztés • Business process eng. – Üzleti modellezés • üzleti folyamatok tervezése, szervezése • az üzleti környezet modellezése • Product eng. – Termék modellezés • termékek tervezés • termék modellezése, annak használata • Requirements – Követelménykezelés • Analysis – Elemzés • Design – Tervezés • Implementation – Implementáció • Testing – Tesztelés, Telepítés • Karbantartás, Rendszerkövetés, Továbbfejl. Rendszerfejlesztés – System Eng. Software eng.
Módszertan Modellező nyelv Eljárások Módszertan
Eljárások • Tanácsok: milyen lépések szükségesek a rendszer elkészítése során és azokat milyen sorrendben kell végrehajtani. • Az egyes lépéseket milyen szerepkört betöltő embereknek kell elvégezni. • Milyen termékek születnek az egyes lépések során és hol kerülnek felhasználásra.
Szerepkörök és tevékenységek • A szerepkör (worker) egyfajta viselkedést ír le. A szerepkört betöltő személy vagy személyek felelősek meghatározott termékek (artifact) előállításáért. • Minden munkatárs meghatározott tevékenység-sort végez a termékek előállítása érdekében. • Minden valóságos személy többféle munkatársi szerepkört is betölthet a projekt folyamán, többféle felelősségelehet.
Szerepkörök és tevékenységek a RUP-ban Munkafolyamat részletek Megadja, hogy az adott feladat során milyen lépéseket kell végrehajtani, ki a felelős az adott feladat végrehajtásáért és milyen termékeket kell a lépések során előállítani.
Termékek (Artifact) • A projekt során előállított, használt dolgok. Például: • Dokumentum • Modell (pl.: használati eset modell) • Modell-elem (pl.: használati eset) • Riportok: modellekből, modell-elemekből előállított dokumentumok. • A termékek tevékenységek során állnak elő, és útmutatók (guideline), sablonok (template) segítik a készítésüket: • Pl.: hogyan találjuk meg és dokumentáljuk a használati eseteket? • Nem termékhez kapcsolódó útmutatók: például hogyan szervezzünk workshopot.
Modellező nyelv • Jelölésrendszer (általában grafikus), amellyel leírjuk a rendszert, rendszertervet a fejlesztés során. • A kommunikáció alapja: • megrendelő és fejlesztő csoport között, • fejlesztő csoport tagjai között. • Fontos, hogy a modellező nyelv alkalmas legyen mind a valóság, mind rendszer belső szerkezetének ábrázolására: • üzleti modelltől, telepítési modellig.
Rational Unified Process • Szoftverfejlesztési módszertan, közvetlen elődje az Objectory (Jacobson). • Booch, Rumbaugh és Jacobson munkájának eredménye. • Világszerte elterjedt fejlesztési módszertan. • Nagyon sok előző módszertanból merít és mindazt egyesíti („nem spanyol viasz”). • NAGY fejlesztési módszertan testre kell szabni. • A módszertan, ill. a hozzá fejlesztett eszközök a teljes fejlesztési ciklust támogatják: • üzleti modellezés, követelmények elemzése, elemzés, tervezés, tesztelés, stb.
A RUP szerkezete idő (mikor, milyen sorrendben?) tartalom (mit kell végrehajtani?)
RUP módszertan • A Rational Unified Process egy UML-t, mint modellező nyelvet használó szoftver fejlesztési módszertan: • UML modellező nyelv jelölésrendszerét használja. • Eljárásaiban megadja, hogy milyen lépéseket kell végrehajtani, milyen sorrendben. • A feladatok elvégzéséért ki a felelős. • Milyen termékeket kell előállítani a feladat végrehajtása során. + • Eszközökkel támogatja a fejlesztés egyes szakaszait. • Tool-mentorok segítik az eszközök használatát. • Sablonokat, útmutatókat ad az egyes feladatokhoz.
Az UML modellező nyelv • Unified Modelling Language - Egységes Modellező Nyelv • Objektumorientált elemzés, tervezés és üzleti modellezés eszköze: • Az üzleti modellezés esetén a valóság folyamatait írja le. • Analízis (elemzés) során a megoldandó feladat leírása. • Tervezés során a megoldást (implementálandó rendszert) írja le. • Szabványos (Object Management Group - OMG) • 1997. november óta • Alapvetően grafikus nyelv. • Modellező nyelv, nem módszertan.
UML diagramok • Use Case (használati eset) diagram • Tevékenységi/Aktivitási (Activity) diagram • Eseménykövetési/Szekvencia (Sequence) diagram • Együttműködési/Kollaborációs (Collaboration) diagram • Osztály (Class) diagram • Objektum (Object) diagram • Állapot-átmeneti (Statechart) diagram • Komponens (Component) diagram • Telepítési (Deployment) diagram
A RUP szerkezete idő (mikor, milyen sorrendben?) tartalom (mit kell végrehajtani?)
A RUP munkafolyamatai • Üzleti modellezés • Követelmény-elemzés • Elemzés-tervezés • Implementáció • Tesztelés • Telepítés • Konfiguráció és változás-kezelés • Projektvezetés • Környezet kialakítása Mérnöki munkafolyamatok Támogató munkafo-lyamatok
Mérnöki munkafolyamatok A fejlesztési munka konkrét feladatai: • Üzleti modellezés (Business Modeling) • Cél megérteni annak a szervezetnek a felépítését, folyamatait, amely támogatására az alkalmazást fejlesztjük. • Követelmény-elemzés (Requirements) • Cél meghatározni azokat a feladatokat, amelyeket a rendszernek meg kell oldani (scope) és a megrendelőkkel együttműködve egy egységes képet kell kialakítani a fejlesztendő rendszerről. • Elemzés-tervezés (Analysis & design) • Cél a követelményelemzés során meghatározott elvárásoknak megfelelő, robosztus rendszer tervezése.
Mérnöki munkafolyamatok • Implementáció (Implementation) • Cél a terv alapján a rendszert alkotó komponensek implementálása, egységtesztjeinek elvégzése és integrálása. • Tesztelés (Test) • Cél annak ellenőrzése, hogy az implementált rendszer megfelel-e az elvárásoknak, és hogy valamennyi követelmény implementálva lett-e. • Telepítés (Deployment) • Cél a kész alkalmazást elérhetővé tenni a felhasználó számára.
Támogató munkafolyamatok Azok a feladatok, amelyek a fejlesztés során folyamatosan segítik a fejlesztők munkáját: • Konfiguráció és változás-kezelés • Cél a fejlesztés során előálló termékek verzióinak kezelése. • Projektvezetés • Cél irányelvek megadása és a projekt ellenőrzésével és irányításával kapcsolatos feladatok elvégzése. • Környezet kialakítása • Cél a szoftverfejlesztési környezet (módszertan, eszközök) kialakításával kapcsolatos feladatok ellátása.
RUP szerkezete Munkafolyamatok A munkafolyamatot egy „folyamatábra (activity) segítségével mutatja be. Ez segít a feladat típusa, és a fejlesztés aktuális fázisa szerint meghatározni a további feladatokat.
RUP szerkezete Munkafolyamat részletek Megadja, hogy az adott feladat során milyen lépéseket kell végrehajtani, ki a felelős az adott feladat végrehajtásáért és milyen termékeket kell a lépések során előállítani.
Szerepkörök és tevékenységek • A szerepkör (worker) egyfajta viselkedést ír le. A szerepkört betöltő személy vagy személyek felelősek meghatározott termékek (artifact) előállításáért. • Minden munkatárs meghatározott tevékenység-sort végez a termékek előállítása érdekében. • Minden valóságos személy többféle munkatársi szerepkört is betölthet a projekt folyamán, többféle felelősségelehet.
Termékek (Artifact) • A projekt során előállított, használt dolgok. Például: • Dokumentum • Modell (pl.: használati eset modell) • Modell-elem (pl.: használati eset) • Riportok: modellekből, modell-elemekből előállított dokumentumok. • A termékek tevékenységek során állnak elő, és útmutatók (guideline), sablonok (template) segítik a készítésüket: • Pl.: hogyan találjuk meg és dokumentáljuk a használati eseteket? • Nem termékhez kapcsolódó útmutatók: például hogyan szervezzünk workshopot.
Fázisok • A Rational Unified Process a szoftverfejlesztés életciklusát négy egymást követő fázisra bontja: • Előkészítés (Inception, Kiindulás, Elindulás). • Kidolgozás (Elaboration). • Megvalósítás (Construction). • Átadás (Transition).
Előkészítés fázis • A rendszer határainak meghúzása • Az üzleti lehetőségek tervezése és előkészítése • Egy lehetséges architektúra meghatározása • A projekt során alkalmazott fejlesztési környezet előkészítése • Mérföldkő:A követelmények rögzítése
Kidolgozás fázis • Az architektúra meghatározása és alkalmazhatóságának igazolása • A Projekt Vízió finomítása • A megvalósítás fázis részletes iterációs tervének elkészítése • A fejlesztési folyamatok finomítása és a fejlesztési környezet kialakítása a megvalósítási feladatok támogatására • Az architektúra finomítása és újrafelhasználható komponensek kiválasztása • Mérföldkő: Szoftver architektúra rögzítése
Megvalósítás fázis • Erőforrás kezelés, ellenőrzés és optimalizálás • Teljes komponens fejlesztés és tesztelés az elfogadási kritériumok alapján • A termék verziójának értékelése az átvételi kritériumok alapján • Mérföldkő: Kibocsátás béta tesztelésre
Átadás fázis • A telepítési terv végrehajtása • A végfelhasználókat támogató anyagok elkészítése • Az átadott szoftver tesztelése a felhasználó telephelyén • A termék verziójának elkészítése • A felhasználók visszajelzéseinek összegyűjtése • A visszajelzések alapján a rendszer végső beállításainak elvégzése • A rendszert elérhetővé tenni a felhasználók számára • Mérföldkő: Termék kibocsátása
A RUP szerkezete • Egy-egy fázis elkészítése minden munkafolyamatot érint, amelyek a különböző fázisokban különböző intenzitásúak, és erőforrás-igényűek. • Más megközelítésben: • A fázisok iterációkra bonthatók. • Minden egyes iteráció egy mini fejlesztés: kezdődik üzleti modellezéssel, követelményelemzés, elemzés, tervezés, implementáció, tesztelés, befejeződik telepítéssel.
Fázisok • Minden fázis végén jól-definiált mérföldkövek vannak: kritikus döntéseket kell hozni: • Értékelni az eddigi eredményeket, • Dönteni a folytatásról.
Iterációk • A RUP szerint a fejlesztés egyes fázisai tovább bonthatóak iterációkra. • Az iteráció egy olyan fejlesztési ciklus, amely során minden alapvető munkafolyamatot egyszer elvégzünk. Vízesés Iteratív - “sok kis vízesés”
Iterációk Az iterációk során egyre több termék áll elő, és a termékek érettsége egyre nő.
Fázisok és iterációk Az aktuális feladat dönti el, hogy hány iterációra van szükség a feladat elvégzéséhez. Az iterációk tervezése kritikus feladat a projekt tervezése során.
A RUP szerkezete idő (mikor, milyen sorrendben?) tartalom (mit kell végrehajtani?)
Üzleti modellezés Megérteni annak a szervezetnek a felépítését, viselkedését, amely számára a rendszert ki akarjuk fejleszteni Feltárni a szervezet aktuális problémáit és meghatározni a javítás lehetőségeit Biztosítani, hogy az ügyfelek, végfelhasználók és fejlesztők egységes képet kapjanak az adott szervezetről A szervezetet támogató rendszerrel szemben felmerülő követelmények felderítése
Üzleti modellezés • Azt a környezetet írja le, amelyikben a rendszer működik, vagy amelyikben a rendszer működni fog. • A rendszernek az üzleti környezetben, a szakterületi környezeten belüli helyét határozza meg. • Más néven szakterületi (domén) modellezés. • Értelmezhető mind a jelenlegi, mind a tervezett rendszer üzleti környezetére.
Üzleti modellezés • Az üzleti folyamatok állapotának felderítése (Assess Business Status) • A fejlesztett rendszer által támogatott szervezet (cél szervezet) állapotának felderítése.
Üzleti modellezés • Az aktuális üzleti folyamatok leírása (Describe Current Business) • Feltárni a cél szervezet folyamatait és szerkezetét. • Nem cél a szervezet részletes leírása. • Addig a szintig kell az elemzéseket elvégezni, amíg képesek leszünk kategorizálni a szervezet folyamatait és kiválasztani azokat a részeit, amelyekre a projekt hátralevő részét alapozni fogjuk. • Üzleti szereplők, használati esetek, entitások és workerek azonosítása.
Üzleti modellezés • Az üzleti folyamatok azonosítása (Identify Business Processes)