Table of Contents
Zadanie 5 Diagramy sekwencji
Celem zadania jest wykonanie dwóch diagramów:
- diagramu struktury klas (uzupełnienie modelu dziedziny)
- sekwencji (przebiegu) – ang. sequence diagram, message sequence chart
Diagram sekwencji obrazuje podstawowy paradygmat modelowania/programowania obiektowego: system jest siecią połączonych ze sobą obiektów, które komunikują się za pomocą przesyłanych komunikatów.
Diagramy sekwencji pokazują scenariusz wymiany komunikatów pomiędzy obiektami. Mogą na nich występować zarówno obiekty wchodzące w skład systemu, jak i obiekty zewnętrzne (aktorzy).
Diagramy opisujące interakcję powinny być spójne z diagramami opisującymi strukturę:
- Obiekt może przyjąć tylko te komunikaty, które są zdefiniowane w jego interfejsie. Interfejs jest zdefiniowany przez wyliczenie metod. Widoczne atrybuty mogą być opakowane przez metody set() i get().
- Wysłanie komunikatu jest utożsamiane z wywołaniem metody.
- Aby nadawca mógł przesłać komunikat do odbiorcy, obie strony muszą być połączone jakąś formą kanału komunikacji. Implikuje to istnienie w modelu struktury związku typu asocjacja (agregacja, kompozycja) lub zależność.
- W praktycznej implementacji - aby móc przesłać komunikat do obiektu, czyli wywołać jego metodę, musi być on
- obiektem globalnym (zależność),
- parametrem metody nadawcy (zależność),
- atrybutem nadawcy typu wskaźnik, referencja (ascocjacja lub agregacja)
- polem nadawcy (kompozycja).
Do przeczytania
Do zrealizowania
Zamodeluj realizację scenariuszy dwóch przypadków użycia w postaci diagramów klas i diagramów sekwencji. Podczas modelowania realizacji przypadku użycia system nie jest traktowany, jak czarna skrzynka. Należy pokazać, że obiekty są tworzone, wyszukiwane, dodawane, wiązane.
Równocześnie, uzupełniaj zbudowany wcześniej diagram struktury klas:
- dodaj klasy interfejsu za pomocą których komunikuje się aktor
- dodaj klasy odpowiedzialne za koordynację prztwarzania (tzw. logikę biznesową)
- dla istniejących klas dodawaj metody i związki.
- możesz dodać kontenery obiektów
PlantUML --narzedzie do generacji diagramów z opisów tekstowych otwórz...
Przykład
Diagram klas
Na rysunku pokazano diagram klas. Logicznie obejmuje on trzy grupy klas:
- interfejsu: FormularzWypożyczeń
- przetwarzania: ObsługaWypozyczeń
- modelu dziedziny oraz przechowywania danych (wszystkie pozostałe zaznaczone na niebiesko)
Na diagramie klas zaznaczono metody. Metody będą komunikatami na diagramie sekwencji.
Diagram sekwencji
Diagram pokazuje realizację rejestracji wypożyczenia (ale bez przebiegów alternatywnych).
- Aktor (bibliotekarz) wywołuje funkcję formularza wypożyczeń wypoż_form
- Formularz woła metodę
wypożycz()
obiektu klasy ObsługaWypozyczeń. Zwróć uwagę, że wołana jest metoda docelowego obiektu i jest widoczna jako komunikat - Następnie wyszukiwany jest egzemplarz:
egz=znajdzEgzemplarz(sygn)
w katalogu - Dalej szukany jest czytelnik
znajdzCzytelnika(id_czyt)
w bazie czytelników - Następnie, tworzone jest wypożyczenie i ustawiane są jegoparametry:
«create»
- Na końcu następuje zwrócenie wartości
true
do formularza, który wywołuje swoją metodęreportSuccess()
Przykład w PlantUML. Aby edytować skopiuj link i wklej w edytorze PlanUML.
Modelowanie przebiegów alternatywnych
Do modelowania przepływu sterowania w UML 2.0 stosujemy regiony:
alt
- pokazuje co najmniej dwie możliwości, odpowiednik if-elseopt
- fragment wykonywany opcjonalnie (odpowiednik if)loop
- pętlaref
- wywołanie innego diagramu sekwencji (można odwzorować konstrukcję«include»
przypadków użycia)
Uwaga: w Visio 2007/2010 do narysowania regionów na diagramach sekwencji można skorzystać z zewnętrznego przybornika : Wykorzystaj zewnętrzny przybornik dla SysML