Modelowanie behawioralne

Transkrypt

Modelowanie behawioralne
Jarosław Kuchta
Inżynieria Oprogramowania
Modelowanie behawioralne
Pojęcia podstawowe (1/3)
• behawioryzm – ogół zachowania obiektów,
reakcje obiektów na zdarzenia.
• stan – sytuacja w czasie życia obiektu, w
którym spełniony jest pewien warunek,
wykonywana jest pewna aktywność lub obiekt
czeka na pewne zdarzenie.
Pojęcia podstawowe (2/3)
• akcja – wykonanie operacji w niepodzielnym
na danym poziomie abstrakcji momencie
czasu.
• aktywność – wykonywanie operacji przez
obiekt w czasie, gdy znajduje się on w
określonym stanie. Zakończenie aktywności
jest wyznaczane przez zdarzenie zewnętrzne
względem danej aktywności lub wewnętrzne.
Pojęcia podstawowe (3/3)
• przejście stanów – zmiana stanu wywołana
określonym zdarzeniem, uzależniona od
warunku strzegącego, powiązana z
wykonywaną podczas przejścia akcją.
• maszyna stanów – abstrakcyjna maszyna
reprezentowana przez zbiór stanów, przez
które obiekt przechodzi w czasie, powiązanych
przejściami stanów. Prezentowana przez
diagram przejść stanów.
Elementy diagramu stanów
sygnatura przejścia (zdarzenie)
przejście stanów
Włącz
●
stan
początkowy
Wyłączone
Włączone
Zamknij
stan
Wyłącz
◉
stan
końcowy
Opis przejścia
sygnatura zdarzenia [warunek strzegący]
/ wyrażenie akcji
Rodzaje zdarzeń
•
•
•
•
Zdarzenie wywołania
Zdarzenie sygnałowe
Zdarzenie zmiany
Zdarzenie czasowe
Zdarzenie wywołania
• Zdarzenie polegające na wywołaniu operacji
nazwa operacji (lista parametrów)
Zdarzenie sygnałowe
«signal»
Mouse
pos: Point
«signal»
«signal»
«signal»
«signal»
MouseDown
MouseUp
MouseMove
MouseRoll
btn: Button
btn: Button
dist: Point
Zdarzenie zmiany
• oznacza wystąpienie sytuacji, w której
warunek zostaje spełniony
when wyrażenie logiczne
Zdarzenie czasowe
• upłynięcie określonego czasu od określonego
innego zdarzenia (najczęściej momentu
wejścia w dany stan):
after wyrażenie czasowe
• wystąpienie określonego czasu:
when wyrażenie czasowe
Wyrażenie strzegące
• wyrażenie logiczne, w którym występują:
– parametry zdarzenia wyzwalającego
– atrybuty i powiązania obiektu – właściciela
maszyny stanów
– może występować test stanu (in nazwa stanu)
• wyrażenie strzegące jest sprawdzane po
wystąpieniu zdarzenia, a przed „odpaleniem”
(firing) przejścia
Wyrażenie akcji
• Ciąg operacji oddzielonych średnikami
• Operacje są wykonywane sekwencyjnie.
Rozpoczęcie następnej po zakończeniu
poprzedniej.
• Mogą występować parametry zdarzenia.
Przykład przejścia
MouseDown (btn, loc) [loc in Window]
/ object := Window.FindObject (loc); object.Select ()
Akcje wejściowe i wyjściowe
Transakcja
entry/ połącz z bazą danych
exit/ rozłącz z bazą danych
do/ przekazuj dane
stan/ podaj stan
•
•
•
•
•
entry/ akcja wejściowa
exit/ akcja wyjściowa
do/ aktywność
include/ wewnętrzna maszyna
stanów
zdarzenie/ akcja wewnętrzna
Stany złożone
• podstany rozłączne (sekwencyjne)
• podstany równoległe
Podstany rozłączne
Wybieranie numeru
Numer kierunkowy
Oczekiwanie
●
Cyfra (n)
[n=0]
entry / Włącz sygnał centrali
exit / Wyłącz sygnał centrali
Błąd
Numer kompletny
Cyfra (n) [n≠0]
Numer lokalny
entry / Akceptuj Cyfrę (n)
do / Sprawdź numer
Cyfra (n)/ Akceptuj Cyfrę (n)
Numer błędny
Błąd
entry / Akceptuj Cyfrę (n)
do / Sprawdź numer
Cyfra (n)/ Akceptuj Cyfrę (n)
Błąd
Numer zdalny
entry / Akceptuj Cyfrę (n)
do / Sprawdź numer
Cyfra (n)/ Akceptuj Cyfrę (n)
Numer kompletny
Numer kompletny
◉
entry / Włącz sygnał błędu
exit / Wyłącz sygnał błędu
◉
Stany równoległe
Diagnostyka
Diagnostyka w toku
●
●
Diagnostyka
Układu1
Pass
Fail
●
Diagnostyka
Układu3
Fail
Diagnostyka Pass
Układu2
◉
Fail
Pass
Diagnostyka Pass
Układu4
◉
Fail
Passed
Failed
Synchronizacja stanów równoległych
Stan A1
Stan A2
Inicjalizacja
Finalizacja
Stan B1
Stan B2
belka synchronizacji
Diagramy aktywności
• Specjalna postać diagramu stanów, w którym:
– stany reprezentują wykonanie akcji lub
podaktywności
– przejścia stanów są wyzwalane przez zakończenie
akcji lub podaktywności
Przykład diagramu aktywności
[operacja = Podaj saldo]
●
Wprowadzanie
PIN’u
Wybór
operacji
Podanie
salda
[operacja = Wypłać]
[operacja = Zakończ]
◉
Wprowadzenie
kwoty
Sprawdzenie
salda
Czy saldo wystarczające?
[nie]
[tak]
Odliczanie kwoty
Drukowanie
potwierdzenia
Odbiór kwoty
Aktywności równoległe
Obiekt 1
Obiekt 2
Obiekt 3
Inicjalizacja
Aktywność A1
Aktywność B1
Aktywność C2
Aktywność A2
Finalizacja
"tory pływackie"
Aktywność C1
Literatura
• Booch G, Rumbaugh J, Jacobson I: UML.
Przewodnik użytkownika, WNT, Warszawa
2002
• Dennis A., Haley Wixom B., Tegarden D.:
System Analysis & Design. An Object-Oriented
Approach with UML, John Wiley & Sons, Inc.,
USA 2001