Wprowadzenie
Diagramy stanów UML (Unified Modeling Language) to potężne narzędzia do modelowania zachowania dynamicznego systemów, uchwytywające sposób przejścia między stanami w odpowiedzi na zdarzenia. Szeroko stosowane są w inżynierii oprogramowania do projektowania i analizy systemów o złożonym zachowaniu, takich jak systemy wbudowane, interfejsy użytkownika i procesy biznesowe. Niniejsze studium przypadku skupia się na diagramie stanów UML dla systemu regulacji temperatury, prawdopodobnie używanego w termostacie lub systemie HVAC, aby ilustrować kluczowe koncepcje UML. Oferuje również krok po kroku wskazówki dotyczące tworzenia takich diagramów za pomocą Visual Paradigm, wiodącego narzędzia modelowania UML. Aby ułatwić zrozumienie, dołączono dodatkowe przykłady, takie jak automat do sprzedawania napojów i system sygnalizacji świetlnej, aby pokazać zróżnicowanie zastosowań diagramów stanów.
Opis systemu regulacji temperatury
System regulacji temperatury utrzymuje żądaną temperaturę poprzez przełączanie się między trybem ogrzewania a chłodzenia w zależności od warunków otoczenia. Zachowanie systemu modelowane jest następująco:
- Stany:
- Bezczynność: System jest nieaktywny, oczekując na zmiany temperatury.
- Chłodzenie: System aktywnie chłodzi środowisko, gdy temperatura przekracza pożądany poziom.
- Ogrzewanie: Stan złożony zarządzający procesem ogrzewania, zawierający:
- Aktywowanie: System ogrzewania jest inicjowany.
- Aktywny: System ogrzewania aktywnie utrzymuje temperaturę.
- Stan końcowy: Reprezentuje zakończenie działania systemu, potencjalnie osiągalne z poziomu Bezczynności.
- Przejścia:
- Z stanu początkowego do Bezczynności: system zaczyna działanie w stanie Bezczynności (nie określono zdarzenia).
- Z Bezczynności do Chłodzenia: wyzwalane przez tooHot(desiredTemp), gdzie desiredTemp to temperatura docelowa.
- Z Chłodzenia do Bezczynności: wyzwalane przez atTemp, wskazujące, że temperatura jest na poziomie docelowym.
- Z Bezczynności do Heating.Activating: wyzwalane przez tooCold(desiredTemp).
- Z Heating.Activating do Heating.Active: wyzwalane przez ready / turnOn, gdzie turnOn to działanie.
- Z Heating.Active do Bezczynności: wyzwalane przez atTemp.
- Z Bezczynności do Stanu końcowego: nie jest szczegółowo opisane, ale implikowane jako warunek zakończenia.
- Zdarzenia:
- za gorąco(desiredTemp): Temperatura przekracza pożądany poziom.
- za zimno(desiredTemp): Temperatura spada poniżej pożądanej wartości.
- naTemp: Temperatura osiąga pożądany poziom.
- gotowy: System grzewczy jest gotowy do działania.
- Działania:
- włącz: Wykonywane podczas przejścia od Aktywowania do Aktywnego, aktywuje mechanizm grzewczy.
Ten diagram skutecznie oddaje cykl życia systemu, pokazując, jak reaguje na zmiany temperatury i zarządza procesami ogrzewania i chłodzenia.

