3-3 要件の分析

Requirements Analysis

引き出した要件は、そのままでは使えない。 要件の分析では、収集した情報を整理・構造化し、矛盾を解消し、 優先順位を付け、検証可能な形に詳細化する。本節では、 要件分析のモデリング技法と優先順位付け手法を解説する。

1. 要件分析の目的

1.1 分析で行うこと

要件分析は、引き出した生の情報を、設計・開発で使用できる形式に 変換するプロセスである。

分析活動 内容 成果
整理・分類 要件をカテゴリ別に分類 要件一覧、分類体系
構造化 要件間の関係を明確化 階層構造、依存関係図
詳細化 曖昧な要件を具体化 詳細要件、受入基準
矛盾解消 相反する要件の調整 合意された要件
優先順位付け 重要度・緊急度の設定 優先順位付き要件
モデリング 視覚的な表現で確認 各種モデル図

2. モデリング技法

2.1 なぜモデリングが必要か

モデルは複雑な要件を視覚的に表現し、ステークホルダー間の 共通理解を促進する。文章だけでは見落としがちな矛盾や漏れを 発見しやすくなる。

2.2 ユースケース図

ユースケース図はシステムの機能をアクター(利用者)との 関係で表現するUMLダイアグラムである。

要素 表記 説明
アクター 棒人間 システムを利用する人やシステム
ユースケース 楕円 システムが提供する機能
関連 アクターとユースケースの関係
包含(include) 点線矢印 共通機能の切り出し
拡張(extend) 点線矢印 条件付きの追加機能
ユースケース記述
ユースケース図だけでは詳細が不明なため、各ユースケースについて 「ユースケース記述」を作成する。事前条件、基本フロー、代替フロー、 事後条件などを記述する。

2.3 データフロー図(DFD)

DFDはシステム内のデータの流れを表現する図である。 プロセス、データストア、外部エンティティ、データフローで構成される。

要素 表記 説明
プロセス 円または角丸四角 データを処理する機能
データストア 2本線 データの保存場所
外部エンティティ 四角 システム外部の存在
データフロー 矢印 データの流れ

2.4 ER図(Entity-Relationship Diagram)

ER図はデータの構造とエンティティ間の関係を表現する図である。 データベース設計の基礎となる。

要素 説明
エンティティ 管理対象となるもの 顧客、商品、注文
属性 エンティティの特性 顧客名、住所、電話番号
リレーションシップ エンティティ間の関係 顧客が注文を行う
カーディナリティ 関係の多重度 1対多、多対多

2.5 状態遷移図

状態遷移図は、オブジェクトの状態とその遷移を表現する図である。 注文状態、ワークフロー、画面遷移などの表現に使用される。

モデルの使い分け

ユースケース図:機能の全体像を俯瞰
DFD:データの流れを理解
ER図:データ構造を定義
状態遷移図:状態変化を表現
プロジェクトの特性に応じて適切なモデルを選択する。

3. 優先順位付け

3.1 なぜ優先順位が必要か

すべての要件を実装する時間と予算があることは稀である。 限られたリソースで最大の価値を提供するために、 要件に優先順位を付ける必要がある。

3.2 MoSCoW法

MoSCoWは要件を4つのカテゴリに分類する優先順位付け手法である。

カテゴリ 意味 基準
Must have 必須 これがないとシステムとして成立しない
Should have 重要 重要だが、なくても運用可能
Could have あれば良い 余裕があれば実装
Won't have 今回は対象外 将来のリリースで検討
「すべてMust」問題
ステークホルダーは自分の要件を「Must」にしたがる傾向がある。 「Must」が多すぎると優先順位付けの意味がなくなる。 「Mustは全体の60%以下」などのルールを設けることも有効である。

3.3 価値 vs コストマトリックス

要件をビジネス価値と実装コストの2軸で評価し、 優先順位を決定する手法である。

象限 特性 対応
高価値・低コスト Quick Win 最優先で実装
高価値・高コスト Major Project 慎重に計画して実装
低価値・低コスト Fill-ins 余裕があれば実装
低価値・高コスト Money Pit 実装しない

3.4 その他の優先順位付け手法

MoSCoW以外にも様々な優先順位付け手法がある。

手法 概要 適用場面
狩野モデル 当たり前品質、一元的品質、魅力的品質で分類 製品企画、UX設計
100ドルテスト 仮想の100ドルを要件に配分 ワークショップでの投票
ペアワイズ比較 要件を2つずつ比較して順位付け 少数の要件の厳密な順位付け
WSJF 遅延コストをジョブサイズで割る SAFe、アジャイル開発

4. 非機能要件の分析

4.1 非機能要件の分類

非機能要件は見落としがちだが、システムの品質を決定する重要な要件である。 IPA(情報処理推進機構)の非機能要求グレードでは、 6つのカテゴリに分類している。

カテゴリ 内容
可用性 システムの稼働率、復旧時間 99.9%稼働、RTO 4時間
性能・拡張性 応答時間、スループット、将来拡張 3秒以内応答、同時1000ユーザー
運用・保守性 運用負荷、保守のしやすさ 24時間365日運用、リモート保守
移行性 データ移行、並行稼働 3年分データ移行、1ヶ月並行運用
セキュリティ 認証、暗号化、監査 二要素認証、通信暗号化
システム環境・エコロジー 設置環境、環境負荷 クラウド環境、省電力
非機能要求グレード
IPAが提供する非機能要求グレードは、非機能要件を体系的に 検討するためのフレームワークである。 発注者と受注者の間で非機能要件を共通認識するためのツールとして活用できる。
次のステップ
要件の分析を学んだら、次は「3-4 要件仕様書(SRS)」で 要件を文書化する方法を学習しよう。
参考文献
[1] IIBA (2015). BABOK Guide 3.0.
[2] IPA (2018). 非機能要求グレード.