ドメイン分析の結果得られた、用語辞書を以下に再掲する。
用語 | 種類 | 説明 |
---|---|---|
ユーザー | actor | 遊ぶ人 |
マウスの挙動 | boundary | 盤面の操作/変更を行う |
メニュー項目/ツールバー | boundary | 問題のロードやリセット、チェックなどの操作の入り口 |
問題の読みこみ | control | ユーザーが指定した問題を読みこみ、盤面に反映させる。 |
盤面のリセット | control | 現在までの操作をリセットし、初期状態に戻す。 |
解答のチェック | control | 正解かどうかをチェックする |
画面の表示 | control | 盤面の操作による変更を画面に反映させる |
盤面情報の管理 | entity | 現在の盤面の状態を管理するもの |
セル | 盤面の一区画 | |
各セルの情報 | value | セルの内部情報を管理 |
セルの状態 | value | セルの現在の状態 |
位置情報 | value | 盤面上の位置 |
アクションのタイプ | value | マウスクリックなどのアクションのタイプを保持 |
選択された位置 | value | 選択された位置やその他の入力情報を管理 |
選択された問題の情報 | value | ユーザーが選択した問題 |
問題情報 | 問題の初期配置 |
また、アクターゴールリストは以下の様に抽出された(優先度1のみ)。
アクタ | ゴール | 優先度 |
---|---|---|
ユーザー | マウスの挙動 | 1 |
問題の読みこみ | 1 |
当初、数字をマウスでドラッグすることで、盤面を変更するような仕様にしていたが、空白の場合、キー入力を必要とし 一貫性がない。そこで、マウスアクセスは、盤面を選択するだけにし、数字はすべてキー入力することで一貫性を持つようにした。 また、盤面を選択する場合、単一区画の選択、複数領域の選択、逐次に選択領域の変更が考えられる。 これら3つの選択方法すべてはユースケース:盤面の選択から特殊化するようにした。 また、要求事項より、ラインモードでの数字入力が考えられるが、このIterationでは扱わない。
abstract | 現在選択されている箇所とは違う箇所を選択する。 |
generalized usecase | 盤面の選択 |
actor | ユーザー、システム |
precondition | 問題が読みこまれている。 |
main flow |
|
alternative flow |
|
post condition | 直接選択した箇所が選択スタックの頂上にいる。 |
scenario 1
単一箇所の選択
|
|
scenario 2
同一箇所の選択
|
|
abstract | 現在選択されている範囲に数字を入力する。 |
actor | ユーザー、システム |
precondition | 特定の領域が選択されている。 |
main flow |
|
alternative flow |
|
post condition | なし |
scenario 1
単一選択位置に入力ー成功1
|
|
scenario 2
単一選択位置に入力ー成功2
|
|
scenario 3
同一数字を入力
|
|
ユーザーが指定した(選択した)問題情報をもとに盤面の状態を初期化し、画面に反映させる。 ここでは、単純に、問題情報をソースコードにハードコードすることで、問題の指定を単純化させる。 したがって、ユーザーの問題選択はこのIterationでは扱わない。
abstract | ユーザーが指定した問題を盤面に反映させる。 |
actor | ユーザー、システム |
precondition | システムが起動している。 |
main flow |
|
alternative flow |
|
postcondition | なし |
scenario 1 問題のロード(盤面サイズ変更) |
|
scenario 2 問題のロード(盤面のサイズ変更なし) |
|
abstract | 盤面の変更箇所を画面に反映させる。 |
actor | システム |
precondition |
|
main flow |
|
alternative flow |
|
scenario | なし |
この要求分析で作成されたユースケースとその優先度を以下に示す(成果物:ユースケース一覧)。 ここで、太字は、最も優先して実装すべきユースケースである。
ユースケース | 概要 | 優先度 |
---|---|---|
表示の更新 | 盤面の変更箇所を画面に反映させる。 | 1 |
盤面の選択 | 盤面選択に関する抽象ユースケース | - |
単一区画の選択 | 現在選択されている箇所とは違う箇所を選択する。 | 1 |
複数領域の選択 | 未作成 | 2 |
逐次選択 | 未作成 | 3 |
数字の入力 | 現在選択されている範囲に数字を入力する。 | 1 |
ラインモードでの数字の入力 | 未作成 | 5 |
問題のロード | ユーザーが指定した問題を盤面に反映させる。 | 1 |
問題の選択 | 未作成 | 4 |
ここまでで記述したユースケースを要約すると、以下のユースケース図となる。 この図で赤く色付られたユースケースはこのIterationで実装する予定の機能。 緑色で色づけされたユースケースは次回以降、実装する予定のユースケースである。
また、この要求分析では、以下の用語がさらに抽出された。
用語 | 種類 | 説明 |
---|---|---|
システム | actor | ユーザーに対してサービスを実行する主体 |
選択スタック | ユーザーが選択した領域を保持するもの。 ただし、アクティブポジションは含まない。また重複はしない。 | |
アクティブポジション | ユーザーが直接選択した位置 | |
変更集合 | 表示の更新を実行する際の変更位置を保持。重複して保持はしない。 | |
連続範囲の検証 | ユーザーが入力した値が、 入力後の同じ数字が連続する範囲の数以下であるかどうかを調べる | |
ラインモード | すべてのセルに数字を表示するのではなく、どこか一点を基点とし、 その基点から連続するセルを線で連結して表示するモード。 |
prev : [ドメイン分析] up : [目次] next : [システム分析]