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