Objektumvezérelt rendszerek tervezése 2.óra – UML alapok © Fülöp Lajos
UML Unified Modeling Language Mi ez? Mire való? Grafikus modellező nyelv Mire való? Objektumorientált modellezés, tervezés Probléma specifikációja Probléma megoldása Dokumentáció Grafikus szemléltetés több nézetben Use case, class diagram,… © Fülöp Lajos
Használati eset modellezés Rendszer viselkedését modellezi: funkcionalitás kommunikáció eszköze (felhasználó felé is) legmagasabb absztrakció Megvilágítja: rendszer tervezett funkcióit (használati eseteit) rendszer környezetét (szereplők – Actor) ezek közötti kapcsolatokat (Use Case Diagram) © Fülöp Lajos
UML – Use Case Diagram kapcsolatok Asszociáció Felhasználó és használati eset közötti kommunikáció, általában ige Általánosítás Egyik használati eset vagy aktor általánosabb formája a másiknak Kiterjesztés Egyik használati eset kiterjeszti újabb funkcionalitással a másikat Extend kulcsszó Tartalmazás Egyik használati eset tartalmazza a másikat Include kulcsszó © Fülöp Lajos
Use case példa © Fülöp Lajos
Eseményáramlás A megrendelő által érthető legyen teljes mondatokat írjunk, szóhasználatban igazodjunk a megrendelőhöz (pl. ügyfél – kliens, aru – cikk, …) Adjuk meg pontosan a használati esetet elindító eseményt Az eseményáramlást külső szemszögből mutatjuk be, nem taglaljuk a rendszer belső működését Adjuk meg hogy mi alapján ellenőrizhető hogy a használati eset elérte célját © Fülöp Lajos
UML – Class Diagram Osztálydiagram A probléma megoldását leíró szerkezeti diagram Statikus Elemei Osztályok,csomagok, interfészek, megjegyzések Kapcsolatok Asszociáció Aggregáció Kompozíció Öröklődés Függőség © Fülöp Lajos
UML – Class Diagram - Association Társítás, összekapcsolás Név, azonosító Egy vagy kétirányú Asszociációs osztály Asszociáció, kapcsolat részletei Pl. egy személy több lakásban lakik Az, hogy melyikben mióta lakik a kapcsolat részlete Multiplicitás Résztvevő objektumok száma Egy személy 1 vagy 2 lakásban lakik © Fülöp Lajos
UML - Class Diagram - Association © Fülöp Lajos
UML – Class Diagram - Aggregation Speciális asszociáció Egyik objektum része a másiknak Nem erős tartalmazás © Fülöp Lajos
UML Class Diagram - Composition Speciális aggregáció Fizikai, erős tartalmazás A tartalmazó a tartalmazott nélkül nem létezhet © Fülöp Lajos
UML Class Diagram – Általánosítás és specializáció (öröklődés) Általánosítás: bizonyos osztályok közös tulajdonságai alapján egy új osztály létrehozása Specializáció: Egy osztály speciális esete(i) © Fülöp Lajos
UML Class Diagram példa © Fülöp Lajos
Osztályok közötti kapcsolatok - implementációs példák A példa kapcsolatot A -> B szerint értelmezzük Asszociáció A osztály egy metódusának paramétere B típusú A osztály egy metódusa hívja B egy metódusát A osztály egy metódusa (lokálisán) példányosítja B-t A osztály egy metódusának visszatérési típusa B Aggregáció A osztály tartalmaz egy B-re mutató pointert Kompozíció A osztály tartalmaz egy B adattagot Öröklődés A osztály B-ből származik © Fülöp Lajos
UML toolok Ingyenesen letölthető toolok További ArgoUML Szekvencia diagram nem működik http://argouml.tigris.org/ BOUML http://bouml.free.fr/download.html StarUML http://downloads.sourceforge.net/staruml/staruml-5.0-with-cm.exe?modtime=1135961973&big_mirror=0 http://staruml.sourceforge.net/en/documentations.php További http://en.wikipedia.org/wiki/List_of_UML_tools (Non-proprietary UML tools) © Fülöp Lajos