@PSI W08 Modele stanów i aktywności

background image

Projektowanie systemów informatycznych

background image

st. wykł. mgr inż. Janusz Czuchnowski Master of Business Training

e-mail:

jczu@zie.pg.gda.pl

tel. praca: +48 58 347 16 12

pokój: 807a Gmach B

Konsultacje: środa 13.30 – 14.00

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

2

background image

W01 – Wprowadzenie do inżynierii oprogramowania

W02 – Unified Modelling Language - biznesowe przypadki użycia

W03 – Unified Modelling Language - model wymagań

W04 – Podstawowe zasady obiektowości

W05 – Projektowanie obiektowe

W06 – Diagramy klas

W07 – Diagramy sekwencji i interakcji

W08 – Tworzenie modelu obiektowego

W09 – Model testowania - zapewnienie jakości oprogramowania

W10 – Projektowanie strukturalne

W11 – System informacyjny systemu działania

W12 – Proces tworzenia oprogramowania

W13 – Metodyki ewolucyjne projektowania SI

W14 – Zarządzanie zmianą - implementacja i rozwój systemu

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

3

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz

Czuchnowski

4

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

5

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz

Czuchnowski

6

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 7

Obiekt, w świetle swoich własności (unikalna tożsamość, stan i zachowanie) może być traktowany
jako automat o skończonej liczbie stanów, czyli pewną maszynę, która może znajdować się w
danym momencie w jednym z wyróżnionych stanów, a także może oddziaływać na otoczenie i vice-
versa.

Maszyna stanów jest grafem skierowanym, reprezentowanym za pomocą notacji diagramów stanów.
Wierzchołki grafu stanowią stany obiektu, a łuki opisują przejścia między stanami. Przejście między
stanami jest odpowiedzią na zdarzenie. Zwykle, maszyna stanów jest przypisana do klasy i
specyfikuje reakcje obiektów (wystąpień danej klasy) na zdarzenia, które do nich przychodzą,
stanowiąc w ten sposób model historii życia dla obiektów danej klasy (opis wszystkich możliwych
stanów i przejść). Można też przypisać maszynę stanów do przypadku(ów) użycia, operacji,
kolaboracji, ale w tym znaczeniu − przepływu sterowania − częściej wykorzystuje się inne środki, np.
diagramy aktywności.

Takie podejście, separujące obiekt od reszty świata (innych obiektów w systemie czy poza nim),
stanowiące podstawę do konstruowania diagramów stanów, pozwala na dokładną analizę
zachowań pojedyńczego obiektu, ale może nie być najlepszym sposobem na zrozumienie działania
systemu jako całości. Dlatego, diagramy stanów najlepiej sprawdzają się w procesie analizy
działania mechanizmów sterujących, takich jak np, interfejsy użytkownika czy sterowniki urządzeń.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 8

Np. stan obiektu klasy Osoba może być opisany zestawem wartości atrybutów, takich jak:

nazwisko = Kowalski, imię = Adam, zatrudniony_w = Firma_X; zmiana wartości atrybutu, np. zatrudniony_w na
Firma_Y spowoduje zmianę stanu obiektu.

Stan
obiektu

Stan obiektu − w podstawowym znaczeniu − dotyczy pewnego fragmentu historii
życia obiektu i opisywany jest przez zestaw wartości wszystkich (?) atrybutów oraz
wszystkich (?) powiązań danego obiektu z innymi obiektami w pewnej chwili
czasowej. Obiekt pozostaje w danym stanie do momentu wystąpienia zdarzenia,
które spowoduje zmianę tego stanu na inny. Innymi słowy, stan to “zdjęcie
migawkowe” jednej sytuacji, w której znalazł się obiekt.

Często abstrahuje się od pewnych składników stanu, lub “zlepia się” wiele stanów w
jeden.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 9

Ile obiekt może mieć stanów?

Bardzo dużo. Jeżeli np. może być 1 000 000 nazwisk, 1 000 imion i 100 000 firm, to liczba
stanów wynosi 100 000 000 000 000. Nawet dla małego obiektu liczba stanów może być duża.

Ile stanów może mieć cały system?

Bardzo, bardzo dużo: iloczyn liczby wszystkich możliwych stanów dla każdej maszyny stanów
przez liczbę wszystkich obiektów wszystkich klas.

