Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 6
Diagramy komunikacji Diagram komunikacji (ang. communication diagram), dawniej nazywany diagramem współpracy (ang. collaboration diagram), jest jednym z czterech diagramów interakcji (ang. interaction diagram). Diagram komunikacji pokazuje informacje podobne do tych co diagram sekwencji, ale jego głównym celem jest ilustracja relacji pomiędzy uczestnikami komunikacji. Elementy diagramu komunikacji: uczestnicy (aktorzy, obiekty, klasy biorące), nazywani również lifelines, ale nie posiadają pionowych linii życia, tylko same "głowy". asocjacje - główny związek pomiędzy uczestnikami, reprezentowany przez linie łączące uczestników komunikaty - realizacja interakcji, opisywane etykietowanymi krótkimi strzałkami (strzałka powinna wskazywać kierunek przepływu komunikatu.)
Diagramy komunikacji - przykład
Diagramy komunikacji - przykład
Diagramy komunikacji - nazwy uczestników
Diagramy komunikacji - modelowanie współbeżności Instancja klasy A wysyła komunikat rysuj() jednocześnie (współbieżnie) do instancji klasy B i instancji klasy C.
Diagramy komunikacji - modelowanie komunikatów z ograniczeniami Instancja klasy A wysyła komunikat rysuj() jednocześnie (współbieżnie) do instancji klasy B i instancji klasy C, jeśli x > y.
Diagramy komunikacji - modelowanie komunikatów z ograniczeniami Wprowadzenie ograniczeń w VP:
Diagramy komunikacji - modelowanie komunikatów z iteracją Komunikat szukaj() będzie wykonany nrazy
Diagramy komunikacji I Przy pomocy diagramiu komunikacji można modelować podział systemu na komponenty. Służą do tego tzw. swimlanes. Kolejny slajd pokazuje system oparcji transferu pieniędzy, który podzielony jest na dwa podsystemy: Client oraz Main frame. Kroki do powstania diagramiu komunikacji dla oparcji transferu pieniędzy: Aby utworzyć diagram komunikacji, wybierz z menu Diagram > New. W oknie New Diagram, wybierz Communication Diagram i zatwierdź z nazwą Transfer Money. Dodaj dwie swimlanes, aby zamodelować podział systemu na aplikację klienta Client oraz system po stronie banku Main frame.
Diagramy komunikacji II Po stronie klienta utwórz aktora o nazwie User. User kontaktuje się z systemem poprzez swoje konto internetowe account page. Kontakt User a z account page jest modelowany poprzez wysłanie komunikatu (Message -> LifeLine) z opisem visit. Konto internetowe skieruje wniosek użytkownika o przekazanie pieniędzy do systemu bankowego do zatwierdzania i realizacji poprzez moduł Transaction, reprezentowany jako uczestnik. komunikat wysłany od Account Page do Transaction to transfer (targetaccount, amount).
Diagramy komunikacji III Proces transferu pieniędzy polega na wypłacanie pieniędzy z konta użytkownika, a następnie wplaceniu tych pieniędzy na konto docelowe. Zanim ta operacja zostanie wykonana, musimy mieć pewność, że na koncie użytkownika jest wystarczająco dużo pieniędzy. Aby zamodleować powyższą sytuację, tworzymy uczestnika po stronie systemu bankowego o nazwie User Account i wysyłamy do niego od uczestnika Transaction komunikat: hasbalance (amount) : boolean. Gdy saldo konta użytkawnika zostanie sprawdzone, możemy wypłacić pieniądze z jego konta. Można to zamodelować wysyłając komunikat od Transaction do User Accoun o treści withdraw (amount).
Diagramy komunikacji IV Aby zamodelować wpłacanie pieniędzy na konto docelowe, można utworzyć uczestnika Target Account i wysłać do niego komunikat credit (amount) od uczestnika Transaction. Any zamodelować w systemie informacje o zrealizowanej tranzakcji, uczestnik Transaction może wysłać komunikat do siebie o treści dispose. Na koniec, aby poinformować użytkownika, że transakcja jest zakończona, wysyłamy komunikat displayresult() od uczestnika Transaction do uczestnika Account Page.
Diagramy komunikacji - operacja transferu pieniędzy online Diagram powstały na podstawie tutorialu: http://www. visual-paradigm.com/tutorials/communicationdiagram.jsp
Diagramy komunikacji Źródło:http://www.uml-diagrams.org/ communication-diagrams.html
Różnice między diagramami komunikacji a sekwencji Diagramów sekwencji używa się, gdy zainteresowani jesteśmy głównie przepływem komunikatów w danej interakcji. Diagramów komunikatów używa się, gdy chcemy się skoncentrować głownie na połączeniach pomiędzy uczestnikami danej interakcji.
Diagramy czasowe I Diagramy czasowe (inaczej diagramy harmonogramowania) są diagramem interakcji, reprezentującym na osi czasu zmiany dopuszczalnych stanów, jakie może przyjmować instancja uczestnika interakcji. Diagramy czasowe stosuje się w celu sporządzenia harmonogramów interakcji. Diagramy czasowe mogą pokazywać interakcję pomiędzy zdarzeniami czasowymi a ograniczeniami czasowymi, które nimi rządzą. Diagramy czasowe są specjalną formą diagramu sekwencji.
Diagramy czasowe II Podstawową różnicę pomiędzy diagramem czasowym a diagramem sekwencji stanowią osie, które są odwrócone tak, że czas upływa od strony lewej do prawej, a linie życia pokazane są w oddzielnych pionowych przedziałach. Diagramy czasowe dokumentują aspekt czasu interakcji i dlatego w diagramach tych na osi poziomej zaznacza się skalę czasu w postaci ustalonych odcinków. Na osi pionowej przedstawia się poszczególne instancje uczestników interakcji. Diagramy czasowe tworzy się po opracowaniu diagramów sekwencji lub komunikacji.
Elementy składowe diagramów czasowych Podstawowe elementy diagramu czasowego: uczestnik stan linia zmiany stanów instancji (ang. timeline). Zaawansowane elementy diagramu: zdarzenia ograniczenia czasowe przesyłanie komunikatów
Diagramy czasowe w visual paradigm Konstrukcja diagramu czasowego w VP: http://www.visual-paradigm.com/support/documents/ vpuserguide/94/2586/6715_drawingtimin.html
Diagramy czasowe w visual paradigm Aby stworzyć diagram czasowy w Visual Paradigm: Wybierz Diagram> Nowy (Diagram > New) z paska narzędzi. W oknie New Diagram wybierz Timing Diagram. Kliknij przycisk Next. Wpisz nazwę diagramu i opis. Kliknij przycisk OK.
Tworzenie ramki czasowej (ang. timing frame) Aby utworzyć ramkę czasową na diagramie czasowym, wybierz przycisk Timing Frame na pasku narzędzi, a następnie kliknij na diagramie. Efekt: Aby zmienić nazwę ramki, wystarczy kliknąć dwukrotnie na lewym górnym rogu ramki.
Dodawanie linii życia do ramki Aby dodać linię życie do ramki czasowej, należy kliknąć prawym przyciskiem myszy i wybrać Add Lifeline z menu podręcznego. Aby zmienić nazwę życia, należy kliknąć dwukrotnie na nazwę linii życia.
Dodawanie jednostki czasu do ramki I Aby dodać jednostkę czasu do ramki czasowej, należy kliknąć prawym przyciskiem myszy i wybrać Add Time Unit z menu podręcznego.
Dodawanie jednostki czasu do ramki II Należy powtórzyć krok dodwania tyle razy, ile potrzeba jest jednostek czasu. Aby zmienić nazwę jednostki czasu, należy kliknąć dwukrotnie na jednostkę czasu.
Dodawanie stanu do linii życia I Aby dodać stan do linii życie, należy kliknąć prawym przyciskiem myszy i wybrać Add State/Condition z menu podręcznego.
Dodawanie stanu do linii życia II Aby zmienić nazwę stanu, należy kliknąć dwukrotnie na stan. Efekt wykonania:
Przeciąganie jednostki czasu Należy najechać kursorem myszy na linię jednostki czasu, kliknąć, przeciągnąć i zwolnić przycisk myszy, gdy osiągnięty zostaje docelowy stan.
Ograniczenia czasowe (ang. duration constraint) Ograniczenie czasowe używana jest do wskazania ograniczenia czasu trwania danej linii życia w określonym przedziale czasu. Aby ustawić ograniczenia czasowe danej linii życia, należy kliknąć prawym przyciskiem myszy na linię życie i wybrać Edit Lifeline... z menu podręcznego.
Ograniczenia czasowe (ang. duration constraint) W karcie Duration Constraints, należy kliknąć przycisk Add... W oknie dialogowym Add Duration Constraint należy wybrać odpowiedni czas rozpoczęcia i czas zakończenia z rozwijanego menu oraz wypełnić ograniczenie czasu trwania wybranego odcinka czasu w polu Constraint. Aby zamknąć okno dialogowe, należy kliknąć przycisk OK.
Ograniczenia czasowe (ang. duration constraint) Efekt:
Ograniczenia czasowe (ang. duration constraint) Efekt końcowy:
Dodawanie komunikatów
Dodawanie komunikatów
Dodawanie komunikatów
Dodawanie komunikatów
Dodawanie komunikatów
Przełączanie do trybu kompaktowego widoku
Przełączanie do trybu kompaktowego widoku - efekt