To jest stara wersja strony!


Opis

Krzysztof Kluza (4AR) krzysztof.kluza@uj.edu.pl

:!: Investigate how XTT could be modeled in UML

  • input

UML, ARD/XTT documentation

  • output

Sample XTT based rules modelled with UML.

Spotkania

08.02.26

08.03.04

080318

hekate_case_thermostat

  • połączenia między diagramami

080401

  • próba modelowania ARD, sar, shi, sha.

080415

  • model ard, use, trace

080429

Projekt

Szkice nad diagramami behawioralnymi (08.02.26, 08.03.04, 08.03.18)

Wobec tego postanowiłem na początek spróbować zamodelować osobno 2 reguły z przykładu w udostępnionej specyfikacji XTT:

:pl:miw:miw08_umlandardxtt:xtt_dt.png:pl:miw:miw08_umlandardxtt:xtt_th.png

raz przy użyciu diagramów aktywności, a raz przy użyciu diagramów stanów.

Za http://www.borland.pl/tech/poradnik_uml.shtml#Diagramy_aktywnosci:

Diagramy aktywności i diagramy stanów są powiązane. Diagram aktywności skupia się na obiekcie przechodzącym pewien proces
(albo na procesie traktowanym jak obiekt), natomiast diagram stanów skupia się na operacjach związanych z jednym procesem.

Poniższe podstrony przedstawiają próby modelowania powyższych diagramów XTT:

Zagadnienia problematyczne

:!: Zgodnie ze specyfikacją XTT wiersze w tabelach są interpretowane z góry na dół. W tym momencie diagramy aktywności czy stanów zamodelowane jak wyżej nie dają możliwości oddania tych zależności.

Możliwości rozwiązania problemu:

  • numeracja krawędzi i w ten sposób utrzymywanie kontroli przepływu - komplikuje to diagram, prawdopodobnie nie będzie zgodne ze specyfikacją UML.
  • oddanie tych specyficznych zależności na innym rodzaju diagramu.

Szkice nad modelem ARD w UMLu (08.03.04, 08.04.01)

Podczas konsultacji 08.02.26 zwróciłem uwagę na podobieństwo diagramu ARD do diagramu aktywności ze złączeniem (na podstawie diagramu z książki Pilone 2007 s. 143). Stąd jako osobny temat do rozważenia jest: hipotetyczny model diagramu ARD w UMLu (08.03.04).

Po zapoznaniu się z ARD (sar, shi, sha) postanowiłem jednak użyć diagramów klas do ich przedstawienia (08.04.01):

Sprawozdanie

Niniejszy projekt przedstawia próbę zamodelowania zarówno diagramów XTT, jak i ARD przy pomocy języka UML.

Diagramy XTT w UML

Tabele decyzyjne diagramu XTT reprezentują pewne reguły, które posiadają tego samego rodzaju atrybuty, a reguły te są przetwarzane sekwencyjnie. Wobec tego nasuwa się uzasadniona chęć użycia diagramów, które nie tyle pokazują strukturę systemu, co jego zachowanie (dynamikę). Są to zatem diagramy tj. przypadków użycia (use case), aktywności [czynności] (activity) i stanów (state), a także diagramy interakcji (sam diagram interakcji to diagram abstrakcyjny, który może być reprezentowany przez kilka różnych diagramów).

