Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Podobne dokumenty
Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Projektowanie interakcji. Jarosław Kuchta

Modelowanie aktywności. Jarosław Kuchta Programowanie Współbieżne

Diagramy stanów i aktywności. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie logiki aplikacji

UML cz. I. UML cz. I 1/1

Diagramy interakcji. Opracowano w Lab. Informatyki AGH (Kraków)

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

UML w Visual Studio. Michał Ciećwierz

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Unified Modeling Language

Diagramy czynności Na podstawie UML 2.0 Tutorial

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Znaleziony - jeżeli nadawca nie jest znany w obrębie danego fragmentu Utracony - jeżeli odbiorca komunikatu nie jest znany w obrębie danego fragmentu

Język UML w modelowaniu systemów informatycznych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

Modelowanie i analiza systemów informatycznych

INŻYNIERIA OPROGRAMOWANIA. laboratorium

NIFIED M L ODELLING ANGUAGE. Diagramy czynności

Michał Adamczyk. Język UML

UML - zarys 2007/2008

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Inżynieria oprogramowania

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie IU -nawigacja

Diagramy czynności tworzenie modelu przypadków użycia Wykład 2

Diagramy klas. dr Jarosław Skaruz

Diagramy czynności. Widok logiczny. Widok fizyczny

Diagramy sekwencji. wymienianych między nimi

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

UML. dr inż. Marcin Pietroo

TECHNOLOGIE OBIEKTOWE. Wykład 3

Język UML w modelowaniu systemów informatycznych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

UML cz. III. UML cz. III 1/36

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Podstawy programowania III WYKŁAD 4

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Rysunek 1: Przykłady graficznej prezentacji klas.

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

Analiza i projektowanie aplikacji Java

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

Język UML w modelowaniu systemów informatycznych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla nauczyciela

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

Diagramy klas. WYKŁAD Piotr Ciskowski

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Zalety projektowania obiektowego

Język UML w modelowaniu systemów informatycznych

Projektowanie struktury danych

Język UML w modelowaniu systemów informatycznych

Diagramy przypadków użycia

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Projektowanie interfejsu użytkownika. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Projektowanie warstwy danych

Podstawy języka UML2 w realnych projektach

Diagram sekwencji. Komunikaty mogą być opisane w sposób sformalizowany. poprz / [warunek] *[iter] nr sekw : wynik := operacja(lista)

Wykład 8: klasy cz. 4

Modelowanie obiektowe - Ćw. 6.

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Model przypadków użycia - rola diagramów aktywności Część 2 Wykładowca Dr inż. Zofia Kruczkiewicz

Diagramy UML, przykład problemu kolizji

Wprowadzenie do programowania aplikacji mobilnych

Sterowniki Programowalne (SP)

Modelowanie obiektowe

Wprowadzenie do UML, przykład użycia kolizja

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Podstawy inżynierii oprogramowania

Diagramy zachowania. Diagramy struktury. przypadki użycia. Stanów. Przeglądu interakcji widoku interakcji (ang. interaction overview)

Inżynieria Oprogramowania Jarosław Kuchta. Projektowanie interfejsu użytkownika (zasady ogólne)

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Inżynieria oprogramowania

Język UML w modelowaniu systemów informatycznych

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Diagramy zachowania. Diagramy struktury. Przypadków użycia. Stanów. Przeglądu interakcji widoku interakcji (ang. interaction overview)

Diagram przypadków użycia

Wykład 5: Klasy cz. 3

Programowanie współbieżne i rozproszone

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

UML. zastosowanie i projektowanie w języku UML

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Projektowanie interfejsu użytkownika (1) Jarosław Kuchta Projektowanie Aplikacji Internetowych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie IU wejście/wyjście

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Modelowanie biznesowe. Na podstawie materiałów: Mirosława Ochodeka

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Transkrypt:

Diagramy interakcji Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Podstawowe pojęcia Interakcja (interaction) Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja występuje w kontekście kolaboracji. Kolaboracja (collaboration) Zespół powiązań między obiektami umożliwiający ich interakcję dla wykonania określonego zadania. Komunikat (message) 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. DiagramyInterakcji Diagramy interakcji 2/20

