Wprowadzenie
W dziedzinie inżynierii oprogramowania i projektowania systemów skuteczna komunikacja i wizualizacja zachowania systemu są kluczowe. Tu właśnie wchodzą w grę diagramy języka UML (Unified Modeling Language), oferujące różne narzędzia do przedstawiania różnych aspektów dynamiki systemu. Wśród nich wyróżniają się diagramy stanów i diagramy działań, każdy z nich spełniający różne cele i dający unikalne wgląd w zachowanie systemu.
W tym artykule zagłębiamy się w świat diagramów stanów i diagramów działań, dążąc do rozjaśnienia ich cech, przypadków użycia, zalet i wad. Zrozumienie kluczowych różnic między tymi dwoma typami diagramów UML pozwoli Ci uzyskać cenne wgląd w sytuacje, w których warto wykorzystać każdy z nich, aby osiągnąć najlepsze rezultaty w projektowaniu oprogramowania i modelowaniu systemów.
Diagramy stanów w porównaniu z diagramami działań
Diagramy stanów i diagramy działań to oba rodzaje diagramów UML (Unified Modeling Language), używanych w inżynierii oprogramowania i projektowaniu systemów do przedstawiania różnych aspektów zachowania systemu, ale spełniają różne cele i skupiają się na różnych aspektach zachowania systemu. Oto porównanie diagramów stanów i diagramów działań:
- Cel:
- Diagram stanów: Diagramy stanówgłównie skupiają się na modelowaniu zachowania dynamicznego obiektu lub systemu poprzez przedstawienie różnych stanów, w których może się znajdować obiekt lub system, oraz przejść między tymi stanami. Są szczególnie przydatne do modelowania zachowania obiektów o skończonej liczbie stanów, takich jak elementy oprogramowania lub jednostki o dobrze określonych etapach cyklu życia.
- Diagram działań: Diagramy działań, z drugiej strony, służą do modelowania przebiegu działań lub czynności wewnątrz systemu lub procesu biznesowego. Zwykle służą do przedstawiania aspektów proceduralnych systemu, pokazując, jak różne zadania lub czynności są wykonywane i jak są ze sobą powiązane.
- Elementy:
- Diagram stanów: Głównymi elementami diagramu stanów są stany (reprezentujące określone warunki lub sytuacje), przejścia (pokazujące, jak system przechodzi z jednego stanu do drugiego) oraz zdarzenia (uruchamiające przejścia między stanami).
- Diagram działań: Diagramy działań składają się z działań (reprezentujących zadania lub czynności), strzałek przepływu sterowania (wskazujących kolejność działań), węzłów decyzyjnych (do rozgałęziania warunkowego), węzłów scalających (do łączenia przepływów) oraz korytarzy (do podziału działań między różnymi aktorami lub podsystemami).
- Skupienie:
- Diagram stanów: Diagramy stanów podkreślają różne stany obiektu lub systemu oraz warunki, w których zachodzą przejścia między tymi stanami. Są szczególnie przydatne do modelowania systemów czasu rzeczywistego lub systemów o złożonym zachowaniu zależnym od stanu.
- Diagram działań: Diagramy działań skupiają się na przebiegu działań i sposobie koordynacji różnych zadań lub czynności w ramach procesu lub systemu. Są idealne do modelowania procesów biznesowych, systemów przepływu pracy oraz algorytmów oprogramowania.
- Zastosowanie:
- Diagram stanu: Diagramy stanu są często używane w projektowaniu systemów oprogramowania, systemów wbudowanych i sterowników sprzętowych, w których obiekty lub systemy mogą znajdować się w różnych stanach i muszą reagować na zdarzenia poprzez przejście między tymi stanami.
- Diagram aktywności: Diagramy aktywności są często używane w modelowaniu procesów biznesowych, rozwoju oprogramowania i projektowaniu systemów w celu przedstawienia kroków i działań związanych z procesem lub przepływem pracy.
Diagram stanu, przedstawiony na lewym rysunku poniżej, stanowi wizualne przedstawienie maszyny stanów, która wykonywa działania w odpowiedzi na określone zdarzenia. Dokładnie ilustruje różne stany w systemie oraz przejścia między nimi, wywoływane wystąpieniem zdarzeń. Diagramy stanu odgrywają kluczową rolę przy modelowaniu systemów reaktywnych, czyli tych, które reagują na zdarzenia zewnętrzne, na przykład aplikacje takie jak sygnalizatory świetlne lub automaty do sprzedawania towarów.
Z kolei diagram aktywności, przedstawiony na prawym rysunku poniżej, ukazuje dynamiczny przepływ działań w systemie. Dokładnie przedstawia sekwencję działań, obejmując punkty decyzyjne, pętle i rozgałęzienia. Diagramy aktywności wyróżniają się przy modelowaniu systemów, które wykonywają uporządkowaną sekwencję działań, a przykładem może być modelowanie procesów biznesowych lub wyznaczanie złożonych algorytmów oprogramowania.

