Diagramy interakcji, współpracy i sekwencji z przykładami
Co to jest diagram interakcji?
Schemat interakcji są używane w języku UML do nawiązywania komunikacji między obiektami. Nie manipuluje danymi związanymi z konkretną ścieżką komunikacyjną. Diagramy interakcji skupiają się głównie na przekazywaniu komunikatów i tym, jak te komunikaty tworzą jedną funkcjonalność systemu. Diagramy interakcji mają na celu pokazanie, w jaki sposób obiekty będą realizować określone wymagania systemu. Najważniejszym elementem diagramu interakcji jest linia życia i komunikaty.
Różne elementy UML zazwyczaj posiadają diagramy interakcji. Szczegóły interakcji można przedstawić za pomocą kilku notacji, takich jak diagram sekwencji, diagram czasowy, diagram komunikacji/współpracy. Diagramy interakcji rejestrują dynamiczne zachowanie dowolnego systemu.
Poniżej przedstawiono różne typy diagramów interakcji zdefiniowane w UML:
- Diagram sekwencyjny
- Schemat współpracy
- Schemat czasowy
Cel diagramu sekwencji w Diagram UML-a polega na wizualizacji sekwencji przepływu komunikatów w systemie. Diagram sekwencji w inżynierii oprogramowania przedstawia interakcję między dwiema liniami życia jako uporządkowaną w czasie sekwencję zdarzeń.
Diagram współpracy w języku UML nazywany jest także diagramem komunikacji. Celem diagramu współpracy jest podkreślenie strukturalnych aspektów systemu, tj. sposobu, w jaki łączą się różne linie życia w systemie.
Diagramy czasowe skupiają się na momencie, w którym wiadomość jest wysyłana z jednego obiektu do drugiego.
Cel diagramu interakcji
Diagramy interakcji pomagają w wizualizacji interaktywnego zachowania systemu. Diagramy interakcji służą do przedstawienia sposobu, w jaki jeden lub więcej obiektów w systemie łączy się i komunikuje ze sobą.
Diagramy interakcji skupiają się na dynamicznym zachowaniu systemu. Diagram interakcji zapewnia nam kontekst interakcji pomiędzy jedną lub większą liczbą linii życia w systemie.
In UMLDiagramy interakcji służą następującym celom:
- Diagramy interakcji służą do obserwacji dynamicznego zachowania systemu.
- Diagram interakcji wizualizuje komunikację i kolejność przekazywania komunikatów w systemie.
- Diagram modelowania interakcji przedstawia aspekty strukturalne różnych obiektów w systemie.
- Diagram interakcji przedstawia uporządkowaną sekwencję interakcji w systemie.
- Diagram interakcji umożliwia wizualizację danych w czasie rzeczywistym za pomocą języka UML.
- Diagramy interakcji UML można wykorzystać do wyjaśnienia architektury systemów obiektowych i rozproszonych.
Ważna terminologia
Diagram interakcji zawiera linie życia, wiadomości, operatory, niezmienniki stanu i ograniczenia.
linia życia
Lina ratunkowa reprezentuje pojedynczego uczestnika interakcji. Opisuje, w jaki sposób instancja określonego klasyfikatora uczestniczy w interakcji.
Linia życia reprezentuje rolę, jaką instancja klasyfikatora może odgrywać w interakcji. Poniżej przedstawiono różne atrybuty linii życia,
- Imię
- Służy do wskazania linii życia w ramach określonej interakcji.
- Nazwa koła ratunkowego jest opcjonalna.
- Typ
- Jest to nazwa klasyfikatora, którego instancją jest linia życia.
- Selektor
- Jest to warunek logiczny używany do wybrania konkretnej instancji spełniającej wymagania.
- Atrybut selektora jest również opcjonalny.
Oznaczenie linii życia wyjaśniono w sekcji dotyczącej notacji.
Wiadomości
Wiadomość to specyficzny rodzaj komunikacji między dwoma liniami życia w interakcji. Wiadomość obejmuje następujące działania,
- Komunikat wywoławczy służący do wywołania operacji.
- Wiadomość o utworzeniu instancji.
- Wiadomość o zniszczeniu instancji.
- Do wysyłania sygnału.
Gdy linia życia otrzymuje wiadomość wywoławczą, działa jako prośba o wywołanie operacji, która ma podobny podpis, jak określony w wiadomości. Gdy linia życia wykonuje wiadomość, ma ona punkt skupienia kontroli. W miarę postępu interakcji w czasie punkt skupienia kontroli przesuwa się między różnymi liniami życia. Ten ruch nazywa się przepływem kontroli.
Poniżej przedstawiono komunikaty używane w diagramie interakcji systemowej:
Nazwa wiadomości | Znaczenie |
---|---|
Syncokropna wiadomość | Nadawca komunikatu czeka, aż odbiorca zwróci kontrolę nad wykonaniem komunikatu. |
Wiadomość asynchroniczna | Nadawca nie czeka na odpowiedź od odbiorcy; zamiast tego kontynuuje wykonywanie następnego komunikatu. |
Wiadomość zwrotna | Odbiorca wcześniejszej wiadomości zwraca kontrolę nad nadawcą. |
Tworzenie obiektu | Nadawca tworzy instancję klasyfikatora. |
Zniszczenie obiektu | Nadawca niszczy utworzoną instancję. |
Znaleziono wiadomość | Nadawca wiadomości znajduje się poza zakresem interakcji. |
Utracona wiadomość | Komunikat nigdy nie dociera do celu i ginie w interakcji. |
Niezmienniki stanu i ograniczenia
Gdy instancja lub linia życia otrzymuje wiadomość, może to spowodować zmianę jej stanu. Stan to stan lub sytuacja w czasie życia obiektu, w którym spełnia on pewne ograniczenie, wykonuje pewne operacje i czeka na pewne zdarzenie.
Na diagramie interakcji nie wszystkie komunikaty powodują zmianę stanu instancji. Niektóre komunikaty nie mają wartości niektórych atrybutów. Nie ma żadnych skutków ubocznych na stan obiektu.
OperaTor
Operator określa operację, w jaki sposób operandy będą wykonywane. Operatorzy w UML obsługują operacje na danych w formie rozgałęzień, jak również iteracji. Różne operatory mogą być używane w celu zapewnienia użycia iteracji i rozgałęzień w modelu UML. Operatory opt i alt są używane do operacji rozgałęzień. Operator pętli jest używany w celu zapewnienia operacji iteracyjnych, w których warunek jest wykonywany wielokrotnie, aż do uzyskania satysfakcjonującego wyniku. Operator break jest używany wewnątrz operacji pętli lub iteracji. Zapewnia, że pętla zostanie zakończona za każdym razem, gdy napotkany zostanie operator break. Jeśli warunek break nie jest określony, pętla wykonuje się nieskończoną liczbę razy, co powoduje awarię programu.
Poniżej przedstawiono operatory używane w diagramie interakcji:
OperaTor | Imię | Znaczenie |
---|---|---|
Optować | Option | Operand jest wykonywany, jeśli warunek jest prawdziwy. np. Jeśli jeszcze |
inny | alternatywa | Operand, którego warunek jest prawdziwy, zostaje wykonany. np. przełącznik |
Pętla | Pętla | Służy do zapętlenia instrukcji na określony czas. |
przerwa | przerwa | Przerywa pętlę, jeśli warunek jest prawdziwy lub fałszywy i wykonywana jest następna instrukcja. |
Ref | Numer Referencyjny | Jest używany w odniesieniu do innej interakcji. |
Przelewem | Parallel | Wszystkie operandy są wykonywane równolegle. |
Iteracja
Na diagramie interakcji możemy również pokazać iterację za pomocą wyrażenia iteracyjnego. Wyrażenie iteracji składa się ze specyfikatora iteracji i opcjonalnej klauzuli iteracji. Nie ma z góry określonej składni iteracji UML.
W iteracji, aby pokazać, że wiadomości są wysyłane równolegle, używany jest specyfikator iteracji równoległej. Specyfikator iteracji równoległej jest oznaczony przez *//. Iterację w UML uzyskuje się za pomocą operatora pętli.
Rozgałęzienie
Na diagramie interakcji możemy przedstawić rozgałęzienie, dodając warunki ochronne do wiadomości. Warunki ochronne są używane do sprawdzania, czy wiadomość może zostać wysłana dalej, czy nie. Wiadomość jest wysyłana dalej tylko wtedy, gdy jej warunek ochronny jest prawdziwy. Wiadomość może mieć wiele warunków ochronnych lub wiele wiadomości może mieć ten sam warunek ochronny. Rozgałęzienie w UML jest osiągane za pomocą operatorów alt i opt.
Są to jedne z Najważniejszym terminologie stosowane w diagramie interakcji UML.
Rodzaje diagramów interakcji i oznaczenia
Poniżej przedstawiono różne typy diagramów interakcji zdefiniowane w UML:
- Diagram sekwencyjny
- Schemat współpracy
- Schemat czasowy
Podstawowym oznaczeniem oddziaływania jest prostokąt z pięciokątem w lewym górnym rogu prostokątnego pudełka.
Co to jest diagram sekwencji?
A Diagram sekwencyjny po prostu przedstawia interakcję między obiektami w kolejności sekwencyjnej. Celem diagramu sekwencji w języku UML jest wizualizacja sekwencji przepływu komunikatów w systemie. Diagram sekwencji przedstawia interakcję pomiędzy dwoma liniami życia jako uporządkowaną w czasie sekwencję zdarzeń.
- Diagram sekwencji przedstawia realizację scenariusza w systemie. Linie życia w systemie biorą udział w realizacji systemu.
- Na diagramie sekwencji linia życia jest reprezentowana przez pionową kreskę.
- Przepływ komunikatów pomiędzy dwoma lub większą liczbą obiektów jest reprezentowany za pomocą pionowej przerywanej linii biegnącej u dołu strony.
- W diagramie sekwencji używane są różne rodzaje komunikatów i operatorów, które opisano powyżej.
- Na diagramie sekwencji stosuje się również iterację i rozgałęzianie.
Powyższy diagram sekwencji zawiera oznaczenia linii życia i oznaczenia różnych komunikatów używanych na diagramie sekwencji, takich jak tworzenie, odpowiadanie, komunikat asynchroniczny itp.
Przykład diagramu sekwencji
Poniższy przykład diagramu sekwencji ilustruje system zamawiania w McDonald's:
Uporządkowana sekwencja zdarzeń na danym diagramie sekwencji jest następująca:
- Złożyć zamówienie.
- Wpłać pieniądze do kasy.
- Potwierdzenie zamówienia.
- Przygotowanie zamówienia.
- Zamów serwowanie.
Jeśli zmieni się kolejność operacji, może to spowodować awarię programu. Może to również prowadzić do generowania nieprawidłowych lub błędnych wyników. Każda sekwencja na powyższym diagramie sekwencji jest oznaczona za pomocą innego typu komunikatu. Nie można używać tego samego typu komunikatu do oznaczenia wszystkich interakcji na diagramie, ponieważ powoduje to komplikacje w systemie.
Należy zachować ostrożność przy wyborze zapisu wiadomości dla konkretnej interakcji. Zapis musi odpowiadać określonej sekwencji na diagramie.
Korzyści ze diagramu sekwencji
- Diagramy sekwencji służą do eksploracji dowolnej rzeczywistej aplikacji lub systemu.
- Diagramy sekwencji służą do reprezentowania przepływu komunikatów z jednego obiektu do drugiego.
- Diagramy sekwencji są łatwiejsze w utrzymaniu.
- Diagramy sekwencji są łatwiejsze do wygenerowania.
- Diagramy sekwencji można łatwo aktualizować zgodnie ze zmianami w systemie.
- Diagram sekwencji umożliwia inżynierię odwrotną i do przodu.
Wady diagramu sekwencji
- Diagramy sekwencji mogą stać się skomplikowane, gdy w systemie zaangażowanych jest zbyt wiele elementów.
- Jeżeli kolejność sekwencji komunikatów zostanie zmieniona, zostaną wygenerowane nieprawidłowe wyniki.
- Każda sekwencja musi być przedstawiona przy użyciu innej notacji wiadomości, co może być nieco skomplikowane.
- Rodzaj komunikatu decyduje o rodzaju sekwencji wewnątrz diagramu.
Czym jest diagram współpracy?
Schemat współpracy przedstawia relacje i interakcje między obiektami oprogramowania. Są one używane do zrozumienia architektury obiektów w systemie, a nie przepływu wiadomości, jak w diagramie sekwencji. Są one również znane jako „diagramy komunikacji”.
Zgodnie z programowaniem obiektowym (OOP) encja obiektu ma różne atrybuty z nią powiązane. Zazwyczaj w systemie obiektowym występuje wiele obiektów, z których każdy może być powiązany z dowolnym innym obiektem w systemie. Diagramy współpracy służą do eksploracji architektury obiektów w systemie. Przepływ wiadomości między obiektami można przedstawić za pomocą diagramu współpracy.
Korzyści ze schematu współpracy
- Nazywa się go również diagramem komunikacyjnym.
- Podkreśla strukturalne aspekty diagramu interakcji – jak łączy się linia życia.
- Jego składnia jest podobna do składni diagramu sekwencji, z tą różnicą, że linie życia nie mają ogonów.
- Wiadomości przekazywane w określonej kolejności są numerowane hierarchicznie.
- W porównaniu do diagramu sekwencji diagram komunikacji jest semantycznie słaby.
- Diagramy obiektowe są szczególnym przypadkiem diagramów komunikacyjnych.
- Pozwala skupić się na elementach, a nie na przepływie komunikatu, jak opisano na diagramie sekwencji.
- Diagramy sekwencji można łatwo przekształcić w diagram współpracy, ponieważ diagramy współpracy nie są zbyt wyraziste.
- Podczas modelowania diagramów współpracy za pomocą diagramów sekwencji niektóre informacje mogą zostać utracone.
Powyższa notacja na diagramie współpracy zawiera linie ratunkowe wraz ze złączami, pętlami własnymi, komunikatami do przodu i do tyłu używanymi na diagramie współpracy.
Wady diagramu współpracy
- Diagramy współpracy mogą stać się skomplikowane, gdy w systemie znajduje się zbyt wiele obiektów.
- Trudno jest zbadać każdy obiekt w systemie.
- Diagramy współpracy są czasochłonne.
- Obiekt zostaje zniszczony po zakończeniu programu.
- Stan obiektu zmienia się chwilowo, co utrudnia śledzenie każdej pojedynczej zmiany zachodzącej w obiekcie systemu.
Schemat współpracy Przykład
Poniższy diagram przedstawia kolejność działań w systemie zarządzania uczniami:
Powyższy schemat współpracy przedstawia system zarządzania informacją o studentach. Przepływ komunikacji na powyższym schemacie jest określony przez,
- Student prosi o zalogowanie się poprzez system logowania.
- Mechanizm uwierzytelniania oprogramowania sprawdza żądanie.
- Jeśli w bazie danych znajduje się wpis dotyczący ucznia, dostęp jest dozwolony; w przeciwnym razie zwracany jest błąd.
Co to jest diagram czasowy?
Schemat czasowy jest przebiegiem fali lub wykresem, który jest używany do opisu stanu linii życia w dowolnym momencie czasu. Jest używany do oznaczania transformacji obiektu z jednej formy w inną formę. Diagram czasowy nie zawiera notacji wymaganych w diagramie sekwencji i współpracy. Przepływ między programem oprogramowania w różnych momentach czasu jest reprezentowany za pomocą przebiegu fali.
- Jest to właściwa reprezentacja interakcji, która skupia się na określonym czasie wiadomości przesyłanych pomiędzy różnymi obiektami.
- Diagramy czasowe służą do wyjaśnienia szczegółowego przetwarzania czasu konkretnego obiektu.
- Diagramy czasowe służą do wyjaśnienia, jak obiekt zmienia się w ciągu swojego życia.
- Diagramy czasowe są najczęściej używane w systemach rozproszonych i wbudowanych.
- W UML diagramy czasowe czytane są od lewej do prawej, zgodnie z nazwą linii życia podaną przy lewej krawędzi.
- Diagramy czasowe służą do przedstawienia różnych zmian zachodzących od czasu do czasu w linii życia.
- Diagramy czasowe służą do graficznego przedstawienia różnych stanów linii życia w jednostce czasu.
- UML udostępnia różne notacje upraszczające stan przejścia między dwiema liniami życia w jednostce czasu.
Wykres czasowy Przykład
Poniższy diagram czasowy przedstawia kilka faz a cykl życia oprogramowania.
Na powyższym diagramie oprogramowanie najpierw przechodzi przez fazę wymagań, następnie przez fazę projektowania, a później przez fazę rozwoju. Wynik poprzedniej fazy w danym momencie czasu jest przekazywany do drugiej fazy jako dane wejściowe. Zatem diagram czasowy można wykorzystać do opisania SDLC (cyklu życia oprogramowania) w UML.
Korzyści ze stosowania diagramu czasowego
- Diagramy czasowe służą do przedstawienia stanu obiektu w określonym momencie.
- Diagram czasowy umożliwia inżynierię odwrotną i do przodu.
- Diagram czasowy może służyć do śledzenia każdej zmiany w systemie.
Wady diagramu czasowego
- Diagramy czasowe są trudne do zrozumienia.
- Diagramy czasowe są trudne w utrzymaniu.
Jak narysować diagram interakcji?
Diagramy interakcji służą do przedstawienia interaktywnego zachowania systemu. Diagramy interakcji skupiają się na dynamicznym zachowaniu systemu. Diagram interakcji zapewnia nam kontekst interakcji pomiędzy jedną lub większą liczbą linii życia w systemie.
Aby narysować diagram interakcji, musisz najpierw określić scenariusz, dla którego musisz narysować diagram interakcji. Po ustaleniu sytuacji zidentyfikuj różne linie życia, które będą zaangażowane w interakcję. Sklasyfikuj wszystkie elementy linii życia i zbadaj je, aby zidentyfikować możliwe połączenia i sposób, w jaki linie życia są ze sobą powiązane. Aby narysować diagram interakcji, wymagane są następujące rzeczy:
- Całkowita liczba lin ratunkowych, które będą częścią interakcji
- jest sekwencją przepływu komunikatów w obrębie różnych obiektów systemu.
- Różni operatorzy ułatwiający funkcjonowanie diagramu interakcji.
- Różne rodzaje komunikatów, aby wyraźniej i precyzyjniej przedstawić interakcję.
- Uporządkowana sekwencja komunikatów.
- Organizacja i struktura obiektu.
- Różne konstrukcje czasowe obiektu.
Zastosowanie diagramu interakcji
Diagramy interakcji składają się z diagramu sekwencji, diagramu współpracy i diagramów czasowych. Poniżej przedstawiono konkretny cel diagramu interakcji:
- Diagramy sekwencji służą do eksploracji dowolnej rzeczywistej aplikacji lub systemu.
- Diagramy interakcji służą do badania i porównywania wykorzystania diagramów sekwencji, współpracy i harmonogramu.
- Diagramy interakcji służą do uchwycenia zachowania systemu. Wyświetla dynamiczną strukturę systemu.
- Diagramy sekwencji służą do reprezentowania przepływu komunikatów z jednego obiektu do drugiego.
- Diagramy współpracy służą do zrozumienia architektury obiektów systemu, a nie przepływu komunikatów.
- Diagramy interakcji służą do modelowania systemu jako uporządkowanej w czasie sekwencji zdarzeń.
- Diagramy interakcji są stosowane zarówno w inżynierii odwrotnej, jak i przyszłościowej.
- Diagramy interakcji służą do organizowania struktury elementów interaktywnych.
Podsumowanie
- Interakcje są po prostu jednostkami zachowania klasyfikatora.
- Krytycznymi elementami diagramu interakcji są lina ratunkowa i komunikaty.
- Diagramy interakcji skupiają się głównie na przekazywaniu komunikatów.
- Diagramy interakcji obrazują dynamiczne zachowanie dowolnego systemu.
- Diagram interakcji zawiera diagram sekwencji, diagram czasowy, diagram komunikacji/współpracy.
- Diagram sekwencji UML ma na celu wizualizację sekwencji przepływu komunikatów w systemie.
- Celem diagramu współpracy jest podkreślenie aspektów strukturalnych.
- Diagramy czasowe skupiają się na momencie, w którym wiadomość jest wysyłana z jednego obiektu do drugiego.