Projektowanie dynamiki - diagramy interakcji

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Związki w UML.
Mechanizmy pracy równoległej
Projektowanie aplikacji równoległych Jarosław Kuchta.
Modelowanie aktywności
Diagramy stanów i diagramy aktywności
Modelowanie przypadków użycia
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
Projektowanie systemów informacyjnych
Języki programowania C++
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
Projektowanie systemów informacyjnych
UML rozszerzenie Seminarium magisterskie
Projekt modułu Gra strategiczna „Strusia jama” Wyrzutnie
UML Unified Modeling Language
Turbo pascal – instrukcje warunkowe, iteracyjne,…
KONKURS WIEDZY O SZTUCE
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Podstawy informatyki Wirtotechnologia Grupa: 1A Wydział Inżynierii Metali i Informatyki Przemysłowej Wydział Odlewnictwa Akademia Górniczo – Hutnicza im.
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Tomasz Jabłoński Michał Ziach
Diagramy interakcji Jacek Górski gr
Komunikacja z arkuszem. Iteracje. Funkcje.
Diagram czynności (Activity Diagrams)
K.Subieta, E. Stemposz. Projektowanie systemów informacyjnych, Wykład 9, Folia 1 Projektowanie systemów informacyjnych Kazimierz Subieta, Ewa Stemposz.
Systemy Wbudowane Bascom
Projektowanie i programowanie obiektowe II - Wykład IV
Wstęp do interpretacji algorytmów
Dr Anna Kwiatkowska Instytut Informatyki
PASCAL (2) dr Anna Kwiatkowska.
Projektowanie - wprowadzenie
Diagramy czynności.
Wykład 4 Analiza i projektowanie obiektowe
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
Oskar Ośko Mateusz Skoczewski Michał Sułek
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Podstawy programowania
Automatyka Wykład 3 Modele matematyczne (opis matematyczny) liniowych jednowymiarowych (o jednym wejściu i jednym wyjściu) obiektów, elementów i układów.
O relacjach i algorytmach
Analiza współzależności cech statystycznych
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
PHP: warunki, pętle, switch, break, continue
Instrukcje iteracyjne
C# Platforma .NET CZ.3 Kuba Ostrowski.
Modelowanie obiektowe Diagramy czynności
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Modelowanie obiektowe Diagramy sekwencji
Model dynamiczny (1) Diagramy interakcji.
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
Diagram aktywności (czynności)
Iteracje w C# Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Kalendarz 2020.
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.
Instrukcje wyboru.
Wstęp do interpretacji algorytmów
Pętle – instrukcje powtórzeń
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
E. Stemposz. UML i Analiza dynamiczna, Diagramy interakcji, Wykład 9, Slajd 1/68 Wykład 9 Model dynamiczny (3) Diagramy interakcji dr inż. Ewa Stemposz.
Studia Podyplomowe IT w Biznesie Analiza dynamiczna w UML
Inżynieria oprogramowania UML WWW: Jacek Matulewski Instytut Fizyki, UMK WWW:
Inżynieria systemów informacyjnych
Programowanie Obiektowe – Wykład 2
Diagramy interakcji Kamil Kuliczkowski.
Zapis prezentacji:

Projektowanie dynamiki - diagramy interakcji

Modele statyczne i dynamiczne Projektowanie dynamiki - diagram interakcji Modele statyczne i dynamiczne Modele statyczne – klasy i zależności między klasami diagram klas diagram obiektów Modele dynamiczne – interakcja między obiektami diagramy sekwencji diagramy komunikacji

Diagram sekwencji Diagram sekwencji przedstawia: Projektowanie dynamiki - diagram interakcji Diagram sekwencji Diagram sekwencji przedstawia: komunikaty przysyłane pomiędzy obiektami (i ich kolejność) przepływ sterowania szablon realizowanego algorytmu lub jedną z możliwych ścieżek algorytmu czas życia i okresy aktywności obiektów (ról) biorących udział w interakcji

