システム開発プロジェクトにおいて、要件定義書は発注者と開発者の間の「契約的な合意文書」として非常に重要な役割を果たします。
しかし「要件定義書をはじめて書く」「何を書けばよいかわからない」「どのようなフォーマットが標準的なのか」と悩む方も多いでしょう。
本記事では、要件定義書の基本的な書き方・含めるべき項目・フォーマットの例・IPAが提供するテンプレートの活用方法について詳しく解説していきます。
要件定義書の品質を高めることでプロジェクトの成功確率を大幅に向上させることができますので、ぜひ参考にしてください。
要件定義書とは何か?役割と基本的な構成
それではまず、要件定義書の役割と基本的な構成について解説していきます。
要件定義書とは、システム開発において発注者(ユーザー)が求める機能・性能・制約条件などをまとめた文書であり、開発の方向性と品質基準を定義する最重要ドキュメントです。
設計・開発・テスト・検収のすべての工程において判断基準となる文書であるため、曖昧さなく明確に記述することが求められます。
要件定義書の主な役割
要件定義書が担う主な役割は三つあります。
一つ目は「発注者と開発者の認識合わせ」であり、双方が合意した内容を文書化することでトラブルを防ぐ役割です。
二つ目は「開発作業の指針」であり、設計・プログラミング・テストの各工程で「何を作るか」の基準を提供します。
三つ目は「検収の基準」であり、完成したシステムが要件定義書に記載された要件を満たしているかを検証するための判断材料となります。
要件定義書に含めるべき基本項目
要件定義書の内容はプロジェクトによって異なりますが、一般的に以下の項目を含めることが推奨されます。
1. ドキュメント概要(プロジェクト名・作成日・版数・作成者・承認者)
2. システム概要(開発の目的・背景・対象業務・システムの全体像)
3. 対象ユーザー・利用環境
4. 機能要件(業務フロー・機能一覧・画面一覧・帳票一覧)
5. 非機能要件(性能・可用性・セキュリティ・保守性・拡張性)
6. システム境界・外部インターフェース
7. 制約条件・前提条件
8. 用語定義・略語集
9. 変更管理・改訂履歴
これらの項目を網羅的に記述することで、後工程での解釈の違いや手戻りを最小化できるでしょう。
要件定義書の版数管理の重要性
要件定義書はプロジェクトの進行とともに更新されることが多いため、版数(バージョン)管理が非常に重要です。
変更のたびに改訂番号・変更内容・変更者・変更日付を記録する「改訂履歴」を設けることで、どのバージョンが最新であるか・何がいつ変更されたかを関係者全員が正確に把握できます。
要件定義書の機能要件の書き方
続いては、要件定義書における機能要件の具体的な書き方を確認していきます。
機能要件はシステムが「何をするか」を記述する部分であり、要件定義書の中核をなすセクションです。
業務フロー図の記載方法
機能要件を分かりやすく伝えるために、業務フロー図(フローチャート・スイムレーンダイアグラムなど)を活用することが効果的です。
業務フロー図によって「誰が・いつ・何を・どのような手順で行うか」が視覚的に表現され、文章だけでは伝わりにくいプロセスの流れを関係者全員が共有しやすくなります。
業務フロー図はユーザーとのレビューにおいても認識合わせの有力なツールとなり、見落とした要件を発見するきっかけにもなります。
機能一覧・画面一覧の書き方
機能要件を整理する際は、機能一覧表・画面一覧表を作成することが有効です。
| 機能ID | 機能名 | 概要 | 優先度 |
|---|---|---|---|
| F001 | ログイン機能 | ユーザーID・パスワードによる認証 | 必須 |
| F002 | 受注登録機能 | 受注データの新規登録・編集・削除 | 必須 |
| F003 | 帳票出力機能 | 受注確認書のPDF出力 | 高 |
このように機能IDを付与して一覧化することで、後工程での設計・テストとの対応づけが容易になります。
優先度(必須・高・中・低)を明記しておくことで、スコープ調整の際の議論がスムーズになるでしょう。
ユーザーストーリー形式での要件記述
アジャイル開発や利用者視点を重視した要件定義では、ユーザーストーリー形式で機能要件を記述する方法が効果的です。
「〇〇(ユーザーの役割)として、〇〇(目標・ゴール)のために、〇〇(機能・アクション)を行いたい」というフォーマットで記述することで、機能の存在理由と期待される価値が明確になります。
非機能要件の書き方とIPAテンプレートの活用
続いては、非機能要件の書き方とIPAが提供するテンプレートの活用方法を確認していきます。
非機能要件はシステムの「品質特性」を規定する部分であり、機能要件と同様に具体的・定量的に記述することが重要です。
非機能要件の主な項目と記述例
非機能要件には以下のような項目が含まれます。
性能要件:「通常業務時のレスポンスタイムは3秒以内」「同時接続ユーザー数は最大500人」
可用性要件:「システム稼働率99.9%以上」「計画外停止時間は月4時間以内」
セキュリティ要件:「パスワードはSHA-256でハッシュ化して保存」「通信はTLS1.2以上で暗号化」
保守性要件:「障害発生時の復旧目標時間(RTO)は4時間以内」
拡張性要件:「ユーザー数が2倍になっても性能要件を満たすこと」
非機能要件は「〇〇であること」という定性的な表現ではなく「〇〇秒以内」「〇〇%以上」という定量的な数値で記述することが品質確認の観点から非常に重要です。
IPAの非機能要求グレードの活用
IPA(情報処理推進機構)は「非機能要求グレード」というドキュメントを公開しており、非機能要件を体系的に整理するためのフレームワークとして広く活用されています。
非機能要求グレードでは可用性・性能・拡張性・運用・移行・セキュリティという六つの大分類のもとに詳細な要求項目が定義されており、これを参考にすることで非機能要件の抜け漏れを防ぐことができるでしょう。
要件定義書テンプレートの入手と活用
要件定義書のテンプレートはIPAのウェブサイトやIT関連団体から入手できるものが多く存在します。
テンプレートをそのまま流用するのではなく、自社のプロジェクトの規模・業種・特性に合わせてカスタマイズして使用することが、より実用的な要件定義書作成の第一歩となるでしょう。
要件定義書は「作ること」が目的ではなく「関係者全員が同じ理解を持てること」が目的です。どれだけ精緻なフォーマットであっても、実際のユーザーや開発者が読んで理解できる内容でなければ意味がありません。わかりやすさと正確さのバランスを常に意識して作成しましょう。
まとめ
本記事では、要件定義書の役割・基本的な構成・機能要件と非機能要件の書き方・IPAテンプレートの活用について解説してきました。
要件定義書は機能要件・非機能要件・業務フロー・制約条件などを網羅的に記述した文書であり、プロジェクトの設計・開発・検収のすべてにおける基準となる重要なドキュメントです。
機能要件は機能一覧・業務フロー図で具体的に表現し、非機能要件は定量的な数値で明記し、IPAの非機能要求グレードなどを参考に抜け漏れを防ぐことが高品質な要件定義書作成のポイントとなります。
プロジェクトの成功に向けて、要件定義書の品質向上に積極的に取り組んでいきましょう。