シーケンス図で処理の流れを整理!

2008年4月24日(木)
藤田 泰介

プログラムとシーケンス図を見比べてみる

図2は図1のシーケンス図のもとになったMame Talkのプログラムです。シーケンス図と比べながら解説していきましょう。

(クリックで拡大)

まずユーザが友達を招待するメニューを押す(図1の1)とContactListオブジェクトのonMenuItemSelectedメソッドが呼ばれます(図2の6行目)。次に「友達を招待する」ダイアログを表示するためにdialogオブジェクトを生成します(図1の1.1、図2の10行目)。

dialogオブジェクトを生成するとコンストラクタメソッドが呼ばれ、ダイアログ画面の初期化処理が行われます(図2の23行目)。そこではフィールドの初期化やタイトルの設定などを行っていますが、すべての処理を描くと複雑になってしまうためシーケンス図には代表的な処理を1つだけ描いています(図1の1.1.1)。

dialogのオブジェクトの生成が終わるとshowメソッドが呼ばれます(図1の1.2、図2の12行目)。showメソッドが呼ばれると「友達を招待する」ダイアログが表示されユーザに制御が戻ります。

ユーザがメールアドレスを入力して「Invite」ボタンを押す(図1の2)とdialogオブジェクトのonClickメソッドが呼ばれます(図2の32行目)。onClickメソッドではテキストボックスの内容を取得し、gtalkSessionオブジェクトのiviteContactメソッドを呼び、その後dialogオブジェクトのdissmissメソッドを呼んで画面を閉じています(図2の34~43行目)。ここでもシーケンス図にはすべての処理を描かず、代表的な処理だけを描いています(図1の2.1、2.2)。

シーケンス図にすべての処理を描く必要はない

これまでの説明でプログラムとシーケンス図の関係についてだいたい理解できたと思います。今回の例のようにすべての処理をシーケンス図に描く必要はありません。すべての処理をシーケンス図に表そうとすると図が複雑になって重要な処理の流れを見失ってしまうことがよくあります。

シーケンス図の目的はオブジェクト同士の動きを理解することであり、プログラムを書くことではありません。処理が多い場合は代表的な処理を1つか2つ描いておけば十分です。

ここまでの例は少し単純なシーケンス図でしたが、次のページでもっと大きな処理の流れのシーケンス図の例を見てみましょう。

株式会社豆蔵
中小ソフトハウス、コンサル系システム子会社にてVisual BasicやJavaを使った基幹業務システムの開発に従事。2007年4月株式会社豆蔵入社。現在アーキテクトとして活動中。http://www.mamezou.com/

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

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

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

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