Diagram sekwencji Obiekt (rola) biorący udział w interakcji Projektowanie dynamiki - diagram interakcji Diagram sekwencji Obiekt (rola) biorący udział w interakcji Okres aktywności Komunikat Linia życia

Diagram komunikacji Diagram komunikacji przedstawia: Projektowanie dynamiki - diagram interakcji Diagram komunikacji Diagram komunikacji przedstawia: komunikaty przysyłane pomiędzy obiektami (i ich kolejność) przepływ sterowania szablon realizowanego algorytmu lub jedną z możliwych ścieżek algorytmu związki miedzy obiektami (rolami biorącymi udział w interakcji)

Diagram komunikacji związek komunikat obiekt Projektowanie dynamiki - diagram interakcji Diagram komunikacji związek komunikat obiekt

Projektowanie dynamiki - diagram interakcji Elementy diagramu Obiekty (role) - są podstawowym elementem diagramu interakcji. Diagram może zawierać instancje innych klasyfikatorów, np. aktorów Linia życia – reprezentuje czas życia obiektów (ról) biorących udział w interakcji. Jest to czas, kiedy obiekt jest w stanie przyjmować i obsługiwać komunikaty Okres aktywności – reprezentuje okres, kiedy obiekt obsługuje komunikat

Elementy diagramu - komunikaty Projektowanie dynamiki - diagram interakcji Elementy diagramu - komunikaty Komunikat – przesłanie informacji z jednego obiektu (instancji) do innego skutkujące wykonaniem pewnej akcji na obiekcie docelowym Komunikaty są formą porozumiewania się obiektów (instancji) Implementacja komunikatu może przybierać różne formy: wywołanie metody wygenerowanie zdarzenia Na poziomie logicznym wywołanie metody i wygenerowanie zdarzenia nie różnią się między sobą - w jednym i drugim przypadku następuję przesłanie pewnej informacji od nadawcy do odbiorcy i w efekcie wykonanie pewnej akcji przez odbiorcę 1. Komunikaty mogą być przesyłane nie tylko pomiędzy obiektami, stąd określenie „pomiędzy instancjami”

Diagram sekwencji - interpretacja Projektowanie dynamiki - diagram interakcji Diagram sekwencji - interpretacja Obiekt o1 wysyła komunikat do obiektu o2. Komunikat ma postać wywołania operacji OperationB1 W trakcie obsługi komunikatu OperationB1 obiekt o2 wysyła komunikat do obiektu o3. Komunikat skutkuje wykonaniem operacji OperationC1 na obiekcie o3 Po wykonaniu operacji OperationC1 obiekt o2 wysyła komunikat do samego siebie. Komunikat ma postać wywołania operacji OperationB2 Po wykonaniu operacji OperationB2 następuję wysłanie komunikatu zwrotnego do obiektu o1 oznaczającego koniec obsługi komunikatu OperationB1

Rodzaje komunkatów Komunikat synchroniczny Komunikat asynchroniczny Projektowanie dynamiki - diagram interakcji Rodzaje komunkatów Komunikat synchroniczny Komunikat asynchroniczny Komunikat zwrotny

Komunikat synchroniczny Projektowanie dynamiki - diagram interakcji Komunikat synchroniczny Wysłanie komunikatu synchronicznego oznacza przekazanie sterowania do obiektu odbiorcy i rozpoczęcie wykonywania akcji na obiekcie docelowym Przetwarzanie w obiekcie nadawcy ulega wstrzymaniu Powrót sterowania i wznowienie przetwarzania w obiekcie nadawcy następuje po wykonaniu wszystkich akcji zainicjowanych przez wysłany komunikat

Komunikat asynchroniczny Projektowanie dynamiki - diagram interakcji Komunikat asynchroniczny Wysłanie komunikatu asynchronicznego nie powoduje przerwania aktualnego przepływu sterowania Przetwarzanie w obiekcie nadawcy jest kontynuowane zaraz po wysłaniu komunikatu – obiekt nadawcy nie czeka aż obiekt odbiorcy skończy obsługę komunikatu Po odebraniu komunikatu asynchronicznego w obiekcie odbiorcy pojawia się nowy przepływ sterowania niezależny od przepływu sterowania w obiekcie nadawcy

