Wykład XII, politechnika infa 2 st, Projektowanie Systemów Informatycznych


WYKŁAD XII

Diagramy przejść stanów obiektowe ( state charts )

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 :

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

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 ?

0x08 graphic

0x08 graphic
stan i-ty nazwa stanu

0x08 graphic
0x08 graphic

0x08 graphic
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

0x08 graphic
0x08 graphic
0x08 graphic

Stan k stan k + 1

Komponenty następne

0x08 graphic

0x08 graphic
0x08 graphic

START END

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

Entry: wypłacalny=1 Zapłata nowego rachunku (suma zapłaty)[suma > posiada - limit ]

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
/ zarejestruj niewypłacalność konta

0x08 graphic
0x08 graphic
Klient klient

0x08 graphic
0x08 graphic
Wypłacalny niewypłacalny

0x08 graphic
0x08 graphic
exit: wypłacalny=0 entry: ustaw

0x08 graphic
exit: wypłacalny=2 klienta = 2

0x08 graphic

nowy rachunek (suma do zapłaty)[suma = posiada - winien]

/ klient z kontem zerowym

0x08 graphic
0x08 graphic

0x08 graphic

uzyskał status klienta (wpłata) [wpłata]

/ zapisz jako klient wypłacalny

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
exit = ustaw klient

status klienta = 0 z kontem

0x08 graphic
0x08 graphic
Rejestracja uzyskał status klienta banku (wpłata) [wpłata = 0] zerowym

0x08 graphic
Nowego / zapisz zerowe konto

0x08 graphic
Klienta entry = zapisz

Konto zerowe

Stany można dekomponować ( czyli traktować jak strukturalne )



Wyszukiwarka