Diagram maszyny stanowej - POJĘCIA Stan : sytuacja w cyklu życia bytu (obiektu, PU, podsystemu, aktora, operacji itp), kiedy spełnia on pewne warunki, realizuje pewną czynność lub czeka na pewne zdarzenie. Stan zmienia się w czasie, ale każdy punkt w czasie jest określony przez: wartości atrybutów; związki z innymi obiektami; czynność, którą realizuje; Zbiór rozpatrywanych stanów bytu i ich zmian nazywa się maszyną stanów lub maszyną stanową. Byt jest właścicielem swojej maszyny stanów. NazwaStanu Entry / AkcjaWejścia Do / Czynność Zdarzenie 1/Akcja 1 Zdarzenie 2 / Akcja 2 Exit / Akcja Wyjścia zdarzenie(param) [warunek]akcja S2 1
Diagram maszyny stanowej - POJĘCIA Zdarzenie:- zmiana w otoczeniu lub wewnątrz bytu na którą ten byt reaguje przejściem w inny stan i/lub podjęciem akcji. Rodzaje zdarzeń: 1) po upływie pewnego czasu; after 2) po spełnieniu pewnego warunku;when 3) wywołania (call) - nazwa koresponduje z odpowiednią nazwą operacji; 4) sygnał. Przejście związek między dwoma stanami wskazujący, że byt będąc w stanie żródłowym w wyniku wyspecyfikowanego zdarzenia przejdzie w stan docelowy wykonując wyspecyfikowane akcje jeśli będą spełnione wyspecyfikowane warunki.diagram stanów opisuje zachowanie bytów poprzez określenie ich reakcji na zdarzenia. Diagram stanów opisuje zachowanie bytów poprzez określenie ich reakcji na zdarzenia. Zazwyczaj są tworzone w celu pokazania calego cyklu życia bytu 2
Diagram maszyny stanowej - wykorzystanie Diagram typu: "cykl życia obiektu" kupno urządzenia przez klienta Urządzenie Urządzenie niesprzedane Urządzenie sprzedane numer: string status: statusurzadzenia klient zwrócił urządzenie after (data gwarancji) 3
Przykład [Nie wszystkie pozycje sprawdzone] /pobierz następną Sprawdzanie do/ sprawdź pozycje /pobierz perwszą pozycję [Wszystkie pozycję są] Wysyłka do/ inicjuj dostawę [Nie wszystkie pozycje sprawdzone i niektórych brak] Pozycja otrzymana [Wszystkie pozycje są] Dostarczone Pozycja otrzymana [Niektórych brak] Oczekiwanie Dostarczone Przykład: diagram przedstawia stany, w ktorych może przebywać realizowane zamówienie i możliwe przejścia między tymi stanami. Oczekiwanie: nie występuje żadna czynność, oba przejścia są oznaczone zdarzeniami. Wysyłka: czynność, po zakonczeniu której zamówienie pozostaje w stanie "wysyłka" i pezechodzi w stan "Dostarczone" zawsze po zdarzeniu (otrzymaniu sygnału) Dostarczone Zamówienie może znajdować się w tym samym czasie tylko w jednym ze stanów! 4
Stany złożone Zamówienie jest w stanie aktywne a jednocześnie w jednym ze stanów: sprawdzanie, oczekiwanie.. [Nie wszystkie pozycje sprawdzone] /pobierz następną [Nie wszystkie pozycje sprawdzone i niektórych brak] Pozycja otrzymana [Niektórych brak] Sprawdzanie do/ sprawdź pozycje Oczekiwanie /pobierz perwszą pozycję [Wszystkie pozycję są] Pozycja otrzymana [Wszystkie pozycje są] Aktywne Wysyłka do/ inicjuj dostawę Dostarczon e Anulowane Anulowane Dostarczone 5
Diagram stanów ze stanami złożonymi Realizacja Kompletowanie Dostarczenie Fakturowanie [Wszystkie pozycję są] Rozliczenie Zamówienie równolegle jest kompletowane i dostarczane oraz fakturowane i rozliczane. Realizacja jest agregatem dwóch stanów. 6
Diagram maszyny stanowej dla klasy Książka W_Przygotowaniu Do/ zarejestruj Do_Wypożyczenia W_konserwacji Wypożyczenie/odn otuj Zwrot [O K]/odnotuj Zwrot [not O K]/odnotuj Wypożyczona W_terminie Entry/zaznacz date When (.. Po_terminie Ponaglenie/wyslij Zwrot [nie nadaje się]/ukaranie Wycofana Zagubiona /ukaranie Dr inż. Ludmiła Rekuć 7
Podsumowanie Cel diagramu maszyny stanowej: Skontrolować kompletność odpowiedzialności klas Odkryć operacje w wyniku analizy zdarzeń zewnętrznych Uwaga! Cykl życia klasy opisywanej diagramem stanów jest wynikiem analizy wszystkich PU, w których klasa uczestniczy. Dr inż. Ludmiła Rekuć 8
Pytania kontrolne: Jak jest oznaczane przejście między stanami? Czy każdy element oznaczenia jest opcjonalny? Jak może być wyspecyfikowana akcja następująca zawsze przy wejściu do danego stanu?...przy wyjściu? Czym się różni diagram stanów od diagramu czynności? Czy między stanami może zachodzić związek uogólnienia? Czy miedzy stanami może zachodzić związek agregacji? Co jest powodem przejścia z jednego stanu w drugi? Czym mogą się różnić stany tego samego bytu? Diagram stanów pokazuje stany obiektów jednej klasy czy wielu klas? 9