1 / 20

Diagramy interakcji

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Diagramy interakcji. Podstawowe pojęcia. Interakcja ( interaction ) Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji. Kolaboracja ( collaboration )

vartan
Download Presentation

Diagramy interakcji

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania Diagramy interakcji

  2. Podstawowe pojęcia • Interakcja (interaction) • Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji. • Kolaboracja (collaboration) • Zespół powiązań między obiektami umożliwiający ich interakcję dla wykonania określonego zadania. • Komunikat (message) • Przepływ informacji między obiektami pojawiający się w konsekwencji wystąpienia określonego zdarzenia. • Zdarzenie (event) • Wystąpienie sytuacji istotnej z punktu widzenia systemu. Zdarzenie zachodzi w pewnym niepodzielnym momencie czasu. Konsekwencją zdarzenia jest komunikat. Diagramy interakcji

  3. Rodzaje diagramów interakcji • Diagramy kolaboracji (kooperacji, współpracy) • powiązania między obiektami • przepływ komunikatów wzdłuż powiązań • Diagramy sekwencji (przebiegu) • linie życia obiektów • przepływ komunikatów uporządkowany w czasie Diagramy interakcji

  4. Zastosowanie diagramów interakcji • Opis działania systemu • Opis przypadków użycia • Opis scenariusza przypadku użycia • Opis operacji klasy Diagramy interakcji

  5. Elementy diagramu kolaboracji numer porządkowy znacznik kierunku komunikat obiekt aktor 1: DoSomething() anObject:aClass Klient powiązanie Diagramy interakcji

  6. Uwagi do diagramu kolaboracji (1/2) • Występujący aktorzy muszą być powiązani z danym przypadkiem użycia • Obiekty reprezentują obiekty globalne (dla całego systemu) lub lokalne (np. parametry operacji, zmienne lokalne) • Powiązania reprezentują drogi przepływu komunikatów. • Komunikaty mogą być przesyłane pomiędzy dwoma aktorami, aktorem a obiektem lub pomiędzy dwoma obiektami. • Komunikat reprezentuje przekazanie informacji (w przypadku aktora jako odbiorcy) lub wywołanie operacji (w przypadku obiektu jako odbiorcy). W tym drugim przypadku operacja musi być zdefiniowana w klasie odbiorcy. Diagramy interakcji

  7. Uwagi do diagramu kolaboracji (2/2) • Przez jedno powiązanie może być przekazywanych wiele komunikatów w różne strony i w różnym czasie. Kierunek przepływu komunikatu określa strzałka. Kolejność przepływu komunikatu określają numery porządkowe. • Zamiast numeru porządkowego można podać zaawansowaną specyfikację przesłania komunikatu • W przypadku, gdy aspekt czasowy jest bardziej istotny, korzystniej jest użyć diagramu sekwencji. Diagramy interakcji

  8. Opis komunikatu (1/3) • Numer porządkowy • może składać się z kilku segmentów, każdy segment jest liczbą całkowitą określającą kolejność na danym poziomie zagłębienia, np.: 1.2.1 poprzedza 1.2.2 oraz poprzedza 1.3 • komunikaty współbieżne określane są przez dodanie litery za numerem porządkowym, np.. 1.2a i 1.2b są współbieżne • Określenie komunikatu poprzedzającego • Zamiast numeru porządkowego danego komunikatu można podać numery porządkowe komunikatów poprzedzających (lista numerów oddzielonych przecinkami i zakończona znakiem „/”). • Dany komunikat zostanie przesłany tylko wówczas, gdy wszystkie poprzedzające go komunikaty zostaną przesłane (synchronizacja) Diagramy interakcji

  9. Opis komunikatu (2/3) • Warunek strzegący, dozoru (guard condition) • Warunek strzegący to warunek, który musi być spełniony dla przesłania komunikatu. • Warunek strzegący podaje się w nawiasach kwadratowych, np. [n<10] • Określenie iteracji • Podanie klauzuli iteracji w nawiasach kwadratowych poprzedzonych znakiem „*” oznacza wielokrotne przesłanie komunikatu. • Klauzulę iteracji podaje się w określonym języku programowania lub w pseudokodzie, np.: *[i:=1..10] Diagramy interakcji

  10. Opis komunikatu (3/3) • Zwracany wynik wynik := nazwa operacji (lista argumentów) • Lista argumentów • Jest listą wartości oddzielonych przecinkami, które są po kolei przypisywane do parametrów operacji. • Wartości są wyrażeniami w określonym języku programowania lub w pseudokodzie. • W wyrażeniach mogą występować wartości zwrotne z poprzedzających komunikatów Diagramy interakcji

  11. Przykłady komunikatów • 1.2a: DoSomething() • 3, 5/7: DoSomething() • 4: [action=new] NewDocument(SelectType()) Diagramy interakcji

  12. Elementy diagramu sekwencji obiekt aktor anObject:aClass linia życia Klient komunikat DoSomething() wektor przepływu komunikatu skupienie sterowania odpowiedź Diagramy interakcji

  13. Uwagi do diagramu sekwencji • Diagram sekwencji i diagram kolaboracji są semantycznie równoważne. • Kierunek przepływu komunikatu określa zwrot wektora przepływu – przy jednym wektorze może wystąpić tylko jeden komunikat. • Numery porządkowe są zbędne – kolejność przepływu komunikatów określa uporządkowanie wektorów przepływu komunikatów w pionie – wzdłuż linii życia. • Można stosować warunki strzegące i specyfikacje iteracji. • Wektor odpowiedzi nie opisuje się – jeśli istotna jest wartość zwrotna, to przy wektorze zapytania podaje się zaawansowaną sygnaturę komunikatu. • Zamiast wektora odpowiedzi można zastosować zwykły wektor przepływu komunikatu. • Skupienie sterowania (focus of control) reprezentuje czas, w którym obiekt jest w stanie przyjmować i nadawać komunikaty (czas aktywności). Diagramy interakcji

  14. Tworzenie i niszczenie obiektu Create() anObject:aClass Diagramy interakcji

  15. Równoległe wątki sterowania anObject:aClass Diagramy interakcji

  16. Rekurencja anObject:aClass Diagramy interakcji

  17. Dokładne określenie czasu t1 {t2-t1<1 min} t2 t3 {t3’-t3<10 ms} t3’ Diagramy interakcji

  18. Przykład diagramu sekwencji Lista klientów: Lista Rachunki niezapłacone: Lista Klient Sprzedawca 2: jest := Wyszukanie() 1: Zgłoszenie() 3:[nie jest] Podaj dane() 4: 3/ jest := Nowy klient() 5: [jest] nzap:=Wyszukanie() 6: akcja := Potwierdzenie zgłoszenia(nzap) Zamówienie: Zamówienia 7a:[akcja=nowy] Create() Diagramy interakcji

  19. Przykład diagramu kolaboracji Lista klientów: Lista 2: jest := Wyszukanie()  4: 3/ jest := Nowy klient()  1: Zgłoszenie()   3:[nie jest] Podaj dane() 5: [jest] nzap:=Wyszukanie()  Rachunki niezapłacone: Lista  6: akcja := Potwierdzenie zgłoszenia (nzap) Klient Sprzedawca 7a:[akcja=nowy] Create()  Zamówienie: Zamówienia Diagramy interakcji

  20. Literatura • Booch G, Rumbaugh J, Jacobson I: UML. Przewodnik użytkownika, WNT, Warszawa 2002 • Dennis A., Haley Wixom B., Tegarden D.: System Analysis & Design. An Object-Oriented Approach with UML, John Wiley & Sons, Inc., USA 2001 Diagramy interakcji

More Related