Diagram stanw Halina Taska Olsztyn 2019 Diagram stanw

  • Slides: 45
Download presentation
Diagram stanów Halina Tańska Olsztyn 2019

Diagram stanów Halina Tańska Olsztyn 2019

Diagram stanów • Jeżeli system wchodzi w interakcję z użytkownikami lub z innym systemem

Diagram stanów • Jeżeli system wchodzi w interakcję z użytkownikami lub z innym systemem wówczas tworzące go obiekty w wyniku tej interakcji zmieniają się. Chcąc modelować system, trzeba dysponować mechanizmem modelowania zmian. • Jednym ze sposobów scharakteryzowania zmiany systemu jest stwierdzenie, że jego obiekty zmieniają stan w odpowiedzi na zdarzenia i interakcje.

Przykłady stanów • Kilka prostych przykładów zmian: – Po zmianie przełącznika światło zmienia swój

Przykłady stanów • Kilka prostych przykładów zmian: – Po zmianie przełącznika światło zmienia swój stan z wyłączonego na włączone (lub odwrotnie). – Po naciśnięciu przycisku na pilocie do zdalnego sterowania telewizor zmieni stan, pokazując program innego kanału. – Po upływie odpowiedniego przedziału czasu pralka zmieni swój stan z Prania na Płukanie. • Tego rodzaju zmiany są pokazywane na diagramie stanów. • Diagram stanów prezentuje stany obiektu i przejścia między nimi od rozpoczynającego ciąg stanu początkowego po ostatni w kolejności stan końcowy.

Diagram stanów ØDiagram stanów (state machine diagram) służy do modelowania dynamicznych aspektów systemu. ØDiagram

Diagram stanów ØDiagram stanów (state machine diagram) służy do modelowania dynamicznych aspektów systemu. ØDiagram stanów przedstawia maszynę stanów. ØDiagram stanów przedstawia przepływ sterowania między stanami.

Diagram stanów składa się z: – stanów zwykłych i złożonych – przejścia ze zdarzeniami

Diagram stanów składa się z: – stanów zwykłych i złożonych – przejścia ze zdarzeniami i akcjami Diagram stanów stosuje się do modelowania obiektów, których działania są najlepiej określane przez ciąg odpowiedzi na zdarzenia wywołane w ich otoczeniu.

Diagram stanów Diagramy stanów mogą być związane z: – obiektami – klasami – przypadkami

Diagram stanów Diagramy stanów mogą być związane z: – obiektami – klasami – przypadkami użycia – całymi systemami

Diagram stanów Diagram przedstawia maszynę stanową z uwypukleniem przepływu sterowania między stanami. Maszyna stanowa

Diagram stanów Diagram przedstawia maszynę stanową z uwypukleniem przepływu sterowania między stanami. Maszyna stanowa to ciąg stanów przyjmowanych przez obiekt w odpowiedzi na zdarzenia zachodzące w czasie jego życia.

Diagram stanów W diagramie stanów występują następujące symbole: – – – – – stany

Diagram stanów W diagramie stanów występują następujące symbole: – – – – – stany obiektu (state) początek (initial) koniec (final) przejścia między stanami (transition) zdarzenia (trigger) akcje (effect) historia (history) rozwidlenie/złączenie (fork/join) punkt synchronizacji (synch) rozgałęzienie decyzyjne (decision)

Stan obiektu to sytuacja, w której obiekt znajduje się w określonej chwili, kiedy spełnia

Stan obiektu to sytuacja, w której obiekt znajduje się w określonej chwili, kiedy spełnia jakiś warunek, wykonuje jakąś czynność lub czeka na jakieś zdarzenie.

Stan obiektu • Stan jest kolekcją powiązań obiektu z innymi obiektami i typami obiektowymi.

Stan obiektu • Stan jest kolekcją powiązań obiektu z innymi obiektami i typami obiektowymi. • Stan jest kolekcją egzemplarzy odwzorowań danego obiektu. • Stan jest kolekcją atrybutów i związków dotyczących danego obiektu.

Stan obiektu Przykładowy system z dwoma stanami obiektu: Zwyczajowo nazwę stanu piszemy z wielkiej

Stan obiektu Przykładowy system z dwoma stanami obiektu: Zwyczajowo nazwę stanu piszemy z wielkiej litery w formie rzeczowników odczasownikowych, np. Faksowanie, Wykręcanie numeru. Stan jest kolekcją egzemplarzy odwzorowań danego obiektu. Stan jest kolekcją atrybutów i związków dotyczących danego obiektu.

