Systemy interakcji człowiek-komputer dla osób niepełnosprawnych
Diagramy interakcji
description
Transcript of Diagramy interakcji
Diagramy Diagramy interakcjiinterakcji
Jarosław KuchtaJarosław Kuchta
Dokumentacja i Jakość Dokumentacja i Jakość OprogramowaniaOprogramowania
DiagramyInterakcji 2/20Diagramy interakcji
Podstawowe pojęciaPodstawowe pojęcia Interakcja Interakcja ((interactioninteraction))
Przepływ komunikatów pomiędzy obiektami konieczny Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji.występuje w kontekście kolaboracji.
KolaboracjaKolaboracja ( (collaborationcollaboration)) Zespół powiązań między obiektami umożliwiający ich Zespół powiązań między obiektami umożliwiający ich
interakcję dla wykonania określonego zadania.interakcję dla wykonania określonego zadania. KomunikatKomunikat ( (messagemessage))
Przepływ informacji między obiektami pojawiający się w Przepływ informacji między obiektami pojawiający się w konsekwencji wystąpienia określonego zdarzenia.konsekwencji wystąpienia określonego zdarzenia.
Zdarzenie Zdarzenie ((eventevent)) Wystąpienie sytuacji istotnej z punktu widzenia systemu. Wystąpienie sytuacji istotnej z punktu widzenia systemu.
Zdarzenie zachodzi w pewnym niepodzielnym momencie Zdarzenie zachodzi w pewnym niepodzielnym momencie czasu. Konsekwencją zdarzenia jest komunikat. czasu. Konsekwencją zdarzenia jest komunikat.
DiagramyInterakcji 3/20Diagramy interakcji
Rodzaje diagramów Rodzaje diagramów interakcjiinterakcji
Diagramy kolaboracji (kooperacji, Diagramy kolaboracji (kooperacji, współpracy)współpracy) powiązania między obiektamipowiązania między obiektami przepływ komunikatów wzdłuż przepływ komunikatów wzdłuż
powiązańpowiązań Diagramy sekwencji (przebiegu)Diagramy sekwencji (przebiegu)
linie życia obiektówlinie życia obiektów przepływ komunikatów uporządkowany przepływ komunikatów uporządkowany
w czasiew czasie
DiagramyInterakcji 4/20Diagramy interakcji
Zastosowanie Zastosowanie diagramów interakcjidiagramów interakcji
Opis działania systemuOpis działania systemu Opis przypadków użyciaOpis przypadków użycia Opis scenariusza przypadku użyciaOpis scenariusza przypadku użycia Opis operacji klasyOpis operacji klasy
DiagramyInterakcji 5/20Diagramy interakcji
Elementy diagramu Elementy diagramu kolaboracjikolaboracji
Klient
aktor
anObject:aClass
obiekt
powiązanie
1: DoSomething()
komunikat
znacznikkierunku
numerporządkowy
DiagramyInterakcji 6/20Diagramy interakcji
Uwagi do diagramu Uwagi do diagramu kolaboracji (1/2)kolaboracji (1/2)
Występujący aktorzy muszą być powiązani z danym Występujący aktorzy muszą być powiązani z danym przypadkiem użyciaprzypadkiem użycia
Obiekty reprezentują obiekty globalne (dla całego Obiekty reprezentują obiekty globalne (dla całego systemu) lub lokalne (np. parametry operacji, zmienne systemu) lub lokalne (np. parametry operacji, zmienne lokalne)lokalne)
Powiązania reprezentują drogi przepływu komunikatów.Powiązania reprezentują drogi przepływu komunikatów. Komunikaty mogą być przesyłane pomiędzy dwoma Komunikaty mogą być przesyłane pomiędzy dwoma
aktorami, aktorem a obiektem lub pomiędzy dwoma aktorami, aktorem a obiektem lub pomiędzy dwoma obiektami.obiektami.
Komunikat reprezentuje przekazanie informacji (w Komunikat reprezentuje przekazanie informacji (w przypadku aktora jako odbiorcy) lub wywołanie operacji przypadku aktora jako odbiorcy) lub wywołanie operacji (w przypadku obiektu jako odbiorcy). W tym drugim (w przypadku obiektu jako odbiorcy). W tym drugim przypadku operacja musi być zdefiniowana w klasie przypadku operacja musi być zdefiniowana w klasie odbiorcy.odbiorcy.
DiagramyInterakcji 7/20Diagramy interakcji
Uwagi do diagramu Uwagi do diagramu kolaboracji (2/2)kolaboracji (2/2)
Przez jedno powiązanie może być Przez jedno powiązanie może być przekazywanych wiele komunikatów w różne przekazywanych wiele komunikatów w różne strony i w różnym czasie. Kierunek przepływu strony i w różnym czasie. Kierunek przepływu komunikatu określa strzałka. Kolejność komunikatu określa strzałka. Kolejność przepływu komunikatu określają numery przepływu komunikatu określają numery porządkowe.porządkowe.
Zamiast numeru porządkowego można podać Zamiast numeru porządkowego można podać zaawansowaną specyfikację przesłania zaawansowaną specyfikację przesłania komunikatukomunikatu
W przypadku, gdy aspekt czasowy jest bardziej W przypadku, gdy aspekt czasowy jest bardziej istotny, korzystniej jest użyć diagramu sekwencji.istotny, korzystniej jest użyć diagramu sekwencji.
DiagramyInterakcji 8/20Diagramy interakcji
Opis komunikatu (1/3)Opis komunikatu (1/3) Numer porządkowyNumer porządkowy
może składać się z kilku segmentów, każdy segment jest może składać się z kilku segmentów, każdy segment jest liczbą całkowitą określającą kolejność na danym poziomie liczbą całkowitą określającą kolejność na danym poziomie zagłębienia, np.: 1.2.1 poprzedza 1.2.2 oraz poprzedza 1.3zagłębienia, np.: 1.2.1 poprzedza 1.2.2 oraz poprzedza 1.3
komunikaty współbieżne określane są przez dodanie litery komunikaty współbieżne określane są przez dodanie litery za numerem porządkowym, np.. 1.2a i 1.2b są współbieżneza numerem porządkowym, np.. 1.2a i 1.2b są współbieżne
Określenie komunikatu poprzedzającegoOkreślenie komunikatu poprzedzającego Zamiast numeru porządkowego danego komunikatu można Zamiast numeru porządkowego danego komunikatu można
podać numery porządkowe komunikatów poprzedzających podać numery porządkowe komunikatów poprzedzających (lista numerów oddzielonych przecinkami i zakończona (lista numerów oddzielonych przecinkami i zakończona znakiem „/”).znakiem „/”).
Dany komunikat zostanie przesłany tylko wówczas, gdy Dany komunikat zostanie przesłany tylko wówczas, gdy wszystkie poprzedzające go komunikaty zostaną przesłane wszystkie poprzedzające go komunikaty zostaną przesłane (synchronizacja)(synchronizacja)
DiagramyInterakcji 9/20Diagramy interakcji
Opis komunikatu (2/3)Opis komunikatu (2/3) Warunek strzegący, dozoru (Warunek strzegący, dozoru (guard conditionguard condition))
Warunek strzegący to warunek, który musi być Warunek strzegący to warunek, który musi być spełniony dla przesłania komunikatu.spełniony dla przesłania komunikatu.
Warunek strzegący podaje się w nawiasach Warunek strzegący podaje się w nawiasach kwadratowych, np. [n<10]kwadratowych, np. [n<10]
Określenie iteracjiOkreślenie iteracji Podanie klauzuli iteracji w nawiasach Podanie klauzuli iteracji w nawiasach
kwadratowych poprzedzonych znakiem „*” kwadratowych poprzedzonych znakiem „*” oznacza wielokrotne przesłanie komunikatu.oznacza wielokrotne przesłanie komunikatu.
Klauzulę iteracji podaje się w określonym języku Klauzulę iteracji podaje się w określonym języku programowania lub w pseudokodzie, np.: programowania lub w pseudokodzie, np.: *[i:=1..10]*[i:=1..10]
DiagramyInterakcji 10/20Diagramy interakcji
Opis komunikatu (3/3)Opis komunikatu (3/3)
Zwracany wynikZwracany wynikwynik := nazwa operacji (lista argumentów)wynik := nazwa operacji (lista argumentów)
Lista argumentów Lista argumentów Jest listą wartości oddzielonych Jest listą wartości oddzielonych
przecinkami, które są po kolei przypisywane przecinkami, które są po kolei przypisywane do parametrów operacji. do parametrów operacji.
Wartości są wyrażeniami w określonym Wartości są wyrażeniami w określonym języku programowania lub w pseudokodzie.języku programowania lub w pseudokodzie.
W wyrażeniach mogą występować wartości W wyrażeniach mogą występować wartości zwrotne z poprzedzających komunikatówzwrotne z poprzedzających komunikatów
DiagramyInterakcji 11/20Diagramy interakcji
Przykłady komunikatówPrzykłady komunikatów
1.2a: DoSomething() 3, 5/7: DoSomething() 4: [action=new]
NewDocument(SelectType())
DiagramyInterakcji 12/20Diagramy interakcji
Elementy diagramu Elementy diagramu sekwencjisekwencji
Klient
aktor
anObject:aClass
obiekt
skupienie sterowania
DoSomething()
linia życia
komunikat
odpowiedź
wektor przepływu komunikatu
DiagramyInterakcji 13/20Diagramy interakcji
Uwagi do diagramu Uwagi do diagramu sekwencjisekwencji
Diagram sekwencji i diagram kolaboracji są semantycznie Diagram sekwencji i diagram kolaboracji są semantycznie równoważne.równoważne.
Kierunek przepływu komunikatu określa zwrot wektora przepływu – Kierunek przepływu komunikatu określa zwrot wektora przepływu – przy jednym wektorze może wystąpić tylko jeden komunikat.przy jednym wektorze może wystąpić tylko jeden komunikat.
Numery porządkowe są zbędne – kolejność przepływu komunikatów Numery porządkowe są zbędne – kolejność przepływu komunikatów określa uporządkowanie wektorów przepływu komunikatów w pionie określa uporządkowanie wektorów przepływu komunikatów w pionie – wzdłuż linii życia.– wzdłuż linii życia.
Można stosować warunki strzegące i specyfikacje iteracji.Można stosować warunki strzegące i specyfikacje iteracji. Wektor odpowiedzi nie opisuje się – jeśli istotna jest wartość Wektor odpowiedzi nie opisuje się – jeśli istotna jest wartość
zwrotna, to przy wektorze zapytania podaje się zaawansowaną zwrotna, to przy wektorze zapytania podaje się zaawansowaną sygnaturę komunikatu.sygnaturę komunikatu.
Zamiast wektora odpowiedzi można zastosować zwykły wektor Zamiast wektora odpowiedzi można zastosować zwykły wektor przepływu komunikatu.przepływu komunikatu.
Skupienie sterowania (Skupienie sterowania (focus of controlfocus of control) reprezentuje czas, w którym ) reprezentuje czas, w którym obiekt jest w stanie przyjmować i nadawać komunikaty (czas obiekt jest w stanie przyjmować i nadawać komunikaty (czas aktywności).aktywności).
DiagramyInterakcji 14/20Diagramy interakcji
Tworzenie i niszczenie Tworzenie i niszczenie obiektuobiektu
anObject:aClassCreate()
DiagramyInterakcji 15/20Diagramy interakcji
Równoległe wątki Równoległe wątki sterowaniasterowania
anObject:aClass
DiagramyInterakcji 16/20Diagramy interakcji
RekurencjaRekurencja
anObject:aClass
DiagramyInterakcji 17/20Diagramy interakcji
Dokładne określenie Dokładne określenie czasuczasu
t1
t2
{t2-t1<1 min}
t3
t3’{t3’-t3<10 ms}
DiagramyInterakcji 18/20Diagramy interakcji
Przykład diagramu Przykład diagramu sekwencjisekwencji
Klient
Lista klientów: Lista
Sprzedawca
Rachunki niezapłacone: Lista
1: Zgłoszenie()2: jest :=
Wyszukanie()
5: [jest] nzap:=Wyszukanie()
Zamówienie: Zamówienia
7a:[akcja=nowy] Create()
6: akcja := Potwierdzenie
zgłoszenia(nzap)
3:[nie jest] Podaj dane()
4: 3/ jest := Nowy klient()
DiagramyInterakcji 19/20Diagramy interakcji
Przykład diagramu Przykład diagramu kolaboracjikolaboracji
Klient
Lista klientów: Lista
Sprzedawca
Rachunki niezapłacone: Lista
1: Zgłoszenie()
2: jest := Wyszukanie()
5: [jest] nzap:=Wyszukanie()
Zamówienie: Zamówienia
7a:[akcja=nowy] Create()
6: akcja := Potwierdzenie zgłoszenia
(nzap)
3:[nie jest] Podaj dane()
4: 3/ jest := Nowy klient()
DiagramyInterakcji 20/20Diagramy interakcji
LiteraturaLiteratura
Booch G, Rumbaugh J, Jacobson I: Booch G, Rumbaugh J, Jacobson I: UML. Przewodnik użytkownikaUML. Przewodnik użytkownika, , WNT, Warszawa 2002WNT, Warszawa 2002
Dennis A., Haley Wixom B., Dennis A., Haley Wixom B., Tegarden D.: Tegarden D.: System Analysis & System Analysis & Design. An Object-Oriented Design. An Object-Oriented Approach with UMLApproach with UML, John Wiley & , John Wiley & Sons, Inc., USA 2001Sons, Inc., USA 2001