ストラタジーナム メニュー

2006年11月15日水曜日

UML中級講座 第101回 ステートマシンのメタモデル

最近は、組込み系のソフトウエアが話題に多くのぼるようになってきました。
自動車の開発コストも、既にソフトウエアの方がハードウエアを凌駕してしまい、品質・コストにおける重要度は増す事はあっても、当面減ずることはないでしょう。
かつては、自動車のエンジンはアナログ技術のかたまりであり、今では信じられない事ですが、1970年代になって、エンジンの制御をマイクロ・プロセッサで行なう試みが為された時も賛否両論が渦巻いたと聞きます。

何を持って時代の推移を最も感じるかは人によって異なると思いますが、アナログからデジタルへの移行は、ここ数十年のテクノロジーの時代変化を象徴する一つのエポックだと思います。

筆者は、70年代を、関西の港町で過ごしましたが、街に初めてシンセサイザーがやってきた時のときめきは今でも忘れ難いものがあります。
あの頃のシンセサイザーは巨大で、訳の分からない電線がのたくって繋がっており、真空管のほのかな光りは、当時の高校生の目には神秘的にさえ映りました。
その当時、年長者の方は、電子楽器そのものを嫌う人が多かったのですが、我々の世代だとあまり抵抗がありません。
しかし、シンセサイザーも真空管から半導体になって小型化し、アナログだったものがすべてコンピュータ制御になった今、アナログ式、真空管式のシンセサイザーに郷愁を感じるのも事実です。
筆者の自宅にも一台、キーボード型のシンセサイザーがあり、たまに弾いてみたりするのですが、音や機能に何の不足もないのですが(恐らく、高校時代初めて遭遇したシンセサイザーの数百倍の機能があると思います)、あの頃感じたときめきは残念ながらよみがえって来ません。

ステートマシンのメタモデル

図15-02はステートマシンのメタモデル図です。
各項目は、既に取り上げたものが多いので、本日は、このメタモデル図上のエレメントで、本講座で触れなかった点を中心に解説したいと思います。

ステートマシンは、最低1つの領域(リージョン)を持ち、領域内にはいくつかの状態や疑似状態を持ちますが、メタモデル中では、状態と疑似状態をまとめて頂点(Vertex)と呼んでいます。
各頂点は遷移で結ばれており、遷移は、トリガー、ガード条件(Contraint)、アクション(Behavior)を持ちます。また、状態には、入場アクション、出場アクション、Doアクティビティなどの振舞いを伴う事が可能です。

疑似状態に関しては、ターミネートを除いて、全て解説しましたので、ここではターミネート(terminate)のみを解説します。

ターミネート疑似状態

ターミネートは特殊な疑似状態であり、ターミネート疑似状態に入ると言うことは、ステートマシンの実行が終了してしまう、あるいは実行主体のオブジェクトが終了してしまう事を暗示し、いかなる状態へも遷移せず、出場アクションも実行されません。
ターミネート疑似状態に入る事は、以前解説したDestroyObjectActionを呼び出す事と等価に扱われます。
ターミネート疑似状態は、図D19の(h)で示される記号" × "で示されます。



図15−02


図D19