Stan obiektu Stany Osoby na podstawie tego, czy istnieje powiązanie pracuje w Stany Osoby

Stan obiektu Stany Osoby na podstawie tego, czy istnieje powiązanie pracuje w Stany Osoby na podstawie Stany Osoby na tego, czy istnieje podstawie daty powiązanie posiada urodzenia i bieżącej daty Zatrudniony Niezatrudniony Nie posiadający majątku Niemowlę Właściciel Dziecko Nastolatek Dorosły

Ikona stanu Nazwa Zmienne Czynności entry do exit

Ikona stanu Nazwa Zmienne Czynności entry do exit

Stany obiektu Student Semestr koniec. Semestru [uregulowane. Opłaty]/rozpocznij. Sesję Sesja

Stany obiektu Student Semestr koniec. Semestru [uregulowane. Opłaty]/rozpocznij. Sesję Sesja

Podawanie szczegółów w ikonie stanu • UML pozwala umieszczać na symbolach informacje szczegółowe: nazwę

Podawanie szczegółów w ikonie stanu • UML pozwala umieszczać na symbolach informacje szczegółowe: nazwę stanu, zmienne i czynności. • Zmienne stanu, np. liczniki i zegary, czasami bywają przydatne. • Czynności to zdarzenia i akcje. Najczęściej używane są trzy: entry (wejdź – określa, co się dzieje przy wejściu do stanu), exit (wyjdź – określa, co się dzieje przy wychodzeniu ze stanu) i do (wykonaj – określa, co się dzieje, gdy system pozostaje w danym stanie)

Aparat faksowy - stany • Aparat faksowy jest przykładem obiektu, którego stan ma i

Aparat faksowy - stany • Aparat faksowy jest przykładem obiektu, którego stan ma i zmienne i czynności. • Gdy wysyłamy faks, tzn. aparat jest w stanie Faksowanie, notuje on datę i czas rozpoczęcia wysyłania (wartości zmiennych stanu „data” i „czas”) oraz własny numer telefoniczny i nazwisko/nazwę właściciela (wartości zmiennych stanu „numer telefonu” i „właściciel”). • W stanie Faksowanie aparat wykonuje następujące czynności: dodawanie do faksu znacznika daty, znacznika czasu, numeru telefonu i nazwiska (lub nazwy) właściciela. Inne czynności to odczytywanie po kolei wszystkich faksowanych stron, podzielenie faksu na strony i wykonanie pełnej transmisji. • W stanie Bezczynnym aparat faksowy wyświetla na

Faksowanie Data = Data bieżąca Czas = Czas rozpoczęcia faksowania Numer = Własny numer

Faksowanie Data = Data bieżąca Czas = Czas rozpoczęcia faksowania Numer = Własny numer telef. aparatu Właściciel = Nazwisko właściciela entry/wpisz. Numer. Faksu. Adresata exit/zakończ. Transmisję do/dodaj. Znacznik. Daty do/dodaj. Znacznik. Czasu do/dodaj. Własny. Numer. Telefoniczny do/dodaj. Właściciela do/przeciągnij. Wszystkie. Strony do/podziel. Na. Strony Bezczynny Data = Data bieżąca Czas = Czas bieżący Numer = Własny numer telef. aparatu Właściciel = Nazwisko właściciela entry/zakończ. Faksowanie exit/rozpocznij. Faksowanie do/pokażDatę do/pokażCzas

Przykład - graficzny interfejs użytkownika • GUI może znajdować się w trzech stanach: –

Przykład - graficzny interfejs użytkownika • GUI może znajdować się w trzech stanach: – Włączanie – Działanie – Wyłączanie • Po włączeniu PC następuje start systemu. Włączenie jest tu zdarzeniem uruchamiającym, które powoduje przejście w stan Wyłączanie, a start systemu jest akcją, która zostaje podjęta w wyniku tego zdarzenia. • W rezultacie wykonania wszystkich akcji stanu Włączanie następuje przejście w stan Działanie. Gdy chcemy wyłączyć komputer należy doprowadzić do zajścia zdarzenia uruchamiającego przejście w stan Wyłączenie.

Stany i przejścia graficznego interfejsu użytkownika Włączanie Działanie Wyłączenie Wyłącz Na rys pokazane są:

Stany i przejścia graficznego interfejsu użytkownika Włączanie Działanie Wyłączenie Wyłącz Na rys pokazane są: zdarzenie uruchamiające, akcje i przejścia bez zdarzenia uruchamiającego. Na diagramie stanów GUI zostało pominięte wiele istotnych spraw m. in. jeżeli pozostawimy włączony komputer lub siedzimy obok niego bezczynnie, włącza się wygaszacz ekranu oszczędzający monitor. Opisując to jako zmianę stanów można powiedzieć, że po upływie określonego czasu bez żadnego uderzenia w klawisze i bez żadnego poruszania myszą GUI przechodzi ze stanu Działanie do stanu Oszczędzanie Monitora.

Stany i przejścia graficznego interfejsu użytkownika ze stanem Oszczędzanie Monitora i warunkiem dozoru Włączanie

Stany i przejścia graficznego interfejsu użytkownika ze stanem Oszczędzanie Monitora i warunkiem dozoru Włączanie Działanie Wyłączenie Wyłącz [czas. Minął] Uderzenie klawisza lub poruszenie myszą Oszczędzanie Monitora Czas po którym następuje wyłączenie wygaszacza ekranu jest określany w Panelu sterowania Windows. Zwykle po 15 minutach. Każde uderzenie w klawisz lub ruch myszą powoduje przejście monitora w stan Działanie. Ten 15 -minutowy upływ czasu jest warunkiem dozoru – gdy zostanie spełniony, następuje przejście z jednego stanu w drugi. Uwaga: warunek dozoru [czas. Minął] jest wyrażeniem logicznym.

Podstany sekwencyjne Działanie Oczekiwanie na działanie użytkownika Działanie użytkownika Rejestrowanie działania użytkownika Wizualizacja działania

Podstany sekwencyjne Działanie Oczekiwanie na działanie użytkownika Działanie użytkownika Rejestrowanie działania użytkownika Wizualizacja działania użytkownika Podstany sekwencyjne występują kolejno – jeden po drugim. Porządkując podstany stanu Działanie GUI można wskazać następującą listę: Oczekiwanie na działanie użytkownika Rejestrowanie działania użytkownika Wizualizacja działania użytkownika

Podstany współbieżne Działanie Oczekiwanie na działanie użytkownika Śledzenie zegara systemowego Działanie użytkownika Rejestrowanie działania

Podstany współbieżne Działanie Oczekiwanie na działanie użytkownika Śledzenie zegara systemowego Działanie użytkownika Rejestrowanie działania użytkownika [minąłWyznaczony. Czas] Wizualizacja działania użytkownika Uaktualnianie obrazu Podstany współbieżna występują równolegle w tym samym czasie. Współbieżność przedstawiamy na diagramie za pomocą linii przerywanej.

Stan obiektu Złożone elementy stanu obiektu obejmują akcje zachodzące w konkretnym stanie.

Stan obiektu Złożone elementy stanu obiektu obejmują akcje zachodzące w konkretnym stanie.

Stan obiektu entry – gdy obiekt przyjmie dany stan zostanie wykonana akcja wejściowa do

Stan obiektu entry – gdy obiekt przyjmie dany stan zostanie wykonana akcja wejściowa do – czynność, która jest wykonywana ciągle od zakończenia akcji wejściowej do rozpoczęcia akcji wyjściowej exit – gdy obiekt opuści stan zostanie wykonana akcja wyjściowa

Początek i koniec Początek jest rozpoczęciem diagramu stanów. Od niego rozpoczyna się wędrówka zdarzeń

Początek i koniec Początek jest rozpoczęciem diagramu stanów. Od niego rozpoczyna się wędrówka zdarzeń i stanów obiektu. Koniec jest zakończeniem działań obiektu.

Podstany Podstan (sub state/composite state) to stany zagnieżdżone w innym stanie.

Podstany Podstan (sub state/composite state) to stany zagnieżdżone w innym stanie.

Przejście między stanami Przejście to związek między dwoma stanami, wskazujący, że obiekt znajdujący się

Przejście między stanami Przejście to związek między dwoma stanami, wskazujący, że obiekt znajdujący się w pierwszy stanie wykona pewne akcje i przejdzie do drugiego stanu, za każdym razem kiedy zajdzie określone zdarzenie i będą spełnione odpowiednie warunki.