Żaden z diagramów nie oddaje w pełni przetwarzania regułowego XTT.
Najlepszymi kandydatami są: diagram maszyny stanów oraz diagram aktywności.
Jednakże pomimo, iż możliwe jest wyrażenie w nich reguł i zdefiniowanie stanów systemu,
tego rodzaju diagramy powiększają się bardzo szybko w miarę rozwoju oprogramowania.
Takie diagramy mogą być efektywnie stosowane w przypadkach, gdy mamy do czynienia
tylko z kilkoma regułami. Nie są jednak odpowiednie dla rzeczywistych systemów regułowych. (gjn2007kese-keuml s. 7)
Diagramy aktywności i diagramy stanów są powiązane. Diagram aktywności skupia się na obiekcie
przechodzącym pewien proces (albo na procesie traktowanym jak obiekt), natomiast diagram stanów skupia się na
operacjach związanych z jednym procesem.
(http://www.borland.pl/tech/poradnik_uml.shtml#Diagramy_aktywnosci)

Zaniechane próby modelowania przy pomocy diagramów stanów

Pierwsze próby modelowania XTT prowadzone były na diagramach stanów. Przykładowe podejścia do zamodelowania jednej z reguł XTT:

Fragment diagramu XTT

:pl:miw:miw08_umlandardxtt:xtt_th.png

Podejście pierwsze

:pl:miw:miw08_umlandardxtt:th_state1.png

Problem: brak jednoznaczności, które z parametrów przekształcać w stany, a które w warunki dozoru.

Podejście drugie

:pl:miw:miw08_umlandardxtt:th_state2a.png

Problem: przy niewiele większej tablicy XTT diagram staje się słabo czytelny.

Podejście trzecie

:pl:miw:miw08_umlandardxtt:th_state2b.png

Problem: we wszystkich trzech powyższych podejściach brak nazwy atrybutu wyjściowego, zaś by uzyskać nazwy atrybutów wejściowych należałoby wyszukiwać ich w warunkach dozoru.

Proponowany model XTT przy pomocy diagramów aktywności (czynnoś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)

Rezultatem projektu jest poniższy algorytm przekształcania diagramów XTT na diagramy aktywności (czynności) UML:

Algorytm przejścia z diagramów XTT na diagram UML

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

Poszczególne diagramy dla fragmentów XTT

Diagramy aktywności skonstruowane powyższym algorytmem 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

Diagram dla całego XTT termostatu

Dla przejrzystości, modelując diagram całego termostatu, powyższe aktywności przedstawiamy jako zagnieżdżone (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

Diagramy ARD w UML

Diagram ARD (Atribute Relationship Diagram) identyfikuje atrybuty systemu i ukazuje zależności funkcjonalne pomiędzy nimi.

Przykładowy diagram ARD na niskim poziomie dla termostatu:
<graphviz file=„hekate:therm-a8.dot”></graphviz>

W czasie procesu projektowania diagram ARD rozrasta się. Rozrost taki można przedstawić przy pomocy modelu hierarchicznego TPH (Transformation Process History). Dla powyższego diagramu, diagram TPH wygląda następująco:
<graphviz file=„hekate:therm-t8.dot”></graphviz>

Zaniechane próby modelowania przy pomocy diagramów aktywności (czynności)

Podejście pierwsze

Ryc: Diagram aktywności ze scaleniami.

Problem: Gdy zostanie np. ustalona tylko jedna z wartości today albo hour sterowanie zostałoby przekazane do operation. Takie rozwiązanie nie wydaje się zgodne z działaniem termostatu.

Podejście drugie

Ryc: Diagram aktywności ze złączeniami.

Problem: W tym wypadku przekazywanie sterowania byłoby zgodne z diagramem ARD. Występuje jednak znaczna różnica semantyczna: w diagramie UML aktywności reprezentują czynności, zaś na tym diagramie mają reprezentować cechy (atrybuty) systemu.

Proponowany model ARD przy pomocy diagramu komponentów UML

FIXME

Materiały

XMI

patrz nowe haslo o XMI.

może ja Pan rozbudować przy okazji, w tym też poczytać o MOF…

:!: oba hasła na razie w brudnopisie, gdyż nie mam dostępu do przestrzeni hekate: XMI & MOF (08.04.15)

Źródła internetowe

Literatura

  • Graessle P., Baumann H. i P., UML 2.0 w akcji. Przewodnik oparty na projektach., Helion 2006.
  • Pilone D., Pitman N., UML 2.0 Almanach, Helion 2007.

Oprogramowanie używane w projekcie

pl/miw/miw08_umlandardxtt.1209368217.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (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