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は全体の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). 非機能要求グレード.