Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

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

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

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

NIFIED M L ODELLING ANGUAGE. Diagramy czynności

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Modelowanie i analiza systemów informatycznych

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

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

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

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

Inżynieria oprogramowania

Michał Adamczyk. Język UML

UML - zarys 2007/2008

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Diagramy czynności. Widok logiczny. Widok fizyczny

Diagramy klas. dr Jarosław Skaruz

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

Podstawy programowania III WYKŁAD 4

Diagramy sekwencji. wymienianych między nimi

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

Język UML w modelowaniu systemów informatycznych

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

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

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

UML. dr inż. Marcin Pietroo

TECHNOLOGIE OBIEKTOWE. Wykład 3

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

Rysunek 1: Przykłady graficznej prezentacji klas.

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

Analiza i projektowanie obiektowe w UML Kod przedmiotu

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

Język UML w modelowaniu systemów informatycznych

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

Zagadnienia Semestr IV Inżynieria Oprogramowania WSZiB

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

Ź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

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

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

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych

Zalety projektowania obiektowego

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

Diagramy przypadków użycia

Modelowanie obiektowe - Ćw. 6.

Podstawy inżynierii oprogramowania

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Diagramy klas. WYKŁAD Piotr Ciskowski

Projektowanie struktury danych

Podstawy języka UML2 w realnych projektach

Inżynieria oprogramowania

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

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

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

Diagramy UML, przykład problemu kolizji

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

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

Modelowanie obiektowe

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

Sterowniki Programowalne (SP)

Projektowanie warstwy danych

Wprowadzenie do UML, przykład użycia kolizja

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

Język UML w modelowaniu systemów informatycznych

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

Wykład 8: klasy cz. 4

Wykład 1 Inżynieria Oprogramowania

Diagram przypadków użycia

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

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

Podstawy modelowania programów Kod przedmiotu

Identyfikacja i modelowanie struktur i procesów biologicznych

Wprowadzenie do programowania aplikacji mobilnych

Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

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

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

UML. zastosowanie i projektowanie w języku UML

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

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

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

Diagramy czynności. sekwencyjnych i współbieŝnych. pomiędzy uporządkowanymi ciągami czynności, akcji i obiektów

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

Transkrypt:

Inżynieria oprogramowania Jarosław Kuchta Modelowanie interakcji

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.

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

Zastosowanie diagramów interakcji Opis działania systemu Opis przypadków użycia Opis scenariusza przypadku użycia Opis operacji klasy

Elementy diagramu kolaboracji numer porządkowy aktor komunikat 1: DoSomething() znacznik kierunku obiekt anobject:aclass Klient powiązanie

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.

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.

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 aktor Klient obiekt linia życia anobject:aclass komunikat DoSomething() wektor przepływu komunikatu skupienie sterowania odpowiedź

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).

Tworzenie i niszczenie obiektu Create() anobject:aclass

Równoległe wątki sterowania anobject:aclass

Rekurencja anobject:aclass

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

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

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

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