要求分析で、最も高い優先度をつけた アクター・ユースケースリスト及び ユースケース図を再掲する。
アクター | ユースケース | 概要 |
---|---|---|
ユーザー | 表示の更新 | 盤面の変更箇所を画面に反映させる。 |
単一区画の選択 | 現在選択されている箇所とは違う箇所を選択する。 | |
数字の入力 | 現在選択されている範囲に数字を入力する。 |
作成された一連のユースケースを実現する分析オブジェクトを各ユースケースに割り当てる。 この後行う、ロバストネス分析を考慮して、Boundary / Control / Entityの3種類の分析オブジェクトを考える。 また必要に応じてValueタイプの分析オブジェクトも考える。 以下の図は、実際に分析オブジェクトを割り当てたものである(図:ユースケースの実現)。
Entityオブジェクトである、盤面情報の管理はすべてのユースケースに参加している。 「単一区画の選択」と「数字の入力」はどちらもユーザーの入力をトリガーとしたアクションであるので、 Boundary入力IF、及びControl盤面状態の更新は「単一区画の選択」と「数字の入力」の二つのユースケースに参加している。 また入力情報を保持するため、さらにValue選択した位置を参加させた。 「問題のロード」はBoundary / Contorol / Entityに加えて、Value選択した問題を参加させている。
次に、抽出した分析オブジェクトを使用して、ユースケースのフローを満たすコラボレーションを考える。 コラボレーションの構築はロバストネス分析により行った。 また、今後、オブジェクトが増加したときに全体を把握しやすくするよう、この時点でレイヤー分けも行った (図:ロバストネス図)。
レイヤーはView / Controller / Modelの3階層でまとめた。 また入力IFは盤面選択か数字入力のどちらであるかが分かるよう、トリガー条件を挟んでいる。 すべてのユーザーのアクションは、最終的に表示の反映という形で返っている。
次に、ユースケースのフローを参考に、分析オブジェクト間のコラボレーションとしてやり取りされる責務を抽出する。
図:シーケンス図ーメインフロー
図:シーケンス図ーダメージによる再描画
代替フローの2-a, 2-b-bはほかの選択に関するユースケースにかかわっているので、 次回以降のシステム分析で、あわせて責務の抽出を行う。
図:シーケンス図ーメインフロー
図:シーケンス図ーアクティブポジションを選択
図:シーケンス図ーメインフロー
図:シーケンス図ー同じ数字の入力
図:シーケンス図ー大きすぎる数字の入力
図:シーケンス図ーメインフロー
図:シーケンス図ー同一サイズの問題のロード
システム分析のまとめとして、抽出した分析オブジェクトとその責務を一覧する。 ここで、スコープとは、指定された責務が外部から呼ばれることを目的とする場合はExtrinsic、 内部の状態繊維のためだけに呼ばれる事を目的とする場合Intrinsicとしている。
Stereo Type | Boundary |
Collaboration | 画面の表示 |
責務 | スコープ | 説明 |
---|---|---|
表示更新依頼 | Extrinsic | 盤面の状態変更を画面に反映させるよう依頼する。 |
描画内容の反映 | Intrinsic | 描画結果を画面に反映させる。 |
Stereo Type | Control |
Collaboration | 盤面情報の管理 |
責務 | スコープ | 説明 |
---|---|---|
描画依頼 | Extrinsic | 盤面の状態変更を反映させるよう依頼する。 |
描画 | Intrinsic | 盤面の状態変更を描画する。 |
状態に応じた描画 | Intrinsic | 盤面の状態に応じて描画する。 |
Stereo Type | Boundary |
Collaboration | 盤面状態の更新 |
責務 | スコープ | 説明 |
---|---|---|
盤面の選択 | Extrinsic | 盤面の特定領域を選択する。 |
数字の入力 | Extrinsic | 選択された箇所に数字を入力する。 |
Stereo Type | Boundary |
Collaboration | 問題読み込 |
責務 | スコープ | 説明 |
---|---|---|
読み込み依頼 | Extrinsic | 指定された問題を読み込むよう依頼する。 |
Stereo Type | Control |
Collaboration | 盤面情報の管理 |
責務 | スコープ | 説明 |
---|---|---|
選択箇所の変更 | Extrinsic | ユーザーが選択した箇所を送信する。 |
数字入力を通知 | Extrinsic | ユーザーが入力した数字を通知する。 |
アクティブポジションの変更 | Intrinsic | アクティブポジションを最新情報に更新する。 |
同位置選択かチェック | Intrinsic | アクティブポジションと同じ位置を選択したかどうかをチェックする。 |
同じ状態かチェック | Intrinsic | 入力した状態が現在の状態と同じかどうかチェックする。 |
Stereo Type | Control |
Collaboration | 盤面情報の管理 |
責務 | スコープ | 説明 |
---|---|---|
問題をセット | Extrinsic | 指定された問題を読み込み、盤面に反映させる。 |
Stereo Type | Entity |
Collaboration | -- |
責務 | スコープ | 説明 |
---|---|---|
変更位置の取得 | Extrinsic | ユーザーの入力によって変更した位置を取得する。 |
指定位置の状態の取得 | Extrinsic | 指定された盤面の位置の状態を取得する。 |
盤面の構築 | Extrinsic | 指定されたサイズの盤面を構築する。 |
問題をセット | Extrinsic | 指定された問題を読み込み、盤面に反映させる。 |
盤面状態の更新 | Extrinsic | ユーザーの入力よる状態変化を盤面に反映させる。 |
変更集合のリセット | Extrinsic | 変更集合を空にする。 |
prev : [要求分析] up : [目次] next : [システム設計]