Diagramy UML 2 -...

39
Diagramy UML 2.0 Diagram klas (class diagram) *.kls *.cld + Hurtownia - nazwa : String - adres : String + Zamówienie - dataZlozenia : int + Platnosc - suma : float + Naleznosc - terminPlatnosci : int + Wplyw + zaksieguj() + zamówienie 1..* + hurtownia 1..1 + klient + zamówienie 1..1 + platnosc 1..* + podst. platnosci

Transcript of Diagramy UML 2 -...

Page 1: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagramy UML 2.0

Diagram klas

(class diagram)

*.kls *.cld

+ Hurtownia

- nazwa : String

- adres : String

+ Zamówienie

- dataZlozenia : int

+ Platnosc

- suma : float

+ Naleznosc

- terminPlatnosci : int

+ Wplyw

+ zaksieguj()

+ zamówienie 1..*

+ hurtownia 1..1

+ klient

+ zamówienie 1..1

+ platnosc 1..*

+ podst. platnosci

Page 2: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Podstawowy diagram struktury logicznej systemu

Przedstawia klasy występujące w systemie

i statyczne relacje między nimi

pozwala na sformalizowanie specyfikacji danych

i metod w sposób związany z oprogramowaniem,

ale dotyczący jego zewnętrznego opisu bez

wchodzenia w szczegóły implementacyjne

Page 3: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Klasę reprezentuje prostokąt, w którym zapisane są kolejno:

Nazwa klasy

Atrybuty klasy

Operacje klasy

Klasy i obiekty

+ Klient

- Pesel : int

- Imie : String

- Nazwisko : String

- Adres : String

+ Zamawiaj()

Cechy klasy są to informacje jakie klasa przechowuje. Przedstawiane są

w postaci atrybutów klasy i relacji między klasami

Operacje reprezentują usługi jakie klasa dostarcza

Page 4: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Obiekt to instancja klasy

Klasy i obiekty

Klasa jest więc opisem zbioru obiektów o takich samych atrybutach,

związkach i znaczeniu.

+ Kowalski:Klient

- Pesel : int = 12345678901

- Imie : String = Jan

- Nazwisko : String = Kowalski

- Adres : String = Jakas 3/24

+ Zamawiaj()

Page 5: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Pełne określenie atrybutu klasy posiada składnię:

Atrybuty klasy

[widoczność]nazwa:typ[krotność]{ograniczenia}=wart. domyślna

W UML-u wyróżniono 4 poziomy widoczności

+ publiczny – widoczny z każdego miejsca systemu

# chroniony – widoczny wewnątrz klasy i jej podklas

- prywatny – widoczny tylko wewnątrz własnej klasy

~ publiczny wewnątrz pakietu – widoczny wewnątrz własnego pakietu

Page 6: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Pełne określenie atrybutu klasy posiada składnię:

Atrybuty klasy

[widoczność]nazwa:typ[krotność]{ograniczenia}=wart. domyślna

Krotność zapisywana jest najczęściej w postaci

dolna granica..górna granica

Przykłady: 1 – dokładnie jeden

0..1 – jeden lub wcale

1..* – przynajmniej jeden

* – dowolna ilość

Page 7: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Pełne określenie atrybutu klasy posiada składnię:

Atrybuty klasy

[widoczność]nazwa:typ[krotność]{ograniczenia}=wart. domyślna

Najczęściej stosowane ograniczenia to

{ordered} – elementy wewnątrz atrybutu są uporządkowane

{unique} – elementy wewnątrz atrybutu nie mogą się powtarzać

{readOnly} – elementy wewnątrz atrybutu nie mogą być zmieniane

{frozen} – elementy wewnątrz atrybutu, po ustawieniu nie mogą być

ponownie edytowane

Page 8: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Atrybuty pochodne i statyczne

Atrybut pochodny jest zależny od innych atrybutów i może być wyliczony

na ich podstawie. Oznaczany jest znakiem „/”

Atrybut statyczny jest widoczny zarówno w klasie jak i w jej instancji

podczas gdy inne atrybuty widoczne są wyłącznie w instancjach danej

klasy. Oznaczany jest podkreśleniem nazwy.

+ Paczka

- Adres nadawcy : String

- Adres odbiorcy : String

- Rodzaj : String

- Data wyslania : Date

- Data dostarczenia : Date

- Max termin dostarczenia : int

- /Przetrzymana : boolean = (Data dostarczenia - Data wyslania)>Max termin dostarczenia

Atrybuty klasy

Page 9: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Operacje to procesy, które klasa potrafi wykonać

Pełne określenie operacji posiada składnię:

Operacje klasy

[widoczność] nazwa(parametr1, parametr2,…) :typ {ograniczenia}

Parametry są zapisywane tak jak atrybuty z dodatkiem informacji

o kierunku przekazania parametru