Równoważne definicje stanu obiektu:

 stan − to zbiór wartości własności obiektu (atrybutów i powiązań) w pewnym

aspekcie podobnych (rozważane jest tu podobieństwo jakościowe),

 stan − to okres czasu, w którym obiekt oczekuje na zdarzenie,
 stan − to okres czasu, w którym obiekt przetwarza.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 10

Notacja:

Stan jest oznaczany za pomocą prostokąta z zaokrąglanymi rogami. Stan może mieć nazwę, ale
często jest charakteryzowany jedynie poprzez wewnętrzne operacje.

Nazwa stanu

entry/akcja1/akcja2/…
do/aktywność1/aktywność2/…
exit/akcja1/akcja2/...

akcja − operacja, której nie można przerwać (atomowa)
lista akcji − akcja1/akcja2/… − traktowana jest, jak
pojedyncza akcja,

aktywność − operacja, którą można przerwać,
lista aktywności − podobnie, jak lista akcji,

entry − słowo kluczowe specyfikujące operacje, zawsze

wykonywane na wejściu do stanu (rodzaj setup’u), exit − operacje zawsze wykonywane na wyjściu (
rodzaj porządkowania “po”), do − operacje wykonywane w trakcie.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 11

Rodzaj stanu

Opis

Notacja

prosty (simple)

stan nie posiadający substruktury

złożony sekwencyjny
(sequential composite
state)

złożony z jednego lub więcej podstanów, z
których tylko jeden jest aktywny, gdy
aktywny jest stan złożony

początkowy
(initial state)

pseudostan służący do oznaczenia punktu
startowego (początku życia)

końcowy
(final state)

pseudostan służący do oznaczenia punktu
finalnego (końca życia)

złożony współbieżny
(concurrent composite
state)

podzielony na co najmniej dwa współbieżne
podstany, które są jednocześnie aktywne,
gdy aktywny jest stan złożony (jako całość)

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 12

Rodzaj stanu

Opis

węzeł
(junction state)

pseudostan służący do łączenia łańcucha
przejść w jedno przejście

historyczny
(history state)

pseudostan, którego aktywacja uaktywnia
stan poprzednio aktywny (w ramach stanu
złożonego)

H

odnośnikowy
(submachine reference
state)

pseudostan, do którego występuje odwołanie
na diagramie;

podmieniany przez stan

wyspecyfikowany w odwołaniu

pniak
(stub state)

pseudostan, do którego występuje odwołanie
na diagramie, wchodzący w skład innego,
złożonego stanu

Notacja

include S

S

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 13

Np. zdarzeniem jest naciśnięcie przez użytkownika systemu lewego klawisza myszy, lub odlot
samolotu w dniu 20 stycznia 1997 o godz. 19:00 z Warszawy do Paryża, gdy system zajmuje się
rejestracją lotów.

Zdarzeniem jest coś, co następuje w jednym punkcie czasowym (z perspektywy naszej percepcji
czasu) i warte jest analizowania z punktu widzenia celów projektowanego systemu (wszystko, co
wywołuje pewne skutki w systemie może być modelowane jako zdarzenie). Samo zdarzenie nie trwa
w czasie, ale fakt zaistnienia zdarzenia jest rejestrowany i trwa aż do momentu, gdy jakiś podmiot
go “skonsumuje”(innymi słowy zdarzenie nie musi być obsłużone od razu w momencie wystąpienia
− może być wpisane na listę zdarzeń oczekujących na obsługę).

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 14

Zdarzenia mogą być uporządkowane w czasie (synchroniczne), np. odlot samolotu z Warszawy i
przylot tego samolotu do Paryża, ale możemy także rozpatrywać pewne zdarzenia jako współbieżne,
np. naciśnięcie klawisza myszy i odlot samolotu są zdarzeniami wzajemnie niezależnymi i mogą być
rozpatrywane jako współbieżne.

Zdarzenie w sensie opisu pewnego zjawiska jest klasyfikatorem i jako klasyfikator może posiadać
atrybuty, np. zdarzenie odlot samolotu może mieć datę i godz. odlotu jako swoje atrybuty, co
zapisujemy następująco: odlot samolotu (data, godz.). Wystąpienie zdarzenia jest odlotem z
ustalonymi, konkretnymi wartościami obu atrybutów.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 15

Typ zdarzenia

wołanie

Opis

Składnia

zmiana

sygnał

czas

otrzymanie przez obiekt synchronicznego żądania
wykonania operacji − najbardziej podstawowy rodzaj
zdarzenia

spełnienie warunku typu Boolean, np. when (x =10);
zdarzenie typu zmiana jest użyteczne np. Do
modelowania sytuacji, gdy obiekt zmienia stan po
otrzymaniu odpowiedzi na wysłany przez siebie
komunikat

otrzymania przez obiekt asynchronicznego żądania
wykonania operacji; użyteczne do modelowania
zdarzeń przychodzących z zewnętrza systemu

upłynięcie czasu określonego w sposób bezwzględny
lub względny, np. after (5 sec.)

op (a : T)

when(wyrażenie)

nazwa_syg (a : T)

after (czas)

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 16

Obsługa zdarzenia typu zmiana jest kosztowna obliczeniowo, ponieważ wymaga ciągłej ewaluacji
warunku. Wadą tego typu zdarzeń jest też przesłonięcie związku typu przyczyna-skutek, czyli
przesłonięcie tego, co wywołało spełnienie warunku − eksponowany jest tu jedynie sam warunek.
Dlatego zdarzenia typu zmiana powinny być wykorzystywane tylko wtedy, gdy inne sposoby wydają
się nienaturalne.

Sygnały mogą być reprezentowane na diagramach podobnie jak klasy, ale oznaczone stereotypem

«

sygnał

»

(

«

signal

»

); parametry sygnału są tu deklarowane jako atrybuty. Między sygnałami mogą

występować związki generalizacji, co oznacza, że mogą dziedziczyć parametry po innych
sygnałach oraz “odpalać” przejścia zgodnie ze specyfikacją sygnałów, po których dziedziczą.

Przykłady zdarzeń
typu sygnał:

− odlot samolotu ( linia lotnicza, nr lotu, miasto )
− naciśnięcie klawisza myszy ( klawisz, lokacja kursora )
− wprowadzenie ciągu znaków ( tekst )
− podniesienie słuchawki telefonu
− wybranie cyfry numeru telefonu (cyfra)
− wkroczenie obrotów silnika w niebezpieczną strefę

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 17

Konkretny sygnał, z ustalonymi wartościami atrybutów jest wystąpieniem odpowiedniego
klasyfikatora sygnał.

Zdarzenia
związane z
akcjami
użytkownika:

«

sygnał

»

użycie_urz_wejściowego
urządzenie

«

sygnał

»

naciśnięcie_klawisza_myszy

«

sygnał

»

puszczenie_klawisza_myszy

«

sygnał

»

sterujący

«

sygnał

»

znakowy

«

sygnał

»

spacja

«

sygnał

»

alfanumeryczny

«

sygnał

»

interpunkcyjny

sygnał abstrakcyjny

sygnały
konkretne

zdarzenie

czas

«

sygnał

»

klik_klawisza_myszy
lokalizacja

«

sygnał

»

naciśnięcie_klawisza_klawiatury
kod_znaku

«

sygnał

»

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 18

W ogólności, przejście może być opisane przez zdarzenie, które je odpaliło (wywołało), warunek
oraz akcję (akcje), która jest wykonywana przed ewentualną zmianą stanu.

przejście zewnętrzne
(external transition)

przejście wewnętrzne
(internal transition)

samo-przejście
(selftransition)

zdarzenie [warunek] /akcja

bez zmiany stanu

zdarzenie [warunek] /akcja

Stan

zdarzenie [warunek] /akcja

Stan 1

Stan 2

Przejście

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 19

Dla samo-przejścia, w przeciwieństwie do przejścia wewnętrznego, przy wychodzeniu ze stanu
wykonywane są wszystkie akcje wyspecyfikowane po słowie kluczowym exit, podobnie − przy
ponownym wchodzeniu do stanu − są wykonywane akcje specyfikowane po słowie kluczowym entry.

przejście automatyczne
(completion transition)

[warunek] /akcja

Stan 1

Stan 2

Przetwarzanie zostało zakończone

wszystkie operacje wyspecyfikowane

po słowach kluczowych entry, exit i do zostały zakończone, co
spowodowało zmianę stanu ze Stanu 1 na Stan 2.

