シーケンス図とステートマシン図を学ぼう

2008年4月22日(火)
照井 康真

シーケンス図とステートマシン図とは

「はじめようUML!」と題してお送りしている本連載も、今回がいよいよ最終回となります。最後は、シーケンス図とステートマシン図による振る舞い設計を見ていきましょう。

シーケンス図とステートマシン図は、13あるUMLの図(ダイアグラム)の中でも、システム内部の振る舞いを表現するための代表的な図です。シーケンス図は相互作用図の一種で、主に、ユースケースごとにシステム内部のオブジェクト同士のやり取りを設計するために使われます。一方、ステートマシン図では、ユースケースを跨ったオブジェクトごとの状態遷移を設計します。

シーケンス図とは

まずはシーケンス図から見ていきましょう。シーケンス図は、オブジェクト間のメッセージのやり取り(相互作用)を時系列に沿って表現するダイアグラムです。シーケンス図での時間は、ライフラインに沿って上から下に進みます。

シーケンス図は、詳細設計で使用することが一般的です。詳細設計を始めるときは、ユースケース記述から得られたクラス図には属性のみが記述され、操作は存在しないことが多いでしょう。操作は、シーケンス図で相互作用をモデリングしていくことによって得られます。

シーケンス図でのメッセージは、主にオブジェクト間の操作の呼び出しに対応します(操作の呼び出しを表す)。メッセージが存在するということは、呼び出される操作が存在するということなので、オブジェクト間に存在するメッセージを検討することで、クラスが持つべき操作を判断することができます。

図1は「出張申請を登録する」ユースケースのシーケンス図の例です。「ライフライン」は、相互作用に参加するアクターや、オブジェクトなどの要素を表し、垂直の破線も含まれます。「メッセージ」が表すのは、ライフライン間の通信です。


(画像をクリックすると別ウィンドウに拡大図を表示します)

「メッセージ」は、オブジェクト間の通信を表し、「同期メッセージ」と「非同期メッセージ」、そして「生成メッセージ」があります。同期メッセージの場合には、メッセージの戻りまで次のメッセージへ進みませんが、非同期メッセージの場合にはメッセージの戻りを待たずに次のメッセージへ進むことができます。同期メッセージには、明示的に「戻りメッセージ」を記述することができます。「生成メッセージ」は、オブジェクトを生成することを表します。

「実行指定」は、ライフラインが動作している区間を表現し、活性区間とも呼ばれます。また、ライフライン自身へのメッセージ(自己メッセージ)の場合には、実行指定を入れ子にして記述することも可能です。実行指定は省略することができます。

「結合フラグメント」は、シーケンス図に含まれる条件分岐や繰り返し処理などの相互作用をフレームで囲んだものです。図1の例にある「opt」は、条件によって実行される(または実行されない)相互作用を表します。optの他にも、分岐処理を表現する「alt」や、繰り返し処理を表現する「loop」、並行処理を表現する「per」などがあります。

株式会社テクノロジックアート
獨協大学経済学部卒業後、業務系のシステム開発を経て、株式会社テクノロジックアートに入社。現在は、UMLやオブジェクト指向技術を活かした実際の開発や、セミナー/トレーニングの講師、コンサルティング等の中で、それぞれの状況に応じたモデリングノウハウの蓄積および提供を行っている。著書に「独習UML第3版」(共著/翔泳社)、「Eclipse3 + UML2.0による実践ソフトウェア開発」(監修/秀和システム)、「UMLモデリング教科書UMLモデリングL2」(共著/翔泳社)、「ビジュアルラーニングEclipse入門」(共著/エクスメディア)、「OMG認定技術者教科書 OCUPファンダメンタル」(監修/翔泳社)がある。 http://www.tech-arts.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています