uml – unified modeling language (2)
DESCRIPTION
UML – Unified Modeling Language (2). Bartosz Baliś, Na podstawie, m.in.: Gunnar Övergaard, Bran Selic, Conrad Bock and Morgan Björkander : UML Behavioral Modeling (tutorial) Agile modeling: http://www.agilemodeling.com. Modele zachowania. Diagramy interakcji (interaction diagrams) - PowerPoint PPT PresentationTRANSCRIPT
UML – Unified Modeling Language (2)
Bartosz Baliś,Na podstawie, m.in.: Gunnar Övergaard, Bran Selic, Conrad Bock and Morgan Björkander: UML Behavioral Modeling (tutorial)Agile modeling: http://www.agilemodeling.com
Modele zachowania Diagramy interakcji (interaction diagrams)
Diagramy sekwencji (sequence) Diagramy kolaboracji (współpracy)
(collaborations) Diagramy stanu (statecharts) Diagramy aktywności (activity graphs)
Diagramy interakcji
Interakcje Interakcja: zbiór komunikatów pomiędzy
instancjami, tj. wywołania operacji, tworzenie i usuwanie instancji.
Komunikaty są częściowo uporządkowane w czasie
Rodzaje diagramów interakcji: Diagramy sekwencji Diagramy kolaboracji
Diagramy interakcji
x y z
Diagram sekwencji
a
b
c
Diagram kolaboracji
x y
z
1.1: a1.2: c
1.1.1: b
Diagram sekwencji
name : Class Obiekt
Linia życia
Aktywacja
other
bodziec
name (…)
powrót
: Class
utworzenie
new (…)
usunięcie
Rodzaje wiadomości
Synchroniczna – nadawca zawiesza działanie, dopóki odbiorca nie zwróci sterowania
Asynchroniczna – nadawca nie czeka na odpowiedź, kontynuuje działanie
Powrót
Rodzaje strzałek – przykład
Przykład – zapisywanie się studenta na seminarium
Diagram kolaboracji
redisplay ()bodziec
1: displayPositions (window)
1.1 *[i := 1..n]: drawSegment (i)
: Controller : Window
wire :Wire{new}: Line
left : Bead right : Bead
1.1.1a: r0 := position () 1.1.1b: r1 := position ()
wire
«local» line
contents {new}
window
«self»
window «parameter»
1.1.2: create (r0, r1)1.1.3: display (window)
1.1.3.1 add (self)
obiekt połączenie
stereotyp
stereotyp
stereotyp
ograniczenie
ograniczenie
Kiedy używać diagramów interakcji? Gdy chcemy pokazać interakcje pomiędzy
instancjami Aby rozpoznać interfejsy klas Użycie diagramów sekwencji
Aby lepiej pokazać kolejność między wiadomościami
Użycie diagramów kolaboracji Aby lepiej pokazać architekturę
Przykład: system rezerwacji lotu
Przypadek użycia: Zmień plan lotu
Aktorzy: podróżny, konto klienta db, system rezerwacji lotów
Warunki wstępne: Podróżny się zalogował Podstawowy przebieg:
Podróżny wybiera opcję ‘zmień plan lotu’ System pobiera konto użytkownika i plan lotu z bazy danych klientów System prosi podróżnego, aby wybrał segment planu lotu, który chce zmienić;
podróżny wybiera segment System prosi podróżnego o nowe informacje o odlocie i przylocie; podróżny
dostarcza tych informacji Jeśli loty są dostępne, to … … System wyświetla podsumowanie transakcji.
Alternatywny przebieg: Jeśli nie ma dostępnych lotów, to …
Diagram sekwencji: zmień plan lotu
:System rezerwacjiPodróżny System rezerwacji lotów
zmień plan podróży
pobierz konto użytk.
pobierz planpokaż plan
wybierz segment
pokaż detale
zmień danedostępne loty
::
Konto klienta DBMS
Diagram kolaboracji: zmień planu lotu
Podróżny Konto klienta DBMS
System rezerwacji lotów
: System rezerwacji
7: zmień dane
2: pobierz konto użytk.3: pobierz plan
4: pokaż plan
8: dostępne loty
1: zmień plan lotu5: wybierz segment
6: pokaż detale
Zmień plan lotu: dokładniejszy model
: Podróżny : Konto klienta DBMS
: System Rezerwacji Lotów
Modyfikator planu lotu
Protokół S.R.L.
Formularz planu lotu Protokół DBMS
Plan lotuKonto
6: pobierz plan
7: pobierz plan1: zmień plan lotu
10: pokaż2: Utwórz modyfikator
5: utwórz 8: utwórz
3: pobierz konto użytk.
4: pobierz konto użytkownika
9: wyświetl
Diagramy stanu
ONONONON
Automat Maszyna, w której wyjściowe zachowanie zależy nie
tylko od aktualnych bodźców na wejściu, ale też historii poprzednich bodźców
Posiada wewnętrzny stan, który reprezentuje wczesniejsze doświadczenie
ONONONONONONONON ONONONON
OFFOFFOFFOFF
off
on
Diagram maszyny stanowej (automatu)
Lamp OnLamp OnLamp OnLamp On
Lamp OffLamp OffLamp OffLamp Off
off
on
Diagram stanów UML
ReadyReadyReadyReady
stop
/ctr := 0stop
StanStanStanStan
Wyzwalacz Wyzwalacz (zdarzenie)(zdarzenie)Wyzwalacz Wyzwalacz (zdarzenie)(zdarzenie)
AkcjaAkcjaAkcjaAkcja
PseudostanPseudostanpoczątkowypoczątkowyPseudostanPseudostanpoczątkowypoczątkowy
PrzejściePrzejściePrzejściePrzejście
Stan Stan końcowykońcowy
Stan Stan końcowykońcowy
DoneDoneDoneDone
Do czego nadaje się model stanów? Maszyna stanów nadaje się do opisu
zachowania dyskretnego, sterowanego zdarzeniami (event-driven) Nie nadaje się do modelowania zachowania
ciągłego
timetime
thresholdthreshold
Zachowanie sterowane zdarzeniami Typy zdarzeń
interakcje: Synchroniczne wywołanie operacji obiektu (call event) Asynchroniczne otrzymanie sygnału (signal event)
wystąpienie chwili w czasie (time event) upłynięcie okresu czasu nadejście określonej daty / czasu
zmiana wartości jakiegoś bytu (change event) Instancja zdarzenia = wystąpienie zdarzenia
określonego typu występuje w określonej chwili czasowej, nie jest rozciągła
w czasie (nie trwa)
Przykład – wpisywanie numeru PESEL
Diagramy aktywności
Diagramy aktywności UML-owe odpowiedniki diagramów
przepływu Model przepływ wraz z decyzjami,
alternatywnymi i równoległymi ścieżkami, itp.
Przykład – pobierz pieniądze z bankomatu
Łączenie
Scalenie
Elementy diagramu (1)Akcja
Przepływ sterowania (control flow)
Koniec całej aktywności (wszystkich przepływów)
Koniec jednego przepływu w ramach aktywności
Obiekt
Start / stan początkowy
Elementy diagramu (2)Rozgałęzianie i scalanie –
rozgałęzianiu towarzyszy warunek
Rozwidlenie i łączenie – począteki koniec współbieżnych wątków.
Różnica między scalaniem i łączeniem Łączenie sychronizuje wchodzące przepływy – dalszy przepływ może się
wykonać dopiero, gdy wszystkie wchodzące dojdą do tego punktu Scalanie nie synchronizuje – każdy przepływ „przechodzi osobno”
i akcja następująca po scalaniu może być wykonana kilka razy (dla każdego wchodzącego przepływu)
Elementy diagramu (3)Przepływ obiektów
Przepływ obiektów – notacja skrócona
Tory – podział akcji pomiędzy obiekty
Zastosowanie diagramów aktywności Modelowanie przepływu sterowania / danych
(obiektów) … ... a nie modeli sterowanych zdarzeniami (maszyn
stanowych) Dobrze nadają się do modelowania
skomplikowanych scenariuszy Dobrze modelują alternatywne scenariusze
UML – podsumowanie
Pięć punktów widzenia na system Przypadków użycia (use case view) – przypadki użycia
i zachowanie systemu z punktu widzenia użytkowników końcowych, analityków i testerów Diagramy przypadków użycia, interakcji
Projektu (design view) – klasy, interfejsy, schematy współpracy, które tworzą podstawowy słownik problemu i jego rozwiązania Diagramy klas, obiektów, interakcji
Procesów (process view) – wątki i procesy, które składają się na współbieżne przetwarzanie w systemie, synchronizacja Diagramy aktywności
Implementacji (implementation view) – komponenty i pliki, które składają się na fizyczną instalację (release) systemu Diagramy komponentów
Wdrożenia (deployment view) – obejmują węzły, czyli topologię sprzętową, na której działa system Diagramy wdrożeń