Kluczowe koncepcje diagramów stanów UML
Diagramy stanów UML są częścią standardu UML do modelowania zachowania systemu. Są szczególnie przydatne w systemach sterowanych zdarzeniami, gdzie zmiany stanów są wyzwalane przez konkretne zdarzenia. Poniżej przedstawione są kluczowe koncepcje, ilustrowane przykładami z systemu sterowania temperaturą oraz wspierane dodatkowymi przykładami:
- Stany:
- Stan reprezentuje warunek lub sytuację w cyklu życia systemu, w którym wykonywane są określone działania lub oczekiwane są zdarzenia.
- Przykład (sterowanie temperaturą): Stan Pusta wskazuje, że system jest nieaktywny, podczas gdy Chłodzenie i Grzanie reprezentują aktywne regulowanie temperatury.
- Przykład (automat do sprzedaży): Automat do sprzedaży może mieć stany takie jak Pusta (oczekiwanie na dane użytkownika), Wybieranie (użytkownik wybiera produkt) i Wydawanie (dostarczanie produktu).
- Przykład (sygnalizacja świetlna): Stany obejmują Czerwony (zatrzymaj się), Zielony (jedź) i Żółty (ostrożnie).
- Przejścia:
- Przejścia to kierowane strzałki pokazujące zmiany stanów wyzwalane zdarzeniami, często z powiązanymi działaniami lub warunkami bramkowymi.
- Przykład (sterowanie temperaturą): Przejście od Pustego do Chłodzenia jest wyzwalane przez za gorąco(desiredTemp), co wskazuje na wysoką temperaturę.
- Przykład (automat do sprzedaży): Przejście od Wybierania do Wydawania następuje, gdy użytkownik potwierdza swój wybór (selectItem).
- Przykład (sygnalizacja świetlna): Przejście od Zielonego do Żółtego jest wyzwalane zdarzeniem timera (timerExpired).
- Zdarzenia:
- Zdarzenia to bodźce wywołujące przejścia, takie jak działania użytkownika, sygnały systemowe lub wyzwalacze oparte na czasie.
- Przykład (sterowanie temperaturą): Zdarzenie atTemp wywołuje powrót do stanu Idle z Cooling lub Heating.
- Przykład (automat do sprzedawania towarów): Zdarzenie insertCoin wywołuje przejście od Idle do Selecting.
- Przykład (sygnalizacja świetlna): Zdarzenie timerExpired powoduje cykliczne przejścia między czerwonym, zielonym i żółtym.
- Działania:
- Działania to aktywności wykonywane podczas przejść, wejścia do stanu lub wyjścia z stanu.
- Przykład (sterowanie temperaturą): Działanie turnOn jest wykonywane podczas przejścia od Heating.Activating do Heating.Active.
- Przykład (automat do sprzedawania towarów): Działanie dispenseItem występuje podczas przejścia do stanu Dispensing.
- Przykład (sygnalizacja świetlna): Działanie updateSignal może aktualizować wyświetlanie światła podczas przejścia.
- Stany początkowy i końcowy:
- Stan początkowy (pełny okrąg) oznacza punkt startowy systemu, podczas gdy stan końcowy (okrąg z okręgiem współśrodkowym) wskazuje zakończenie.
- Przykład (sterowanie temperaturą): Stan początkowy prowadzi do Idle, a stan końcowy jest osiągalny z Idle, być może gdy system jest wyłączony.
- Przykład (automat do sprzedawania towarów): Stan początkowy prowadzi do Idle, a stan końcowy może oznaczać wyłączenie systemu.
- Przykład (sygnalizacja świetlna): Stan końcowy może oznaczać awarię systemu lub tryb konserwacji.
- Stany złożone:
- Stany złożone zawierają zagnieżdżone podstany, umożliwiając modelowanie hierarchiczne złożonych zachowań.
- Przykład (sterowanie temperaturą): Stan Heating jest złożony i zawiera podstany Activating i Active.
- Przykład (Automat do sprzedawania towarów): Stan płatności może być złożony, z podstanami takimi jak przetwarzanie kart i przetwarzanie gotówki.
- Przykład (Sygnalizator świetlny): Stan złożony, taki jak tryb awaryjny, może zawierać podstany dla migających świateł lub kontroli ręcznej.
- Warunki zabezpieczające:
- Warunki zabezpieczające to wyrażenia logiczne, które muszą być prawdziwe, aby przejście mogło nastąpić.
- Przykład (Regulacja temperatury): Warunek typu [temperatura > docelowaTemperatura + próg] może zapewnić, że przejście tooHot następuje tylko wtedy, gdy temperatura znacznie przekracza wartość docelową.
- Przykład (Automat do sprzedawania towarów): Warunek [paymentSufficient] zapewnia, że przejście do Dispensing następuje tylko wtedy, gdy włożona została wystarczająca kwota.
- Przykład (Sygnalizator świetlny): Warunek [emergencySignalReceived] może wyzwolić przejście do stanu awaryjnego.
Te koncepcje, oparte na standardzie UML, pozwalają na precyzyjne modelowanie zachowania systemu, jak widać na przykładzie systemu regulacji temperatury i innych przykładach.
Korzystanie z Visual Paradigm do tworzenia diagramów UML
Visual Paradigm to potężny narzędzie modelowania UML ułatwia tworzenie diagramów stanów i innych artefaktów UML. Oferta obejmuje intuicyjny interfejs, funkcję przeciągania i upuszczania oraz funkcje takie jak sprawdzanie składni i współpraca zespołowa. Poniżej znajduje się krok po kroku przewodnik tworzenia diagramu stanów podobnego do tego dla systemu regulacji temperatury:
- Instalacja i konfiguracja:
- Pobierz Visual Paradigm ze strony oficjalnej lub skorzystaj z Visual Paradigm Online do tworzenia diagramów w chmurze.
- Utwórz nowy projekt, wybierając „Nowy projekt” w aplikacji.
- Utwórz diagram stanów:
- W eksploratorze projektu kliknij prawym przyciskiem myszy i wybierz „Dodaj diagram” > „Diagram maszyn stanów”, aby otworzyć puste pole robocze.
- Dodaj stany:
- Użyj narzędzia „Stan” do przeciągnięcia i upuszczenia stanów na płótnie, nadając im nazwy „Idle”, „Chłodzenie” i „Grzanie”.
- W przypadku stanów złożonych, takich jak Grzanie, utwórz stan i dodaj do niego podstany (Aktywowanie, Aktywny) za pomocą funkcji poddiagramu lub przez rysowanie zagnieżdżonych stanów.
- Dodaj przejścia:
- Użyj narzędzia „Przejście” do połączenia stanów, klikając i przeciągając od stanu źródłowego do stanu docelowego.
- Oznacz przejścia zdarzeniami i działaniami, np. [tooHot(desiredTemp)] lub ready / turnOn.
- Dodaj stany początkowy i końcowy:
- Użyj narzędzia „Stan początkowy” do dodania pełnego koła i połączenia go z Idle.
- Użyj narzędzia „Stan końcowy” do dodania koła z kołem współśrodkowym, połącz go z Idle, jeśli to konieczne.
- Oznacz zdarzenia i działania:
- Podwójne kliknięcie przejść, aby określić zdarzenia (np. tooCold(desiredTemp)) i działania (np. turnOn).
- Zawieraj warunki zabezpieczające, jeśli to konieczne, np. [temperature > desiredTemp + threshold].
- Weryfikuj i doskonal:
- Użyj sprawdzania składni Visual Paradigm, aby zapewnić zgodność z UML.
- Dostosuj układ przy użyciu narzędzi wyrównania dla przejrzystości i czytelności.
- Generuj dokumentację i udostępnij:
- Eksportuj diagram jako PNG, JPG, SVG lub PDF do udostępnienia.
- Użyj funkcji „Doc. Composer” do generowania szczegółowej dokumentacji.
- Z Visual Paradigm Online możesz współdziałać w czasie rzeczywistym z członkami zespołu.
Funkcje Visual Paradigm:
- Katalog zasobów: Powtarzaj elementy na diagramach w celu zachowania spójności.
- Pod-diagramy: Zarządzaj złożonymi stanami złożonymi, takimi jak Heating.
- Inżynieria kodu: Generuj lub odwórz kod z diagramów.
- Współpraca zespołowa: Obsługuje jednoczesne edytowanie i przechowywanie w chmurze.
Przykładowy przepływ pracy dla systemu sterowania temperaturą:
- Rozpocznij od stanu początkowego połączonego z Idle.
- Dodaj stany Chłodzenie i Grzanie, przy czym stan Grzanie zawiera podstany Aktywowanie i Aktywny.
- Utwórz przejścia: Idle do Chłodzenie (tooHot(desiredTemp)), Chłodzenie do Idle (atTemp), Idle do Grzanie.Aktywowanie (tooCold(desiredTemp)), Aktywowanie do Aktywny (ready / turnOn) oraz Aktywny do Idle (atTemp).
- Dodaj stan końcowy z Idle.
- Sprawdź poprawność składni i eksportuj diagram.
Dodatkowe przykłady
Aby pogłębić zrozumienie, oto dwa dodatkowe przykłady diagramów stanów UML:
- Automat do sprzedawania towarów:
- Stany:
- Poczekaj: Oczekiwanie na wejście użytkownika.
- Wybór: Użytkownik wybiera produkt.
- Płatność: Użytkownik dokonuje płatności.
- Wydawanie: Produkt jest wydawany.
- Zwracanie reszty: Reszta jest zwracana.
- Przejścia:
- Poczekaj → Wybór: Wyzwolone przez insertCoin.
- Wybór → Płatność: Wyzwolone przez selectItem.
- Płatność → Wydawanie: Wyzwolone przez paymentConfirmed z warunkiem [paymentSufficient].
- Wydawanie → Zwracanie reszty: Wyzwolone przez itemDispensed z działaniem dispenseChange.
- Zwracanie reszty → Poczekaj: Wyzwolone przez changeReturned.
- Przypadek użycia: Ten diagram modeluje proces transakcji automatu do sprzedawania towarów, zapewniając jasne określenie wszystkich kroków (włożenie monety, wybór, płatność, wydanie produktu).
- Stany:
- System sygnałów świetlnych:
- Stany:
- Czerwony: Pojazdy zatrzymują się.
- Zielony: Pojazdy jadą.
- Żółty: Pojazdy gotują się do zatrzymania.
- Przejścia:
- Czerwony → Zielony: Wyzwolony przez timerExpired [czas trwania = 30s].
- Zielony → Żółty: Wyzwolony przez timerExpired [czas trwania = 30s].
- Żółty → Czerwony: Wyzwolony przez timerExpired [czas trwania = 5s].
- Przypadek użycia: Ten cykliczny diagram modeluje przewidywalne zachowanie sygnału świetlnego, przydatne dla systemów zarządzania ruchem.
- Stany:
- System przetwarzania zamówień:
- Stany:
- Złożone: Zamówienie zostało złożone przez klienta.
- Przetwarzanie: Zamówienie przechodzi przez sprawdzenie płatności i stanu magazynowego.
- Wysłane: Zamówienie zostało wysłane.
- Dostarczone: Zamówienie dotarło do klienta.
- Anulowane: Zamówienie zostało anulowane.
- Przejścia:
- Złożone → Przetwarzanie: wyzwalane przez orderVerified z warunkiem [paymentValid && inventoryAvailable].
- Przetwarzanie → Wysłane: wyzwalane przez orderPacked z działaniem notifyCustomer.
- Wysłane → Dostarczone: wyzwalane przez deliveryConfirmed.
- Złożone → Anulowane: wyzwalane przez customerCancel.
- Przetwarzanie → Anulowane: wyzwalane przez paymentFailed lub inventoryUnavailable.
- Przypadek użycia: Ten diagram modeluje cykl życia zamówienia e-commerce, wyróżniając kluczowe punkty decyzyjne, takie jak weryfikacja płatności.
- Stany:
Te przykłady ilustrują zróżnicowanie diagramów stanów UML w różnych dziedzinach, od elektroniki konsumenckiej po procesy biznesowe i systemy infrastrukturalne.
Wnioski
Diagramy stanów UML są niezastąpione przy modelowaniu zachowania dynamicznego systemów, zapewniając jasne, wizualne przedstawienie stanów, przejść i zdarzeń. Przykład systemu regulacji temperatury ilustruje, jak te diagramy oddają złożone zachowania, takie jak stany hierarchiczne i przejścia wyzwalane zdarzeniami. Dodatkowe przykłady, takie jak automaty do sprzedawania towarów, sygnalizatory świetlne i systemy przetwarzania zamówień, pokazują ich zastosowanie w różnorodnych scenariuszach. Visual Paradigm ułatwia proces tworzenia dzięki przyjaznemu interfejsowi, sprawdzaniu składni i funkcjom współpracy, co czyni go doskonałym narzędziem zarówno dla początkujących, jak i doświadczonych projektantów. Wykorzystując diagramy stanów UML i narzędzia takie jak Visual Paradigm, programiści mogą projektować solidne, utrzymywalne systemy i efektywnie komunikować swoje projekty z zaangażowanymi stronami.
Kluczowe cytowania:
-
- Diagramy maszyn stanów | Język modelowania zintegrowanego (UML) | GeeksforGeeks
- Wszystko, co musisz wiedzieć o diagramach stanów | Visual Paradigm
- Maszyna stanów UML | Wikipedia
- Co to jest diagram maszyny stanów? | Visual Paradigm
- Wyjaśnienie diagramów stanów UML | Baeldung na temat informatyki
- Diagramy języka modelowania zintegrowanego (UML) | GeeksforGeeks