Warunek typu Boolean, występujący w etykiecie przejścia, może dotyczyć zarówno atrybutów
maszyny stanów
, jak i argumentów zdarzenia, które odpaliło dane przejście. Warunek podlega
oszacowaniu w momencie wystąpienia zdarzenia. Jeśli warunek przyjmie wartość TRUE − przejście
będzie miało miejsce. Uwaga − warunek występujący w specyfikacji przejścia różni się od warunku w
zdarzeniu typu zmiana − jest ewaluowany tylko jeden raz.
Jedno zdarzenie może stanowić tryger dla więcej niż jednego przejścia − wtedy należy opatrzyć
wszystkie przejścia odpalane przez dane zdarzenie wzajemnie wykluczającymi się warunkami (w ramach
jednego wątku sterowania). Jeśli nie wszystkie możliwości zostały przykryte, zdarzenie zostanie
zignorowane.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 20

przejścia wewnętrzne:

entry/ ustaw echo na gwiazdkę/ haslo_zeruj()
exit/ ustaw normalne echo
znak/ obsłuż znak
czyść/ haslo_zeruj()
pomoc/ wyświetl pomoc

otrzymanie zamówienia (suma)
[suma > 100 zł.]

Wprowadzanie hasła

przejścia zewnętrzne:

otrzymanie zamówienia (suma)
[suma < =100 zł.]

Oczekiwanie

Przetwarzanie

zamówienia

Zatwierdzenie

kredytu

Anulowanie

zamówienia

kredyt zatwierdzony/ licz debet ()

kredyt odrzucony

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 21

powrót
(return)

przypisanie
(assignment)

wołanie
(call)

nowy
(create)
usuń
(destroy)
wyślij
(send)

zakończ
(terminate)

Rodzaj akcji

Opis

Składnia

zmienna := wyrażenie

nazwa_op (arg, …)

create nazwa_klasy (arg, …)

destroy ()

nazwa_sygnału (arg, …)

terminate

przypisanie wartości do zmiennej

wywołanie operacji na obiekcie;
czeka się na zakończenie operacji;
może być zwracana wartość

utworzenie nowego obiektu

usunięcie obiektu

utworzenie wystąpienia sygnału
i wysłanie do obiektu (ów)

samodestrukcja obiektu

specyfikuje instrukcję powrotu

return wartość_zwracana

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 22

Urządzenie

niesprzedane

Urządzenie

sprzedane

kupno urządzenia przez klienta (klient)

zwrot urządzenia przez klienta (klient)

after (data gwarancji)

Kolejka

białych

Kolejka

czarnych

ruch białych

ruch czarnych

{ czarne wygrywają }

{ remis }

{ białe wygrywają }

when (szach mat)

when (pat)

when (pat)

when (szach mat)

Diagram typu: historia (cykl) życia obiektu (maszyna stanów dla klasy Urządzenie)

Diagram typu: przepływ sterowania

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 23

Stan prosty nie posiada substruktury, jest specyfikowany przez zbiór operacji (akcji, aktywności)
oraz przejść. Stan złożony może być zdekomponowany na stany bardziej proste; dekompozycja
może być traktowana jako rodzaj specjalizacji. Każdy z podstanów dziedziczy przejścia
nadstanu. Tylko jeden z podstanów może być aktywny w danym momencie. Generalizacja
stanów jest formą zagnieżdżania stanów.

S

S1

S2

S3

zd2

zd3

zd5

zd4

zd4

zd4

zd1

wcześniejsze prace Rumbaugha

S1

S2

S3

S

zd4

zd5

zd3

zd1

zd2

D. Harel, OMT, UML

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 24

Jazda do przodu

na 1-szym

biegu

Jazda do przodu

na 2-gim

biegu

Jazda do tyłu

Samochód

zatrzymany

wybrano 1-szy bieg

naciśnięto hamulec

wybrano następny
bieg

wybrano
poprzedni
bieg

naciśnięto
hamulec

naciśnięto
hamulec

wybrano

wsteczny bieg

przykładowa maszyna stanów dla klasy Samochód

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 25

Jazda do przodu

na 1-szym

biegu

Jazda do przodu

na 2-gim

biegu

Jazda do tyłu

Jazda

wybrano
następny bieg

wybrano
poprzedni bieg

Samochód

zatrzymany

wybrano
wsteczny bieg

wybrano 1-szy bieg

naciśnięto hamulec

zastosowanie generalizacji stanów dla
poprzedniego diagramu stanów

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 26

