Opis

Projekt zakończony

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

080527

  • cvs

CVS

Some docs: a sane CVS Howto, MarkD, CVS Manual.

export CVSROOT=:ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate
export CVS_RSH=ssh

Naming convention for CVS modules:

p_papername_conferenceYYYY
p_papername
epp_name
hexor_name
mirella_name
xtt_name
ard_name

Examples

Checking out:

  cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate co p_mypaper_fancyconferece2007

Updating:

  cd p_mypaper_fancyconferece2007
  cvs update -Pd

Commiting:

  cd p_mypaper_fancyconferece2007
  cvs commit

Importing (creating a new module):

  cd p_otherpaper
  cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate import -m initial p_otherpaper hekate start

Bibliography

Hekate bibliography BibTeX database is available as hekatebib cvs module, to checkout type:

  cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate co hekatebib

There is a main file called hekate.bib. Check it out within your paper directory. DO NOT REMOVE any entries, please.

Warning: hekate.bib is NOT in sync with bibliography for now :!: Hopefully one day will be as soon as we have a sane BibTeX plugin for dokuwiki :-)

TODO

  • keyformat: AuthorLastNameYearConf[-something]

Projekt

08.02.26

08.03.04

Dalsze próby modelowania diagramów XTT za pomocą diagramów stanów.
Propozycja hipotetycznego modelu diagramu ARD w UMLu.

08.03.18

08.04.01

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

08.04.15

Propozycja wykorzystania zależności trace i derive.
Opracowanie krótkiego opisu specyfikacji MOF i standardu XMI.

08.04.29

Zmodyfikowane podejście do problemu modelu ARD.
Podsumowanie projektu w części Sprawozdanie.

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

Użyte rodzaje powiązań

W proponowanym modelu zostały użyte następujące rodzaje powiązań:

UML Nazwa powiązania Znaczenie powiązania
:pl:miw:miw08_umlandardxtt:umlandard:dependency_derive.png Zależność
«derive»
Określa związek pochodzenia między elementami, będącymi często (ale nie koniecznie) tego samego typu. Związek pochodzenia specyfikuje, że klient (B) może być wyznaczony (obliczony) na podstawie dostawcy (A).
:pl:miw:miw08_umlandardxtt:umlandard:dependency_refine.png Zależność
«refine»
Specyfikuje zależność usczegółowienia między elementami modelu na różnych poziomach znaczeniowych. B jest uszczegółowioną wersją A.
:pl:miw:miw08_umlandardxtt:umlandard:dependency_trace.png Zależność
«trace»
Definiuje związek trace pomiędzy elementami modelu (lub zbiorami elementów), które reprezentują to samo pojęcie (tę samą abstrakcję) w różnych modelach. Głównie używane dla śledzenia zmian między modelami.

Model diagramu ARD

Proponowany model diagramu ARD bazuje na diagramach komponentów. W części projektowej znajdują się diagramy dla całego termostatu. Poniżej prezentuję diagramy najbardziej szczegółowego poziomu:

diagram ARD model UML diagramu ARD
<graphviz file=„hekate:therm-a8.dot”></graphviz> :pl:miw:miw08_umlandardxtt:umlandard:approach3_ard_8.png
diagram TPH model UML
<graphviz file=„hekate:therm-t8.dot”></graphviz> :pl:miw:miw08_umlandardxtt:umlandard:approach3_tph_8.png
diagram ARD diagram TPH model UML diagramu THP + ARD
<graphviz file=„hekate:therm-a8.dot”></graphviz> <graphviz file=„hekate:therm-t8.dot”></graphviz> :pl:miw:miw08_umlandardxtt:umlandard:approach3_shi_8.png

Zależność trace w naszym modelu zachodzi między elementami reprezentującymi tę samą abstrakcję na różnych poziomach szczegółowości np.

Przykładowy fragment diagramu ukazujący zależność trace w modelu TPH
Przykład występowania zależności trace w modelu TPH

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.txt · ostatnio zmienione: 2019/06/27 15:50 (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