Projektowanie dynamiki - diagram interakcji Komunikat zwrotny Komunikaty zwrotne służą do oznaczenia powrotu sterowania do obiektu nadawcy po wykonaniu akcji związanych z wysłaniem komunikatu synchronicznego Komunikaty zwrotne są opcjonalne – zazwyczaj używa się ich w sytuacji, gdy operacja zwraca istotną wartość lub też dla lepszego zrozumienia przepływu sterowania

Rodzaje komunikatów - przykład Projektowanie dynamiki - diagram interakcji Rodzaje komunikatów - przykład GetFileList() – synchroniczny PrepareFileList() – synchroniczny fileList – zwrotny StartDownload() – asynchroniczny SendFile () – asynchroniczny ReportProgress() – asynchroniczny

Projektowanie dynamiki - diagram interakcji Tworzenie obiektu Tworzenie obiektu – wysłanie komunikatu ze stereotypem <<create>> Komunikat może zawierać parametry konstruktora obiektu

Projektowanie dynamiki - diagram interakcji Usuwanie obiektu We współczesnych językach takich jak Java czy C# usuwanie obiektów oznacza usuniecie referencji do obiektu. Obiekty nie posiadające referencji zbierane są co pewien czas przez tzw. Garbage i dopiero wtedy fizycznie usuwane Usuwanie obiektu – wysłanie komunikatu ze stereotypem <<destroy>> Usunięcie obiektu oznacza się znakiem X na linii życia

Składnia komunikatu (1) Projektowanie dynamiki - diagram interakcji Składnia komunikatu (1) numer-komunikatu [własności] zmienna-zwracana := komunikat (lista-parametrów): zwracany-typ numer-komunikatu – numer komunikatu w sekwencji. Stosuje się numeracje prostą (komunikaty dostają kolejne numery 1,2, 3, ...) lub zagnieżdżoną (jeśli obiekt otrzymuje komunikat o numerze 2.1, to każdy komunikat wysłany w trakcie realizacji tego komunikatu będzie miał prefiks 2.1, np. 2.1.1, 2.1.2, …) lista-parametrów – lista parametrów komunikatu. W wersji najbardziej rozszerzonej ma postać: zmienna:typ. Dopuszcza się stosownie tylko typów, tylko zmiennych, można też pominąć całkowicie wszystkie parametry

Składnia komunikatu (2) Projektowanie dynamiki - diagram interakcji Składnia komunikatu (2) numer-komunikatu [własności] zmienna-zwracana := komunikat (lista-parametrów): zwracany-typ zmienna-zwracana – nazwa zmiennej zwracanej przez komunikat. Można opuścić, jeśli komunikat nic nie zwraca zwracany-typ – typ zmiennej zwracanej przez komunikat. Można opuścić, jeśli komunikat nic nie zwraca własności – określa własności komunikatu odnośnie warunków jego wysłania. Może mieć postać warunku logicznego, np. [x > 0] – komunikat będzie wysłany jeśli warunek będzie prawdziwy. Może też mieć postać iteracji, np. *[1..5] – komunikat będzie wysłany 5 razy

Komunikaty z warunkiem Projektowanie dynamiki - diagram interakcji Komunikaty z warunkiem Komunikat Update() zostanie wysłany tylko wtedy, gdy zmienna find przyjmie wartość true

Projektowanie dynamiki - diagram interakcji Komunikaty z iteracją Komunikat ObliczPodateKPozycjiKoszyka() będzie wysyłany liczbaPozycji razy

