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 układy 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, w celu ilustracji kluczowych koncepcji UML. Zawiera również krok po kroku wskazówki dotyczące tworzenia takich diagramów za pomocą Visual Paradigm, lidera w zakresie narzędzi modelowania UML. Aby ułatwić zrozumienie, dołączono dodatkowe przykłady, takie jak automat do sprzedawania napojów i system sygnalizacji świetlnej, które pokazują 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 trybem chłodzenia w zależności od warunków otoczenia. Zachowanie systemu modelowane jest następująco:
- Stany:
- Nieaktywny: 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 Nieaktywny.
- Przejścia:
- Z stanu początkowego do Nieaktywny: system zaczyna działanie w stanie Nieaktywny (nie określono zdarzenia).
- Z Nieaktywny do Chłodzenie: wyzwalane przez tooHot(desiredTemp), gdzie desiredTemp to temperatura docelowa.
- Z Chłodzenie do Nieaktywny: wyzwalane przez atTemp, wskazujące, że temperatura jest na poziomie docelowym.
- Z Nieaktywny 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 Nieaktywny: wyzwalane przez atTemp.
- Z Nieaktywny do Stanu końcowego: nie jest szczegółowo opisane, ale jest 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.
- na temp: 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), Wybór (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 Pusta do Chłodzenia jest wyzwalane przez za gorąco (desiredTemp), co wskazuje na wysoką temperaturę.
- Przykład (automat do sprzedaży): Przejście od Wyboru 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 czynnoś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 się odbyć.
- Przykład (Regulacja temperatury): Warunek taki jak [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 „Wstrzymanie”, „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”, aby dodać pełen okrąg i połącz go z Idle.
- Użyj narzędzia „Stan końcowy”, aby dodać okrąg z okręgiem 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 dopasuj:
- 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”, aby wygenerować szczegółową dokumentację.
- Przy użyciu Visual Paradigm Online możesz współpracować 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) i 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: Zwracana jest reszta.
- 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).
- 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 w systemach zarządzania ruchem.
- 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, podkreślając kluczowe punkty decyzyjne, takie jak weryfikacja płatności.
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 użytkownika, 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: