@PSI W08 Modele stanów i aktywności


ð
ð
Projektowanie systemów informatycznych
Åšð 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
Åšð 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
4
ð
ð
opr.: st. wykł. mgr inż. Janusz
2012-02-15
Czuchnowski
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski 5
6
ð
ð
opr.: st. wykł. mgr inż. Janusz
2012-02-15
Czuchnowski
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ń.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 7
Stan Stan obiektu - w podstawowym znaczeniu - dotyczy pewnego fragmentu historii
obiektu ż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.
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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 8
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.
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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 9
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.
akcja - operacja, której nie można przerwać (atomowa)
lista akcji - akcja1/akcja2/& - traktowana jest, jak
Nazwa stanu
pojedyncza akcja,
entry/akcja1/akcja2/&
do/aktywność1/aktywność2/&
aktywność - operacja, którą można przerwać,
exit/akcja1/akcja2/...
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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 10
Opis
Rodzaj stanu Notacja
prosty (simple) stan nie posiadajÄ…cy substruktury
złożony sekwencyjny złożony z jednego lub więcej podstanów, z
(sequential composite których tylko jeden jest aktywny, gdy
state) aktywny jest stan złożony
podzielony na co najmniej dwa współbieżne
złożony współbieżny
podstany, które są jednocześnie aktywne,
(concurrent composite
gdy aktywny jest stan złożony (jako całość)
state)
początkowy pseudostan służący do oznaczenia punktu
(initial state) startowego (początku życia)
końcowy pseudostan służący do oznaczenia punktu
(final state) finalnego (końca życia)
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 11
Rodzaj stanu Opis Notacja
węzeł pseudostan służący do łączenia łańcucha
(junction state) przejść w jedno przejście
historyczny pseudostan, którego aktywacja uaktywnia
H
(history state) stan poprzednio aktywny (w ramach stanu
złożonego)
pseudostan, do którego występuje odwołanie
odnośnikowy
na diagramie; podmieniany przez stan
include S
(submachine reference
wyspecyfikowany w odwołaniu
state)
pseudostan, do którego występuje odwołanie
pniak
S
na diagramie, wchodzący w skład innego,
(stub state)
złożonego stanu
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 12
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ę).
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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 13
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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 14
Typ zdarzenia Opis Składnia
wołanie otrzymanie przez obiekt synchronicznego żądania op (a : T)
wykonania operacji - najbardziej podstawowy rodzaj
zdarzenia
zmiana spełnienie warunku typu Boolean, np. when (x =10); when(wyrażenie)
zdarzenie typu zmiana jest użyteczne np. Do
modelowania sytuacji, gdy obiekt zmienia stan po
otrzymaniu odpowiedzi na wysłany przez siebie
komunikat
sygnał otrzymania przez obiekt asynchronicznego żądania nazwa_syg (a : T)
wykonania operacji; użyteczne do modelowania
zdarzeń przychodzących z zewnętrza systemu
czas upłynięcie czasu określonego w sposób bezwzględny after (czas)
lub względny, np. after (5 sec.)
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 15
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ą.
- odlot samolotu ( linia lotnicza, nr lotu, miasto )
Przykłady zdarzeń
- naciśnięcie klawisza myszy ( klawisz, lokacja kursora )
typu sygnał:
- wprowadzenie ciągu znaków ( tekst )
- podniesienie słuchawki telefonu
- wybranie cyfry numeru telefonu (cyfra)
- wkroczenie obrotów silnika w niebezpieczną strefę
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 16
Konkretny sygnał, z ustalonymi wartościami atrybutów jest wystąpieniem odpowiedniego
klasyfikatora sygnał.
«sygnaÅ‚
sygnał abstrakcyjny
zdarzenie
czas
Zdarzenia
zwiÄ…zane z
«sygnaÅ‚
akcjami
użycie_urz_wejściowego
użytkownika:
urzÄ…dzenie
«sygnaÅ‚ «sygnaÅ‚
klik_klawisza_myszy naciśnięcie_klawisza_klawiatury
lokalizacja kod_znaku
«sygnaÅ‚ «sygnaÅ‚
«sygnaÅ‚
sterujÄ…cy znakowy
naciśnięcie_klawisza_myszy
«sygnaÅ‚
sygnały
«sygnaÅ‚ «sygnaÅ‚ «sygnaÅ‚
puszczenie_klawisza_myszy
konkretne
spacja alfanumeryczny interpunkcyjny
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 17
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.
zdarzenie [warunek] /akcja
przejście zewnętrzne
Stan 2
Stan 1
(external transition)
Przejście
przejście wewnętrzne
(internal transition)
zdarzenie [warunek] /akcja
bez zmiany stanu
samo-przejście
Stan
(selftransition)
zdarzenie [warunek] /akcja
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 18
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.
[warunek] /akcja
Stan 2
Stan 1
przejście automatyczne
(completion transition)
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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 19
przejścia zewnętrzne:
otrzymanie zamówienia (suma)
[suma < =100 zł.]
Przetwarzanie
Oczekiwanie
zamówienia
otrzymanie zamówienia (suma)
[suma > 100 zł.]
Zatwierdzenie
kredyt zatwierdzony/ licz debet ()
kredytu
kredyt odrzucony
Anulowanie
zamówienia
Wprowadzanie hasła
entry/ ustaw echo na gwiazdkÄ™/ haslo_zeruj()
exit/ ustaw normalne echo
znak/ obsłuż znak
czyść/ haslo_zeruj()
przejścia wewnętrzne:
pomoc/ wyświetl pomoc
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 20
Rodzaj akcji Opis Składnia
przypisanie przypisanie wartości do zmiennej zmienna := wyrażenie
(assignment)
wywołanie operacji na obiekcie;
wołanie nazwa_op (arg, & )
czeka się na zakończenie operacji;
(call)
może być zwracana wartość
nowy utworzenie nowego obiektu create nazwa_klasy (arg, & )
(create)
usuń
usunięcie obiektu destroy ()
(destroy)
wyślij utworzenie wystąpienia sygnału nazwa_sygnału (arg, & )
(send) i wysłanie do obiektu (ów)
zakończ
samodestrukcja obiektu terminate
(terminate)
powrót
return wartość_zwracana
specyfikuje instrukcjÄ™ powrotu
(return)
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 21
Diagram typu: historia (cykl) życia obiektu (maszyna stanów dla klasy Urządzenie)
kupno urzÄ…dzenia przez klienta (klient)
UrzÄ…dzenie UrzÄ…dzenie
niesprzedane sprzedane
after (data gwarancji)
zwrot urzÄ…dzenia przez klienta (klient)
Diagram typu: przepływ sterowania
when (szach mat)
Kolejka
{ czarne wygrywajÄ… }
białych
when (pat)
ruch czarnych ruch białych
{ remis }
when (pat)
Kolejka
when (szach mat)
czarnych { białe wygrywają }
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 22
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.
zd1
zd2
zd2
S
S
zd1
S1
zd4
zd3
zd5
S1 S2 S3
zd5
S2 S3
zd4
zd4
zd4
zd3
wcześniejsze prace Rumbaugha D. Harel, OMT, UML
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 23
wybrano 1-szy bieg
Jazda do przodu
naciśnięto hamulec
Samochód
na 1-szym
zatrzymany
biegu
wybrano
naciśnięto
poprzedni wybrano następny
wybrano hamulec
bieg bieg
wsteczny bieg
naciśnięto
hamulec
Jazda do przodu
na 2-gim Jazda do tyłu
biegu
przykładowa maszyna stanów dla klasy Samochód
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 24
naciśnięto hamulec
wybrano 1-szy bieg
Samochód
Jazda
zatrzymany
wybrano
wybrano
następny bieg
wsteczny bieg
Jazda do przodu Jazda do przodu
na 1-szym na 2-gim Jazda do tyłu
biegu biegu
zastosowanie generalizacji stanów dla
poprzedniego diagramu stanów
wybrano
poprzedni bieg
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 25
wybrano 1-szy bieg
Jazda
Jazda do przodu
na 1-szym
wybrano
biegu
poprzedni naciśnięto hamulec
Samochód
bieg
wybrano
zatrzymany
następny bieg
Jazda do przodu
Jazda
na 2-gim
do tyłu
wybrano wsteczny bieg
biegu
Tu została wykorzystana notacja
UML dla stanów złożonych
sekwencyjnych.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 26
wrzucono monetę (wartość) / inicjuj bilans
Zliczanie pieniędzy
Stan
wrzucono monetę (wartość)
spoczynku
kasowanie / zwróć monety /dodaj do bilansu
przejście automatyczne
[brak pozycji] wybór (pozycja)
[reszta < 0]
[reszta = 0]
do/sprawdz wybranÄ… pozycjÄ™
do/ wydaj pozycjÄ™
i/lub oblicz resztÄ™
do/ wydaj resztÄ™
[reszta > 0]
do/przesuń ramię do do/przesuń ramię do do/wypchnij
właściwego wiersza właściwej kolumny pozycję
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 27
Innym rodzajem stanów złożonych są stany składające się ze współbieżnych podstanów.
Takie wyjście ze stanu też jest
synchronizacja wewnętrzna
możliwe (sytuacja nietypowa).
Sytuacja typowa:
wyjście ze stanu
synchronizacja zewnętrzna
następuje wtedy,
gdy we wszystkich
Oba diagramy sÄ…
współbieżnych
równoważne.
podstanach zostanie
osiągnięty stan
końcowy.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 28
Współbieżność ma zró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.
Samochód
Hamulec
hamulec
Zapłon Bieg Hamulec Gaz
naciśnięty
WÅ‚Ä…cz.
Wył.
hamulec
Zapłon
puszczony
kluczyk
max w prawo
[Biegi w pozycji 0]
Każdy obiekt wchodzący w skład
Wył. Zapala Włącz.
agregatu posiada tu własny
diagram stanów. Można je łączyć,
kluczyk do poz. Wył.
tworzÄ…c diagram dla agregatu
samochód (wspólny diagram
Biegi Gaz
będzie uwzględniał współbieżność
.... ....
operacji).
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 29
Obiekt może wykonywać współbieżnie dowolną liczbę akcji.
Maszyna stanów dla automatu do wypłacania pieniędzy
Wypłata
do/wydaj gotówkę
Gotowy
do działania
do/oddaj kartÄ™
Podział na Synchronizacja:
współbieżne procesy wszystkie współbieżne procesy
muszą się zakończyć, aby automat był
ponownie gotowy do działania
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 30
Oczekiwanie
include Pomoc
na polecenia
polecenie Pomoc
polecenie Uruchom
include Uruchom
Pomoc
entry/ wyświetl ekran pomocy
exit/ usuń ekran pomocy
stany, do których występują
zapytanie/ pokaż odpowiedz
odwołania na diagramie
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 31
W
zd1 zd2
U V
Y
X
W
zd1 zd2
Y
X
U V
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 32
Zawartość stanu złożonego sekwencyjnego Jazda została ukryta.
wybrano 1-szy bieg
Jazda
naciśnięto hamulec
Samochód
zatrzymany
Jazda
do tyłu
wybrano wsteczny bieg
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 33
34
ð
ð
opr.: st. wykł. mgr inż. Janusz
2012-02-15
Czuchnowski
Diagramy aktywności
żðNotacja
żðSwimlanes
żðModelowanie iteracji
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 35
aðDiagramy aktywnoÅ›ci nie posiadajÄ… wyraznego pierwowzoru w poprzednich pracach  trzech
przyjaciół (Jacobsona, Boocha i Rumbaugha). Aącząc idee pochodzące z trzech zró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.
að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ózniejszym etapie
przydzielić do odpowiedniej klasy.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 36
að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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 37
Notacja przyjęta w UML dla diagramów aktywności:
nazwa
aktywność (z zaokrąglonymi bokami)
aktywności
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
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 38
Osoba::Przygotowanie Napoju
[nie ma herbaty]
[nie ma kawy]
Znajdz Napój
[herbata
[kawa znaleziona]
{ fork }
znaleziona]
Wez sobie wody
Zrób herbatę
Wez
Nasyp kawy
Dolej wody
filiżanki
do filtru
do zbiornika
*[dla 3 filiżanek]
Włóż filtr
Nalej
do maszynki
kawÄ™
{ join }
Wypij
światełko zgasło
Gotowanie kawy
WÅ‚Ä…cz maszynkÄ™
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 39
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).
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 40
Klient Dział Sprzedaży Magazyn
Wystaw
zamówienie
Zamówienie
Pobierz
[umieszczone]
Zamówienie
zamówienie
[wprowadzone]
Płać
Zamówienie
[skompletowane]
Skompletuj
zamówienie
Zamówienie
[wysłane]
Wyślij to, co
zamówiono
Pamiętaj, co
wysłano
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 41
Wyszukiwanie serwisantów,
którzy potrafią naprawiać
dane uszkodzenie
* [ dla wszystkich serwisantów ]
{ multiple trigger - wszystkie aktywności są
odpalane jednocześnie }
Wyszukiwanie 1-szego wolnego terminu
{ synchronizacja aktywności, które zostały
jednocześnie odpalone; może być opuszczona
}
Wyszukiwanie serwisanta Przydzielanie naprawy
z najlepszym terminem wybranemu serwisantowi
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 42
Sprawdzenie, czy serwisant
Wyszukanie serwisantów,
ma czas w ciÄ…gu
którzy potrafią naprawiać
najbliższego tygodnia
dane uszkodzenie
{ nie ma/ma/sprawdzono
wszystkich serwisantów }
[ nie ma]
[ sprawdzono
{ rozwiazanie z wykorzystaniem
wszystkich
rombu decyzyjnego}
serwisantów ]
[ ma ]
Anulowanie
zgłoszenia
Przydzielenie
naprawy serwisantowi
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 43
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
Sprawdzenie, czy można
wypożyczyć danemu czytelnikowi
«include
«extend
Wypożyczenie Sprawdzenie
egzemplarza książki dostępności książki
Personel
biblioteczny
«extend
Rejestracja wypożyczenia
egzemplarza
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 44
[ można]
Sprawdzenie,
Sprawdzenie
czy można wypożyczyć
dostępności książki
danemu czytelnikowi
[ nie można ]
[ niedostępna ]
[ dostępna ]
Rejestracja
wypożyczenia
egzemplarza książki
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 45
46
ð
ð
opr.: st. wykł. mgr inż. Janusz
2012-02-15
Czuchnowski
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ózniejszym z wykorzystaniem diagramów interakcji.
żð Do zrozumienia interakcji zachodzÄ…cych miÄ™dzy przypadkami użycia (ważne zastosowanie).
żð Do modelowania przetwarzania wielowÄ…tkowego.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 47
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.
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski Slajd 48
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
2012-02-15 opr.: st. wykł. mgr inż. Janusz Czuchnowski 50


Wyszukiwarka

Podobne podstrony:
rozporzadzenie w sprawie przystosowania stanowiska pracy
w08 PodstPrzy roznor
W07 W08 SCR
NiBS 3 Rozklad trojkatny Modele Starzenie obiektow nieodnawianych
SGE s3 II nst w08
Modele wzrostu, rozwoju gospodarczego
Plany aktywności w rozwijaniu samodzielności osób z autyzmem
wychowaniewprzedszkolu aktywność fizyczna
modele rownan
kultura org Modele i teorie
Wzmacniacz do aktywnej kolumny głośnikoiwej(1)
Homoseksualizm a pedofilia Stanowisko Polskiego Towarzystwa Seksuologicznego (2006)
Aktywna sprzedaz ubezpieczen Jak wdrozyc sie i przetrwac w branzy ubezpieczeniowej akspub
16 modele organizacji
instrukcja bhp na stanowisku operator koparko ladowarki
aktywne miniglosniki

więcej podobnych podstron