システム使用者がシステムを使用する際の各種手続き(入力)と、それに対応する、システムの応答（出力）を、システム使用者の視点での外部的動作が具体的に分かるように記述する仕様。ここで言う「システム使用者」とは接続される「他システム」の事を示し、オペレーターなどの実際の使用者、エンドユーザ、システム管理者、クラスやサブルーチンを使うプログラマまでさまざまであり、内外の境界線はそれらによって異なる。
形式仕様.
形式仕様は、ソフトウェアやハードウェアを数学的に記述したもので、何らかの実装の開発に使われる。それはシステムが何をすべきかを記述したもので、それをどう実現するかは記述する必要はない。システムの設計が形式仕様に照らして正しいかどうかの形式的検証に使われたりする。これには、工程が先に進む前に正しくない設計を改良できるという利点がある。代替手法としては、仕様から設計への変換、および特に実際の実装への変換に際して、詳細化を行う手法がある。
プログラム仕様.
プログラム仕様は、プログラムがすべきことを定義したものである。「非形式的」な仕様記述の場合、開発者から見ればそれは青写真またはユーザーマニュアルのようなもので、「形式的」であれば、数学的またはプログラム的に定義された明確な意味を持つ。実際、ほとんどの成功した仕様は、既存の安定したアプリケーションを理解し保守するために書かれたものである。ただし、安全性が重視されるソフトウェアシステムでは、アプリケーション開発に先駆けて仕様を慎重に書くことがある。仕様は、安定して存続すべき外部インタフェースのためにも非常に重要である。
機能仕様.
ソフトウェア開発における機能仕様は、プログラムや大規模なソフトウェアシステムの振る舞いを記述した文書群である。一般に、そのソフトウェアへの各種入力を記述し、それぞれに対してシステムがどのように反応するかを記述する。例えば、機能一覧表、状態遷移図、プログラムの骨格のフローチャート、各機能を実現するアルゴリズム記述などから成る。
詳細仕様.
プログラムコードに対応するレベルの詳細な仕様。PADなどで書かれる。
Webサービス仕様.
Webサービス仕様は、品質マネジメントシステムに基づいていることが多い。
文書仕様.