UML – Unified Modeling Language (2)

32
UML – Unified Modeling Language (2) Bartosz Baliś, Na podstawie, m.in.: Gunnar Övergaard, Bran Selic, Conrad Bock and Morgan Björkander: UML Behavioral Modeling (tutorial) Agile modeling: http://www.agilemodeling.com

description

UML – Unified Modeling Language (2). Bartosz Baliś, Na podstawie, m.in.: Gunnar Övergaard, Bran Selic, Conrad Bock and Morgan Björkander : UML Behavioral Modeling (tutorial) Agile modeling: http://www.agilemodeling.com. Modele zachowania. Diagramy interakcji (interaction diagrams) - PowerPoint PPT Presentation

Transcript of UML – Unified Modeling Language (2)

Page 1: UML – Unified Modeling Language (2)

UML – Unified Modeling Language (2)

Bartosz Baliś,Na podstawie, m.in.: Gunnar Övergaard, Bran Selic, Conrad Bock and Morgan Björkander: UML Behavioral Modeling (tutorial)Agile modeling: http://www.agilemodeling.com

Page 2: UML – Unified Modeling Language (2)

Modele zachowania Diagramy interakcji (interaction diagrams)

Diagramy sekwencji (sequence) Diagramy kolaboracji (współpracy)

(collaborations) Diagramy stanu (statecharts) Diagramy aktywności (activity graphs)

Page 3: UML – Unified Modeling Language (2)

Diagramy interakcji

Page 4: UML – Unified Modeling Language (2)

Interakcje Interakcja: zbiór komunikatów pomiędzy

instancjami, tj. wywołania operacji, tworzenie i usuwanie instancji.

Komunikaty są częściowo uporządkowane w czasie

Rodzaje diagramów interakcji: Diagramy sekwencji Diagramy kolaboracji

Page 5: UML – Unified Modeling Language (2)

Diagramy interakcji

x y z

Diagram sekwencji

a

b

c

Diagram kolaboracji

x y

z

1.1: a1.2: c

1.1.1: b

Page 6: UML – Unified Modeling Language (2)

Diagram sekwencji

name : Class Obiekt

Linia życia

Aktywacja

other

bodziec

name (…)

powrót

: Class

utworzenie

new (…)

usunięcie

Page 7: UML – Unified Modeling Language (2)

Rodzaje wiadomości

Synchroniczna – nadawca zawiesza działanie, dopóki odbiorca nie zwróci sterowania

Asynchroniczna – nadawca nie czeka na odpowiedź, kontynuuje działanie

Powrót

Page 8: UML – Unified Modeling Language (2)

Rodzaje strzałek – przykład

Page 9: UML – Unified Modeling Language (2)

Przykład – zapisywanie się studenta na seminarium

Page 10: UML – Unified Modeling Language (2)

Diagram kolaboracji

redisplay ()bodziec

1: displayPositions (window)

1.1 *[i := 1..n]: drawSegment (i)

: Controller : Window

wire :Wire{new}: Line

left : Bead right : Bead

1.1.1a: r0 := position () 1.1.1b: r1 := position ()

wire

«local» line

contents {new}

window

«self»

window «parameter»

1.1.2: create (r0, r1)1.1.3: display (window)

1.1.3.1 add (self)

obiekt połączenie

stereotyp

stereotyp

stereotyp

ograniczenie

ograniczenie

Page 11: UML – Unified Modeling Language (2)

Kiedy używać diagramów interakcji? Gdy chcemy pokazać interakcje pomiędzy

instancjami Aby rozpoznać interfejsy klas Użycie diagramów sekwencji

Aby lepiej pokazać kolejność między wiadomościami

Użycie diagramów kolaboracji Aby lepiej pokazać architekturę

Page 12: UML – Unified Modeling Language (2)

Przykład: system rezerwacji lotu

Page 13: UML – Unified Modeling Language (2)

Przypadek użycia: Zmień plan lotu

Aktorzy: podróżny, konto klienta db, system rezerwacji lotów

Warunki wstępne: Podróżny się zalogował Podstawowy przebieg:

Podróżny wybiera opcję ‘zmień plan lotu’ System pobiera konto użytkownika i plan lotu z bazy danych klientów System prosi podróżnego, aby wybrał segment planu lotu, który chce zmienić;

podróżny wybiera segment System prosi podróżnego o nowe informacje o odlocie i przylocie; podróżny

dostarcza tych informacji Jeśli loty są dostępne, to … … System wyświetla podsumowanie transakcji.

Alternatywny przebieg: Jeśli nie ma dostępnych lotów, to …

Page 14: UML – Unified Modeling Language (2)

Diagram sekwencji: zmień plan lotu

:System rezerwacjiPodróżny System rezerwacji lotów

zmień plan podróży

pobierz konto użytk.

pobierz planpokaż plan

wybierz segment

pokaż detale

zmień danedostępne loty

::

Konto klienta DBMS

Page 15: UML – Unified Modeling Language (2)

Diagram kolaboracji: zmień planu lotu

Podróżny Konto klienta DBMS

System rezerwacji lotów

: System rezerwacji

7: zmień dane

2: pobierz konto użytk.3: pobierz plan

4: pokaż plan

8: dostępne loty

1: zmień plan lotu5: wybierz segment

6: pokaż detale

Page 16: UML – Unified Modeling Language (2)

Zmień plan lotu: dokładniejszy model

: Podróżny : Konto klienta DBMS

: System Rezerwacji Lotów

