Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_umlandardxtt:state_diagrams [2008/03/03 01:45] miw |
pl:miw:miw08_umlandardxtt:state_diagrams [2019/06/27 15:50] (aktualna) |
> 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) | > 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 ===== | ===== 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: | W tabelach poniżej przedstawiłem próbę zamodelowania dwóch prostych diagramów XTT przy pomocy diagramów stanów UMLa: |
| |
^Diagram stanowy dla diagramu XTT dt:^^ | ^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}}| | |{{: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 stanowy dla diagramu XTT th:^^ | ^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}}| | |{{: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}}| |
| |
| |
==== Zagadnienia problematyczne ==== | ==== 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 strzałką pomiędzy stanami, 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? | 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 ===== | ===== 08.03.04 ===== |
| |
By uniknąć problemu, które atrybuty XTT przekształcać w warunki, a które w stany, ustalam: | 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 :?:) tabeli XTT, | * stanami zostaną wartości atrybutów wyjściowych tabeli XTT (H w [[hekate:hekate_concepts#xtt|XTT]]), |
* warunkami dozoru stają się poszczególne wiersze tabeli XTT (koniunkcja wartości w ich komórkach). | * 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: | Zmodyfikowany wg powyższych ustaleń diagram stanowy dla diagramu XTT th wygląda następująco: |
| |
^Zmodyfikowany diagram stanowy dla diagramu XTT th:^^ | ^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?450|:pl:miw:miw08_umlandardxtt:th_state2a.png}}| | |{{: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}}| |
| |
| Powyższy diagram byłby tylko częściowo 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**. W przypadku użycia pseudostanu **wybór** (//choice//), zgodnie ze [[pl:miw:miw08_umlandardxtt#zrodla_internetowe|specyfikacją OMG UML 2.1.2]] (s. 556) warunki dozoru co prawda nie muszą się wzajemnie wykluczać (tutaj następuje istotna niezgodność), ale w przypadku spełnienia więcej niż jednego warunku, wybierany jest tylko jeden z nich (tyle że nie pierwszy od góry, ale dowolny). |
| |
| 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** wzajemnie tych wierszy, wtedy należałoby użyć **rozwidlenia** (//fork node//), które duplikuje wartość wejściową i może 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 ==== | ==== Zagadnienia problematyczne ==== |
| |
* :!: Co oznacza -X, +Y w [[hekate:hekate_concepts#xtt|XTT]]? | * :!: 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. |
| * :!: Czy i jak realizować -X (retract), +Y(assert) w [[hekate:hekate_concepts#xtt|XTT]]? |
| |
| :!: 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: |
| * 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. |
| |