13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[状態マシン図] 直交合成状態

Posted at

状態は内部に領域を1つ以上持つことができる。以下の図で、状態2は領域を1つ持っていて、その領域には開始疑似状態があり、状態3から始まる。状態2にいるときには、状態3か状態4のどちらかの状態を取る。そのことを状態3 or 状態4という。状態3と状態4はどちらか一方しか取ることができないという意味で、このことを OR状態という。状態3 or 状態4である。

orth341.png

次の図では、状態2には2つの領域があり、状態2に遷移すると、2つの領域が同時並行して動作するようになる。直交合成状態と言い、2つの領域が直交している、という。

状態1からイベント2で状態2に遷移したときは、上側の領域は、状態3から始まり、下側の領域は、状態5から始まる。その状態を、状態3 and 状態5の状態という。つまり、状態3かつ状態5の状態であり、このことをAND状態という。

orth342.png

上の図と同じことを、直交状態を使わずに表現したのが次の図である。状態2は、状態3and5の状態から始まる。そこからイベント4が起きると、状態4and5の状態に遷移する。

上の図は、状態2の内部に、領域が2つあって、上の領域は2つ、下の領域は3つの状態を持っている。下の図は、状態2の内部に、領域が1つあって、状態が2x3=6つの状態がある。

このように、直交状態の複数の領域を1つの領域になおすと、それぞれの領域が持つ状態のかけ算だけ、状態があることがわかる。またこういうことも言える。上の図の状態マシンをテストする場合は、下の図のすべてを遷移するテストを書く必要がある、ということである。直交する領域が増えれば増えるほど、描くのは 簡単だが、テストがたいへんになる、ともいえる。

orth343.png

状態の外から、状態の中の領域の中の状態に直接遷移することもできる。下の図で、状態1にいるときに、イベント4がおきると、状態4に遷移する。そのときは、下の領域は、開始疑似状態から始まって、状態5になる。つまり、イベント4が起きると、状態2の、状態4and5から始まる。

入ることができれば、出ることもできる。下の図で、状態7にいるときに、イベント1が起きると、状態1に遷移する。そのとき上の領域は、状態3にいても、状態4にいても、状態2を退場して、状態1に遷移する。

orth344.png

このことを、直交状態を使わない図で描くと以下のようになる。合っているかどうか確かめてほしい。

orth345.png

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?