プログラム仕様(プログラムしよう、英: Program specification)は、プログラムに求められることを定義したものである。プログラムの設計図や開発者から見たユーザーマニュアルの元となる文書のような「非形式的」な形態の場合と、数学的に厳密に動作を定義する「形式的」な形態の場合がある。実際、最もよい仕様は既存のアプリケーションを理解して改善するために書かれたものであることが多いが、重要なソフトウェアは開発前に注意深く仕様を記述する必要がある。仕様は特に常に安定性が求められる外部インタフェースでは重要である。 古典的な分類[編集] ウォーターフォール・モデルなどの古典的開発手法では、以下のようにプログラム仕様を分け、トップダウン的に作成していく。 基本仕様(Basic specification)は、要求仕様に基づいて、機能概要、機能構成、ハードウェア構成、運用の前提条件、性能や品