Samochód

zatrzymany

Jazda do przodu

na 1-szym

biegu

Jazda do przodu

na 2-gim

biegu

Jazda

do tyłu

Jazda

wybrano

poprzedni

bieg

wybrano
następny bieg

wybrano wsteczny bieg

naciśnięto hamulec

wybrano 1-szy bieg

Tu została wykorzystana notacja
UML

dla

stanów

złożonych

sekwencyjnych.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 27

Stan

spoczynku

wrzucono monetę (wartość) / inicjuj bilans

kasowanie / zwróć monety

[reszta < 0]

[reszta > 0]

wybór (pozycja)

[brak pozycji]

[reszta = 0]

Zliczanie pieniędzy

wrzucono monetę (wartość)

/dodaj do bilansu

do/ wydaj pozycję

do/ wydaj resztę

do/przesuń ramię do
właściwego wiersza

do/wypchnij
pozycję

do/przesuń ramię do
właściwej kolumny

przejście automatyczne

do/sprawdź wybraną pozycję

i/lub oblicz resztę

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 28

Innym rodzajem stanów złożonych są stany składające się ze współbieżnych podstanów.

synchronizacja wewnętrzna

synchronizacja zewnętrzna

Sytuacja typowa:
wyjście ze stanu
następuje wtedy,
gdy we wszystkich
współbieżnych
podstanach zostanie
osiągnięty stan
końcowy.

Oba diagramy są
równoważne.

Takie wyjście ze stanu też jest
możliwe (sytuacja nietypowa).

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 29

Współbieżność ma źródło w trzech sytuacjach: (1) obiekty mogą być zagregowane, (2) pewne
operacje w ramach jednego obiektu można wykonywać współbieżnie, a także (3) obiekty mogą
działać asynchronicznie.

Każdy obiekt wchodzący w skład
agregatu posiada tu

własny

diagram stanów. Można je łączyć,
tworząc diagram dla agregatu
samochód

(wspólny

diagram

będzie uwzględniał współbieżność
operacji).

Samochód

Zapłon

Bieg

Hamulec

Gaz

Zapłon

Wył.

Włącz.

Zapala

kluczyk
max w prawo
[Biegi w pozycji 0]

hamulec
puszczony

kluczyk do poz. Wył.

Biegi
....

Gaz
....

Hamulec

Włącz.

Wył.

hamulec
naciśnięty

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 30

Gotowy
do działania

Maszyna stanów dla automatu do wypłacania pieniędzy

Wypłata

do/wydaj gotówkę

do/oddaj kartę

Podział na

współbieżne procesy

Synchronizacja:

wszystkie współbieżne procesy

muszą się zakończyć, aby automat był

ponownie gotowy do działania

Obiekt może wykonywać współbieżnie dowolną liczbę akcji.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 31

Oczekiwanie

na polecenia

include Pomoc

include Uruchom

polecenie Pomoc

polecenie Uruchom

Pomoc

entry/ wyświetl ekran pomocy
exit/ usuń ekran pomocy

zapytanie/ pokaż odpowiedź

stany, do których występują
odwołania na diagramie

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 32

X

W

U

V

Y

X

W

Y

U

V

zd1

zd2

zd1

zd2

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 33

Samochód

zatrzymany

Jazda

do tyłu

Jazda

wybrano wsteczny bieg

naciśnięto hamulec

wybrano 1-szy bieg

Zawartość stanu złożonego sekwencyjnego Jazda została ukryta.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz

Czuchnowski

34

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 35

Diagramy aktywności

Notacja
Swimlanes
Modelowanie iteracji

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 36

Diagramy aktywności nie posiadają wyraźnego pierwowzoru w poprzednich pracach “trzech

przyjaciół” (Jacobsona, Boocha i Rumbaugha). Łącząc idee pochodzące z trzech źródeł: diagramów
zdarzeń J. Odell’a
, technik modelowania stanów i sieci Petriego i są szczególnie użyteczne przy
modelowaniu

przepływów operacji czy też w opisie zachowań z przewagą przetwarzania

współbieżnego.

Diagramy aktywności z zasady nie pokazują wszystkich szczegółów przetwarzania. Pokazują

