UML – Unified Modeling Language (2)

Post on 20-Jan-2016

60 views 0 download

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)

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)

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

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

Diagramy interakcji

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

Diagramy interakcji

x y z

Diagram sekwencji

a

b

c

Diagram kolaboracji

x y

z

1.1: a1.2: c

1.1.1: b

Diagram sekwencji

name : Class Obiekt

Linia życia

Aktywacja

other

bodziec

name (…)

powrót

: Class

utworzenie

new (…)

usunięcie

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

Rodzaje strzałek – przykład

Przykład – zapisywanie się studenta na seminarium

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

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ę

Przykład: system rezerwacji lotu

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 …

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

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

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

Diagramy stanu

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

off

on

Diagram maszyny stanowej (automatu)

Lamp OnLamp OnLamp OnLamp On

Lamp OffLamp OffLamp OffLamp Off

off

on

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

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

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)

Przykład – wpisywanie numeru PESEL

Diagramy aktywności

Diagramy aktywności UML-owe odpowiedniki diagramów

przepływu Model przepływ wraz z decyzjami,

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

Przykład – pobierz pieniądze z bankomatu

Łączenie

Scalenie

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

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)

Elementy diagramu (3)Przepływ obiektów

Przepływ obiektów – notacja skrócona

Tory – podział akcji pomiędzy obiekty

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

UML – podsumowanie

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ń