要求分析とは
要求分析とは、新しい情報システムを開発する際、そのシステムを使うユーザーやクライアント(顧客)が「どのような機能が欲しいか」「システムを使って何を解決したいか」といった要望(要求)をヒアリングして整理し、本当に実現すべき内容を明らかにする作業のことです。システム開発の初期フェーズ(上流工程)において極めて重要なステップです。
ユーザーの要求は「今の画面を使いやすくしてほしい」「作業時間を半分にしたい」といった曖昧なものが多いため、開発チームはそれを分析し、「どのような機能が必要か」「どんなデータが必要か」「予算やスケジュールと折り合いがつくか」をすり合わせ、実現可能な「要件」として定義していきます。
具体例
例えば、ある企業が「新しい社内チャットアプリ」を作りたいと考えたときの要求分析の具体例です。
- ユーザーの要求:「とにかく簡単にファイルを共有したい」「スマホでも使いやすくしてほしい」
- 開発側の分析と整理:「ファイルを簡単に共有したい」という要求に対し、ドラッグ&ドロップでアップロードできる機能と、ファイルの容量制限をどうするかを整理する。また、スマホ対応のためにiOS/Android両対応のアプリを開発するべきか、それともスマホ用ブラウザ向けに作るべきかを話し合い、最終的な開発方針を決定する。
もう少し詳しく
要求分析のプロセスは、システム開発の「要件定義」の前半部分に位置します。ユーザーから要望を聞き出す「要求獲得(ヒアリングやアンケート、観察など)」から始まり、収集した矛盾する要求や曖昧な要望を論理的に整理する「要求分析・調整」、そして最終的にシステム化する範囲を決める「要件仕様化」へと進みます。この段階でユーザーと開発者の認識にズレがあると、後続の設計・プログラミング工程をすべて終えた後に「欲しかったものと違うシステムができてしまった」という致命的なトラブル(手戻り)が発生します。
要求を分析する際は、単に「何を作ってほしいか」という機能的な要望(機能要件)だけでなく、システムの処理能力、セキュリティ基準、稼働時間、災害時の復旧目標といった「性能や品質に関する要望(非機能要件)」についても徹底的に整理する必要があります。非機能要件はユーザー自身も気づいていないことが多いため、開発側がチェックリスト等を用いて主体的に引き出すことが重要です。また、業務の流れを図式化する「DFD(データフロー図)」や、システムの振る舞いを示す「ユースケース図」などのモデリング手法を用いて可視化し、関係者全員で共有します。
試験でのポイント
試験では、要求分析から要件定義に至る上流工程の役割と重要性が頻出します。特に、システムが備えるべき機能について定義する「機能要件」と、信頼性やセキュリティ、性能(応答時間など)といった機能以外の品質について定義する「非機能要件」の切り分けが非常によく出題されます。例えば、「応答時間は3秒以内とする」や「バックアップは毎日行う」は非機能要件に分類されることを判断できる必要があります。
また、要求を整理するために用いられる手法である「DFD(データフロー図)」や「E-R図」、「ユースケース図」などの図法についても、要求分析・要件定義の文脈で問われるため、それぞれの図が何を表すものかを整理しておきましょう。
関連する用語
要求分析に関連する用語としては、分析結果をドキュメントにまとめる「要件定義」や、システム化する機能を定義する「機能要件」、品質や性能を定義する「非機能要件」があります。また、業務やシステムの流れを可視化するための「DFD(データフロー図)」や、発注元がベンダーに提案を求める「RFP」も関連が深いです。