aktywności bez pokazywania bytów, realizujących daną aktywność i dlatego z reguły używane są jako
punkt startowy dla procesu modelowania zachowań. Dla skompletowania projektu każda aktywność
powinna być rozpisana na szereg operacji, z których każdą trzeba bedzie na późniejszym etapie
przydzielić do odpowiedniej klasy.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 37

Graf aktywności to maszyna stanów, której podstawowym zadaniem nie jest analiza

stanów obiektu, ale modelowanie przetwarzania (przepływów operacji). Stany grafu
aktywności odpowiadają stanom wyróżnialnym w trakcie przetwarzania, a nie stanom
obiektu i noszą nazwę aktywności. Aktywność może być interpretowana różnie, w
zależności od perspektywy: jako zadanie do wykonania i to zarówno przez człowieka,
jak i przez komputer (z perspektywy pojęciowej) czy też np. jako pojedyncza metoda (z
perspektywy

projektowej). Podobnie, przejścia między stanami nie są tu wiązane z

nadejściem zdarzenia, ale z zakończeniem przetwarzania wyspecyfikowanego dla danego
stanu.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 38

Notacja przyjęta w UML dla diagramów aktywności:

nazwa

aktywności

aktywność (z zaokrąglonymi bokami)

przejście, rzadko opisywane nazwą zdarzenia, ponieważ z reguły oznacza
zakończenie aktywności; może być opatrzone warunkiem, może też być
oznaczone symbolem iteracji; akcje opisujące przejścia powinny być raczej
dołączone do którejś z aktywności
; kreska ciągła oznacza przepływ
sterowania, a przerywana - przepływ obiektu

romb decyzyjny, który może rozdzielać jedno przejście na kilka innych
(opatrzonych warunkami) lub łączyć kilka alternatywnych przejść w jedno

sztabka synchronizująca (synchronization bar); może być typu

fork

(rozdzielenie jednej operacji na kilka przebiegających równolegle) lub typu
join” (złączenie kilku operacji równoległych w jedną)

aktywność początkowa

aktywność końcowa

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 39

Osoba::Przygotowanie Napoju

Znajdź Napój

Nasyp kawy
do filtru

Dolej wody
do zbiornika

Włóż filtr
do maszynki

Włącz maszynkę

Gotowanie kawy

Nalej
kawę

Zrób herbatę

Weź sobie wody

[nie ma kawy]

[kawa znaleziona]

[nie ma herbaty]

[herbata
znaleziona]

światełko zgasło

Weź
filiżanki

Wypij

{ fork }

{ join }

*[dla 3 filiżanek]

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 40

Diagramy aktywności opisują przepływy operacji, ale nie specyfikują, kto jest odpowiedzialny za ich
wykonanie: którzy ludzie czy

które komórki organizacyjne (z perspektywy pojęciowej). Z

perspektywy projektowej dotyczy to

klas. Można opisywać każdą aktywność podając osobę czy

klasę odpowiedzialną za jej wykonanie, ale być może wygodniejszym sposobem przenoszenia
informacji tego rodzaju jest

grupowanie

aktywności

odpowiednio do odpowiedzialności i

umieszczanie ich w regionach rozdzielonych pionowymi liniami (jak na następnej folii). Regiony, z
powodu swojego wyglądu, są traktowane jak tory dla przepływów (tory pływackie, ang. swimlanes).
Nazwy regionów odpowiadają nazwom osób, komórek organizacyjnych czy klas odpowiedzialnych
za wykonanie aktywności.

Na diagramach aktywności, oprócz przepływów sterowania można

też pokazywać przepływy

obiektów, w takim przypadku nie zamieszczamy na diagramie przepływu sterowania (patrz następna
folia). Obiekt może stanowić daną wejściową dla aktywności (linia przerywana prowadzi wtedy od
obiektu do aktywności) czy też daną wyjściową (linia przerywana idzie od aktywności do obiektu).

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 41

Pobierz

zamówienie

Wyślij to, co

zamówiono

Pamiętaj, co

wysłano

Skompletuj

zamówienie

Płać

Klient

Dział Sprzedaży

Magazyn

Zamówienie

[wprowadzone]

Zamówienie

[skompletowane]

Zamówienie

[wysłane]

Zamówienie

[umieszczone]

Wystaw

zamówienie

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 42

Wyszukiwanie serwisantów,

którzy potrafią naprawiać

dane uszkodzenie

* [ dla wszystkich serwisantów ]

Wyszukiwanie serwisanta