Rodzaje diagramów interakcji Diagramy kolaboracji (kooperacji, współpracy) 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 DiagramyInterakcji Diagramy interakcji 3/20

Zastosowanie diagramów interakcji Opis działania systemu Opis przypadków użycia Opis scenariusza przypadku użycia Opis operacji klasy DiagramyInterakcji Diagramy interakcji 4/20

Elementy diagramu kolaboracji numer porządkowy aktor komunikat 1: DoSomething() znacznik kierunku obiekt anobject:aclass Klient powiązanie DiagramyInterakcji Diagramy interakcji 5/20

Uwagi do diagramu kolaboracji (1/2) Występujący aktorzy muszą być powiązani z danym przypadkiem użycia Obiekty reprezentują obiekty globalne (dla całego systemu) lub lokalne (np. parametry operacji, zmienne lokalne) Powiązania reprezentują drogi przepływu komunikatów. Komunikaty mogą być przesyłane pomiędzy dwoma aktorami, aktorem a obiektem lub pomiędzy dwoma obiektami. Komunikat reprezentuje przekazanie informacji (w przypadku aktora jako odbiorcy) lub wywołanie operacji (w przypadku obiektu jako odbiorcy). W tym drugim przypadku operacja musi być zdefiniowana w klasie odbiorcy. DiagramyInterakcji Diagramy interakcji 6/20

Uwagi do diagramu kolaboracji (2/2) Przez jedno powiązanie może być przekazywanych wiele komunikatów w różne strony i w różnym czasie. Kierunek przepływu komunikatu określa strzałka. Kolejność przepływu komunikatu określają numery porządkowe. Zamiast numeru porządkowego można podać zaawansowaną specyfikację przesłania komunikatu W przypadku, gdy aspekt czasowy jest bardziej istotny, korzystniej jest użyć diagramu sekwencji. DiagramyInterakcji Diagramy interakcji 7/20

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) DiagramyInterakcji Diagramy interakcji 8/20

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] DiagramyInterakcji Diagramy interakcji 9/20

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 DiagramyInterakcji Diagramy interakcji 10/20

Przykłady komunikatów 1.2a: DoSomething() 3, 5/7: DoSomething() 4: [action=new] NewDocument(SelectType()) DiagramyInterakcji Diagramy interakcji 11/20

Elementy diagramu sekwencji aktor Klient obiekt linia życia anobject:aclass komunikat DoSomething() wektor przepływu komunikatu skupienie sterowania odpowiedź DiagramyInterakcji Diagramy interakcji 12/20

Uwagi do diagramu sekwencji Diagram sekwencji i diagram kolaboracji 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). DiagramyInterakcji Diagramy interakcji 13/20

Tworzenie i niszczenie obiektu Create() anobject:aclass DiagramyInterakcji Diagramy interakcji 14/20

Równoległe wątki sterowania anobject:aclass DiagramyInterakcji Diagramy interakcji 15/20

Rekurencja anobject:aclass DiagramyInterakcji Diagramy interakcji 16/20

Dokładne określenie czasu {t2-t1<1 min} t1 t2 {t3 -t3<10 ms} t3 t3 DiagramyInterakcji Diagramy interakcji 17/20

Przykład diagramu sekwencji Lista klientów: Lista Rachunki niezapłacone: Lista Klient Sprzedawca 1: Zgłoszenie() 3:[nie jest] Podaj dane() 2: jest := Wyszukanie() 4: 3/ jest := Nowy klient() 6: akcja := Potwierdzenie zgłoszenia(nzap) 5: [jest] nzap:=wyszukanie() 7a:[akcja=nowy] Create() Zamówienie: Zamówienia DiagramyInterakcji Diagramy interakcji 18/20

Przykład diagramu kolaboracji Klient 1: Zgłoszenie() 3:[nie jest] Podaj dane() 6: akcja := Potwierdzenie zgłoszenia (nzap) Sprzedawca 2: jest := Wyszukanie() 4: 3/ jest := Nowy klient() 5: [jest] nzap:=wyszukanie() 7a:[akcja=nowy] Create() Lista klientów: Lista Rachunki niezapłacone: Lista Zamówienie: Zamówienia DiagramyInterakcji Diagramy interakcji 19/20

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 DiagramyInterakcji Diagramy interakcji 20/20