メインコンテンツまでスキップ

シーケンス図

概要

オブジェクト間の相互的な処理の流れを見える化するために、シーケンス図を利用できます。
このページでは、シーケンス図を利用するための操作について、次の順で説明します。

  • シーケンス図を配置する
  • ライフラインを定義する
  • メッセージを定義する
  • 複合フラグメントを定義する
  • 相互作用の利用を定義する

また、ユーザーのモデリングを支援するために、次の機能を提供しています。
これらについても、順に説明します。

  • モデルを検証する
  • 表示内容を設定する

シーケンス図

シーケンス図を配置する

シーケンス図を配置するには、以下の手順で行います。

シーケンス図を配置する

操作手順
  1. モデルナビゲータにてパッケージを選択し、コンテキストメニューの [モデルの追加] > [シーケンス図] をクリックします。
  2. 選択したパッケージの子要素としてシーケンス図が配置されます。

ライフラインを定義する

ライフラインを定義するには、以下の手順で行います。

既存クラスをD&Dしてライフラインを作成

操作手順
  1. モデルナビゲータで既存のクラスを選択し、 シーケンス図にドラッグ&ドロップします。
  2. 表示されているシーケンス図に、選択したクラスを型に持つライフラインが新規作成されます。
ツールボックスから追加できる要素

シーケンス図ではツールボックスで表示している次の要素を追加できます。

アイコン名称
ライフラインライフライン
複合フラグメント複合フラグメント
相互作用の利用相互作用の利用
インタラクションノートインタラクションノート
破棄破棄

型が未設定のライフラインを定義する

シーケンス図にツールボックスから [ライフライン] をドラッグ&ドロップすることで、型が未設定のライフラインを作成できます。

ツールボックスからライフラインを作成

ヒント

ライフラインの型を変更するには、シーケンス図上でライフラインを選択し、コンテキストメニューの [ライフラインの型の変更] をクリックします。

設定できるライフラインの型
ライフラインの型には、次の要素を指定できます。

アイコン名称
クラスクラス
インタフェースインタフェース
コンポーネントコンポーネント
アクターアクター
ブロックブロック

メッセージを定義する

メッセージを定義するには、以下の手順で行います。

ライフラインAからライフラインBへのメッセージを作成

操作手順
  1. シーケンス図で、ライフラインにマウスオーバーすると黒塗りの三角のアイコンが表示されます。
  2. 表示されたアイコンを対象となるライフラインに向かってドラッグ&ドロップします。
  3. ファインダが表示されたら、メッセージに対応する操作を選択して、 [OK] ボタンを押下します。
  4. 対象となるライフラインへの同期メッセージが作成されます。
ツールボックスから追加できる要素

シーケンス図ではサブツールボックスで表示している次の要素を追加できます。

アイコン名称
同期メッセージ同期メッセージ
非同期メッセージ非同期メッセージ
応答メッセージ応答メッセージ
生成メッセージ生成メッセージ
破棄メッセージ破棄メッセージ

これらのメッセージを追加するときは、サブツールボックスで追加したいメッセージの種類を選択してからメッセージを追加します。

メッセージのテキスト表記について

シーケンス図上でメッセージの操作をテキスト入力すると、メッセージの操作の表記フォーマットに従ってテキスト解析されます。
もちろん、各フィールド値を変更すれば図上のテキストに反映されます。

シーケンス図上のメッセージを編集して、モデルに反映

メッセージのテキスト表記フォーマットと各フィールド値との対応関係
メッセージは以下のフォーマット従ってテキスト表示・解析されます。

  • 要求メッセージ(応答メッセージ以外)の場合
    <要求メッセージ> ::= <メッセージ名> ['('[<引数の一覧>] ')'] [':'<戻り値の型>]
    • 補足
      • <引数の一覧> は以下のフォーマットで表示されます。
        • <引数の一覧> ::= <引数> [','<引数>]*
        • <引数> ::= [<引数名> '='] <引数の値> | '-'

    • メッセージ名: Drive
      引数1の名前: m 、値: 100
      引数2の名前: s 、値: 200
      戻り値の型: boolean
      の場合、以下のテキスト表示になります。
      Drive(m=100, s=200) : boolean
    • 注意
      • <戻り値の型> は設定時には無視されます。
  • 応答メッセージの場合
    <応答メッセージ> ::= [<戻り値の変数名> '='] <メッセージ名>['(' [<引数の一覧>] ')'] [':' <戻り値の値>]
    • 補足
      • <引数の一覧> は以下のフォーマットで表示されます。
        • <引数の一覧> ::= <引数> [','<引数>]*
        • <引数> ::= [<引数の変数名> '='] <引数名> [':' <引数の値>]

    • 戻り値の変数名: return_value 、戻り値の値: true
      メッセージ名: Drive
      引数1の変数名: miles 、引数名: m 、値: 200
      引数2の変数名: speed 、引数名: s 、値: 100
      の場合、以下のテキスト表示になります。
      return_value=Drive(miles=m:200, speed:s=100) : true
