私は、私たちのグループが始めているプロジェクトの要件と仕様の開発を任されてきました。
私は違いがわからないことに気づきました。グーグル検索は私をさらに混乱させた-一部の人々は仕様ある要件をより低いレベルであると言うようだ。
しっかりした答えは、要件はプログラムが行うべきことであり、仕様はそれをどのように計画するかということです。
別の見方をすると、要件はユーザーの視点から、またはビジネス全体としてのアプリケーションを表すというものです。この仕様は、技術チームの観点から見たアプリケーションを表しています。仕様と要件は大体同じ情報を伝えますが、2人のまったく異なる対象者に伝えます。
要件は何が必要であるかを文書化します-彼らはどのように、しかし何を指定するべきではありません。
仕様は、要件を達成する方法を文書化します-彼らは方法を指定する必要があります。
多くの場所で、これらのドキュメントは個別ではなく、同じ意味で使用されています。
私は航空宇宙分野のシステムエンジニアです。両方の用語が広く使用されています。区別は明確で、他の人が作っているほど複雑ではありません。
仕様は、システムまたは製品を指定するドキュメントです。 F-14の主要項目の開発仕様。仕様には、要件、定義、参照ドキュメント、用語集、検証情報など、多くのセクション/コンテンツがあります。
requirementは、製品またはシステムが実行する必要があることの単一のステートメントです。仕様には、何百もの要件がある場合があります。昔ながらの方法論では、要件ステートメントでは「要件」という言葉を使用して、要件と事実のステートメントまたは定義を区別する必要があると述べています。 (新しいあわただしいアジャイルの子供たちがこれをすべて守っているかどうかわからない。そのこだわりがそれを使用しているが、時には少しうるさい。)
つまり、仕様とは、要件に加えて、その他の補足情報と補足情報が満載のドキュメントです。
要件:
さまざまな利害関係者の競合する可能性のある要件を考慮して、新しい製品または変更された製品を満たすためのニーズまたは条件を決定します。
仕様:
彼らは効率的にシステムを設計し、代替設計のコストを見積もることができるように、解決すべき問題の正確なアイデアを提供します。これらは、各技術要件の検証(資格)のためにテスターにガイダンスを提供します。
引用は「システムエンジニアリングの基礎*」.
要件は関係者のニーズに基づいており、仕様はより詳細で技術的なドキュメントです。彼らは違いますが、彼らは同じことについて話します。
* 2001年の防衛取得大学出版局。 PDFバージョン テキストの。
要件は、完成した製品がユーザーの目で何をすべきかについてのユーザーの説明です。
仕様は、一般的なソリューションの技術的な説明であり、要件などをカバーしています。コスト、技術、問題など.
したがって、主要なポイントの1つは、仕様を作成する前に要件を最初に指定する必要があることです。
(用語に注意してください-productおよびsolution-同じことですが、異なる観点から...)
要件-システムまたはサブシステムが行うべき(必須の)こと.
仕様-コンポーネント、サブシステム、またはシステムとは何か。
有効な仕様(出力)があることを示すために要件(入力)に対して検証を行う必要があるため、これは医療機器製造業界では重要です。この業界の典型的な落とし穴は、企業が(1)要件の定義を忘れていることです(要件と仕様の違いを理解していないため)。 (2)仕様のみに対して検証を行い、(3)要件がサブアセンブリおよびコンポーネント仕様に正確に変換されていることを保証しないでください。
これがすべて完了したら、製品のユーザー要件が満たされていることを検証する必要があります。
仕様は、実現可能性を満たし、実装する準備ができている要件です。これは、設計段階に進んだ要件です。
言い換えると:
例:
ご覧のとおり、両方のコンテンツは同じにすることができます。違いは、要件が分析アーティファクトであることです。仕様は設計成果物です。
完成した最終的なドキュメントでは、要件が仕様に変換されているため、通常は「要件」ではなく「仕様」という単語が見つかります。
備考:上記の例には、設計上の制約により、設計要素が含まれています。
おそらく、仕様がビジネス要件仕様のドキュメントまたはIEEE標準のSRS(ソフトウェア要件仕様)のドキュメントを参照していると聞いて混乱しているのかもしれません。
また、仕様は、非公式に技術仕様を参照して、設計の決定と実装を説明しています。予定。
編集:リンクが正しくないことに気づきました...まもなく正しいリンクを投稿します。
私の研究では、(契約の一部として)特許および住宅建設に使用される仕様を見つけました。
Webster's Unabridged Dictionary(3rd New Int'l Ed。)の要件の定義は次のとおりです。
a)必要とされるもの:必要性b)要求または要求されるもの:必須または必須の条件:必要な品質、コース、またはトレーニングの種類
上記はそれらが明らかに異なることを示していると思います。スペックの下位レベルの要件と呼べるかもしれませんが、これは要件という観点から言うと変則だと思います。
要件は、アプリケーションが行うことです
仕様は、アプリケーションが実行する方法です。
それらは直交している必要があります!
プロダクトマネージャーが要件を記述し、ヘッドエンジニアが仕様を記述します。
商用製品を作成していた以前の会社では、次のような違いがありました。
要件は、システムが実行する必要があることです。それらは、より低いレベルの詳細な要件である場合があり、機能的または非機能的である場合があります。
仕様は、システムが実際に構築したものです。例えば。システムの動作が–10°CでXでなければならないという要件がある場合があります。システムの実際の仕様では、システムが–5°CでXを実行する場合があります。これは、潜在的な顧客がシステムを購入したいときに送信されるシートに含まれます。
この場合の注意は、仕様が要件と等しくないことです。
それを見るには、たぶん正しい方法ではないかもしれません。
要件は、ユーザーに価値をもたらすもの(機能、機能、動作など)です。内部には関係ありません。ここでは、ボックスの入力と出力(およびおそらくサイズ、形状、色)のみが重要です。
仕様は、ユーザーにその値を有効にするもの(機能、機能、動作など)です。ここで、ボックスの内部は重要です。これは、上記の外部インターフェースおよび特性とともに、システム全体を定義するためです。