Projektowanie systemów informatycznych
st. wykł. mgr inż. Janusz Czuchnowski Master of Business Training
e-mail:
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
2012-02-15
opr.: st. wykł. mgr inż. Janusz
Czuchnowski
4
2012-02-15
opr.: st. wykł. mgr inż. Janusz Czuchnowski
5
2012-02-15
opr.: st. wykł. mgr inż. Janusz
Czuchnowski
6
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ń.
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.
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.
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.
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ść)
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
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ę).
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.
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)
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ę
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ł
»
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
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.
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
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
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
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
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
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
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.
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ę
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).
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
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.
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
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
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.
2012-02-15
opr.: st. wykł. mgr inż. Janusz
Czuchnowski
34
2012-02-15
opr.: st. wykł. mgr inż. Janusz Czuchnowski
Slajd 35
Diagramy aktywności
Notacja
Swimlanes
Modelowanie iteracji
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.
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.
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
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]
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).
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
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
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
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»
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 ]
2012-02-15
opr.: st. wykł. mgr inż. Janusz
Czuchnowski
46
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.
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.
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