Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
Nowa wersja Both sides next revision
pl:miw:miw08_umlandardxtt [2008/04/27 22:12]
miw
pl:miw:miw08_umlandardxtt [2008/06/14 15:01]
gjn
Linia 1: Linia 1:
 ====== Opis ====== ====== Opis ======
 +__**Projekt zakończony**__
 +
 Krzysztof Kluza (4AR) <​krzysztof.kluza@uj.edu.pl>​ Krzysztof Kluza (4AR) <​krzysztof.kluza@uj.edu.pl>​
  
Linia 26: Linia 28:
 ===== 080415 ===== ===== 080415 =====
   * model ard, use, trace   * model ard, use, trace
 +
  
  
Linia 37: Linia 40:
   * 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ązaneDiagram 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.0408.04.01) =====+Hekate bibliography BibTeX database is available as hekatebib cvs moduleto 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]] s143)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 =====
  
-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), 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).+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. > Żaden z diagramów nie oddaje w pełni przetwarzania regułowego XTT.
Linia 87: Linia 152:
 > 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 ====
 +
 +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|:​pl:​miw:​miw08_umlandardxtt:​xtt_th.png}}
 +
 +=== 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 ===
 +{{:​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 ===
 +{{:​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}} |
 +
  
  
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