Różnice

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

Odnośnik do tego porównania

pl:miw:miw08_umlandardxtt:state_diagrams [2008/03/03 06:20]
miw
pl:miw:miw08_umlandardxtt:state_diagrams [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Diagram stanów ====== 
- 
-> Diagramy maszyny stanów służą do obrazowania zachowania systemów programowych. (...)  ​ 
-> Maszyny stanowe mają zastosowanie w prezentacji zachowania wybranych fragmentów systemów za pomocą grafów. ([[pl:​miw:​miw08_umlandardxtt#​literatura|Pilone 2007]], s. 111) 
- 
-===== wersja z 08.02.26 ===== 
- 
-W tabelach poniżej przedstawiłem próbę zamodelowania dwóch prostych diagramów XTT przy pomocy diagramów stanów UMLa: 
- 
-^Diagram nr 1: Diagram stanowy dla diagramu XTT dt:^^ 
-|{{:​pl:​miw:​miw08_umlandardxtt:​xtt_dt.png|:​pl:​miw:​miw08_umlandardxtt:​xtt_dt.png}}|{{:​pl:​miw:​miw08_umlandardxtt:​dt_state1.png|:​pl:​miw:​miw08_umlandardxtt:​dt_state1.png}}| 
- 
-^Diagram nr 2: Diagram stanowy dla diagramu XTT th:^^ 
-|{{:​pl:​miw:​miw08_umlandardxtt:​xtt_th.png?​303|:​pl:​miw:​miw08_umlandardxtt:​xtt_th.png}}|{{:​pl:​miw:​miw08_umlandardxtt:​th_state1.png?​450|:​pl:​miw:​miw08_umlandardxtt:​th_state1.png}}| 
- 
-W tabeli wymieniłem typy użytych pseudostanów:​ 
- 
-^ Symbol ^Opis pseudostanu (na podstawie: [[pl:​miw:​miw08_umlandardxtt#​literatura|Pilone 2007]], s. 125) ^ 
-| {{:​pl:​miw:​miw08_umlandardxtt:​ico_start.png|:​pl:​miw:​miw08_umlandardxtt:​ico_start.png}} |//​**Pseudostan początkowy** - punkt początkowy maszyny stanów.//| 
-| {{:​pl:​miw:​miw08_umlandardxtt:​ico_romb.png|:​pl:​miw:​miw08_umlandardxtt:​ico_romb.png}} |//​**Wybór** - pozwala działającej maszynie stanów na wybór jednego z kilku różnych stanów na podstawie warunków dozoru zdefiniowanych dla przejść.//​| 
-| {{:​pl:​miw:​miw08_umlandardxtt:​ico_rozdzielacz.png|:​pl:​miw:​miw08_umlandardxtt:​ico_rozdzielacz.png}} |//​**Rozwidlenie** i **scalenie** - rozwidlenie w wykonywaniu maszyny stanowej na obszary współbieżne,​ scalenie ponownie łączy obszary w jedno przejście. Maszyna stanowa nie wyjdzie ze scalenia dopóki wszystkie obszary nie przejdą w jego pseudostan.//​| 
- 
-==== Zagadnienia problematyczne ==== 
-W drugim diagramie stanowym jeden z atrybutów tabeli XTT przekształciłem w stan, a drugi w warunek dozoru (warunek zapisany jest nad krawędzią przejścia pomiędzy stanami [oznaczona symbolem strzałki], gdy jest on spełniony - jeden stan przechodzi w drugi zgodnie z kierunkiem strzałki między nimi). Powoduje to następujący problem: które z parametrów przekształcać w stany, a które w warunki dozoru? 
- 
-===== wersja z 08.03.04 ===== 
- 
-By uniknąć problemu, które atrybuty XTT przekształcać w warunki, a które w stany, ustalam: 
-  * stanami zostaną wartości atrybutów (końcowych :?: => H w [[hekate:​hekate_concepts#​xtt|XTT]]) tabeli XTT, 
-  * warunkami dozoru stają się poszczególne wiersze tabeli XTT (koniunkcja wartości w ich komórkach). 
- 
-Zmodyfikowany wg powyższych ustaleń diagram stanowy dla diagramu XTT th wygląda następująco:​ 
- 
-^Diagram nr 3: Zmodyfikowany diagram stanowy dla diagramu XTT th:^^ 
-|{{:​pl:​miw:​miw08_umlandardxtt:​xtt_th.png?​303|:​pl:​miw:​miw08_umlandardxtt:​xtt_th.png}}|{{:​pl:​miw:​miw08_umlandardxtt:​th_state2a.png?​600|:​pl:​miw:​miw08_umlandardxtt:​th_state2a.png}}| 
- 
-Ponadto powyższy diagram byłby zgodny z takim XTT, w których wiersze w tabelach są **interpretowane z góry na dół** oraz mają być **unikalnymi kombinacjami wartości atrybutów**,​ gdyż w przypadku użycia pseudostanu **wybór** (//decision node//), zgodnie ze [[pl:​miw:​miw08_umlandardxtt#​zrodla_internetowe|specyfikacją OMG UML 2.1.2]] (s. 376) warunki dozoru powinnny być wzajemnie wykluczające się. 
- 
-Jeśli jednak w XTT mogłyby (choćby na skutek pomyłki) wystąpić w poszczególnych wierszach wartości, które nie wykluczałyby wierszy wzajemnie, wtedy należałoby użyć zgodnie ze [[pl:​miw:​miw08_umlandardxtt#​zrodla_internetowe|specyfikacją OMG UML 2.1.2]] (s. 390) **rozwidlenia** (//fork node//), które może duplikować wartość wejściową i przechodzić więcej niż jedną krawędzią do kolejnych stanów. Dla tak rozumianego XTT należałoby zmodyfikować diagram następująco:​ 
- 
-^Diagram nr 4: Zmodyfikowany diagram stanowy dla diagramu XTT th:^^ 
-|{{:​pl:​miw:​miw08_umlandardxtt:​xtt_th.png?​303|:​pl:​miw:​miw08_umlandardxtt:​xtt_th.png}}|{{:​pl:​miw:​miw08_umlandardxtt:​th_state2b.png?​600|:​pl:​miw:​miw08_umlandardxtt:​th_state2b.png}}| 
- 
-==== Zagadnienia problematyczne ==== 
- 
-  * :!: Jak uniknąć braku czytelności w przypadku diagramu nr 3? Przy większej liczbie stanów końcowych i większej liczbie kombinacji warunków dozoru krawędzie przejść między stanami mogą się przecinać, a ponieważ wychodzą z jednego punktu (pseudostanu **wybór**) sprawią, że warunki dozoru je opisujące będą nieczytelne. 
-  * :!: Jak praktycznie przykładowo wygląda realizacja z -X (retract), +Y(assert) w [[hekate:​hekate_concepts#​xtt|XTT]]?​ => pewne przykłady [[hekate:​bib:​hekate_bibliography#​gjn2007inap|tutaj]] 
  
pl/miw/miw08_umlandardxtt/state_diagrams.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