ヒント

メッセージに対応する操作を変更するには、メッセージを選択し、コンテキストメニューの [メッセージの型の変更] をクリックします。

複合フラグメントを定義する

複合フラグメントを定義するには、以下の手順で行います。

複合フラグメントを定義する

操作手順
  1. ツールボックスで複合フラグメントを選択し、 シーケンス図にドラッグ&ドロップします。
  2. 追加した複合フラグメントの左上をダブルクリックすると、種別の一覧がドロップダウンリストで表示され、追加する複合フラグメントの種類を選択できます。
複合フラグメントの種類一覧

複合フラグメントには、次の種類を設定できます。

種類意味
altAlternative
optOption
loopLoop
parParallel
breakBreak
negnegation
strictstrict
seqseq
ignoreignore
considerConsider
assertAssert

相互作用の利用を定義する

相互作用の利用を定義するには、以下の手順で行います。

ツールボックスから追加して、コンテキストメニューの[相互作用の関連付け]で参照する

操作手順
  1. ツールボックスで相互作用の利用を選択し、 シーケンス図にドラッグ&ドロップします。
  2. 追加した相互作用の利用を選択し、コンテキストメニューの[相互作用の関連付け]で参照するシーケンス図を関連付けます。
ヒント

相互作用の利用に関連付けられたシーケンス図にジャンプするには、相互作用の利用を選択し、コンテキストメニューの[関連付けられた相互作用を表示]をクリックします。

モデルを検証する

シーケンス図で検証される内容は、次の通りです。

  • メッセージに対応づけた操作が、送信先のライフラインの型で利用できる操作か
備考

例えば、次のような変更を行った結果、メッセージに対応づけた操作と送信先のライフラインの型の間で生じた不整合を検出できます。

  1. メッセージに対応づける操作に、送信先のライフラインの型となるクラスの継承元クラスで定義した操作を指定します。
  2. クラス図などで、送信先のライフラインの型となるクラスの継承関係を削除します。

モデルを検証するには、以下の手順で行います。

整合チェックを実施してエラー表示

操作手順
  1. リボンから [UML] > [検証] > [整合チェック] を実行します。
  2. シーケンス図で配置したメッセージに不整合が検出された場合は、エラー表示されます。
ヒント

リボンの [ホーム] > [モデル] > [エラーチェック] ボタンをクリックすると、標準の検証に加え、全てのモデルに対し検証が行われます。

表示内容を設定する

モデルを変更することなく、関心のある情報のみをシーケンス図に表示できます。
要求メッセージに対応する引数の表示内容を設定するには、以下の手順で行います。

��引数の表示On,Off

操作手順
  1. 表示を切り換えたいシーケンス図を表示します。
  2. インスペクタの [UML図] タブの [要求メッセージ] グループの引数チェックボックスのチェックを切り換えます。
表示を切り換えできる要素

シーケンス図では次の要素の表示を切り換えることができます。

カテゴリ要素
要求メッセージ引数
引数名
戻り値型
応答メッセージ引数
引数の値
引数の割り当て変数
戻り値
戻り値変数

制約事項

  • 状態不変式、継続時間制約は定義できません。
  • フレームからメッセージを接続することはできません。
  • 相互作用の利用にメッセージを接続することはできません。
  • 要素のコピー&ペーストはできません。
  • シーケンスにおけるメッセージ順序(一般に GeneralOrdering と呼ばれるもの)は図上の Y 座標によりのみ表現されます。差分比較機能を使った場合、モデルとしての差分を確認することはできません。
  • シーケンス図上ではステレオタイプは表現されません。