kierunek nazwa typ[krotność]=wart. domyślna

Dostępne kierunki

in – parametr wejściowy

out – parametr wyjściowy

inout – parametr wejściowo/wyjściowy

return – parametr zwracany przez metodę

Page 10: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Operacje to procesy, które klasa potrafi wykonać

Pełne określenie operacji posiada składnię:

Operacje klasy

[widoczność] nazwa(parametr1, parametr2,…) :typ {ograniczenia}

Tak samo jak w przypadku atrybutów istnieje możliwość

zdefiniowania dodatkowych ograniczeń i informacji

Podstawowym ograniczeniem jest

{query} – operacja jest zapytaniem. Nie powoduje zmian stanu obiektu

Dodatkowo często oznacza się operacje zgłaszające wyjątki

<<exception>>

Page 11: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Operacje to procesy, które klasa potrafi wykonać

Pełne określenie operacji posiada składnię:

Operacje klasy

[widoczność] nazwa(parametr1, parametr2,…) :typ {ograniczenia}

Operacje mogą mieć również przypisane warunki wstępny i

końcowy

Warunek wstępny określa w jakim stanie muszą znajdować się pewne

elementy systemu by operacja wykonała się prawidłowo

Np. pre: parametr1 != null

Warunek końcowy określa oczekiwany stan elementu systemu po

wykonaniu operacji

Np. post: wynik != null, wynik instanceof artykuły

Page 12: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Najsłabszym rodzajem relacji między klasami jest zależność

Zmiana w jednej z klas wpływa „jakoś” na drugą.

Zależność ta jest zwykle jednokierunkowa.

Oznacza się ją przerywaną linią ze strzałką określającą kierunek

relacji

Relacje - zależność

+ Klasa 1 + Klasa 2<<zależność>>

Page 13: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - zależność Do typowych zależności należą:

<<call>> - operacje klasy E_1 wywołują operacje klasy E_2

<<create>> – klasa E_1 tworzy instancje klasy E_2

<<instantiate>> – obiekt E_1 jest instancją klasy 2

<<use>> - aby zaimplementować klasę E_1 niezbędna jest klasa E_2

+ E_1 + E_2<<zależność>>

Page 14: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - asocjacja Asocjacja reprezentuje czasowe powiązanie między obiektami dwóch klas. Obiekty te jednak są od siebie niezależne.

Ich czas życia może być różny. Asocjacja jest równorzędnym do atrybutu sposobem zapisu cech klasy

+ Klient

- Nazwisko : String

- Imie : String

- Adres : String

- Identyfikator : int

+ Rezerwacja

- Nr_pokoju : int

- Od_kiedy : Date

- Id_kl : int

- Do_kiedy : Date

+ sklada 1..1 + {Od_kiedy<Do_kiedy} 0..*

+ asocjacja

krotność

warunek

Page 15: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

+ Klient_1

+ Klient

+ Rezerwacja_1

+ Rezerwacja

+ sklada 1..1 + {Od_kiedy<Do_kiedy} 0..*

+ sklada 1..1 + {Od_kiedy<Do_kiedy} 0..*

Diagram klas

Relacje - asocjacja Nawigowalność Określa jaka jest wiedza o sobie nawzajem obiektów uczestniczących w relacji

Jedno i dwukierunkowa

Klient zna swoje rezerwacje Rezerwacja nie ma informacji o kliencie

Możliwa jest nawigacja w obie strony

Page 16: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - asocjacja Klasa asocjacyjna Zawiera informacje dotyczące samej relacji asocjacji a nie przechowywane

przez żaden z połączonych obiektów Jedno i dwukierunkowa

+ Klient + Rezerwacja+ sklada 1..1 + {Od_kiedy<Do_kiedy} 0..*

+ zamowienie

- Data_przyjecia : Date

- Sposob_rez : String

- potwierdzenie : boolean

Page 17: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - asocjacja Asocjacja kwalifikowana Wskazuje konkretny atrybut danej klasy zapewniający unikatowość relacji

Atrybut ten jest jej kwalifikatorem

+ Klient + Rezerwacja

+ zamowienie

Id_pokoju 1 *

Page 18: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - agregacja

Agregacja reprezentuje relację całość – część

Część może należeć do kilku całości a jej czas życia jest od nich

niezależny

+ Orkiestra + Karta muzyka

- miejsce w orkiestrze : String

- Nazwisko : String

- Imie : String

- Instrument : String

- Data przyjecia : Date

- Data zwolnienia : Date

Page 19: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - kompozycja

kompozycja reprezentuje relację całość – część

Część należy tylko do jednej całości a jej czas życia jest od niej

zależny. Jest jednym z komponentów z których składa się całość

+ Czasopismo

- Tytul : String

- Wydawnictwo : String

- ISBN : String

+ Tom

- Numer : String

- Rocznik : int

