Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
Nowa wersja
Both sides next revision
|
pl:miw:miw08_umlandardxtt:activity_diagrams [2008/03/17 21:44] miw |
pl:miw:miw08_umlandardxtt:activity_diagrams [2008/03/17 23:37] miw |
| |
===== 08.03.18 ===== | ===== 08.03.18 ===== |
| |
FIXME! | |
| |
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: |
| |
| ^Diagram aktywności dla diagramu XTT ms:^^ |
| |{{:pl:miw:miw08_umlandardxtt:xtt_ms.png|:pl:miw:miw08_umlandardxtt:xtt_ms.png}}|{{:pl:miw:miw08_umlandardxtt:ms_3.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:xtt_dt.png}}|{{:pl:miw:miw08_umlandardxtt:dt_3.png|:pl:miw:miw08_umlandardxtt:dt_3.png}}| |
| |
| ^Diagram aktywności dla diagramu XTT th:^^ |
| |{{:pl:miw:miw08_umlandardxtt:xtt_th.png?303|:pl:miw:miw08_umlandardxtt:xtt_th.png}}|{{:pl:miw:miw08_umlandardxtt:th_3.png?528|:pl:miw:miw08_umlandardxtt:th_3.png}}| |
| |
| ^Diagram aktywności dla diagramu XTT os:^^ |
| |{{: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). |
| |
| |