Przejście między stanami zawiera: – zdarzenie uruchamiające (trigger) – warunek dozoru (guard) – akcja

Przejście między stanami zawiera: – zdarzenie uruchamiające (trigger) – warunek dozoru (guard) – akcja (effect)

Przejście między stanami • Zdarzenie uruchamiające jest wystąpieniem bodźca, który może uruchomić przejście między

Przejście między stanami • Zdarzenie uruchamiające jest wystąpieniem bodźca, który może uruchomić przejście między stanami • Warunek dozoru to wyrażenie logiczne obliczane jedynie zajściu zdarzenia • Akcja to wykonywalna procedura obliczeniowa. Może to być wywołanie operacji na obiekcie, utworzenie / zniszczenie innego obiektu lub wysłanie komunikatu.

Przejście między stanami Przejście automatyczne Przejście zwrotne

Przejście między stanami Przejście automatyczne Przejście zwrotne

Zdarzenie i akcja Zdarzenie (trigger) uruchamia przejście między stanami obiektu. Akcja (effect) to niepodzielna

Zdarzenie i akcja Zdarzenie (trigger) uruchamia przejście między stanami obiektu. Akcja (effect) to niepodzielna czynność przy przejściu między stanami obiektu.

Historia Stan wznowienia – bieżące zachowanie obiektu zależy od jego przeszłości. Definiuje zatem zbiór

Historia Stan wznowienia – bieżące zachowanie obiektu zależy od jego przeszłości. Definiuje zatem zbiór poprawnych stanów, przez które obiekt może przejść w czasie swojego życia. Jest to punkt w którym system pamięta swój poprzedni krok.

Historia Podstan z historią pamięta do którego stanu przejść, jeżeli wcześniej ekstra zdarzenie przerwało

Historia Podstan z historią pamięta do którego stanu przejść, jeżeli wcześniej ekstra zdarzenie przerwało normalną drogę przebiegu stanów obiektu.

Rozwidlenie/Złączenie Rozwidlenie (fork) rozdziela strumień działań na dwie współbieżne drogi postępowania. Złączenie (join) łączy

Rozwidlenie/Złączenie Rozwidlenie (fork) rozdziela strumień działań na dwie współbieżne drogi postępowania. Złączenie (join) łączy strumienie współbieżne do jednej pojedynczej drogi postępowania w diagramie stanów.

Rozwidlenie/Złączenie

Rozwidlenie/Złączenie

Punkt synchronizacji wskazuje miejsce w którym współbieżne strumienie zostaną zsynchronizowane.

Punkt synchronizacji wskazuje miejsce w którym współbieżne strumienie zostaną zsynchronizowane.

Rozgałęzienie decyzyjne opisuje ścieżki alternatywne zachowania systemu. Do wyboru jednej ze ścieżek postępowania dochodzi

Rozgałęzienie decyzyjne opisuje ścieżki alternatywne zachowania systemu. Do wyboru jednej ze ścieżek postępowania dochodzi na podstawie wartości pewnego wyrażenie logicznego.

Diagram stanów Diagramy stanów używa się do specyfikowania dynamiki poszczególnych obiektów. Diagramy stanów ukazuje

Diagram stanów Diagramy stanów używa się do specyfikowania dynamiki poszczególnych obiektów. Diagramy stanów ukazuje jak obiekt zmienia stany, definiując jego zachowanie, w czasie życia systemu.

Rodzaje akcji na diagramach stanów Akcja Opis Składnia przypisanie wartości do zmiennej zmienna: =

Rodzaje akcji na diagramach stanów Akcja Opis Składnia przypisanie wartości do zmiennej zmienna: = wyrażenie wołanie Wywołanie operacji na obiekcie z oczekiwaniem na jej zakończenie; operacja może zwrócić wartość nazwa_op (arg, …) utwórz nowy utworzenie nowego obiektu create nazwa_klasy (arg, …) usuń usunięcie obiektu destroy() wyślij utworzenie wystąpienia sygnału i wysłania go do obiektu (obiektów) nazwa_sygnału (arg, …) zakończ Samodestrukcja obiektu terminate

Diagram stanów

Diagram stanów

Diagram stanów - Ćwiczenie Stwórz diagram maszyny stanów dla dowolnego obiektu z diagramu obiektów.

Diagram stanów - Ćwiczenie Stwórz diagram maszyny stanów dla dowolnego obiektu z diagramu obiektów.