Diagramy stanu są używane do modelowania zachowania obiektów lub systemów zależnego od stanu, podczas gdy diagramy aktywności służą do modelowania przepływu działań lub czynności w systemie lub procesie. Wybór między tymi diagramami zależy od konkretnego aspektu zachowania systemu, który chcesz przedstawić, oraz poziomu szczegółowości wymaganego w celu modelowania.
Przykłady diagramów stanu i aktywności
Rozważmy prosty obiekt – sygnalizator świetlny. Ma trzy stany: „Czerwony”, „Żółty” i „Zielony”. Przejścia między tymi stanami są wyzwalane przez zegar. Oto jak możesz przedstawić to zachowanie za pomocą diagramu stanu:
- Stany: Czerwony, Żółty, Zielony
- Przejścia:
- Czerwony -> Żółty (Wyzwalane przez zegar, gdy czas światła czerwonego się skończy)
- Żółty -> Zielony (Wyzwalane przez zegar, gdy czas światła żółtego się skończy)
- Zielony -> Czerwony (Wyzwalane przez zegar, gdy czas światła zielonego się skończy)
W tym diagramie stanu skupiasz się na różnych stanach, w których może się znajdować sygnalizator świetlny, oraz na tym, jak przechodzi on między nimi na podstawie określonych zdarzeń (zegarów).
Przykład diagramu aktywności:
Teraz rozważmy proces biznesowy, na przykład system przetwarzania zamówień w sklepie internetowym. Oto uproszczony diagram aktywności dla tego procesu:
- Działania:
- Klient składa zamówienie.
- Zamówienie jest sprawdzane przez system.
- Jeśli zamówienie jest poprawne:
- Sprawdzana jest ilość towaru na stanie.
- Przetwarzana jest płatność.
- Zorganizowana jest wysyłka.
- Zamówienie oznaczane jest jako „Wysłane”.
- Jeśli zamówienie nie jest poprawne:
- Klient jest poinformowany.
- Zamówienie jest anulowane.
W tym diagramie aktywności skupiasz się na sekwencji działań związanych z przetwarzaniem zamówienia. Każde działanie reprezentuje konkretną czynność, a strzałki pokazują przepływ działań. Punkty decyzyjne (sprawdzenie poprawności) decydują o drodze, którą przebiega proces, w zależności od warunków.
Tak więc kluczowe różnice między tymi diagramami w tych przykładach to:
- Diagram stanu przedstawia różne stany (Czerwony, Żółty, Zielony) oraz sposób przejść między nimi w oparciu o zdarzenia (liczniki).
- Diagram aktywności przedstawia sekwencję działań (przetwarzanie zamówienia) oraz sposób ich wykonywania w określonej kolejności, w tym gałęzie warunkowe (sprawdzenie ważności).
Modelowanie automatu do sprzedawania towarów za pomocą diagramu stanów:
W tej reprezentacji diagramu stanów automat do sprzedawania towarów rozpoczyna działanie w stanie Pusta, dając użytkownikom możliwość włożenia monet. Po włożeniu odpowiedniej kwoty automat przechodzi do stanu Otrzymane środki, w którym użytkownicy mogą dokonać wyboru produktu. Jeśli wybrany produkt jest dostępny, automat przechodzi do stanu Wydawanie, by dostarczyć produkt, a następnie powraca do stanu Pusta, kończąc transakcję. Jednak jeśli wybrany produkt jest niedostępny, automat przechodzi do stanu Zwracanie pieniędzy, by zwrócić monety, a następnie powraca do stanu Pusta, zakończając cykl transakcji. W przypadkach, gdy użytkownicy nie włożą wystarczającej kwoty, automat natychmiast przechodzi do stanu Zwracanie pieniędzy, by zwrócić monety, a następnie powraca do stanu Pusta po zakończeniu transakcji.

