Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałRadomiła Dymerski Został zmieniony 11 lat temu
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. DiagramyInterakcji 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 DiagramyInterakcji Diagramy interakcji
4
Zastosowanie diagramów interakcji
Opis działania systemu Opis przypadków użycia Opis scenariusza przypadku użycia Opis operacji klasy DiagramyInterakcji Diagramy interakcji
5
Elementy diagramu kolaboracji
numer porządkowy znacznik kierunku komunikat obiekt aktor 1: DoSomething() anObject:aClass Klient powiązanie DiagramyInterakcji 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. DiagramyInterakcji 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. DiagramyInterakcji 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.: poprzedza 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) DiagramyInterakcji 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] DiagramyInterakcji Diagramy interakcji
10
Opis komunikatu (3/3) Zwracany wynik Lista argumentów
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 DiagramyInterakcji Diagramy interakcji
11
Przykłady komunikatów
1.2a: DoSomething() 3, 5/7: DoSomething() 4: [action=new] NewDocument(SelectType()) DiagramyInterakcji Diagramy interakcji
12
Elementy diagramu sekwencji
obiekt aktor anObject:aClass linia życia Klient komunikat DoSomething() wektor przepływu komunikatu skupienie sterowania odpowiedź DiagramyInterakcji 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). DiagramyInterakcji Diagramy interakcji
14
Tworzenie i niszczenie obiektu
Create() anObject:aClass DiagramyInterakcji Diagramy interakcji
15
Równoległe wątki sterowania
anObject:aClass DiagramyInterakcji Diagramy interakcji
16
Rekurencja anObject:aClass DiagramyInterakcji Diagramy interakcji
17
Dokładne określenie czasu
t1 {t2-t1<1 min} t2 t3 {t3’-t3<10 ms} t3’ DiagramyInterakcji 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() DiagramyInterakcji 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 DiagramyInterakcji 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 DiagramyInterakcji Diagramy interakcji
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.