Projektowanie aplikacji równoległych Jarosław Kuchta.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Programowanie obiektowe
Związki w UML.
Modelowanie aktywności
Diagramy stanów i diagramy aktywności
Modelowanie przypadków użycia
Modelowanie klas i obiektów
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
HTML.
Maciej I Stanisław Jedlińscy
Język UML (Unified Modelling Language)
Projektowanie Aplikacji Komputerowych
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Co UML może zrobić dla Twojego projektu?
UML – Unified Modeling Language (2)
Diagramy interakcji Jacek Górski gr
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
Programowanie obiektowe. Obiekty. Metody. Właściwości.
Odkrywanie wzorców sekwencji
Diagram czynności (Activity Diagrams)
Projektowanie i programowanie obiektowe II - Wykład IV
Dr Anna Kwiatkowska Instytut Informatyki
Projektowanie - wprowadzenie
Model dziedziny. Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Samochód Osoba Dom Modelowanie.
Diagramy czynności.
Projektowanie dynamiki - diagramy interakcji
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
LabVIEW Technologie informacyjne – laboratorium Irmina Kwiatkowska
Podstawy programowania
Instrukcja USOS Rejestracja na zajęcia obieralne wersja by Marek Opacki.
RODZAJE TRANSMISJI PRZESYŁANIE INFORMACJI W MODELU WARSTWOWYM
DIAGRAMY UML.
Tworzenie programów, etapów oraz określanie wymagań etapowych
Podsumowanie metodologii OMT
Modelowanie obiektowe Diagramy czynności
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Modelowanie obiektowe Diagramy sekwencji
Wprowadzenie do UML dr hab. inż. Kazimierz Subieta profesor PJWSTK.
Modelowanie obiektowe Diagramy klas
Aplikacje internetowe Projektowanie formularzy Część 2.
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Temat 7: Instrukcje warunkowe
Kolory w kodzie RGB i HEX
Diagram aktywności (czynności)
Zbiory Co to jest zbiór? Nie martw się, jeśli nie potrafisz odpowiedzieć. Nie ma odpowiedzi na to pytanie.
Modelowanie obiektowe - system zarządzania projektami.
Diagram komunikacji (communication diagram)
Diagram czynności Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu. Diagram czynności przedstawia sekwencyjne lub.
Diagram obiektów Diagram obiektów ukazuje elementy i związki z diagramu klas w ustalonej chwili. Diagram obiektów jest grafem złożonym z wierzchołków i.
Analiza wariancji ANOVA czynnikowa ANOVA
Iga Lewandowska I EMII MU
PHP. PHP obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
Projekt modułu Nazwa całego projektu Nazwa modułu Imię i Nazwisko Inżynieria Oprogramowania II dzień, godzina rok akademicki W szablonie na niebiesko zamieszczone.
Diagramy przepływu danych
Ruch – jedno w najczęściej obserwowanych zjawisk fizycznych
Zarządzanie projektami
E. Stemposz. Wprowadzenie do UML, Wykład 1, Slajd 1/24 Wykład 1 Wprowadzenie do UML dr inż. Ewa Stemposz
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Inżynieria systemów informacyjnych
T. 18. E Proces DGA - Działania (operatorka).
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
Zarządzanie projektami
Diagramy interakcji Kamil Kuliczkowski.
Zapis prezentacji:

Projektowanie aplikacji równoległych Jarosław Kuchta

Podstawowe pojęcia Interakcja (interaction) Interakcja (interaction) Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji. Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji. Współpraca (collaboration) Współpraca (collaboration) Zespół powiązań między obiektami umożliwiający ich interakcję dla wykonania określonego zadania. Zespół powiązań między obiektami umożliwiający ich interakcję dla wykonania określonego zadania. Komunikat (message) Komunikat (message) Przepływ informacji między obiektami pojawiający się w konsekwencji wystąpienia określonego zdarzenia. Przepływ informacji między obiektami pojawiający się w konsekwencji wystąpienia określonego zdarzenia. Zdarzenie (event) Zdarzenie (event) Wystąpienie sytuacji istotnej z punktu widzenia systemu. Zdarzenie zachodzi w pewnym niepodzielnym momencie czasu. Konsekwencją zdarzenia jest komunikat. 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) Diagramy współpracy (kolaboracji) powiązania między obiektami powiązania między obiektami przepływ komunikatów wzdłuż powiązań przepływ komunikatów wzdłuż powiązań Diagramy sekwencji (przebiegu) Diagramy sekwencji (przebiegu) linie życia obiektów linie życia obiektów przepływ komunikatów uporządkowany w czasie przepływ komunikatów uporządkowany w czasie

Elementy diagramu kolaboracji B obiekt powiązanie 1: DoSomething() komunikat znacznik kierunku numer porządkowy A obiekt

Opis komunikatu (1/3) Numer porządkowy 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 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 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 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 /). 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) 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, dozoru (guard condition) Warunek strzegący to warunek, który musi być spełniony dla przesłania komunikatu. 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] Warunek strzegący podaje się w nawiasach kwadratowych, np. [n<10] Określenie iteracji Określenie iteracji Podanie klauzuli iteracji w nawiasach kwadratowych poprzedzonych znakiem * oznacza wielokrotne przesłanie komunikatu. 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] Klauzulę iteracji podaje się w określonym języku programowania lub w pseudokodzie, np.: *[i:=1..10]

Opis komunikatu (3/3) Zwracany wynik Zwracany wynik wynik := nazwa operacji (lista argumentów) Lista argumentów Lista argumentów Jest listą wartości oddzielonych przecinkami, które są po kolei przypisywane do parametrów operacji. 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. 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 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 B skupienie sterowania DoSomething() linia życia komunikat odpowiedź wektor przepływu komunikatu A

Uwagi do diagramu sekwencji Diagram sekwencji i diagram współpracy są semantycznie równoważne. 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. 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. 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. 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. 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. 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). 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 A Create()

Równoległe wątki należące do jednego obiektu A

Rekurencja A

Dokładne określenie czasu t1 t2 {t2-t1<1 min} t3 {t3-t3<10 ms}

Przykład diagramu sekwencji Zarządca gryGracz B Wykonaj ruch Gracz A Podaj stan Stan gry Obliczenie ruchu Ruch Zmiana stanu Wykonaj ruch Podaj stan Odrysowanie planszy Stan gry

Literatura Booch G, Rumbaugh J, Jacobson I: UML. Przewodnik użytkownika, WNT, Warszawa 2002 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 Dennis A., Haley Wixom B., Tegarden D.: System Analysis & Design. An Object-Oriented Approach with UML, John Wiley & Sons, Inc., USA 2001