Usunięcie całości powoduje usunięcie wszystkich jego części

Page 20: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - uogólnienie

Uogólnienie tworzy hierarchię klas

Relacje wskazują klasę ogólną i klasy bardziej szczegółowe

Dziedziczenie jest jedną z technik uogólniania

+ magazyn

+ wyszukaj()

+ sortowanie()

+ magazyn podreczny

+ wyszukaj()

+ sortowanie()

+ magazyn surowcow

+ wyszukaj()

+ sortowanie()

+ magazyn produktow

+ wyszukaj()

+ sortowanie()

Page 21: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - Klasyfikacja

Reprezentuje związek między obiektem i klasami

Obiekt może należeć jednocześnie do wielu klas - typów

Ograniczenia przynależności do klas

{disjoint} – obiekt może należeć tylko do jednej klasy naraz

{overlaping} – obiekt może należeć do wielu klas, posiadać wiele

typów

{complete} – prezentowana lista podklas jest kompletna, nie może

powstać nowa podklasa

{incomplete} – mogą powstać nowe podklasy

Page 22: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Relacje - Klasyfikacja

Reprezentuje związek między obiektem i klasami

Obiekt może należeć jednocześnie do wielu klas - typów

{overlaping},

{incomplete}

{disjoint},

{complete}

+ wydawnictwo

+ ogolne

+ specjalizowane

+ ksiazka

+ czasopismo

Page 23: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Klasa abstrakcyjna

Klasa abstrakcyjna reprezentuje wirtualny byt grupujący wspólną

funkcjonalność kilku klas. Posiada ona sygnatury operacji (czyli

deklaracje, że klasy tego typu będą akceptować takie

komunikaty), ale nie definiuje ich implementacji.

Klasa abstrakcyjna nie posiada własnych instancji obiektów.

Na diagramie oznaczana jest kursywą w nazwie klasy lub

słowem {abstract}

Page 24: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Uogólnienia – hierarchia klas

Klasa abstrakcyjna

hhj+ Osoba

{root}

+ Pracownik obslugi kina

+ Kasjer+ Pracownik dzialu informacji + Operator projektora

+ Kasjer biletowy{leaf}

+ Kasjer gastronomiczny{leaf}

Klasa najwyższa

w hierarchii

Klasa najniższa

w hierarchii

Żadna fizyczna osoba nie jest

bezpośrednio pracownikiem

obsługi kina

Page 25: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Proces tworzenia diagramu klas - propozycja

•Zidentyfikowanie i nazwanie klas

•Połączenie klas z wykorzystaniem asocjacji

•Zidentyfikowanie i nazwanie atrybutów i operacji

•Określenie cech asocjacji (nazwa, role, nawigacja, liczebność,

agregacja, kwalifikacja)

•Opracowanie innych rodzajów związków (uogólnień, zależności,

realizacji)

•Wyspecyfikowanie atrybutów i operacji według składni

•Opracowanie diagramów obiektów

Diagram klas

Page 26: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Przykład – telefonia komórkowa

+ Biling

+ Korespondencja

+ Faktura + Pozycja

+ Klient

+ Karta SIM + Taryfa

+ Komorka

+ SalonFirmowy

+ wlasciciel 1..1

+ komunikacja 0..*

+ przedmiot sprz. 1..*

+ zestawienie 1..1

+ rozliczenie 0..*

+ zbior dok. 1..1

+ zbior dok. 1..1

+ zest. polaczen 0..*

+ wlasciciel 1..1

+ numer 1..*

+ wlasciciel 1..1

+ produkt 1..*

+ nosnik pamieci 0..*

+ cennik 1..1

+ produkt 10..*

+ punkt sprzedazy 1..*

Page 27: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram klas

Przykład – księgarnia wysyłkowa

+dodajPozycję()

+usuńPozycję()

+przekazPozycję()

+obliczCenęBrutto()

+wyczyśćKoszyk()

+wyszukaj()

-Autor : string

-tytuł : string

-wydawca : string

-ISBN : String

-dataWydania : Date

-cenaNetto : Decimal

-stawkaVat : Byte

Książka

+sporzadź()

+ustalDatę()

+zmieńFormę()

+zmieńStatus()

+wskazNiezrealizowane()

+wyliczWartość()

-nrZamówienia : String

-dataZamówienia : Date

-formaZapłaty : String

-status : String

Zamówienie

+sporzadź()

+zaznaczPłatność()

-nrFaktury : String

-dataWystawienia : Date

-dataPłatności : Date

-Zapłacona : Boolean

Faktura

+obliczKosztBrutto()

+dodajKoszt()

-formaDostarczenia : String

-kosztNetto : Decimal

-stawkaVat : Byte

Dostawa

+aktualizuj()

#telefon : String

#ulica : String

#nrDomu : String

#nrLokalu : String

#kodPocztowy : String

