要件定義とは
要件定義とは、システム開発の最初の工程であり、クライアント(発注者)がそのシステムを使って「何をしたいのか」「どのような機能が必要か」を明確にし、開発の仕様として取りまとめる作業のことです。
要件は大きく分けて、以下の2種類に分類されます。
- 機能要件:ユーザーが画面で操作する機能や、システムが処理する内容そのもの(例:ログイン機能、商品の購入カート機能、検索機能など)。
- 非機能要件:機能以外の性能や品質に関する要素(例:アクセス集中時に耐えられる処理速度、24時間稼働し続ける信頼性、セキュリティ基準、将来の拡張性など)。
この段階で作りたいもののイメージや条件を開発チームと発注者の間で一致させておかないと、後から「作ってほしかったものと違う」といった手戻りが発生する原因になります。
具体例
新しいオンラインショッピング(EC)サイトを立ち上げる際の要件定義の例です。
【機能要件の例】
・顧客が会員登録し、クレジットカードで決済できること。
・おすすめの商品をトップページに最大10件ランダムで表示すること。
【非機能要件の例】
・アクセスが急増した際でも、画面表示が3秒以内に完了すること。
・深夜のメンテナンス時間(AM2:00〜4:00)を除き、年中無休で稼働すること。
もう少し詳しく
要件定義は、システム開発ライフサイクル(SDLC)における最上流工程であり、ビジネス上の課題を解決するために「どのようなシステムを作るべきか」を決定するプロセスです。
この工程では、発注者側(ビジネス部門やエンドユーザー)と開発者側(システムエンジニアやアーキテクト)が緊密にコミュニケーションを取り、現状の業務課題のヒアリングや、新しいシステムに対する要望を収集します。
整理された要望は、以下の2つの大きなカテゴリーに定義されます。
- 機能要件: システムが提供すべき具体的な機能(ユーザーインターフェース、データ処理、帳票出力、連携システムなど)。「ユーザーが何をできるか」を定義します。
- 非機能要件: システムの品質や性能に関する要件。信頼性(連続稼働時間)、可用性(冗長構成)、処理性能(応答時間やスループット)、セキュリティ、運用・保守性、移行手順などが含まれます。非機能要件の策定基準としては、IPAが定めた「非機能要求グレード」などが実務で広く参照されています。
これらの内容を明確にした「要件定義書」を作成し、双方の責任者が合意(サインオフ)することで、その後の設計工程のブレを防ぎます。
試験でのポイント
試験では、要件定義の定義や位置づけ、および「機能要件」と「非機能要件」の分類について問われます。具体的な要件の例が提示され、それがどちらに分類されるかを判別する問題が頻出します。
例えば、「売上データをCSV形式で出力できること」は機能要件であり、「システムの応答時間が平均2秒以内であること」や「システム稼働率を99.9%以上に保つこと」は非機能要件になります。
また、要件定義工程で定義される内容に基づいて、後続の「受入れテスト(検収)」の評価基準が作られるというプロセス間の関係性についても理解しておく必要があります。
関連する用語
関連する用語には、システム開発の全体の流れを示す「共通フレーム(SLCP)」、要件定義で決まった要件をユーザー視点の設計に落とし込む「外部設計」、およびユーザーが開発されたシステムを検証する「受入れテスト」があります。