<HOME

シーケンス図を描いてみよう30分


シーケンス図は、プログラムの処理の流れを可視化するのに使われるUML図です。

主に基本設計・詳細設計において使用されます。

  • 次のようなアプリを作成することを想定します。

    アプリを起動すると、ボタンを含むUIを表示します。

    アプリのUI内のボタンを押すと、ダイアログを表示します。

  • 前回作成したユースケース図やクラス図をもとに、シーケンス図を描いた場合の例は次のようになります。

    • : ライフライン

      オブジェクトのライフラインを表現します。

      「:」の右側には、クラス名等の型名を記述します。

      「:」の左側には、そのライフラインの名称を記述します。変数名等を記述するケースが多いです。


      オブジェクトを明示的に「破棄」してライフラインを終了させるタイミングがある場合は、そこを下端とし、×を表記します。

    • : 実行仕様

      処理の実行期間を表現します。

    • : 開始メッセージ

      ライフラインに対し実行仕様の開始を指示するメッセージです。

      矢印付きの実線で表現します。

      矢印の形が黒塗りの△の場合は「同期メッセージ」、矢印の形が>の場合は「非同期メッセージ」となります。

    • : Createメッセージ

      ライフラインの生成を指示するメッセージです。

      矢印付きの点線で表現します。

      また、ステレオタイプに「create」を指定します(<<create>>)。

  • その他、よく使用される記述について説明します。

    • : 複合フラグメント(alternative/条件分岐)

      2つ以上の条件分岐を表現します。

      「Guard」の条件を満たした場合に実行する処理を、枠内に記述します。

      if-elseや、switch文の表現などに使用されます。

    • : 複合フラグメント(optional/条件判断)

      特定条件でのみ実行される処理を表現します。

      「Guard」の条件を満たした場合に実行する処理を、枠内に記述します。

      単一のif文の表現などに使用されます。

    • : 複合フラグメント(loop/反復処理)

      特定条件で繰り返し実行される処理を表現します。

      「Guard」の条件を満たした場合に繰り返し実行する処理を、枠内に記述します。

      for文やwhile文の表現などに使用されます。

    • : 複合フラグメント(refer/参照)

      別のシーケンス図への参照を表現します。

      参照先を図内に明記して参照先を分かり易くするのが良いでしょう。

      共通処理をモジュール化して独立したシーケンス図として、そのモジュールの呼び出し処理を記述する際などに使用されます。

  • クラス図・シーケンス図をもとに作成したJavaプログラムのサンプルは以下から取得してください。

    ダウンロード(ソースコード) : SampleApplication.zip (3kB)

    ダウンロード(実行可能jarファイル) : SampleApplication.jar (4kB)