z najlepszym terminem

{ multiple trigger - wszystkie aktywności są
odpalane jednocześnie }

{ synchronizacja aktywności, które zostały
jednocześnie odpalone; może być opuszczona
}

Przydzielanie naprawy

wybranemu serwisantowi

Wyszukiwanie 1-szego wolnego terminu

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 43

Wyszukanie serwisantów,

którzy potrafią naprawiać

dane uszkodzenie

Przydzielenie

naprawy serwisantowi

Sprawdzenie, czy serwisant

ma czas w ciągu

najbliższego tygodnia

{ nie ma/ma/sprawdzono
wszystkich serwisantów }

[ ma ]

[ nie ma]

{

rozwiazanie

z

wykorzystaniem

rombu decyzyjnego}

[ sprawdzono
wszystkich
serwisantów ]

Anulowanie

zgłoszenia

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 44

Scenariusz dla przypadku użycia: wypożyczenie egzemplarza książki

Sprawdzenie, czy można wypożyczyć danemu czytelnikowi

o ile można, to:

Sprawdzenie, czy książka jest dostępna (jest wolny egzemplarz)

o ile jest dostępny egzemplarz, to:

Rejestracja wypożyczenia

Personel

biblioteczny

Wypożyczenie

egzemplarza książki

Sprawdzenie, czy można

wypożyczyć danemu czytelnikowi

Sprawdzenie

dostępności książki

Rejestracja wypożyczenia

egzemplarza

«include»

«extend»

«extend»

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 45

Sprawdzenie,

czy można wypożyczyć

danemu czytelnikowi

Sprawdzenie

dostępności książki

Rejestracja

wypożyczenia

egzemplarza książki

[ można]

[ nie można ]

[ dostępna ]

[ niedostępna ]

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz

Czuchnowski

46

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 47

Kiedy używać diagramów aktywności:

 Do analizowania przypadków użycia - gdy interesują nas bardziej operacje niezbędne do

realizacji danego przypadku (czy też wzajemne zależności między tymi operacjami), a nie to,
kto jest odpowiedzialny za ich przeprowadzenie. Przypisanie operacji do obiektów jest
wykonywane na etapie późniejszym z wykorzystaniem diagramów interakcji.

 Do zrozumienia interakcji zachodzących między przypadkami użycia (ważne zastosowanie).

 Do modelowania przetwarzania wielowątkowego.

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

Slajd 48

Kiedy nie używać diagramów aktywności:

 Do pokazywania współpracy między obiektami w trakcie realizacji przypadku użycia -

do tego bardziej nadają się diagramy interakcji.

 Do pokazywania zachowań obiektów w trakcie ich życia, w tym celu powinno się

wykorzystywać diagramy stanów.

Prosta

reguła na wykorzystywanie diagramów dynamicznych w procesie

modelowania zachowań:

jeden przypadek użycia, wiele obiektów - diagramy interakcji,
wiele przypadków użycia, jeden obiekt - diagramy stanów,
wiele przypadków użycia, wiele obiektów - diagramy aktywności.

background image

Wysiłek związany z projektowaniem systemu informatycznego jest duży,
ale efekt uzyskany po sfinalizowaniu wszystkich prac – jest wart tego wysiłku

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

49

background image

2012-02-15

opr.: st. wykł. mgr inż. Janusz Czuchnowski

50


Wyszukiwarka

Podobne podstrony:
w08 Modele atmosfer
Zad 1 - Modele doradztwa zawodowego, Studia, Semestry, semestr IV, WUP-aktywne metody poszukiwania p
psi, Modele związków encji
Budowa miejsca aktywnego i modele powstawania kompleksu enzym substrat
ćw 8 Teoria Sterowania modele obiektów sterowania w przestrzeni stanów (rozdział III TS w zadaniach
Zasady organizowania stanowisk pracy
LECZENIE STANÓW NAGLĄCYCH W DIABETOLOGII WYNIKAJĄCYCH Z NIEDOBORU INSULINY
PSI 5
prezentacja aktywne metody nauczania
6 PKB 2 Pomiar aktywności gospodarczej rozwin wersja
w5b modele oswietlenia
w9 aktywna polityka spoleczna
Analiza pracy Opis stanowiska pracy
W08 Patofizjologia zaburzeń gospodarki węglowodanowej

więcej podobnych podstron