Modelowanie automatu do sprzedawania towarów za pomocą diagramu aktywności: podany diagram aktywności ujawnia sekwencję zdarzeń w systemie automatu do sprzedawania towarów. Rozpoczynając od węzła startowego, użytkownicy są najpierw proszeni o włożenie monet. Następnie diagram zawiera sprawdzenie warunkowe, które określa, czy użytkownik włożył odpowiednią kwotę. Jeśli wykryto wystarczające środki, użytkownikom udzielana jest możliwość wyboru produktu.
Następnie drugie sprawdzenie warunkowe ocenia dostępność wybranego produktu. Jeśli produkt jest na stanie, automat do sprzedawania towarów przystępuje do jego wydania, a diagram oznacza to przejściem do węzła końcowego, wskazując na pomyślne zakończenie transakcji. W przeciwnym razie, jeśli wybrany produkt jest niedostępny, automat inicjuje proces zwrotu monet przed przejściem do węzła końcowego.
W przypadkach, gdy użytkownicy nie włożą wystarczającej kwoty, automat do sprzedawania towarów natychmiast inicjuje proces zwrotu monet i przechodzi do węzła końcowego. W obu przypadkach transakcja kończy się, a użytkownicy mogą odebrać ewentualne zwroty.

Te reprezentacje, niezależnie czy za pomocą diagramów stanów czy diagramów aktywności, zapewniają jasne i uporządkowane widzenie funkcjonalności automatu do sprzedawania towarów, pomagając w analizie jego zachowania i wprowadzaniu ulepszeń, jeśli to konieczne.
Podsumowanie diagramów stanów i diagramów aktywności
Oto tabela porównująca diagramy stanów i diagramy aktywności pod kątem różnych aspektów:
| Aspekt | Diagram stanu | Diagram aktywności |
|---|---|---|
| Zastosowanie |
|
|
| Kiedy stosować |
|
|
| Zalety |
|
|
| Wady |
|
|
| Przykłady |
|
|
| Znaczące symbole |
|
|
| Główny nacisk |
|
|
| Poziom abstrakcji |
|
|
Te różnice pomogą Ci wybrać między diagramami stanów a diagramami aktywności, biorąc pod uwagę konkretne potrzeby modelowania oraz charakter systemu lub procesu, który reprezentujesz.
Podsumowanie
Diagramy stanów i diagramy aktywności, mimo że oba są częścią zestawu UML, służą do różnych aspektów modelowania systemów. Diagramy stanów wyróżniają się umiejętnością oddania złożonej interakcji stanów i przejść w obrębie obiektu lub systemu, co czyni je wyborą domyślną dla systemów o dobrze zdefiniowanych skończonych stanach. Z kolei diagramy aktywności są mistrzami ilustracji przepływu działań i zadań w ramach procesu lub systemu, co czyni je niezastąpionymi przy modelowaniu procesów biznesowych, projektów przepływów pracy oraz algorytmów oprogramowania.
Diagramy stanów podkreślają stany i przejścia, co czyni je idealnym wyborem dla systemów o złożonym zachowaniu zależnym od stanu, takich jak systemy wbudowane i sterowniki sprzętowe. Jednak mogą być nieprzyjemne do stosowania w przypadku procesów z przeważającymi zadaniami sekwencyjnymi. Natomiast diagramy aktywności wyróżniają się umiejętnością przedstawiania przepływu działań i sekwencji zadań, co czyni je preferowanym narzędziem do dokumentowania logiki proceduralnej, zwłaszcza w modelowaniu procesów biznesowych. Niezależnie od tego, mogą nie oferować tak jasnego przedstawienia stanów i warunków jak diagramy stanów.
Na końcu wybór między diagramami stanów a diagramami aktywności zależy od Twoich celów modelowania. Niezależnie od tego, czy śledzisz cykl życia obiektu, czy koordynujesz skomplikowany proces biznesowy, zrozumienie tych dwóch typów diagramów UML pozwoli Ci wybrać najbardziej odpowiednie narzędzie do zadania, zwiększając przejrzystość i skuteczność Twoich reprezentacji systemu.











