要求定義と要件定義。
システム開発時に混在して使われるが厳密には定義が異なる。いったい何が違うのか。
本記事では、2つの言葉の定義を、事例を交えて述べてみたい。
要求定義と要件定義
要求並びに要件に関する複数の書籍の定義に、自分なりの経験を加味すると、下記のように定義できる。
要求:システムを依頼する側がほしい特性
要件:システムを開発する側とシステムを依頼する側が合意した特性
特性とは、システムに実装される機能(処理のロジックや画面およびデータなど)と非機能(性能や耐久性など)を含む。
定義という言葉がそれぞれの末尾に付くことで、要求を決める、要件を決める、という意味を持つ。
「要求」には求めるという漢字が含まれるように、システムを必要としている人たちが描くシステムに求めること。
一方で「要件」はシステムをつくる人たちが、求められることを満たすようにシステムで実現可能なことを表現する。
なお、要求定義と要件定義については多数の書籍が発刊されており、これら書籍ごとに要求と要件が使い分けられたり、一緒に語られたりしている。つまり、共通認識としての定義が浸透していないことが分かる。

では、具体的な事例をみてみたい。
要求と要件の具体的な事例
要求と要件の具体的な違いを、在庫管理システムの事例を使って説明してみたい。
まずは、生産企画部門が在庫管理システムに対して求めることから考えてみる。生産企画部門は仕掛品の在庫数を把握し、明日の生産計画を調整したい。
生産企画部門の要求
そこで、生産企画部門が在庫管理システムで実現したい要求は、
「国内に分散した各工場の仕掛品在庫をリアルタイムにみたい」
である。
仮に在庫管理システムが存在しない場合、各工場の仕掛品を工場事務員が数を数えて紙に書き生産企画部門にFAXを送るか、生産企画部門が電話で個別に工場に聞き回ることになる。
在庫管理システムが存在せず手作業で仕掛品在庫を把握しようとすると、あまりに多くの時間がかかり、時間の割には正確な情報を集めることができず非効率である。
そこで、システムを開発し、データの正確性や即時性を求める。
生産企画部門が即時性を求める理由は前述のとおりで、仕掛品在庫の状況をリアルタイムで把握して、翌日の生産計画を調整をするため。
仕掛品の在庫数が見える化されることで、例えば優先順位の高い受注が入ってきたときに生産計画の組み換えが即時に可能となる。
”仕事(ビジネス)をより良くするためにシステムに求める”ということで、ビジネス要求とも言われる。
生産企画部門の要求を満たすシステムの要件とは
上記の要求を実現するためには、複数の論点があり、各論点を明確にしたうえで設計をすすめることとなる。
では、どのような論点が考えられるのか。
ビジネス観点の論点
- 国内工場とはすべての工場を対象にするか
原料加工から包装、出荷までが一連の工場もあり、仕掛品在庫のない工場もある。該当の工場は除外してよいか。 - 仕掛品とはすべての商品を対象とするのか
多品種をつくっているので、完成までのリードタイムが1週間ある商品から0.25日までの商品がある。リードタイムが長い商品の仕掛品だけを対象にするのか。あるいは仕掛りが発生する全商品か。 - リアルタイムとはタイムラグ無しを求めているか
工場によっては、仕掛品数の報告が紙のものを30分に一回システムへインプットしている。最大30分のラグが発生することがわかっている。タイムラグ無しを求める場合はシステムの開発とともに、データ収集業務を改善する必要がある。 - 仕掛品の在庫がみられるのは生産企画部門だけか。営業部門も参照したいか。
システム観点の論点
- 在庫はひとつの画面ですべての仕掛品を見たいか
商品数が多く、ひとつの画面で見る場合、ページングか追加読み込みの実装を検討する。 - 在庫をどのように絞り込みたいか
工場名、日付、商品名、稼働ライン名ほか。 - 画面上で参照したい項目はなにか
仕掛品名、在庫数、商品名(ひとつの仕掛品につき複数あり)。仕掛品の製造日やロットは別の詳細画面でみられるようにすればよいか。
- 各工場からの在庫数の転送方法をどうするか
工場によっては仕掛品をオフコンで管理しているため、接続方式を検討しなければいけない。 - 仕掛品の在庫データは過去の履歴をどこまで保持するか
- 生産企画部門はブラウザで在庫がみられればよいか
Webベースのアプリケーションにするか否か。 - システムの稼働時間はどうするか
24時間か、夜間に保守等の目的で止められるか。
業務を遂行する人の観点によって、より多くの論点が挙げられる。
上記の論点に対する答えをワークショップなどの議論で導き出し、合意していく。合意された特性を要件という。要件を合意するためのワークショップを要件定義と呼ぶ。
システムは万能ではなく、人もまた万能ではない。それぞれの事情がある。事情を制約として認識しつつ、実現可能なことを探求する作業が要件定義である。
要求定義・要件定義を学べる本
最後に、要求定義および要件定義を学ぶときに有益な書籍を紹介しておきたい。とくに設計に関わる方は、カールウィーガーズの名著である「ソフトウェア要求」を読んでおきたい。