Temat jest realizowany przez dwa kolejne zajęcia. Podczas realizacji jest modyfikowany także opracowany wcześniej diagram struktury klas.
Celem zadania jest wykonanie dwóch diagramów modelujących interakcje pomiędzy obiektami:
sekwencji (przebiegu) – ang. sequence diagram, message sequence chart oraz
diagramów współdziałania (kooperacji, kolaboracji, komunikacji) – ang. collaboration diagram, communication diagram
Oba diagramy obrazują 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 i współdziałania są semantycznie równoważne: stosując różną notację 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).
Zamodeluj scenariusze dwóch przypadków użycia w postaci diagramów sekwencji i diagramów współdziałania. Podczas modelowania przestań traktować system, jak czarną skrzynkę. Pokaż, że obiekty są tworzone, wyszukiwane, dodawane, wiązane.
Równocześnie, uzupełniaj zbudowany wcześniej diagram struktury klas:
dla istniejących klas dodawaj metody i związki.
możesz dodać kontenery obiektów
możesz dodać sztuczne klasy typu Obsługa zamówienia
Wskazówki:
Jeżeli korzystasz z Visio, zacznij od pliku z diagramem struktury
Dodaj diagram przypadków użycia i narysuj wybrane dwa wybrane przypadki użycia wraz z aktorami
Dodaj nowy diagram - diagram sekwencji.
Przeanalizuj przypadek użycia
Zadecyduj, które obiekty będą brały udział w scenariuszu. Możesz dodawać dodatkowe klasy na diagramie struktury.
Kiedy dodasz na diagramie obiekty, ustal ich klasę (kalsyfikator). Jeśli wybierzesz klasę aktora, postać graficzna zmieni się (zamiast prostokąta pojawi się symbol aktora)
Dodawaj kolejne komunikaty na diagramie sekwencji. Komunikaty powinny być opisane nazwami metod (lub zwracanymi przez nie wartościami). W miarę potrzeb, możesz dodawać metody do klas (lub dodadzą się same, jeżeli poprawne określisz klasę obiektu.
Możesz pominąć linie aktywności na diagramach sekwencji. Visio ma z tym problemy
Nie zapomnij uwzględnić na diagramach stereotypowych komunikatów «create» i «destroy».
-
Na diagramach współdziałania dodaj numery pokazujące kolejność diagramów w sekwencji. W miarę możliwości numery te powinny być spójne z numeracją stosowaną w scenariuszach przypadków użycia.