Diagram aktywności

Diagramy aktywności mają związek z diagramami przepływu i służą do ilustrowania działań zachodzących w systemie. (…)

W diagramach aktywności można zaprezentować zdarzenia zachodzące równolegle. (Graessle 2006, s. 66)

08.02.26

W tabelach poniżej przedstawiłem próbę zamodelowania dwóch prostych diagramów XTT przy pomocy diagramów aktywności UMLa:

Diagram aktywności dla diagramu XTT dt:
:pl:miw:miw08_umlandardxtt:xtt_dt.png:pl:miw:miw08_umlandardxtt:dt_aktiv1.png
Diagram aktywności dla diagramu XTT th:
:pl:miw:miw08_umlandardxtt:xtt_th.png:pl:miw:miw08_umlandardxtt:th_activ1.png

Objaśnienie podstawowych symboli dla diagramów aktywności:

Symbol Opis pseudostanu (na podstawie: Graessle 2006, ss. 69-71)
:pl:miw:miw08_umlandardxtt:workday.pngAkcja - pojedynczy krok aktywności. (…) Strzałka wpływająca do aktywnosci rozpoczyna jej działanie, po którego zakończeniu przepływ jest kontynuowany przez strzałkę wychodzącą.
:pl:miw:miw08_umlandardxtt:ico_romb.pngWęzeł decyzyjny składa się w wejścia i dwóch lub większej liczby wyjść. Każde wyjście z węzła ma zdefiniowany warunek zapisany w nawiasach kwadratowych. Jeśli jest on spełniony, przepływ jest kontynuowany przez związane z nim wyjście.
:pl:miw:miw08_umlandardxtt:ico_romb_end.pngWęzeł łączący posiada kilka wejść i jedno wyjście. Zadaniem węzła łączącego jest łączenie kilku przepływów. Wejścia nie są zsynchronizowane - jeśli jeden przepływ dotrze do węzła, przechodzi do wyjścia niezależnie od tego czy do pozostałych wejść dotarły inne przepływy.
:pl:miw:miw08_umlandardxtt:ico_rozgalezienie.pngRozgałęzienie pozwala definiować równoległe przepływy w ramach aktywności. Posiada ono jedno wejście i dwa lub większą liczbę wyjść.
:pl:miw:miw08_umlandardxtt:ico_rozdzielacz.pngZłączenie służy do konsolidacji dwóch lub większej liczby równoległych przepływów. W przypadku konsolidacji przepływy są synchronizowane, a więc proces przechodzi do wyjścia dopiero wówczas, gdy dotrą one do wszystkich wejść.
:pl:miw:miw08_umlandardxtt:ico_partycje.pngPoszczególne elementy diagramu aktywności mogą być podzielone na indywidualne obszary zwane partycjami.
:pl:miw:miw08_umlandardxtt:ico_par_aktiv.pngParametry można do aktywności przekazywać lub z niej wysyłać w postaci parametrów czynności. Parametr czynności prezentuje się w postaci prostokąta umieszczanego na granicy aktywności. Nazwa lub opis parametru powinny znajdować się wewnątrz tego prostokąta. (Pilone 2007, s. 137)

Zagadnienia problematyczne

:!: Drugi diagram aktywności mimo stosunkowo niewielkiej liczby reguł, stał się już mało czytelny. Przy większej liczbie reguł i atrybutów diagram stanie się zupełnie nieczytelny oraz rozrośnie się do znacznych rozmiarów. Zagadnienia do rozważenia: Czy da się coś na to poradzić? Jeśli tak, to w jaki sposób to zmienić, co dodać, jakimi jeszcze diagramami się wspomóc…

08.03.18

Diagram ARD jest dekomponowany na kolejne diagramy stopniowo, przez co diagramy XTT utworzone na tej podstawie nie powinny posiadać zbyt wielu atrybutów. Zatem niweluje to częściowo problem rozrastania się diagramu.

Poniżej proponuję algorytm przekształcania diagramów XTT na diagramy aktywności:

Opis kroku algorytmu Przykładowe przekształcenie
1) Wszystkie atrybuty wejściowe stają się parametrami wejściowymi czynności, zaś atrybut wyjściowy staje się parametrem wyjściowym czynności (dla rozgraniczenia można podzielić diagram na partycje).





:pl:miw:miw08_umlandardxtt:algorithm_step1.png
2) Dla każdego takiego atrybutu (parametru czynności), jeśli w XTT istnieje więcej niż 1 unikalna jego wartość dodajemy węzeł decyzyjny oraz dla każdej unikalnej wartości atrybutu:
a) prowadzimy z niego przepływ sterowania opatrzony warunkiem w postaci tej unikalnej wartości,
b) jeśli dana wartość występuje wielokrotnie kończymy przepływ rozgałęzieniem z liczbą wyjść równą liczbie krotności występowania danej wartości w tablicy XTT.
:pl:miw:miw08_umlandardxtt:algorithm_step2.png
3) Dla każdej reguły (wiersza w XTT) rysujemy złączenie o liczbie wejść równej liczbie parametrów wejściowych i jednym wyjściu. Każdemu złączeniu:
a) do wejść doprowadzamy odpowiednie przepływy sterowania (zgodnie z wartościami atrybutów w danej regule),
b) z wyjścia prowadzimy przepływ sterowania do akcji odpowiadającej wartości atrybutu wyjściowego w danej regule:
- bezpośrednio, jeśli wartość atrybutu występowała w XTT tylko raz,
- poprzez węzeł łączący (scalenie) w przeciwnym wypadku.
:pl:miw:miw08_umlandardxtt:algorithm_step3.png
4) Wyjścia z wszystkich akcji scalamy w węźle łączącym (scalającym) i doprowadzamy przepływ sterowania do parametru wyjściowego czynności.






:pl:miw:miw08_umlandardxtt:algorithm_step4.png

Tak zaprojektowanym algorytmem diagramy aktywności dla termostatu będą wyglądały następująco:

Diagram aktywności dla diagramu XTT ms:
:pl:miw:miw08_umlandardxtt:xtt_ms.png:pl:miw:miw08_umlandardxtt:ms_3.png
Diagram aktywności dla diagramu XTT dt:
:pl:miw:miw08_umlandardxtt:xtt_dt.png:pl:miw:miw08_umlandardxtt:dt_3.png
Diagram aktywności dla diagramu XTT th:
:pl:miw:miw08_umlandardxtt:xtt_th.png:pl:miw:miw08_umlandardxtt:th_3.png
Diagram aktywności dla diagramu XTT os:
:pl:miw:miw08_umlandardxtt:xtt_os.png:pl:miw:miw08_umlandardxtt:os_3.png

Dla przejrzystości, modelując diagram całego termostatu, powyższe aktywności przedstawiamy w postaci zagnieżdżonych (aktywność przedstawiona w postaci zagnieżdżonej odwołuje się do szeregu akcji tej aktywności, których jednak w celach przejrzystości nie przedstawia się bezpośrednio na danym diagramie).

Diagram dla całego termostatu:
:pl:miw:miw08_umlandardxtt:uml_activity_xtt_3.png

Powyższy diagram powstał przez analogię do diagramu 12.54 ze str. 338 oraz diagramu 12.36 ze str. 323 specyfikacji OMG UML 2.1.2 (por. również 12.64 ze strony 349 i 12.110 ze str. 389).

pl/miw/miw08_umlandardxtt/activity_diagrams.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0