UML modellezés 3. előadás Gyurkó György
Dinamikus modellek (viselkedésmodellezés) - Kölcsönhatás-diagramok
Dinamikus modellezés (viselkedésmodellezés) Használati esetek forgatókönyvének megadása A működés időbeli lefolyásának elemzése /tervezése Objektumok együttműködése / kommunikációja időbeli folyamatának elemzése Adott típusú objektum élettartama alatti állapotváltozásainak elemzése / tervezése Az előbbiek célja: az osztályok tagfüggvényeinek meghatározása, a statikus modell finomítása (további szükséges asszociációk, adattagok) Üzleti folyamatok leírása tevékenység-diagrammal (cél: az üzleti követelmények meghatározása, pontosítása) Alkalmazás / komponensmodul működésének leírása tevékenység-diagrammal (cél: segítség a programozóknak, a kódkarbantartóknak)
Kölcsönhatás-diagramok Szekvencia-diagram Együttműködési diagram (kommunikáció-diagram) Mindkettő objektumok együttműködése / kommunikációja időbeli folyamatának leírására alkalmas. Mindkettő kiragadott konkrét esetek leírására alkalmas.
1. példa: A digitális óra kezdeti teendői
2. példa: Felhasználói akciók feldolgozása
A szekvencia-diagram szimbólumai Példaobjektumok (életvonal, vezérlési fókusz) Általános (nem tipizált) objektum Aktor Vezérlő objektum Határfelületi objektum Entitás Üzenetek Szinkron Aszinkron Létrehozás üzenet Vezérlés visszaadása (visszaadott érték) Saját(magának) üzenet Függés Megjegyzés
Határfelületi objektumok Példaobjektumok Aktor Határfelületi objektumok Általános objektumok Vezérlő objektum Entitás: nyilvántartott egyedet jelentő objektum (üzleti / szakterületi logika részét képező objektum)
Példaobjektum életvonala és a vezérlési fókusz Életvonal (az idő „lefelé halad”) Vezérlési fókuszok A vezérlési fókusz ideje alatt az objektum a vezérlés birtokában van, vagy a vezérlés visszaadására vár. (Az utóbbi aszinkron hívó objektum esetére nem vonatkozik.)
Üzenetek / 1 Szinkron üzenet: A hívó várakozik, amíg a hívott vissza nem adja a vezérlést. (Ugyanez a jele a nem specifikált üzenetnek is.) Aszinkron üzenet: A hívó folytatja működését (nem várakozik vezérlés-visszaadásra, hiszen saját szála van). Vezérlés visszaadása (visszaadott érték): Csak szinkron módú eljáráshívás esetén van értelme. Csak akkor alkalmazzuk, ha jelezni akarjuk, hogy a konkrét esetben mi a visszaadott érték.
Üzenetek / 2 Saját(magának) üzenet Létrehozás üzenet Annak részletezésére alkalmazzuk, hogy mit csinál a megszólított objektum. Létrehozás üzenet
Mire használjuk a szekvencia-diagramot? Használati eset részletező kifejtésének eszköze - Cél: A használat eset alatt a felhasználó és a szoftver közötti kommunikáció részletezése (forgatókönyv). Előzetes elemzések eszköze, előzetes elképzelések írhatók le vele – Cél: meghatározni milyen tagfüggvényekkel, milyen navigációjú asszociációkkal, milyen adattagokkal kell kiegészíteni a statikus modellt. A szerkezeti modell utólagos magyarázatának eszköze – Cél: megmutatni az objektumoknak azt az időbeli viselkedését, amely egyfelől a szerkezetből nem látszik, másfelől érthetővé teszi azokat a szerkezeti megoldásokat, amelyek csak az elvárt időbeli viselkedés miatt indokoltak.
A szekvencia-diagrammal végzett elemzések lehetséges folyományai Új tagfüggvény – Egy u(...) üzenettel megszólított a:A objektum A osztályának definíciójában szerepelni kell egy u(...) tagfüggvénynek. Új asszociáció – Ha b:B objektum szólítja meg az u(...) üzenettel a:A objektumot, akkor általában kell lenni egy B A asszociációnak (amely az A irányában navigálható) . (Ez alól kivétel az az eset, amikor a b:B objektum egy harmadik objektumtól megkérdezheti vagy egy harmadik objektumtól paraméterként megkaphatja az a:A objektum hivatkozását.) Új adattag – A fentebb említett B A asszociációnak az A-végéhez tartozó szerepnévből a B osztály definíciójában egy A típusú adattag lesz. – Ha a fentebb említett u(...) tagfüggvény végrehajtása függ az a:A objektum állapotától, akkor az A osztály definíciójában is további állapotjelző adattag(ok)ra lehet szükség.
Dinamikus modellek (viselkedésmodellezés) - Állapotdiagramok