製品仕様書と要求仕様書の違いが良く分からない


 実際の開発現場にあって、CMMがイメージしているような「要求仕様書」と呼ばれるものが書かれていることは殆どありません。そこにあるのは、通常は「製品仕様書」と呼ばれるものです。時には「機能仕様書」と呼ばれるものもありますが、その内容は、製品仕様書の機能部分を抜き出したものです。

 製品仕様書は、その名の通り、製品そのものの「仕様」を説明するものです。それに対して、要求仕様書というのは、開発に携わる人たちが、実現することだけを集めたものです。

 例えば「派生モデル」の開発であっても、製品仕様書は、製品そのものの仕様を表現するために、新規の開発時と同じような構成になって居ます。しかしながら、実際に開発する作業は、そのベースモデルに対して変化している部分だけを実現することになります。このとき、最初から、変化点だけを抜きだし、「やることはこれだけですよ」と示したものが、派生モデル用の「要求仕様書」となります。

 新規の開発の場合は、「やること」は製品仕様書の全般に関わりますが、製品仕様書には必ずしも、開発者が実現すべき機能を漏れなく記述されているとは限りません。この製品にはそのような機能が提供されることは書かれていても、それを選択する詳しい条件や、他の機能との関係、あるいはエラーの判断基準などは、多くの場合、設計者に任されています。また、今後の予想される変更に耐えるための工夫など、設計上の品質的な要求などは、製品仕様書に書かれることはありませんが、これなどは、明確に指示されないかぎり、設計に盛り込まれることはありません。これらのことを最初に明らかにしないまま作業に着手するために、後になって「バグ」として表面化するわけです。

 要するに、要求仕様書というのは、開発に携わる人たちが行うべき行為を漏れなく表現するものです。