Unified Modeling Language Wykład 12 Wstęp do UML Unified Modeling Language Diagramy modelowania Diagramy przypadków użycia Diagramy klas Przykłady diagramów PO12-1 / 29
Diagramy modelowania Zestawienie i podział diagramów Diagramy struktury Diagramy zachowania Diagramy interakcji PO12-2 / 29
Diagramy modelowania Diagramy modelowania strukturalnego Diagram pakietów Diagram klas Diagram obiektów Diagram struktur złożonych Diagram komponentów Diagram wdrożenia Diagramy modelowania zachowania (dynamiki) Diagram przypadków użycia Diagram aktywności (czynności) Diagram stanów (maszyny stanowej) Diagram współpracy (komunikacji) Diagram przebiegu (sekwencji) Diagram przebiegów czasowych Diagram przeglądu interakcji PO12-3 / 29
Diagramy modelowania Diagram Diagram struktury Diagram zachowania obiektów Diagram klas Diagram struktur Diagram maszyny stanowej Diagram przypadków użycia Diagram aktyw- ności Diagram pakietów Diagram wdrożenia Diagram komponentów Diagram interakcji Diagram sekwencji Diagram komunikacji Diagram przeglądu interakcji Diagram czasowy PO12-4 / 29
Diagramy struktury Diagramy struktury pokazują statyczną strukturę elementów systemu. Np. diagramy struktury systemu rezerwacji miejsc lotniczych mogą zawierać klasyfikatory reprezentujące algorytmy przydziału miejsc, bilety, obsługę autoryzacji oraz związki między mini. Diagram struktury Diagram obiektów Diagram klas Diagram struktur Diagram pakietów Diagram wdrożenia Diagram komponentów PO12-5 / 29
Diagramy struktury Diagram pakietów opisuje podział modelu na logiczne kontenery i wysokopoziomowe interakcje między nimi. Ilustruje ogólną organizację systemu. Pakiety są traktowane jako foldery, a elementy pakietu dzielą wspólną przestrzeń nazw i pokazują zależności między klasami. Diagram klas to statyczny diagram, przedstawiający strukturę klas i zależności między nimi. Pokazuje szczegóły imple-mentacji klas. Diagram obiektów obrazuje obiekty występujące w systemie i ich związki. Każdy obiekt może być opisany przy pomocy trzech elementów: tożsamości, stanu i zachowania. PO12-6 / 29
Diagramy struktury Diagram struktur złożonych opisuje wewnętrzną strukturę klasyfikatora z uwzględnieniem jego punktów interakcji z innymi częściami systemu (interfejsy i porty). Diagram komponentów przedstawia fizyczne elementy (klasy, obiekty, zasoby sprzętowe) wchodzące w skład systemu i połączenia między nimi. Graf, gdzie węzłami są kompo-nenty systemu, a łuki (strzałki) prowadzą od klienta informacji do jej dostawcy. (Przykładem komponentu może być formularz zamówienia) Diagram wdrożenia pokazuje fizyczne rozmieszczenie procesorów, urządzeń i komponentów oprogramowania wraz z połączeniami odwzorowującymi połączenia komunikacyjne komponentów sprzętowych. (Np. schemat sieci lokalnej) PO12-7 / 29
Diagramy zachowania Diagramy zachowania pokazu-ją dynamiczne właściwości elementów systemu, jak ich metody, współdziałanie, aktywności i historię stanów. Diagramy zachowania opisują sys-tem jako zbiory zmian zachodzących w czasie. Opisują czynności wyko-nywane przez elementy systemu. Diagram zachowania Diagram maszyny stanowej Diagram przypadków użycia Diagram aktyw- ności Diagramy interakcji opisują, jak współ-pracują ze sobą grupy obiektów, zwykle w ramach jednego przy-padku użycia. Diagram interakcji Diagram sekwencji Diagram komunikacji Diagram przeglądu interakcji Diagram czasowy PO12-8 / 29
Diagramy zachowania Diagram przypadków użycia opisuje system z punktu widze-nia użytkownika, pokazuje co robi system, a nie jak to robi. Prezentuje interakcje między systemem, a zewnętrznymi jednostkami. (Scenariusze) (Przypadkiem użycia może być np. złożenie zamówienia) Diagram aktywności służy do modelowania czynności i zakresu odpowiedzialności elementów bądź użytkowników systemu. Opisuje działania związane z wieloma obiektami, pomiędzy którymi może występować komunikacja przy wykonywaniu czynności. (bliski schematowi blokowemu) Diagram maszyny stanowej pokazuje możliwe stany oraz przejścia, które powodują zmianę stanu obiektu. Pokazuje maszynę stanów. PO12-9 / 29
Diagramy interakcji Diagram sekwencji opisuje współpracę oraz komunikację (wiadomości wymieniane) między obiektami i zarządzanie przesyłaniem wiadomości. Obrazuje kolejność przesyłania komunikatów w czasie. Diagram komunikacji pokazuje sieć i sekwencje wiadomości lub komunikację między obiektami w czasie rzeczywistym, podczas współpracy. Diagram przeglądu interakcji służy do opisu zależności przy przesyłaniu komunikatów pomiędzy obiektami, czyli zależności w przepływie sterowania pomiędzy obiektami. Przedstawia zazwyczaj zachowanie systemu dotyczące jednego przypadku użycia. Diagram czasowy łączy diagramy sekwencji i stanów ukazując stany obiektów na przestrzeni czasu oraz komunikaty zmieniające te stany. PO12-10 / 29
Diagramy przypadków użycia Elementy diagramu Powiązania Przykład przypadku użycia Proste przykłady diagramów PO12-11 / 29
Elementy diagramu Diagram przypadków użycia opisuje system z punktu widzenia użytkownika, pokazuje co robi system, a nie jak to robi. Scenariusz to przykład tego, co się dzieje, kiedy ktoś wchodzi w interakcję z systemem. Przypadek użycia to podsumowanie scenariuszy pojedyncze-go zadania lub celu. Aktor to ktoś albo coś, co inicjuje zdarzenia związane z tym zadaniem. PO12-12 / 29
Przykład przypadku użycia Scenariusz: Pacjent dzwoni do kliniki, aby umówić się na coroczne badania. Recepcjonistka znajduje najbliższy wolny termin w książce przyjęć i wyznacza badanie na tę datę. Przypadek użycia: Ustalenie terminu. Aktorzy: pacjent, terminarz. Aktor Przypadek użycia Komunikacja Ustalenie terminu Terminarz Pacjent PO12-13 / 29
Powiązania Liczność Powiązania: liczność (np. 1, 0..1, 1..*, 0..*, itp.), zawieranie <<include>>, rozszerzenie <<extend>>. Liczność 1 0..1 0..* 1 Ustalenie terminu Terminarz Pacjent 1 0..1 0..* 1 Wypłata Bank Klient PO12-14 / 29
<<Aktor>> Zawieranie Przeglądanie katalogu książek <<Aktor>> System katalogowy Klient <<include>> Znalezienie książki Wypłata Bank Klient <<include>> Identyfikacja karty PO12-15 / 29
Rozszerzenie Przeglądanie katalogu Przeglądanie katalogu książek wg kategorii Przeglądanie katalogu książek <<extend>> Wypłata Wypłata w EURO <<extend>> Płacenie rachunku kartą Płacenie rachunku <<extend>> Płacenie rachunku gotówką <<extend>> PO12-16 / 29
Przykład diagramu Terminarz Anulowanie wizyty Ustalenie terminu 0..* 0..1 1 Terminarz 0..* 0..1 Ustalenie terminu 1 0..1 Zalecenie lekarskie 0..1 1 Pacjent Lekarz Płacenie rachunku 1 Sekretarka PO12-17 / 29
<<Aktor>> <<Aktor>> Przykład diagramu Przeglądanie katalogu książek <<Aktor>> System katalogowy Klient <<include>> Znalezienie książki Sprzedawca <<Aktor>> System obsługi sprzedaży Sprzedaż książki Zamówienie książki w składnicy Szef sprzedaży PO12-18 / 29
Diagramy klas Diagram i jego elementy Relacje między klasami Proste przykłady diagramów PO12-19 / 29
Diagram klas Diagram klas jest ściśle powiązany z projektowaniem obiektowym systemu informatycznego lub wręcz bezpośrednio z jego implementacją w określonym języku programowania. Elementami tego diagramu są klasy, reprezentowane przez prostokąty, które mogą zawierać informację o polach i metodach klasy. Nazwa klasy Atrybuty Operacje Klient imie: String nazwisko: String get autorize PO12-20 / 29
Notacja # imie: String # nazwisko: String Atrybuty – składowe do przechowywania danych. Operacje – składowe do wykonywania operacji na atrybutach. + składowa publiczna (public), – składowa prywatna (private), # składowa zabezpieczona (protected), ~ składowa publiczna w zasięgu pakietu, class Klient { protected: String imie, nazwisko; public: void get( ); void autorize( ); }; Klient # imie: String # nazwisko: String + get( ):void + autorize( ):void PO12-21 / 29
Uogólnienie Uogólnienie (generalizacja) - łącze dziedziczenia, które wskazuje, że jedna klasa jest nadrzędna w stosunku do drugiej. Uogólnienie ma trójkąt wskazujący klasę nadrzędną. Sprzedawca SzefSprzedaży class SzefSprzedazy: public Sprzedawca { }; PO12-22 / 29
Zależność Zależność – przerywana strzałka wskazuje na klasę, od której zależy druga klasa. Prostokąt # p1: Punkt # p2: Punkt Punkt # x: int # y: int Klasa Punkt nie musi nic „wiedzieć” o klasie Prostokąt, natomiast klasa Prostokąt zależy od klasy Punkt. Zmiany dokonane w klasie Punkt mogą wpływać na klasę Prostokąt. PO12-23 / 29
Skojarzenie Skojarzenie - związek między instancjami dwóch klas. Skojarzenie dwóch klas zachodzi wtedy, gdy jedna klasa musi wiedzieć o drugiej, aby wykonywać swoje zadania. Na diagramie skojarzeniem jest linia łącząca dwie klasy. 1 0..* Klient Zamówienie Krotność Znaczenie 0..1 Od 0 do 1 instancji 0..* Zero lub więcej instancji 1 Dokładnie jedna instancja 1..* Przynajmniej jedna instancja PO12-24 / 29
Agregacja Agregacja - skojarzenie, w którym jedna z klas należy do kolekcji. Agregacja jest zakończona rombem wskazującym tę część, która zawiera całość. Silna agregacja – usunięcie obiektu klasy agregującej usuwa obiekty klasy agregowanej Słaba agregacja – usunięcie obiektu klasy agregującej nie usuwa obiektów klasy agregowanej 1..* 1 Książka Księgozbiór 0..* 1 Książka Podręczniki PO12-25 / 29
Nawigacja między klasami Nawigacja - skojarzenie ze strzałką wskazującą kierunek przechodzenia lub odpytywania. Skojarzenia bez strzałek mają możliwość obustronnej nawigacji. 1 1..* Zamówienie Płatność Nazwa roli - napis wyjaśniający naturę skojarzenia. 1..* przegląda 1 Klient Katalog PO12-26 / 29
Klasy powiązań Klasa powiązania dodatkowo opisuje cechy pary obiektów dwóch klas. Przedsiębiorstwo Osoba Stanowisko Obiekt klasy Stanowisko jest przypisany do jednej pary obiektów klas Osoba i Przedsiębiorstwo opisując daną osobę jako pracownika określonego przedsiębiorstwa. PO12-27 / 29
Biblioteka - diagram użycia Przeglądanie katalogu <<Aktor>> System katalogowy Klient <<include>> Znalezienie książki Rezerwacja książki Aktualizacja Edycja katalogu Kierownik <<Aktor>> System wypożyczeń Zgłoszenie rezerwacji Wypożyczenie/zwrot Bibliotekarz PO12-28 / 29
Biblioteka - diagram klas Pracownik imie: String nazwisko: String autorize Pracownik imie:String nazwisko:String autorize Katalog ksiazka:int add używa używa Klient imie:String nazwisko:String ID:int autorize 0..* 1 1 0..* 1..* 1 1 dodaje rezerwuje 0..* informuje wypożycza 1 Ksiazka autor:String tytul:String ID:int status:int edit Bibliotekarz przyjmij wydaj zwraca 1..* 0..* 1 0..* Wypozyczenie klient:int ksiazka:int dataw:data dataz:data termin:data wydaj przyjmij 1 0..* wydaje przyjmuje 1 1..* Kierownik zamów dodaj skasuj 1 edytuje Biblioteka PO12-29 / 29