Modyfikator planu lotu

Protokół S.R.L.

Formularz planu lotu Protokół DBMS

Plan lotuKonto

6: pobierz plan

7: pobierz plan1: zmień plan lotu

10: pokaż2: Utwórz modyfikator

5: utwórz 8: utwórz

3: pobierz konto użytk.

4: pobierz konto użytkownika

9: wyświetl

Page 17: UML – Unified Modeling Language (2)

Diagramy stanu

Page 18: UML – Unified Modeling Language (2)

ONONONON

Automat Maszyna, w której wyjściowe zachowanie zależy nie

tylko od aktualnych bodźców na wejściu, ale też historii poprzednich bodźców

Posiada wewnętrzny stan, który reprezentuje wczesniejsze doświadczenie

ONONONONONONONON ONONONON

OFFOFFOFFOFF

Page 19: UML – Unified Modeling Language (2)

off

on

Diagram maszyny stanowej (automatu)

Lamp OnLamp OnLamp OnLamp On

Lamp OffLamp OffLamp OffLamp Off

off

on

Page 20: UML – Unified Modeling Language (2)

Diagram stanów UML

ReadyReadyReadyReady

stop

/ctr := 0stop

StanStanStanStan

Wyzwalacz Wyzwalacz (zdarzenie)(zdarzenie)Wyzwalacz Wyzwalacz (zdarzenie)(zdarzenie)

AkcjaAkcjaAkcjaAkcja

PseudostanPseudostanpoczątkowypoczątkowyPseudostanPseudostanpoczątkowypoczątkowy

PrzejściePrzejściePrzejściePrzejście

Stan Stan końcowykońcowy

Stan Stan końcowykońcowy

DoneDoneDoneDone

Page 21: UML – Unified Modeling Language (2)

Do czego nadaje się model stanów? Maszyna stanów nadaje się do opisu

zachowania dyskretnego, sterowanego zdarzeniami (event-driven) Nie nadaje się do modelowania zachowania

ciągłego

timetime

thresholdthreshold

Page 22: UML – Unified Modeling Language (2)

Zachowanie sterowane zdarzeniami Typy zdarzeń

interakcje: Synchroniczne wywołanie operacji obiektu (call event) Asynchroniczne otrzymanie sygnału (signal event)

wystąpienie chwili w czasie (time event) upłynięcie okresu czasu nadejście określonej daty / czasu

zmiana wartości jakiegoś bytu (change event) Instancja zdarzenia = wystąpienie zdarzenia

określonego typu występuje w określonej chwili czasowej, nie jest rozciągła

w czasie (nie trwa)

Page 23: UML – Unified Modeling Language (2)

Przykład – wpisywanie numeru PESEL

Page 24: UML – Unified Modeling Language (2)

Diagramy aktywności

Page 25: UML – Unified Modeling Language (2)

Diagramy aktywności UML-owe odpowiedniki diagramów

przepływu Model przepływ wraz z decyzjami,

alternatywnymi i równoległymi ścieżkami, itp.

Page 26: UML – Unified Modeling Language (2)

Przykład – pobierz pieniądze z bankomatu

Łączenie

Scalenie

Page 27: UML – Unified Modeling Language (2)

Elementy diagramu (1)Akcja

Przepływ sterowania (control flow)

Koniec całej aktywności (wszystkich przepływów)

Koniec jednego przepływu w ramach aktywności

Obiekt

Start / stan początkowy

Page 28: UML – Unified Modeling Language (2)

Elementy diagramu (2)Rozgałęzianie i scalanie –

rozgałęzianiu towarzyszy warunek

Rozwidlenie i łączenie – począteki koniec współbieżnych wątków.

Różnica między scalaniem i łączeniem Łączenie sychronizuje wchodzące przepływy – dalszy przepływ może się

wykonać dopiero, gdy wszystkie wchodzące dojdą do tego punktu Scalanie nie synchronizuje – każdy przepływ „przechodzi osobno”

i akcja następująca po scalaniu może być wykonana kilka razy (dla każdego wchodzącego przepływu)

Page 29: UML – Unified Modeling Language (2)

Elementy diagramu (3)Przepływ obiektów

Przepływ obiektów – notacja skrócona

Tory – podział akcji pomiędzy obiekty

Page 30: UML – Unified Modeling Language (2)

Zastosowanie diagramów aktywności Modelowanie przepływu sterowania / danych

(obiektów) … ... a nie modeli sterowanych zdarzeniami (maszyn

stanowych) Dobrze nadają się do modelowania

skomplikowanych scenariuszy Dobrze modelują alternatywne scenariusze

Page 31: UML – Unified Modeling Language (2)

UML – podsumowanie

Page 32: UML – Unified Modeling Language (2)

Pięć punktów widzenia na system Przypadków użycia (use case view) – przypadki użycia

i zachowanie systemu z punktu widzenia użytkowników końcowych, analityków i testerów Diagramy przypadków użycia, interakcji

Projektu (design view) – klasy, interfejsy, schematy współpracy, które tworzą podstawowy słownik problemu i jego rozwiązania Diagramy klas, obiektów, interakcji

Procesów (process view) – wątki i procesy, które składają się na współbieżne przetwarzanie w systemie, synchronizacja Diagramy aktywności

Implementacji (implementation view) – komponenty i pliki, które składają się na fizyczną instalację (release) systemu Diagramy komponentów

Wdrożenia (deployment view) – obejmują węzły, czyli topologię sprzętową, na której działa system Diagramy wdrożeń