320 likes | 556 Vues
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)
E N D
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)
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
Diagram sekwencji Diagram kolaboracji x y z 1.1: a1.2: c x y a b 1.1.1: b c z Diagramy interakcji
Obiekt Linia życia name : Class other bodziec name (…) Aktywacja new (…) : Class usunięcie powrót utworzenie Diagram sekwencji
Synchroniczna –nadawca zawiesza działanie, dopóki odbiorca nie zwróci sterowania Asynchroniczna – nadawca nie czeka na odpowiedź, kontynuuje działanie Powrót Rodzaje wiadomości
obiekt połączenie stereotyp bodziec window : Controller : Window window «parameter» stereotyp 1: displayPositions (window) ograniczenie 1.1.3.1 add (self) wire contents {new} 1.1 *[i := 1..n]: drawSegment (i) {new}: Line «local» line wire :Wire 1.1.2: create (r0, r1)1.1.3: display (window) stereotyp «self» ograniczenie 1.1.1a: r0 := position () 1.1.1b: r1 := position () left : Bead right : Bead Diagram kolaboracji redisplay ()
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ę
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 …
Podróżny Konto klienta DBMS System rezerwacji lotów :System rezerwacji zmień plan podróży pobierz konto użytk. wybierz segment zmień dane pokaż plan pokaż detale pobierz plan dostępne loty Diagram sekwencji: zmień plan lotu ::
1: zmień plan lotu 2: pobierz konto użytk.3: pobierz plan : System rezerwacji 4: pokaż plan Konto klienta DBMS Podróżny 8: dostępne loty System rezerwacji lotów Diagram kolaboracji: zmień planu lotu 5: wybierz segment 7: zmień dane 6: pokaż detale
4: pobierz konto użytkownika 1: zmień plan lotu : Podróżny Formularz planu lotu Protokół DBMS : Konto klienta DBMS 10: pokaż 9: wyświetl 3: pobierz konto użytk. 2: Utwórzmodyfikator Modyfikator planu lotu 5: utwórz 8: utwórz Konto Plan lotu Protokół S.R.L. : System Rezerwacji Lotów Zmień plan lotu: dokładniejszy model 7: pobierz plan 6: pobierz plan
ON ON ON OFF 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 ON
on on off off Diagram maszyny stanowej (automatu) Lamp On Lamp Off
stop Diagram stanów UML Stan Pseudostan początkowy Wyzwalacz (zdarzenie) Ready Przejście stop /ctr := 0 Done Stan końcowy Akcja
threshold time 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
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ścijakiegoś 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)
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) Start / stan początkowy Koniec całej aktywności (wszystkich przepływów) Koniec jednego przepływu w ramach aktywności Obiekt
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
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ń