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:34]
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 =====
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 ==== ==== Zaniechane próby modelowania przy pomocy diagramów stanów ====
Linia 97: Linia 166:
  
 === 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 ======
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