仕様(specification)と設計(design)

仕様(specification)と設計(design)。両者は文字通り異なるものです。当たり前のことなのですが、経験則としては普段明確に使い分けができていないことが多いのではないでしょうか。私なりに定義してみると以下のようになります。

仕様(specification)

システム開発において、仕様(specification)とはシステムが満たすべき事項であり、要求(機能要求、非機能要求)から導出されます。ビジネスルールも含みます。

設計(design)

システム開発において、設計(design)とはシステムが仕様を実現するための仕組みとその内部構造を決める活動のことであり、その結果を文書化したものです。