Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
Nowa wersja
Both sides next revision
|
pl:miw:miw08_umlandardxtt [2008/04/27 22:34] miw |
pl:miw:miw08_umlandardxtt [2008/06/14 15:01] gjn |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
Krzysztof Kluza (4AR) <krzysztof.kluza@uj.edu.pl> | Krzysztof Kluza (4AR) <krzysztof.kluza@uj.edu.pl> |
| |
===== 080415 ===== | ===== 080415 ===== |
* model ard, use, trace | * model ard, use, trace |
| |
| |
| |
* http://www.omg.org/mda/ | * http://www.omg.org/mda/ |
| |
====== 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: | ===== 080520 ===== |
| * ewaluacja |
| * szkielet raportu |
| * http://oxygen.informatik.tu-cottbus.de/rewerse-i1/?q=URML |
| * http://www.fujaba.de/ |
| |
|{{:pl:miw:miw08_umlandardxtt:xtt_dt.png|:pl:miw:miw08_umlandardxtt:xtt_dt.png}}|{{:pl:miw:miw08_umlandardxtt:xtt_th.png|:pl:miw:miw08_umlandardxtt:xtt_th.png}}| | ===== 080527 ===== |
| * cvs |
| |
raz przy użyciu diagramów aktywności, a raz przy użyciu diagramów stanów. | ==== CVS ==== |
| |
Za [[http://www.borland.pl/tech/poradnik_uml.shtml#Diagramy_aktywnosci]]: | Some docs: a sane [[http://furryland.org/~mikec/cvs.html|CVS Howto]], |
> Diagramy aktywności i diagramy stanów są powiązane. Diagram aktywności skupia się na obiekcie przechodzącym pewien proces | [[http://badgertronics.com/writings/cvs/|MarkD]], |
> (albo na procesie traktowanym jak obiekt), natomiast diagram stanów skupia się na operacjach związanych z jednym procesem. | [[http://ximbiot.com/cvs/manual/|CVS Manual]]. |
| |
Poniższe podstrony przedstawiają próby modelowania powyższych diagramów XTT: | export CVSROOT=:ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate |
- [[pl:miw:miw08_umlandardxtt:activity_diagrams|za pomocą diagramów aktywności]] ([[pl:miw:miw08_umlandardxtt:activity_diagrams#section|08.02.26]], [[pl:miw:miw08_umlandardxtt:activity_diagrams#section1|08.03.18]]), | export CVS_RSH=ssh |
- [[pl:miw:miw08_umlandardxtt:state_diagrams|za pomocą diagramów stanów]] ([[pl:miw:miw08_umlandardxtt:state_diagrams#section|08.02.26]], [[pl:miw:miw08_umlandardxtt:state_diagrams#section|08.03.04]]). | |
| |
==== Zagadnienia problematyczne ==== | Naming convention for CVS modules: |
| |
:!: Zgodnie ze specyfikacją XTT wiersze w tabelach są interpretowane z góry na dół. W tym momencie | p_papername_conferenceYYYY |
diagramy aktywności czy stanów zamodelowane jak wyżej nie dają możliwości oddania tych zależności. | p_papername |
| epp_name |
| hexor_name |
| mirella_name |
| xtt_name |
| ard_name |
| |
Możliwości rozwiązania problemu: | === Examples === |
* 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. | |
| |
| 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 === |
| |
===== Szkice nad modelem ARD w UMLu (08.03.04, 08.04.01) ===== | Hekate bibliography BibTeX database is available as hekatebib cvs module, to checkout type: |
| |
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). Stąd jako osobny temat do rozważenia jest: [[pl:miw:miw08_umlandardxtt:umlandard| hipotetyczny model diagramu ARD w UMLu]] (08.03.04). | cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate co hekatebib |
| |
Po zapoznaniu się z ARD (sar, shi, sha) postanowiłem jednak użyć diagramów klas do ich przedstawienia (08.04.01): | 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 [[hekatedev: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 ==== |
| |
| Próby modelowania diagramów XTT: |
| * [[pl:miw:miw08_umlandardxtt:activity_diagrams#section|za pomocą diagramów aktywności]], |
| * [[pl:miw:miw08_umlandardxtt:state_diagrams#section|za pomocą diagramów stanów]]. |
| |
| |
| ==== 08.03.04 ==== |
| |
| Dalsze próby modelowania diagramów XTT [[pl:miw:miw08_umlandardxtt:state_diagrams#section1|za pomocą diagramów stanów]].\\ |
| Propozycja [[pl:miw:miw08_umlandardxtt:umlandard| hipotetycznego modelu diagramu ARD w UMLu]]. |
| |
| ==== 08.03.18 ==== |
| |
| Sforumułowanie [[pl:miw:miw08_umlandardxtt:activity_diagrams#section1|algorytmu przejścia z diagramu XTT na diagram aktywności UML]]. |
| |
| ==== 08.04.01 ==== |
| |
| Po zapoznaniu się z ARD (sar, shi, sha) postanowiłem użyć jednak diagramów klas do ich przedstawienia: |
* [[pl:miw:miw08_umlandardxtt:umlandard:approach1| Pierwsze podejście do problemu]] | * [[pl:miw:miw08_umlandardxtt:umlandard:approach1| Pierwsze podejście do problemu]] |
* [[pl:miw:miw08_umlandardxtt:umlandard:approach2| Drugie podejście do problemu (bazujące na pierwszym)]] ([[pl:miw:miw08_umlandardxtt:umlandard:approach2#zaleznosci_trace_use_i_derive|08.04.15]]) | * [[pl:miw:miw08_umlandardxtt:umlandard:approach2| Drugie podejście do problemu (bazujące na pierwszym)]] |
| |
| |
| ==== 08.04.15 ==== |
| |
| Propozycja wykorzystania [[pl:miw:miw08_umlandardxtt:umlandard:approach2#zaleznosci_trace_use_i_derive|zależności trace i derive]].\\ |
| Opracowanie krótkiego [[pl:miw:miw08_umlandardxtt:notatki|opisu specyfikacji MOF i standardu XMI]]. |
| |
| ==== 08.04.29 ==== |
| |
| Zmodyfikowane [[pl:miw:miw08_umlandardxtt:umlandard:approach3|podejście do problemu modelu ARD]].\\ |
| Podsumowanie projektu w części Sprawozdanie. |
| |
====== Sprawozdanie ====== | ====== Sprawozdanie ====== |
| |
Niniejszy projekt przedstawia próbę zamodelowania zarówno diagramów XTT, jak i ARD przy pomocy języka UML. | Niniejszy projekt przedstawia próbę zamodelowania zarówno diagramów XTT, jak i ARD przy pomocy języka UML. |
| |
| |
| |
===== Diagramy XTT w UML ===== | ===== Diagramy XTT w UML ===== |
> Takie diagramy mogą być efektywnie stosowane w przypadkach, gdy mamy do czynienia | > 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. ([[hekate:bib:hekate_bibliography#gjn2007kese-keuml]] s. 7) | > tylko z kilkoma regułami. Nie są jednak odpowiednie dla rzeczywistych systemów regułowych. ([[hekate:bib:hekate_bibliography#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 ==== | ==== Zaniechane próby modelowania przy pomocy diagramów stanów ==== |
| |
=== Podejście pierwsze === | === Podejście pierwsze === |
| {{:pl:miw:miw08_umlandardxtt:th_state1.png?450|: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 === | === Podejście drugie === |
| {{:pl:miw:miw08_umlandardxtt:th_state2a.png?450|:pl:miw:miw08_umlandardxtt:th_state2a.png}} |
| |
| Problem: przy niewiele większej tablicy XTT diagram staje się słabo czytelny. |
| |
=== Podejście trzecie === | === Podejście trzecie === |
| {{:pl:miw:miw08_umlandardxtt:th_state2b.png?450|: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. ([[pl:miw:miw08_umlandardxtt#literatura|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|: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}} | |
| |
| === 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:xtt_ms.png}}|{{:pl:miw:miw08_umlandardxtt:ms_3.png?427|:pl:miw:miw08_umlandardxtt:ms_3.png}}| |
| |
| ^Diagram aktywności dla diagramu XTT dt:^^ |
| |{{:pl:miw:miw08_umlandardxtt:xtt_dt.png?300|:pl:miw:miw08_umlandardxtt:xtt_dt.png}}|{{:pl:miw:miw08_umlandardxtt:dt_3.png?400|:pl:miw:miw08_umlandardxtt:dt_3.png}}| |
| |
| ^Diagram aktywności dla diagramu XTT th:^^ |
| |{{:pl:miw:miw08_umlandardxtt:xtt_th.png?300|:pl:miw:miw08_umlandardxtt:xtt_th.png}}|{{:pl:miw:miw08_umlandardxtt:th_3.png?400|:pl:miw:miw08_umlandardxtt:th_3.png}}| |
| |
| ^Diagram aktywności dla diagramu XTT os:^^ |
| |{{:pl:miw:miw08_umlandardxtt:xtt_os.png?300|:pl:miw:miw08_umlandardxtt:xtt_os.png}}|{{:pl:miw:miw08_umlandardxtt:os_3.png?400|: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?700|: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 === |
| |
| {{:pl:miw:miw08_umlandardxtt:ard_scalenie1.png|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 === |
| |
| {{:pl:miw:miw08_umlandardxtt:ard_zlaczenie1.png|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|: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|: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|: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ę [[pl:miw:miw08_umlandardxtt:umlandard:approach3#proponowany_model_diagramow|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|: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|: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|: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 ^ |
| |{{:pl:miw:miw08_umlandardxtt:umlandard:trace_example.png|Przykład występowania zależności trace w modelu TPH}} | |
| |
| |
| |
====== Materiały ====== | ====== Materiały ====== |