Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_umlandardxtt:activity_diagrams [2008/03/17 22:10] miw |
pl:miw:miw08_umlandardxtt:activity_diagrams [2019/06/27 15:50] (aktualna) |
co dodać, jakimi jeszcze diagramami się wspomóc... | co dodać, jakimi jeszcze diagramami się wspomóc... |
| |
===== 08.03.18 ===== | |
| |
FIXME! | ===== 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. | 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. |
| |
^ Opis kroku algorytmu ^ Przykładowe przekształcenie ^ | ^ 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|:pl:miw:miw08_umlandardxtt:algorithm_step1.png}} | | |**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|: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|:pl:miw:miw08_umlandardxtt:algorithm_step2.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|: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|:pl:miw:miw08_umlandardxtt:algorithm_step3.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|: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|:pl:miw:miw08_umlandardxtt:algorithm_step4.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|:pl:miw:miw08_umlandardxtt:algorithm_step4.png}} | |
| |
Tak zaprojektowanym algorytmem diagramy aktywności dla termostatu będą wyglądały następująco: | Tak zaprojektowanym algorytmem diagramy aktywności dla termostatu będą wyglądały następująco: |
|{{:pl:miw:miw08_umlandardxtt:xtt_os.png?303|:pl:miw:miw08_umlandardxtt:xtt_os.png}}|{{:pl:miw:miw08_umlandardxtt:os_3.png?528|:pl:miw:miw08_umlandardxtt:os_3.png}}| | |{{:pl:miw:miw08_umlandardxtt:xtt_os.png?303|:pl:miw:miw08_umlandardxtt:xtt_os.png}}|{{:pl:miw:miw08_umlandardxtt:os_3.png?528|: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|: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 [[pl:miw:miw08_umlandardxtt#zrodla_internetowe|specyfikacji OMG UML 2.1.2]] (por. również 12.64 ze strony 349 i 12.110 ze str. 389). |
| |
| |