Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_umlandardxtt:activity_diagrams [2008/03/03 02:56] miw |
pl:miw:miw08_umlandardxtt:activity_diagrams [2019/06/27 15:50] (aktualna) |
> W diagramach aktywności można zaprezentować zdarzenia zachodzące równolegle. ([[pl:miw:miw08_umlandardxtt#literatura|Graessle 2006]], s. 66) | > W diagramach aktywności można zaprezentować zdarzenia zachodzące równolegle. ([[pl:miw:miw08_umlandardxtt#literatura|Graessle 2006]], s. 66) |
| |
===== wersja z 08.02.26 ===== | ===== 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: | W tabelach poniżej przedstawiłem próbę zamodelowania dwóch prostych diagramów XTT przy pomocy diagramów aktywności UMLa: |
| |
:!: Drugi diagram aktywności mimo stosunkowo niewielkiej liczby reguł, stał się już mało czytelny. | :!: 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ć, | 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... | 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|: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}} | |
| |**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}} | |
| |
| 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). |
| |
| |