Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_umlandardxtt [2008/04/28 00:13] miw |
pl:miw:miw08_umlandardxtt [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
Krzysztof Kluza (4AR) <krzysztof.kluza@uj.edu.pl> | Krzysztof Kluza (4AR) <krzysztof.kluza@uj.edu.pl> |
| |
| |
====== Spotkania ====== | ====== Spotkania ====== |
===== 08.02.26 ===== | [[pl:miw:miw08_umlandardxtt:spotkania]] |
===== 08.03.04 ===== | |
[[hekate:hekate_case_thermostat]] | |
| |
===== 080318 ===== | ===== 080527 ===== |
[[hekate:hekate_case_thermostat]] | * cvs |
* połączenia między diagramami | |
| |
| ==== CVS ==== |
| |
===== 080401 ===== | Some docs: a sane [[http://furryland.org/~mikec/cvs.html|CVS Howto]], |
* próba modelowania ARD, sar, shi, sha. | [[http://badgertronics.com/writings/cvs/|MarkD]], |
| [[http://ximbiot.com/cvs/manual/|CVS Manual]]. |
| |
| export CVSROOT=:ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate |
| export CVS_RSH=ssh |
| |
===== 080415 ===== | Naming convention for CVS modules: |
* model ard, use, trace | |
| |
| p_papername_conferenceYYYY |
| p_papername |
| epp_name |
| hexor_name |
| mirella_name |
| xtt_name |
| ard_name |
| |
===== 080429 ===== | === Examples === |
* podsumowanie | |
* http://www.knowgravity.com/eng/index.htm | |
* http://home.agh.edu.pl/~mszpyrka/index.php?s=CSLTR | |
| |
na przyszłość: | Checking out: |
* http://en.wikipedia.org/wiki/Model-driven_architecture | cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate co p_mypaper_fancyconferece2007 |
* http://www.omg.org/mda/ | 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 |
| |
====== Projekt ====== | === Bibliography === |
===== 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: | Hekate bibliography BibTeX database is available as hekatebib cvs module, to checkout type: |
| |
|{{: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}}| | cvs -d :ext:charon.ia.agh.edu.pl/mnt/cvs/cvs-hekate co hekatebib |
| |
raz przy użyciu diagramów aktywności, a raz przy użyciu diagramów stanów. | There is a main file called ''hekate.bib''. |
| Check it out within your paper directory. |
| DO NOT REMOVE any entries, please. |
| |
Za [[http://www.borland.pl/tech/poradnik_uml.shtml#Diagramy_aktywnosci]]: | **Warning**: ''hekate.bib'' is NOT in sync with [[hekatedev:bibliography]] for now :!: |
> Diagramy aktywności i diagramy stanów są powiązane. Diagram aktywności skupia się na obiekcie przechodzącym pewien proces | Hopefully one day will be as soon as we have a sane BibTeX plugin for dokuwiki :-) |
> (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: | TODO |
- [[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]]), | * keyformat: AuthorLastNameYearConf[-something] |
- [[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 ==== | |
| |
:!: 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: | ====== Projekt ====== |
* 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. | |
| |
| ==== 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]]. |
| |
===== 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 [[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). | ==== 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): | 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 ===== |
> 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 ==== |
| |
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. | 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) ==== | ==== Proponowany model XTT przy pomocy diagramów aktywności (czynności) ==== |
| |
^Diagram aktywności dla diagramu XTT ms:^^ | ^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|:pl:miw:miw08_umlandardxtt:ms_3.png}}| | |{{: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:^^ | ^Diagram aktywności dla diagramu XTT dt:^^ |
|{{:pl:miw:miw08_umlandardxtt:xtt_dt.png|:pl:miw:miw08_umlandardxtt:xtt_dt.png}}|{{:pl:miw:miw08_umlandardxtt:dt_3.png|:pl:miw:miw08_umlandardxtt:dt_3.png}}| | |{{: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:^^ | ^Diagram aktywności dla diagramu XTT th:^^ |
|{{:pl:miw:miw08_umlandardxtt:xtt_th.png?303|:pl:miw:miw08_umlandardxtt:xtt_th.png}}|{{:pl:miw:miw08_umlandardxtt:th_3.png?528|:pl:miw:miw08_umlandardxtt:th_3.png}}| | |{{: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:^^ | ^Diagram aktywności dla diagramu XTT os:^^ |
|{{:pl:miw:miw08_umlandardxtt:xtt_os.png?303|:pl:miw:miw08_umlandardxtt:xtt_os.png}}|{{:pl:miw:miw08_umlandardxtt:os_3.png?528|:pl:miw:miw08_umlandardxtt:os_3.png}}| | |{{: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 === | === Diagram dla całego XTT termostatu === |
| |
^Diagram dla całego termostatu:^ | ^Diagram dla całego termostatu:^ |
|{{:pl:miw:miw08_umlandardxtt:uml_activity_xtt_3.png|:pl:miw:miw08_umlandardxtt:uml_activity_xtt_3.png}}| | |{{: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 ====== |