#miasto : String

Klient

+weryfikujDane()

+obciąż()

-typKarty : String

-nrKarty : String

-dataWazności : Date

-limit : Single

KartaKredytowa

+zaloguj()

-login : String

-hasło : String

Użytkownik

+zmieńDostęp()

-poziomDostępu : Byte

UżytkownikZaawansowany

-nazwaFirmy : String

-NIP : String

KlientFirmowy -imię : String

-nazwisko : String

KlientIndywidualny

1..* 0..* 1

0..*

1..*

0..*

1

1..3

0..* 1

0..*

1

Page 28: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagramy UML 2.0

Diagram sekwencji

(sequence diagram)

*.skw *.sd

10/13

• Opisuje sekwencje

komunikatów wymienianych

między obiektami

Recepcjonista :

Rezerwacja :

otwórzRezerwacje()

BazaDanych :

sprawdzDostepnoscPokoi()

wprowadzDane()dokonajRezerwacji()

zamknij()

Page 29: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

„Diagramy sekwencji kładą nacisk na porządek

w jakim dzieją się rzeczy”

Służą przede wszystkim do pokazywania interakcji między

poszczególnymi elementami systemu

Pokazują „czas życia” obiektów w stosunku do innych

współuczestniczących w obsłudze danego zadania

Z reguły pokazują jeden scenariusz, nie wszystkie

możliwe

Page 30: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Elementy diagramu

Obiekt

Okno_logowaniaReprezentuje obiekt w systemie

lub jeden z jego komponentów

Linia życia. Pokazuje czas istnienia

danego obiektu.

Czas

Page 31: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Elementy diagramu

Aktywacja

Obszar aktywacji. Reprezentuje

czas, w którym obiekt jest aktywny

(wykonuje jakieś zadanie)

Znacznik zerwania. Pokazuje

jawnie chwilę w której dany obiekt

przestaje istnieć

Okno_logowania

Page 32: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Elementy diagramu

Komunikat Pokazuje przepływ sterowania

(i informacji) między poszczególnymi

obiektami

Istnieje kilka rodzajów komunikatów

Okno_logowania

Skrypt_logowania

Sprawdź_logowanie

Page 33: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Elementy diagramu

Komunikat

Pełne przekazanie sterowania do

drugiej instancji

Wstrzymanie operacji do czasu

uzyskania odpowiedzi

Komunikat prosty

Komunikat synchroniczny

Komunikat asynchroniczny

Komunikat zwrotny

Kontynuowanie operacji bez

oczekiwania na odpowiedź

Powrót z wywołania podprogramu

Page 34: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Przepływy komunikatów

Przepływ zagnieżdżony

Sprzedawca Zamówienie

pobierzWartość

cena

Artykuł

pobierzAdres

Page 35: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Komunikaty mogą być opisane w sposób sformalizowany

Poprz – lista komunikatów poprzedzających

Warunek – warunek wysłania komunikatu

Iter – ilość powtórzeń komunikatu

Nr sekw – numer określający kolejność komunikatu

Wynik – nazwa zmiennej zwracanej

Operacja – nazwa wywoływanej operacji wraz z parametrami

poprz / [warunek] *[iter] nr sekw : wynik := operacja(lista)

Page 36: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Komunikaty mogą być opisane w sposób sformalizowany

przesuń(1,2)

wyn1:=przesuń(5,5),

*[1..5]: wyn1 := przesuń(5,7)

[z>0]: wyn1 := przesuń(5,7),

A3,B4 / [x<0] *[1..4] C3.1: wyn2 := pobierzLokację(wyn1)

[dostęp do bazy] *[Dla każdego rekordu] 6: DaneWyj:=Formatuj(DaneWej,Format)

[drukarka zajęta] zapisz_do_kolejki(wydruk)

Przykłady komunikatów

poprz / [warunek] *[iter] nr sekw : wynik := operacja(lista)

Page 37: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Przepływy komunikatów

Warunki pozwalają na rozdzielenie

komunikatów i wprowadzenie

alternatywnych linii życia obiektów

Obiekt1 Obiekt2

[x>0]Komunikat1

[x<=0]Komunikat2

Alternatywna linia życia obiektu 2

Page 38: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

Przepływy komunikatów

Możliwe jest również alternatywne

wykorzystywanie dodatkowych

obiektów

Obiekt wykorzystywany tylko

w przypadku x<=0

Obiekt1 Obiekt2

[x>0]Komunikat1

[x<=0]Komunikat2

Obiekt3

Komunikat3

Page 39: Diagramy UML 2 - miki.cs.pollub.plmiki.cs.pollub.pl/own/wp-content/uploads/2013/03/W2_Diagramy-UML-1... · W UML-u wyróżniono 4 poziomy widoczności + publiczny – widoczny z każdego

Diagram sekwencji

CDN…