Modelowanie konceptualne
Transkrypt
Modelowanie konceptualne
UML (Unified Modeling Language™) • Celem modelowania konceptualnego opartego na podejściu obiektowym jest utworzenie modelu. • Model uwzględnia istotne szczegóły odwzorowywanej dziedziny przedmiotowej (aplikacyjnej). • Do przedstawienia modelu obiektowego dziedziny służy język UML (Unified Modeling Language). • UML jest standardem proponowanym przez OMG (Object Management Group) i stanowi składową standardu MDA (Model Driven Architecture). • Notacja UML jest dużo bogatsza niż EER. Modelowanie konceptualne - (E)ER a UML Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski (c) T. Pankowski, (E)ER a UML 1 UML (c.d.) 2 UML (c.d.) • UML jest stosowany w modelowaniu (projektowaniu) obiektowym. Celem jest utworzenie modelu. • Model jest abstrakcją rozwiązywanego problemu z określonej dziedziny. Dziedzina jest fragmentem świata rzeczywistego, z którego pochodzi problem. • Model składa się z obiektów, które kontaktują się ze sobą poprzez wysyłanie komunikatów (messages). Obiekty "żyją". • Obiekty posiadają wiedzę o swoich atrybutach, oraz mają możliwość działania za pomocą operacji. Wartości atrybutów obiektu określają jego stan. • Klasy są wzorcami dla obiektów. Klasa ujmuje atrybuty (dane) oraz zachowanie (metody lub funkcje) w pojedynczą wyróżnioną jednostkę. Obiekty są wystąpieniami (instancjami) klas. (c) T. Pankowski, (E)ER a UML (c) T. Pankowski, (E)ER a UML 3 Rodzaje diagramów modelujących (9 rodzajów): • Diagramy przypadków użycia (jednostek wykonawczych) (use case diagrams) • Diagramy klas (class diagrams) Å odnoszą się do EER • Diagramy obiektów (object diagrams) • Diagramy sekwencji (sequence diagrams) • Diagramy współpracy (collaboration diagrams) • Diagramy stanów (statechart diagrams) • Diagramy aktywności (activity diagrams) • Diagramy komponentów (component diagrams) • Diagramy rozmieszczenia (deployment diagrams) (c) T. Pankowski, (E)ER a UML 4 Diagram przypadków użycia Diagramy UML a organizacja wiedzy Model (E)ER Przypadek użycie (use case) reprezentuje pojedynczą, atomową transakcję realizowaną przez system. Aktor może być użytkownikiem, programem lub urządzeniem zewnętrznym. (c) T. Pankowski, (E)ER a UML 5 (c) T. Pankowski, (E)ER a UML 6 Diagram przypadków użycia Diagram przypadków użycia Podzadanie Diagram przypadków użycia jest kolekcją aktorów (actors), przypadków użycia (use cases) i ich komunikacji. Make Appointment jest częścią diagramu z czteroma aktorami i czteroma przypadkami użycia. Jeden przypadek użycia może mieć ielu aktorów. Wariant Specjalny rodzaj (c) T. Pankowski, (E)ER a UML 7 (c) T. Pankowski, (E)ER a UML 8 Diagram klas – przykład Diagramy klas • Diagram klas (A Class diagram) podaje ogólną strukturę systemu określając klasy i powiązania między nimi. • Diagramy klas są statyczne – pokazują co pozostaje ze sobą w interakcji, ale nie pokazują co dzieje się w czasie tej interakcji. • Klasa (UML) = typ jednostki (ER) • Klasy representowane są za pomocą prostokątów (pudełek) podzielonych na trzy części: • nazwa klasy, • atrybuty i informacje o nich, • operacje klasy. Nazwa Atrybuty Operacje (c) T. Pankowski, (E)ER a UML 9 (c) T. Pankowski, (E)ER a UML 10 Diagram klas Powiązania między obiektami • Asocjacja (association) – powiązanie między instancjami dwóch lub większej liczby klas. Między dwoma klasami istnieje asocjacja, jeśli instancja jednej klasy musi wiedzieć o drugiej, aby wykonać swoje zadanie. Na diagramie asocjacja przedstawiona jest jako linia łącząca dwie klasy. • Agregacja (aggregation) – określa, że jeden obiekt jest częścią pewnej całości. Agregacja ma narysowany romb po stronie wskazującej na klasę obiektów traktowanych jako całości. Na przykład, Zamówienie (Order) łączy się ze zbiorem PozycjiZamówienia (OrderDetails), które stanowią jego części. • Generalizacja (generalization) – określa, że jedna klasa jest nadklasą (superklasą) innej klasy, która z niej dziedziczy. Generalizacja ma narysowany trójkąt po stronie nadklasy. Na przykład, Zapłata (Payment) jest nadklasą dla Gotówka (Cash), Czek (Check) i KartaKredytowa (Credit). (c) T. Pankowski, (E)ER a UML 11 (c) T. Pankowski, (E)ER a UML 12 Asocjacja = Typ związku • • • Na styku asocjacji z klasą można podać nazwę roli, która objaśnia naturę asocjacji. Strzałka nawigacji wskazuje kierunek, w jakim asocjacja może być przeglądana. Brak tej strzałki oznacza, że w każdym kierunku. W naszym przykładzie możemy przechodzić od zamówienia do zapłaty, ale nie odwrotnie. Podaje ona także kto jest „właścicielem” implementacji asocjacji. Krotność (liczebność) asocjacji podana przy jednej z jej klas oznacza liczbę możliwych instancji tej klasy powiązanych z jednym układem instancji pozostałych klas. Krotność jest pojedynczą liczbą lub zakresem liczb. Na przykład, dla każdego Zamówienia istnieje dokładnie jeden Klient, a dla jednego klienta może istnieć dowolnie wiele zamówień. • 0..1 – zero lub 1, n . . m – od n do m instancji. • 0..* lub * – bez ograniczeń (łącznie z 0). • 1 – dokładnie jedna instancja, • 1..* – co najmniej jedna instancja. 13