ソフトウェア要求分析について

ソフトウェア要求分析とは

ソフトウェア要求分析(Software Requirements Analysis)とは

ソフトウェア要求分析とは、ソフトウェアを開発する際に、利用者の要望を理解して、明確な要求仕様を定めるためのプロセスです。
具体的には、ステークホルダーからの要求を収集・分析し、システムの機能や性能を文書化して、開発の基盤を築きます。


要求(User Requirements)とは

要求とは、システム利用者が求めているもの、システムに実現してほしい目標のことです。
これは、ユーザの要望を具体化にして、要件を定めるための原案となるもの(抽象的な目標)となります。
参考:要件定義とは


要求仕様(Requirements Specification)とは

要求仕様とは、製品やサービスがどうあるべきかを示す定義のことです。
具体的には、システムに求めること、システムで実現したいこと、搭載したい機能や性能、期待する品質など、発注側が持つ概念的な内容となります。
この仕様は「要求仕様書」としてドキュメントに記述し、要件定義プロセスで参照されます。

要求仕様書には、機能要求、非機能要求、制約条件などを記述します。

分類 説明
機能要求仕様 システムの機能や責務を記述する。
非機能要求仕様 システムの備えるべき属性(処理性能、可用性、耐障害性など)を記述する。
制約条件 開発に対する諸々の条件について記述する。
例えば、システムが動作するOS、開発プログラミング言語、ネットワーク環境などを指定する。


要求分析のプロセスについて

1.要求抽出

要求抽出とは、ステークホルダから要求を洗い出すプロセスです。
本プロセスでは、まずステークホルダ分析を実施して、誰が要求の決定権をもっているかを明らかにします。
その上で、ステークホルダの要求を聞き取り、システムが解決すべき要求事項を洗い出していきます。

要求抽出のための手法としては、以下が挙げられます。

手法 説明
アンケート調査 一定の期間の中で、様式化した同一の質問に対する回答を集め、数値化できるデータを調査結果として求める調査方法です。
定量的な調査結果を得ることができます。
インタビュー調査 インタビュアーがステークホルダと直接会話し、情報を収集する調査方法です。
アンケートなどの定量調査では捉えきれない、ユーザーの深層心理や行動の動機を知りたい場合に適しています。
ワークショップ ステークホルダを集めて議論を行い、様々な意見をや考えを集約する調査方法です。
新しい要求を特定したり、対立を解決したり、要求に優先順位を付ける場合などに適しています。
プロトタイピング ステークホルダに実際の操作させることで具体的なフィードバックを獲得する調査方法です。
新しい要求を特定したり、既存システムの要求を検証する場合に適しています。


2.要求分析と合意形成

要求抽出の後は、収集した要求を詳細に分析して分類し、対応の優先順位を決定します。
その後、各要求をどのように対応するのか、ステークホルダと合意を得るために交渉を行います。

ソフトウェア開発では、予算や開発期間などの制約があるため、抽出された要求を全て実現出来るとは限りません。
そのため、ステークホルダーや顧客のニーズを理解し、それらを具体的な機能や性能、制約事項などに整理・定義していく必要があります。

要求分析のための手法としては、以下が挙げられます。

手法 説明
シナリオ分析 シナリオ分析とは、将来起こり得る複数のシナリオを作成し、それぞれのシナリオ下でどのような結果に至るかを分析する手法です。
要求分析では、ユーザの行動をシナリオとして記述し、必要な機能や性能を特定することに用います。
ゴール分析 ゴール分析とは、目標達成のために、どのように分解し、段階的に進めていくかを分析する手法です。
要求分析では、システムの目的や目標を明確にして、そこから具体的な要件を導き出します。
制約事項分析 制約事項分析とは、プ目標達成の妨げとなる条件を特定し、その影響を評価する分析手法です。
TOC理論(制約条件の理論)に基づき、制約条件に注目して、それを改善する具体的な要件を導き出します。


3.要求仕様の文書化

要求を詳細に分析し、ステークホルダと合意を形成できたら、文書化します。
この文書は、システム開発の重要な指針となります。


4.要求の管理

要求仕様を更新し、変更履歴を管理します。
要求定義により、ステークホルダから要求を抽出し、要求仕様を作成することができました。
次の段階は、要求を仕様に詰めていくために要件定義を実施していくことです。


システム要求事項分析プロセスについて

ISO 15288:2015

ISO 15288において、要求分析を「テクニカルプロセス」の中の「利害関係者要求定義プロセス」と「要求分析プロセス」から構成すると定義しています。


システムに対する要求を定義し、要求を製品に変換し、サービスを提供するために製品を使用し、
その効用を持続させ、製品を終息させる活動。

JIS X 0160

JIS X 0160において、システム要求事項分析プロセスは、ソフトウェアライフサイクルプロセスの中で重要な役割を担うと定義されています。
 詳細は、ソフトウェアライフサイクルプロセス(JIS X 0160)についてを参照ください。



関連ページ