Projektowanie dynamiki - diagram interakcji Bloki komunikatów Blok (fragment wyodrębniony) – grupa komunikatów posiadających wspólną cechę Najczęściej spotykane bloki komunikatów: alt - alternatywa opt - opcja par - współbieżność loop - iteracja critical - obszar krytyczny ref - odwołanie do innego bloku

Projektowanie dynamiki - diagram interakcji alt alt – wybierany jest jeden z alternatywnych bloków komunikatów - odpowiada instrukcji if…else Operacje msg3 i msg4 będą wykonane, jeśli warunek będzie prawdziwy. W przeciwnym przypadku wykona się operacja msg5

Projektowanie dynamiki - diagram interakcji opt opt – grupuje komunikaty wysyłane, jeśli spełniony jest pewien warunek - odpowiada instrukcji if (bez else) Operacje msg3 i msg4 będą wykonane, jeśli warunek będzie prawdziwy

Projektowanie dynamiki - diagram interakcji loop loop – grupuje komunikaty wykonywane iteracyjne (w pętli). Pętla może mieć z góry zadaną liczbę iteracji (pętla for). Liczba iteracji może też być określona przy pomocy warunku (pętla while) Operacje msg3 i msg4 będą powtarzane 5 razy

par par – grupuje komunikaty wykonywane równolegle Projektowanie dynamiki - diagram interakcji par par – grupuje komunikaty wykonywane równolegle Operacje msg3 i msg4 mogą być wykonywane równolegle

Projektowanie dynamiki - diagram interakcji Rodzaje diagramów Diagramy egzemplarzowy (instancyjny) – przedstawia tylko jedną z możliwych ścieżek interakcji (algorytmu). Diagramy egzemplarzowe nie zawierają alternatyw, opcji ani iteracji Diagramy ogólny (generyczny) – przedstawia wszystkie możliwe ścieżki interakcji (algorytmu) . Na diagramach ogólnych często pojawiają się elementy opcjonalne, alternatywne oraz iteracje

Diagramy ogólne i egzemplarzowe Projektowanie dynamiki - diagram interakcji Diagramy ogólne i egzemplarzowe Diagram ogólny (generyczny) Diagram egzemplarzowy (instancyjny) Diagram przedstawia wszystkie możliwe scenariusze interakcji (blok alt) Diagram przedstawia jeden scenariusz interakcji (dla zmiennej ilość jest większej od 0)

Diagram sekwencji versus diagram komunikacji Projektowanie dynamiki - diagram interakcji Diagram sekwencji versus diagram komunikacji Cecha Diagram sekwencji Diagram komunikacji związki pomiędzy obiektami związki pomiędzy obiektami słabo widoczne związki pomiędzy obiektami bardzo dobrze widoczne kolejność przepływu komunikatów kolejność komunikatów bardzo dobrze widoczna kolejność komunikatów możliwa do ustalenia jedynie na podstawie numeracji organizacja przestrzeni diagramy sekwencji zajmują więcej miejsca przestrzeń w diagramach komunikacji lepiej wykorzystana rodzaje, własności i bloki komunikatów rodzaje komunikatów lepiej widoczne, możliwość zastosowania bloków komunikatów rodzaje komunikatów słabo widoczne, brak możliwości stosowania bloków komunikatów Podsumowanie: 1. Używaj diagramu sekwencji, jeśli interesuje cię przede wszystkim kolejność przepływu wiadomości 2. Używaj diagramu komunikacji, jeśli chcesz zobrazować związki między obiektami uczestniczącymi w interakcji

Diagram sekwencji versus diagram komunikacji Projektowanie dynamiki - diagram interakcji Diagram sekwencji versus diagram komunikacji diagram sekwencji diagram komunikacji

Literatura Russ Miles, Kim Hamilton, UML 2.0 Wprowadzenie Projektowanie dynamiki - diagram interakcji Literatura Russ Miles, Kim Hamilton, UML 2.0 Wprowadzenie Grady Booch, James Rumbaugh, Ivar Jacobson: UML Reference Manual Kazimierz Subieta: Projektowanie systemów informatycznych – wykłady