rcp-asd-01:分析シーケンス図
目的
  • 要件を実現する為の論理的なシステムの構成要素の振舞いや協調関係を明らかにします
  • 分析クラス図を洗練し、完成させます
メタ情報
成果物関連

入力成果物リスト
前準備
  • 分析シーケンス図を作成する対象のユースケースを特定し、その分析クラス図や本質的UI等の入力成果物の内容を確認・理解します
  • モデリングツールを準備し、分析シーケンス図を作成できる環境を整えます
作成手順
No 作業 成果
1
  • 対象とするユースケース記述の範囲を基本フロー最初から選択します。
    • アクターとシステムのやり取りを1~3回程度行う範囲にします。
2
  • 選択したユースケース記述の範囲で利用する<<boundary>>オブジェクトを上に配置します。
    • 該当する<<boundary>>クラスのインスタンスを配置します。
  • 配置した<<boundary>>オブジェクトについての、ユースケース記述及び本質的UIでの入力・出力情報を、ノートで記載します。
    • ノートは、該当する<<boundary>>オブジェクトの真下に配置します。
3
  • ユースケース記述の内容に沿って、最初のアクターとシステムのやりとりをオブジェクト間のメッセージで表現します。
    • メッセージは必ず送先オブジェクトの操作を起動するような表現にします。
      • この時、どのような情報を送先オブジェクトに渡して、どのような情報を受取るかを具体的に検討し、操作の引数と戻り値で表します。
      • 引数や戻り値の型には、分析モデルの型を利用します。
      • 引数で、配列になるようなものは、引数名の後ろに'*'を付加しておきます。
    • <<boundary>>オブジェクトは、必ずユースケース全体を制御する<<control>>オブジェクトを介して処理を依頼するものとします。
      • 便宜上、表示するだけでもこのような流れにします。
      • 「表示する()」メッセージのみ、<<boundary>>オブジェクト間で可能です。(遷移を意味します)
    • 必要に応じて、<<control>>クラス、<<entity>>クラスを配置し、メッセージの受け渡し(=操作の起動)を行います。
4
  • 同様に、アクターとシステムのやり取りを順番に具体化していき、最初の選択範囲の処理の流れを完成させます。
5
  • ユースケース記述の残りの範囲について、No.1~No.4を繰り返し、メインフローの処理についてのシーケンス図を完成させます。
6
  • 代替フローや例外フローを一つ選んで、No.1~No.4の作業を行います。
    • 必要に応じて、別の図で処理を表します。
7
  • 全ての代替フローや例外フローについて、No.1~No.4の作業を行い、分析シーケンス図を完成させます。
8
  • 分析クラス図の内容を更新します。
    • クラスや操作
    • クラス間の関係(依存関係)
ワンポイント・アドバイス
  • 入力となる情報からどのように出力となる情報を得るのかを検討して、その具体化を行います。
  • どの操作をどのオブジェクト(クラス)に割り当てるかについては、GRASPパターンを参考にします。
    • ここでは特に、「高凝集性」の考え方が重要です。
  • 必要に応じて、新たなオブジェクトを追加します。
    • 必ず分析クラス図にクラス(またはインタフェース)を追加して、そのインスタンスをシーケンス図で利用するようにします。
  • 外部I/F(インタフェース)は、外部インタフェース仕様に合わせて配置します。
    • インタフェース仕様の詳細が不明な場合は、暫定的に簡単な操作を割り当てておきます。
  • 全体がA3一枚で無理なく理解できる範囲で記述します。
    • 必要に応じて、区切りやすいところで図を分割して下さい。
  • ノートを上手く利用して、読みやすさを向上させて下さい
チェック・ポイント
  • <<boundary>>オブジェクトは適切に抽出されていますか?
  • <<boundary>>オブジェクトの入力と出力は、適切に記述されていますか?
  • <<boundary>>からの処理は、必ずユースケース全体の処理を制御する<<control>>を経由して行われていますか?
  • 操作の引数、戻り値の名称や型は適切ですか?
  • 操作は、責務に合わせ適切にクラスに割り当てられていますか?
  • 外部システムやそのI/Fが適切に表現されていますか?
  • ユースケース記述の基本フローの処理が適切に表現されていますか?
  • ユースケース記述の代替フローや例外フローの処理が適切に表現されていますか?
  • 分析クラス図の内容が、分析シーケンス図の内容と整合性が取れていますか?
  • 全体が理解しやすい単位で図が作成されていますか?
参考情報

ソフトウェア年表もご覧下さい