====== Diagram ARD i jego hipotetyczny model w UMLu ====== Podczas konsultacji 08.02.26 zwróciłem uwagę na podobieństwo diagramu [[hekate:hekate_concepts#ard|ARD]] do diagramu aktywności ze złączeniem (na podstawie diagramu z książki [[pl:miw:miw08_umlandardxtt#literatura|Pilone 2007]] s. 143). Różnica między nimi jest taka, że diagramy aktywności prezentują nam akcje, czyli kolejne kroki aktywności. Wobec tego stosując diagramy aktywności do modelowania ARD zmienia się ich funkcja semantyczna. Akcje będą bowiem reprezentowały nie kroki aktywności, a konkretne wartości atrybutów. ===== 08.03.04 ===== Poniżej znajduje się przykładowy diagram [[hekate:hekate_concepts#ard|ARD]] najniższego poziomu dla termostatu: {{:hekate:ard-therm-01.png|Ryc: Przykładowy diagram ARD}} Objaśnienie używanych na tej stronie pseudostanów: ^ Symbol ^Opis pseudostanu (na podstawie: [[pl:miw:miw08_umlandardxtt#literatura|Graessle 2006]], ss. 69-71) ^ |{{:pl:miw:miw08_umlandardxtt:ico_rozdzielacz.png|:pl:miw:miw08_umlandardxtt:ico_rozdzielacz.png}}|//**Złą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_romb_end.png|:pl:miw:miw08_umlandardxtt:ico_romb_end.png}}|//**Scalenie** posiada kilka wejść i jedno wyjście. Zadaniem jego 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**.//| ^ Porównanie koncepcji diagramów UML dla diagramu ARD ^^ |{{:pl:miw:miw08_umlandardxtt:ard_zlaczenie1.png|Ryc: Diagram aktywności ze złączeniami.}}|Diagram aktywności ze złączeniami.\\ \\ Wszystkie gałęzie diagramu aktywności wykonywane są współbieżnie do momentu, gdy wszystkie docierają do węzła złączenia. \\ \\ **Aktywność czeka aż wszystkie gałęzie dotrą do węzła**, a następnie wykonywana jest akcja występująca po złączeniu. Jest do zatem zgodne z tym, czego oczekiwalibyśmy po diagramie ARD. \\ \\ \\ | |{{:pl:miw:miw08_umlandardxtt:ard_scalenie1.png|Ryc: Diagram aktywności ze scaleniami.}}|Diagram aktywności ze scaleniami. \\ \\ Scalenie (ang. //merge node//) zgodnie ze [[pl:miw:miw08_umlandardxtt#zrodla_internetowe|specyfikacją OMG UML 2.1.2]] (s. 401) nie synchronizuje (ani nie łączy) poszczególnych gałęzi, lecz akceptuje jedną spośród kilku alternatywnych.\\ \\ Zatem u nas: jeśli zostanie ustalona tylko jedna z wartości //today// albo //hour// sterowanie zostałoby przekazane do //operation//. Takie rozwiązanie **nie wydaje się jednak zgodne** z działaniem termostatu. :!:|