WYKŁAD XII
Diagramy przejść stanów obiektowe ( state charts )
diagram dynamiczny ( zależności czasowe nałożone na byty - klasy i obiekty )
nazywany również diagramem Harela
diagram Harela nawiązuje do automatu skończonego, opisuje on stany pewnego procesu które są istotne z punktu widzenia modelu pojęciowego tego procesu oraz przejścia pomiędzy stanami.
Diagram Harela odwzorowywał stany obiektów pewnej klasy podczas ich cyklu życia oraz przejścia pomiędzy stanami powodowanych przez zdarzenia lub komunikaty
Zdarzenia to fakty które zachodzą w otoczeniu systemu ( zdarzenia zewnętrzne ) bądź fakty zachodzące wewnątrz systemu ( zdarzenia wewnętrzne ) i one oddziaływując na system informatyczny mogą spowodować zmianę stanu obiektów systemu.
Komunikat ( druga przyczyna wywołania zmiany systemu ) - jeśli komunikat jest wysyłany do obiektu pewnej klasy oznacza to żądanie wykonania jednej z operacji przypisanej do tej klasy. Wywołanie komunikatu to wywołanie metody przypisanej do tej klasy. Nazwa komunikatu jest zazwyczaj nazwą wywoływanej metody.
Wysyłanie komunikatu może się wiązać z przekazaniem pewnych danych wejściowych do wywoływanej metody oraz z pobraniem danych wyjściowych tej metody.
Diagram stanów obiektów może pokazywać dynamikę zmian systemu, dynamikę zmian grup klas lub dynamikę zmian jednej klasy. Zależy jak na ten diagram patrzymy.
Jeżeli patrzymy na diagram Harela w odniesieniu do danej klasy obiektów to na tym diagramie są wszystkie stany przez które klasa może przejść.
( diagram ten będzie analogiczny do diagramy życia encji ( ELH ), ale nie będzie struktury drzewa )
jeżeli diagram przejść stanów prezentuje dynamikę zmian wykonywanych w systemie funkcji ( funkcje te realizowane są w metodach przypisanym poszczególnym klasom ) to tak rozumiany diagram stanów służy do prezentowania sposobu realizacji funkcji systemowych.
UWAGA
Jeżeli diagram stanów dotyczy historii życia obiektu w klasie to na tym diagramie pokazywane są stany jednego typu obiektów ( jednej klasy )
Elementy obiektowe diagramu przejść stanów :
zdarzenia
stany
przejścia ( transformacja )
akcja
operacja
zdarzenie - klasa zjawisk na które system reaguje w pewien sposób, w pewien podobny sposób
stany - pewien okres czasu w którym znajduje się system lub obiekt, trwa niepomijalny kawałek czasu, jest to okres czasu jaki upływa pomiędzy dwoma kolejnymi zdarzeniami które to pierwsze zdarzenie spowodowało że nasz byt wszedł w ten stan, trwał niepomijalny kawałek czasu i potem drugie zdarzenie powoduje że wychodzi obiekt z tego stanu
przejście ( transformacja ) - przejście z jednego do drugiego stanu zaistniałym zdarzenie wywołującym zmianę stanu i może być jeszcze uwarunkowane spełnieniem pewnych warunków. Przejście odbywa się natychmiastowo, czas trwania jest pomijany
akcja - czynność wykonywana w momencie zajścia zdarzenia ponieważ zdarzenie też trwa króciutko to akcja jest wykonywana natychmiast, w pomijalnie krótkim czasie
operacja - czynność której wykonanie trwa niepomijalny kawałek czasu
operacje wykonywane są gdyby system był w jakimś stanie a stan system na daną chwilę jest stabilny
akcja jest wykonywana w momencie zajścia zdarzenia a system na daną chwilę jest niestabilny
operacja może zostać przerwana w momencie zajścia zdarzenia, takiego któ®e powoduje wyjście z danego stanu
jeżeli operacja kończy się samoczynnie to kiedy się k0ończy generuje zdarzenie które może powodować przejście do innego stanu
jak na diagramie są opisywane stany i przejścia ?
stan i-ty nazwa stanu
entry: akcja wejściowa
słowa
do: operacja
kluczowe
exit: akcja wyjściowa
opis stanu
zdarzenie (parametr) [warunek] / akcja
( to nie powoduje opuszczenia
tego stanu )
Entry - wejście do stanu, po tym stanie wypisuje się akcje wykonawczą w momencie wejścia do stanu niezależnie od tego jakie zdarzenie spowodowało przejście
Exit - po tym słowie wymienia się akcję wykonywania w momencie wyjścia ze stanu niezależnie od zdarzenia które spowodowało wyjście
Do - po nim wymienia się operację wykonywane w tym stanie i w dowolnym stanie może być wykonywanych wiele operacji
w ramach opisu stanu wymienia się również zdarzenia których zajście nie powoduje przejścia do innego stanu
Przejścia między stanami
Zdarzenie (parametr) [ warunek ] / akcja
Stan k stan k + 1
Komponenty następne
START END
Entry: wypłacalny=1 Zapłata nowego rachunku (suma zapłaty)[suma > posiada - limit ]
/ zarejestruj niewypłacalność konta
Klient klient
Wypłacalny niewypłacalny
exit: wypłacalny=0 entry: ustaw
exit: wypłacalny=2 klienta = 2
nowy rachunek (suma do zapłaty)[suma = posiada - winien]
/ klient z kontem zerowym
uzyskał status klienta (wpłata) [wpłata]
/ zapisz jako klient wypłacalny
exit = ustaw klient
status klienta = 0 z kontem
Rejestracja uzyskał status klienta banku (wpłata) [wpłata = 0] zerowym
Nowego / zapisz zerowe konto
Klienta entry = zapisz
Konto zerowe
Stany można dekomponować ( czyli traktować jak strukturalne )