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