Diagramy czynności UML
Diagramy czynności są jednym z trzech podstawowych sposobów modelowania zachowania systemów w ramach specyfikacji UML (pozostałe to diagramy maszyn stanowych i diagramy interakcji).
Diagramy czynności UML nadają się do opisu przepływu danych i sterowania, organizacji pracy (workflow), procesów biznesowych, a także proceduralnego sposobu przetwarzania (dane wejściowe, przetwarzanie, dane wyjściowe). Diagramy czynności mogą być uważane za wariant, wprowadzający istotne rozszerzenia i modyfikacje, klasycznych schematów blokowych.
Posługiwanie się diagramami czynności można łączyć z elementami metodologii strukturalnej tworzenia oprogramowania.
W specyfikacjach UML 1.x diagramy czynności traktowane były jako przypadek szczególny diagramów maszyn stanowych. W UML 2.0 diagramy czynności są odrębnym rodzajem diagramów. Istnieją podobieństwa w użytej notacji dla diagramów stanu i diagramów czynności, choć czasami tym samym symbolom odpowiadają inne nazwy i znaczenia. Istotną cechą diagramów czynności jest fakt, że umożliwiają one modelowanie współbieżnie wykonywanych procesów.
Elementami diagramów czynności są:
- działania (actions) – oznaczane prostokątami o zaokrąglonych narożach
- prostokąty mogą zawierać nazwę działania lub jego opis
- jako komentarze można umieścić na diagramie warunki początkowe i końcowe realizacji działań
- szczególnymi przypadkami działań są:
- wysłanie sygnału
- przyjęcie sygnału
- przyjęcie sygnału czasowego (generowanego przez zewnętrzny zegar)
- krawędzie (edges) – strzałki łączące działania i węzły
- krawędzie oznaczają przejścia (przepływy)
- krawędzie nie związane z przekazywaniem danych są przepływami sterowania (control flow)
- krawędzie związane z przesyłaniem danych są przepływami obiektów (object flow)
- krawędzie mogą posiadać nazwy
- krawędzie mogą być przerywane z użyciem łączników
- krawędzie mogą także oznaczać przejścia związane z obsługą błędów (interrupting edge)
- węzły sterowania pozwalające wyrazić strukturę przepływów:
- (initial) – węzeł rozpoczynający przepływy w momencie wywołania czynności
- (fork) – rozdziela przepływ na współbieżne przepływy
- (join) – łączy i synchronizuje wchodzące przepływy
- (decision) – dokonuje wyboru między różnymi wychodzącymi przepływami
- (merge) – łączy różne przepływy pochodzące z wyboru (tylko jeden może być realizowany)
- (flow final) – zakończenie pojedynczego przepływu
- (activity final) – zakończenie czynności (wszystkich przepływów)
- węzły obiektów (object nodes) – stosowane do oznaczania przekazywanych danych
- „podczynności” (sub activities) – symbole oznaczające czynności zdefiniowane na osobnych diagramach
- obszary (regions) – wyróżnione regiony pozwalające umieścić na diagramach dodatkowe informacje, np. o tym jakie elementy strukturalne odpowiedzialne są za realizacje danych fragmentów przepływów
- obszary przerywalne (interruptible region) – dla umożliwienia ilustracji obsługi błędów
- węzły parametrów (parameter nodes) – wskazujące parametry przekazywane do i z czynności