04.Projektowanie aplikacji rownoleglych
Download
Report
Transcript 04.Projektowanie aplikacji rownoleglych
Jarosław Kuchta
Projektowanie aplikacji
równoległych
Podstawowe pojęcia
Interakcja (interaction)
Współpraca (collaboration)
Zespół powiązań między obiektami umożliwiający ich interakcję dla
wykonania określonego zadania.
Komunikat (message)
Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania
określonego zadania. Interakcja występuje w kontekście kolaboracji.
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
Diagramy współpracy (kolaboracji)
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
Elementy diagramu
kolaboracji
numer
porządkowy
komunikat
obiekt
A
znacznik
kierunku
1: DoSomething()
obiekt
B
powiązanie
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)
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]
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
Przykłady komunikatów
1.2a: DoSomething()
3, 5/7: DoSomething()
4: [action=new] NewDocument(SelectType())
Elementy diagramu sekwencji
obiekt
obiekt
A
B
linia życia
komunikat
DoSomething()
wektor przepływu komunikatu
skupienie sterowania
odpowiedź
Uwagi do diagramu sekwencji
Diagram sekwencji i diagram współpracy 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).
Tworzenie i niszczenie
obiektu
Create()
A
Równoległe wątki należące do
jednego obiektu
A
Rekurencja
A
Dokładne określenie czasu
t1
{t2-t1<1 min}
t2
t3
{t3’-t3<10 ms}
t3’
Przykład diagramu sekwencji
Zarządca gry
Gracz A
Gracz B
Wykonaj ruch
Podaj stan
Stan gry
Obliczenie
ruchu
Ruch
Zmiana stanu
Wykonaj ruch
Podaj stan
Stan gry
Odrysowanie
planszy
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