IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 12. ELŐADÁS - UML MODELLEZÉS 2014 Bánsághi Anna 1 of 72
I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma Procedurális paradigma Generikus paradigma III. STRUKTÚRÁLT PROGRAMOZÁS Objektumorientált paradigma Moduláris paradigma Unified Modeling Language 2014 Bánsághi Anna 2 of 72
UNIFIED MODELING LANGUAGE 1. Használati esetek 2. Információáramlás diagram 3. Összetett szerkezeti diagram 4. Szekvencia diagram 5. Kommunikációs diagram 6. Aktivációs diagram 7. Állapotdiagram 8. Időzítés diagram 9. Osztálydiagram 10. Csomag diagram 11. Komponens diagram 2014 Bánsághi Anna 3 of 72
MODELLEZÉS EGYETLEN KÉP TÖBBET ÉR EZER SZÓNÁL 2014 Bánsághi Anna 4 of 72
UNIFIED MODELING LANGUAGE 2014 Bánsághi Anna 5 of 72
A DIAGRAMOK KÖZÖS JELLEMZŐI különféle absztrakciós szintű elemek reprezentálhatók velük egymásba ágyazhatók 2014 Bánsághi Anna 6 of 72
1. HASZNÁLATI ESETEK üzleti vagy rendszer szempontú, magasszintű áttekintése a rendszer funkcióinak, az aktorok és a funkciók közötti interakcióknak a rendszerrel szemben támasztott követelmények lényegét ragadják meg, nem vesznek el a részletekben a rendszer fejlesztésében résztvevő összes szereplő számára hasznosak, mert megadják a végső célt 2014 Bánsághi Anna 7 of 72
A DIAGRAM ÉPÍTŐKÖVEI aktor a rendszerrel interakcióba lépő személy, szervezet vagy külső rendszer használati eset az aktor számára értéket előállító funkció (valamely művelet-együttes), melynek végrehajtása a rendszer és egy külső aktor közötti üzenetváltást kíván kapcsolat aktorok, használati esetek közötti kapcsolatok (társítás, azaz asszociáció, öröklődés, függőség) rendszer határoló keret a kereten belüli használati esetek a rendszer részei, amelyek azon kívül vannak, nem 2014 Bánsághi Anna 8 of 72
KAPCSOLAT FAJTÁK társítás (asszociáció) aktorok és használati esetek közötti kapcsolat általánosítás aktorok közötti vagy használati esetek közötti öröklődési kapcsolat tartalmazás tekinthetjük, mint az alprogramhívást, felbontjuk a használati esetet alfunkciókra (al-használati esetekre) kiterjesztés tekinthetjük, mint egy hardver megszakítást, valamilyen feltételtől függően végrehajtott funkció, nem tudjuk, hogy be fog-e következni, és azt sem, hogy mikor 2014 Bánsághi Anna 9 of 72
HASZNÁLATI ESET TERVEZÉSE 1. beazonosítjuk az összes lehetséges aktort 2. 3. megadjuk az aktorok és a használati esetek közötti társításokat: ha egy aktor részt vesz egy használati eset inicializálásban, információt szolgáltat vagy kap attól, akkor van közöttük kapcsolat észrevesszük az aktorok közötti hasonlóságokat, és a használati esetek közötti hasonlóságokat 4. megadjuk az aktorok közötti kapcsolatokat (általánosítás) 5. megadjuk a használati esetek közötti kapcsolatok (általánosítás, függőség) 2014 Bánsághi Anna 10 of 72
ÜZLETI HASZNÁLATI ESET 2014 Bánsághi Anna 11 of 72
RENDSZER HASZNÁLATI ESET 2014 Bánsághi Anna 12 of 72
2. INFORMÁCIÓÁRAMLÁS a rendszer környezete, a rendszer elemei közötti információáramlás diagramja magas absztrakciós szinten ragadja meg a rendszert az adat jellemzői és az információáramlás részletei, úm. feltételei, megvalósítása, tárolása nincsenek megjelenítve 2014 Bánsághi Anna 13 of 72
A DIAGRAM ÉPÍTŐKÖVEI elem azon részegység (osztály vagy más elem), melyen keresztül áramlik az információ folyam függőségi kapcsolat két elem között információs egység információ vagy adat 2014 Bánsághi Anna 14 of 72
PÉLDA INFORMÁCIÓÁRAMLÁS DIAGRAM 2014 Bánsághi Anna 15 of 72
3. ÖSSZETETT SZERKEZETI DIAGRAM a rendszer vagy egy bonyolult osztály összetevőinek szerkezeti diagramja, a különféle összetevők együttműködésével és a köztük lévő kapcsolatokkal általában példányok futási idejű együttműködését ábrázolja 2014 Bánsághi Anna 16 of 72
A DIAGRAM ÉPÍTŐKÖVEI struktúrált elem részegységekre bontható az elemzés alatt álló példány, amely tulajdonság olyan részegység, amely a kompozíciónál gyengébben kapcsolódik a struktúrált elemhez, mint példány önmagában is létezhet rész olyan részegység, amely kompozíciós kapcsolatban áll a struktúrált elemmel, ha az megsemmisül, vele semmisül a rész is port interakciós pont, melyen keresztül a struktúrált elem akár a környezetével, akár belső részeivel teremt kapcsolatot konnektor maga az interakciós kapcsolat 2014 Bánsághi Anna 17 of 72
PÉLDA DIAGRAM 2014 Bánsághi Anna 18 of 72
4. SZEKVENCIA DIAGRAM a leggyakrabban használt interakciós diagram, az életvonallal reprezentált elemek közötti üzenetváltások folyamát jeleníti meg a rendszer logikai folyamát ábrázolja, lehetővé téve mind a dokumentálást, mind a logika validálását a rendszer viselkedésének beazonosítására szolgál 2014 Bánsághi Anna 19 of 72
MODELLEZÉSI LEHETŐSÉGEK használati forgatókönyvek, melyek a rendszer lehetséges használatának leírásai. Ide tartozik az egyes használati esetek kifejtése, különféle variációk modellezése. műveletek logikája logikájának kifejtése szolgáltatások logikája tranzakciók kifejtése összetett műveletek, alprogramok web-szolgáltatások vagy üzleti 2014 Bánsághi Anna 20 of 72
keret A DIAGRAM ÉPÍTŐKÖVEI a diagram határa, az ábrázolt tartomány határa életvonal a rendszer önálló eleme, mely részt vesz az interackiókban. Áll egy valamilyen osztályozással beazonosított fejből, azaz az életvonal megtestesítőjéből és magából az életvonalból végrehajtás (aktiváció) az életvonalnak az a szakasza, amikor az életvonal megtestesítóje - interakciós szempontból - aktívan viselkedik, pl. üzenet hatására végrehajt, üzenetet küld, üzenetre vár üzenet X a küldő és a fogadó életvonalak közötti kommunikáció az életvonal megtestesítője megsemmisül 2014 Bánsághi Anna 21 of 72
ÉLETVONAL FAJTÁK Osztály típusú obj nevű példány Osztály típusú azonosítatlan példány határ objektum, tipikusan felhasználó és rendszer közötti interfészek (ablakok, képernyők, menük) rendszerbeli adat, információ kontroll elemek, melyek közvetítenek a határ és az adat elemek között 2014 Bánsághi Anna 22 of 72
PÉLDA SZEKVENCIA DIAGRAM 2014 Bánsághi Anna 23 of 72
ÜZENETTÍPUSOK szinkron a küldő elküldi az üzenetet, majd blokkolt állapotba kerül, amíg a fogadó nem fogadta az üzenetet aszinkron a küldő elküldi az üzenetet, és várakozás nélkül folytatja a saját tevékenységeit létrehozó üzenet küldése nemlétező elemnek, ezzel a küldő létrehozza az új életvonalat megsemmisítő és ezt általában az X üzenet küldője terminál egy életvonalat, jel is kifejezi válasz a küldő üzenetére válaszol a fogadó 2014 Bánsághi Anna 24 of 72
ÉLETVONALAK JELENLÉTE teljes mind a küldő, mind a fogadó életvonal jelen van a kommunikációban életre hívó a küldő kiléte ismeretlen, vagy a leírásnak nem része, a fogadóé pedig ismert elvesző a küldő kiléte ismert, de a fogadóé nem, az üzenet soha nem ér célba 2014 Bánsághi Anna 25 of 72
KAPU amikor a kommunikáció küldője vagy fogadója az ábrázolt tartományon kívül esik, akkor az üzenet elején vagy végén maga a határoló keret szerepel 2014 Bánsághi Anna 26 of 72
5. KOMMUNIKÁCIÓS DIAGRAM a rendszerben folyó történések logikáját leíró diagram, a rendszer elemei közötti interaciókat jeleníti meg egy kommunikációs diagram egyértelműen megfeleltethető egy egyszerűbb szekvencia diagramnak, hiszen az üzenetre adott válaszok nem jelennek meg a kommunikációs diagramban a diagramban az üzenet küldője és fogadója helyett az üzenetek sorrendjére fókuszálunk 2014 Bánsághi Anna 27 of 72
keret A DIAGRAM ÉPÍTŐKÖVEI a diagram határa, az ábrázolt tartomány határa életvonal a rendszer önálló eleme, mely részt vesz az interackiókban. Áll egy valamilyen osztályozással beazonosított fejből, azaz az életvonal megtestesítőjéből üzenetsorozat a kommunikációfolyam sorszámozott üzenetekből áll életvonalak között 2014 Bánsághi Anna 28 of 72
PÉLDA KOMMUNIKÁCIÓS DIAGRAM 2014 Bánsághi Anna 29 of 72
ÜZENETSOROZAT MEGADÁSA sorszám a kisebb sorszámű üzenet megelőzi a nagyobb sorszámút, a sorszámozás szintekre bontható 2.1: rajzol(), 2.2.1: fest(), 2.2.2: satíroz(), 2.3: másol() cimke azonos szinten párhuzamosan végrehajtandó üzenetek 2.1a: fest(), 2.1b: fest() ismétlődés feltételes vagy ciklikus üzenetküldés 2.2 [x > y]: fest() 2.3 *: vár() 2.4 *[k:1..n]: fest(k) 2.4 * [k:1..n]: fest(k) tevékenység végrehajtandó művelet, pl. alprogramhívás fest() 2014 Bánsághi Anna 30 of 72
6. AKTIVÁCIÓS DIAGRAM általában üzleti folyamatok modellezésére használatos, egy adott használati eset vezérlés-folyamát vagy üzleti szabály logikáját ragadja meg alacsony szintű, de bonyolult műveletek is kifejthetők a segítségükkel a diagram élekkel kapcsolódó tevékenységeket tartalmaz 2014 Bánsághi Anna 31 of 72
A DIAGRAM ÉPÍTŐKÖVEI tevékenység valamilyen viselkedést reprezentál. A tevékenységek paraméterezhetők, elő- és utófeltételek rendelhetők hozzájuk tevékenység csoport / medence közös jellemzővel bíró tevékenységek csoportja, pl. adott szervezeti egységhez, alrendszerhez vagy aktorhoz köthető tevékenységek folyam / él áramlás tevékenységek közötti irányított adat- és vezérlés 2014 Bánsághi Anna 32 of 72
TEVÉKENYSÉG TÍPUSOK akció viselkedést ír le, művelet végrehajtását vagy hívását, adatküldést vagy fogadást, objektummódosítást objektum a tevékenységek között áramló objektumok, általában az osztály nevével cimkézzük vezérlés a tevékenységek közötti vezérlést reprezentálják, csomópont típusok: kezdő, záró, eldöntő, összefésülő, szétváló, egyesítő 2014 Bánsághi Anna 33 of 72
PÉLDA AKTIVÁCIÓS DIAGRAM 2014 Bánsághi Anna 34 of 72
VEZÉRLÉSI TEVÉKENYSÉGEKET IS TARTALMAZÓ AKTIVÁCIÓS DIAGRAM 2014 Bánsághi Anna 35 of 72
7. ÁLLAPOTDIAGRAM magas vagy alacsony, akár objektum-szintű viselkedés írható le véges állapotú automatával az objektumok külső vagy belső hatásokra megváltoztatják a belső állapotukat, ezen állapotváltozások elemezhetők a diagram segítségével a diagram állapotok és átmenetek halmaza egy állapot az objektum viselkedésének egy állomását reprezentálja az átmenet egyik állapotból a másikba vezető haladás, ami valamely külső vagy belső hatás eredményeként következik be 2014 Bánsághi Anna 36 of 72
A DIAGRAM ÉPÍTŐKÖVEI állapot mely állapot addig marad fenn, amíg az objektum adatai az állapot invariánsát kielégítik átmenet adott állapotból különféle események hatására különféle állapotokba juttatja az objektumot 2014 Bánsághi Anna 37 of 72
PÉLDA ÁLLAPOTDIAGRAM 2014 Bánsághi Anna 38 of 72
ÁLLAPOT CIMKÉK entry megadja, hogy az objektum milyen műveleteket hajt végre az adott állapotba lépéskor do megadja, hogy az objektum milyen műveleteket hajt végre az adott állapotban exit megadja, hogy az objektum milyen műveleteket hajt végre az adott állapot elhagyásakor 2014 Bánsághi Anna 39 of 72
eljáráslista átmenetet ÁTMENET JELLEMZŐI azon események listája, melyek kiváltják az őrfeltétel amellett, hogy a megfelelő esemény bekövetkezett, az állapotváltás csak akkor következik be, ha az őrfeltétel is teljesül 2014 Bánsághi Anna 40 of 72
PÉLDA ÁLLAPOTDIAGRAM 2014 Bánsághi Anna 41 of 72
8. IDŐZÍTÉS DIAGRAM a különféle rendszerelemek együttes vizsgálata adott időintervallumon belül adott időintervallumban a közös erőforrásokon osztozó elemek időszeletei 2014 Bánsághi Anna 42 of 72
idővonal / medence A DIAGRAM ÉPÍTŐKÖVEI az interakcióban résztvevő valamely elem állapot az idő előrehaladtával egy adott elem különféle állapotokban lehet, ezt egy lépcsőzetes vonal jelzi időtartam megszorítás maradhat fenn időpont megszorítás adott állapot mekkora időtartamban adott állapotváltozás mikor következhet be 2014 Bánsághi Anna 43 of 72
PÉLDA IDŐZÍTÉS DIAGRAM 2014 Bánsághi Anna 44 of 72
9. OSZTÁLYDIAGRAM a rendszert osztályok, interfészek szintjén ábrázoló diagram megjelenítve azok szerkezeti és viselkedésbeli jellemzőit (tagjait), megszorításait, kapcsolatait és jelentését 2014 Bánsághi Anna 45 of 72
PÉLDA OSZTÁLYDIAGRAM 2014 Bánsághi Anna 46 of 72
OSZTÁLY ÁBRÁZOLÁSA a célunktól függően a tagokat elhagyva vagy éppen teljesen kidolgozva jelenítünk meg egy osztályt 1. osztály neve a teljes változat három részre bomlik: 2. adattagok (mezők, konstansok) 3. műveletek (tulajdonságok, konstruktorok, destruktor, metódusok, operátorok, indexelők, események) 2014 Bánsághi Anna 47 of 72
részletek elhagyva részletek kifejtve 2014 Bánsághi Anna 48 of 72
LÁTHATÓSÁG, STATIKUS TAGOK láthatóság jelölése: + - # ~ statikus tagok aláhúzással jelölve 2014 Bánsághi Anna 49 of 72
ABSZTRAKT OSZTÁLY, TAG dőlt szöveggel jelöljük 2014 Bánsághi Anna 50 of 72
INTERFÉSZ ÉRTÉKTÍPUS (STRUCT) 2014 Bánsághi Anna 51 of 72
i. ii. iii. iv. v. OSZTÁLYOK KÖZÖTTI KAPCSOLATOK asszociáció egyszerű kommunikáció, az osztály meghívja más osztály nyilvános metódusát, vagy hivatkozik rá műveleteiben paraméterként vagy visszatérési értékként aggregáció gyenge rész - egész kapcsolat, a rész-osztály más osztályokhoz is kapcsolódhat kompozíció erős rész - egész kapcsolat, a rész-osztály csak a tartalmazó osztálynak lehet alkotóeleme öröklődés (ős) tagjait egyik osztály (leszármazott) örökli a másik osztály függőség egy osztály függ egy másik osztálytól, akár a specifikáció, akár az implementáció szintjén 2014 Bánsághi Anna 52 of 72
i. ASSZOCIÁCIÓ a szerző szerepet betöltő Oktató asszociációs kapcsolatban van a tankönyv szerepű Könyvvel egy oktató nulla vagy tetszőleges számú könyvet írhat, viszont egy könyvnek minimum egy szerzője van 2014 Bánsághi Anna 53 of 72
REFLEXÍV ASSZOCIÁCIÓ egy dékán szerepet betöltő Oktató asszociációs kapcsolatban van egy vagy több tanár szerepet betöltő Oktatóval 2014 Bánsághi Anna 54 of 72
név ASSZOCIÁCIÓS KAPCSOLATOK JELLEMZŐI az asszociáció neve (és iránya az aktívtól a passzív felé) szerep / végpont az összekapcsolt osztályok aktuális szerepe az adott asszociációban multiplicitás példányosítás esetén a végpontok hány objektummal vehetnek részt a kapcsolatban elérhetőség az egyik végpont elérhető az ellenkező végpontból, hogyha futási időben és példányosítás esetén elérhető az ellenkező végpontból aritás az asszociáció lehet bináris és n-áris 2014 Bánsághi Anna 55 of 72
ELÉRHETŐSÉG PÉLDÁK a két végpont elérhetősége a ellenkező végpontból meghatározatlan meghatározatlan, hogy a Könyv eléri-e az Oktató tagjait, de az Oktató biztosan eléri a Könyv tagjait a Könyv nem éri el az Oktató tagjait, és az Oktató eléri a Könyv tagjait 2014 Bánsághi Anna 56 of 72
TERNÁRIS ASSZOCIÁCIÓ 2014 Bánsághi Anna 57 of 72
ii. AGGREGÁCIÓ a részek függetlenek az egésztől a rész több más egészhez is tartozhat ha az egészt megsemmisítjük, a részei önnálóan is létezhetnek iii. KOMPOZÍCIÓ a részeknek csak az egész viszonylatában van értelmük a rész pontosan egy egészhez tartozhat ha az egészt megsemmisítjük, akkor a részei is vele semmisülnek 2014 Bánsághi Anna 58 of 72
PÉLDA AGGREGÁCIÓ ÉS KOMPOZÍCIÓ 2014 Bánsághi Anna 59 of 72
iv. ÖRÖKLŐDÉSI KAPCSOLAT két osztály közötti irányított bináris kapcsolat minden leszármazott osztálybeli példány egyben ősosztálybeli példány is az egyszeres öröklődés megfelel egy taxonómiának (hierarchikus rendszerezésnek) a többszörös öröklődésre tekinthetünk úgy, mint ortogonális (egymástól független) taxonómiák kombinációjára 2014 Bánsághi Anna 60 of 72
GYÉMÁNT PROBLÉMA Vajon hogyan táplálkozik egy farkasember? 2014 Bánsághi Anna 61 of 72
v. FÜGGŐSÉGI KAPCSOLAT két osztály közötti irányított kapcsolat hívjuk még ellátó - kliens kapcsolatnak, ahol az ellátó valami olyasmit nyújt a kliensnek, ami nélkül az hiányos vagy működésképtelen az ellátóban bekövetkező változtatások kihathatnak a kliensekre 2014 Bánsághi Anna 62 of 72
FÜGGŐSÉGI KAPCSOLAT TÍPUSOK használat «use» a kliensnek szüksége van az ellátóra ahhoz, hogy teljes legyen jelentésében vagy implementációjában absztrakció «abstraction» a kapcsolatban részt vevő két elem ugyanazon fogalmat reprezentálja, különböző absztrakciós szinteken, mint például: interfész megvalósítás «interface» komponens megvalósítás «component» helyettesítés «substitute» 2014 Bánsághi Anna 63 of 72
az Oktató osztály használja a Dátum típust az Oktató megvalósítja a Mobilitás és a Kutatás interfészeket 2014 Bánsághi Anna 64 of 72
10. CSOMAG DIAGRAM a rendszert csomag szinten szervező diagram, akár a tervezés, akár az implementáció szintjén az implementáció szintjén a csomag részei lehetnek osztályok, interfészek, névterek a tervezés szintjén a csomag részei lehetnek más diagramok, pl. osztálydiagramok, használati esetek 2014 Bánsághi Anna 65 of 72
A DIAGRAM ÉPÍTŐKÖVEI csomag összefoglaló elem valamely nagyobb logikai egységet függőség a csomagok közötti függőségek (import, használat, hozzáférés, összefésülés) 2014 Bánsághi Anna 66 of 72
PÉLDA CSOMAG DIAGRAM 2014 Bánsághi Anna 67 of 72
11. KOMPONENS DIAGRAM a komponens-alapú fejlesztési paradigma eleme, mely szerint a rendszer több, önálló komponens vagy szolgáltatás halmazaként jön létre általában a rendszert több, egymástól független csapat fejleszti, és a komponensek nemcsak az adott rendszer részeként, hanem alapvetően az újrafelhasználhatóság igényével készülnek igény, hogy a komponensek tetszőlegesen lecserélhetők legyenek egy másik, hasonló funkciójú komponenssel anélkül, hogy ez a rendszer többi részére hatással lenne 2014 Bánsághi Anna 68 of 72
DIAGRAM FAJTÁI logikai a rendszer logikai komponensek halmaza, pl. üzleti, folyamat komponensek fizikai a rendszer fizikai komponensek halmaza, pl. CORBA, EJB,.NET, WSDL komponensek 2014 Bánsághi Anna 69 of 72
A DIAGRAM ÉPÍTŐKÖVEI komponens egy egységbezárt modul, mely a külvilággal (más komponensekkel) kizárólag interfészén keresztül kommunikál nyújtott interfész a komponens által rendelkezésre bocsájtott szolgáltatás, melyet interfészén keresztül el lehet érni igényelt interfész olyan szolgáltatás, melyet az adott komponens más komponensektől vesz igénybe, azok interfészén keresztül konnektor kommunikációs kapcsolat, megszabhatja az interakció feltételeit 2014 Bánsághi Anna 70 of 72
PÉLDA KOMPONENS DIAGRAM 2014 Bánsághi Anna 71 of 72
IRODALOM Szép összefoglaló, innen valók az idegen képek www.uml-diagrams.org ATM teljes kidolgozott példa www.math-cs.gordon.edu/courses/cs211/atmexample/ Tanácsokkal ellátott bevezető agilemodeling.com/essays/umldiagrams.htm 2014 Bánsághi Anna 72 of 72