要求エンジニアリング
en : requirements engineering
同義 : 要求工学
JIS X 0166:2021 より
多分野の協働を必要とする工学で、取得者の領域と供給者の領域とを仲介し、対象とするシステム、ソフトウェア又はサービスが満たすようにする要件を確立し、保守するための工学
要求に関するプロセスとしては以下がある
ビジネス又はミッション分析プロセス
利害関係者ニーズ及び利害関係者要件定義プロセス
システム要件定義プロセス / システム/ソフトウェア要件定義プロセス
from ソフトウェア要求 第 3 版
以下の 2 つに分けられる
要求開発
要求管理
from 実践ソフトウェアエンジニアリング 第 9 版
要求の理解に貢献する、あらゆるタスクや技法
ソフトウェア開発プロセスの観点では、コミュニケーションアクティビティからモデリングアクティビティまでをカバー
大きく分けて 7 つのタスク
方向付け (inception)
要求獲得 (elicitation) : ビジネス目標を明確にすることが重要
精緻化 (elaboration) : ソフトウェアの機能、振る舞い、情報を様々な観点で表現した要求モデルの洗練に注力
交渉 (negotiation)
仕様化 (specification) : ドキュメント、図や数式によるモデル、一連の利用シナリオ、プロトタイプといったものをすべて組み合わせたものが仕様
ソフトウェア要求仕様書のテンプレートの例が https://web.cs.dal.ca/~hawkey/3130/srs_template-ieee.doc にある
妥当性確認 (validation)
特に一貫性が重要 → 分析モデルを利用して、要求が矛盾なく記述できているか確認
主にテクニカルレビューを行う
マネジメント (management) : 要求マネジメント (nobuoka.icon 要求管理と同義?)
非機能要件 (NFR : Non Functional Requirement)
トレーサビリティ
要求収集 (requirements gathering)
ユースケース
分析モデル