すべての要件の優先度/重みが等しい場合(特に「必須」)、おそらく機能要件と非機能要件を分割するだけでなく、心配する必要があります。
それでも、2つのカテゴリの要件を分離する理由はいくつかあります。
実装の責任
多くの非機能要件、特にパフォーマンスに焦点を当てた要件は、開発者に適度にしか適用できないことがわかりました。設計は拡張性と速度をサポートできますが(特定のコードセクションを調整できます)、一般にパフォーマンス要件を満たすことができるかどうかは、アーキテクチャに依存し、多くの場合、ハードウェア構成に依存します。
テストの責任
ユーザー、QAチームは、セキュリティ、フォールトトレランス、安全性、および信頼性の要件が満たされているかどうかを十分に検証していますか?
繰り返さないでください
ドキュメントは、コードと同じDRY原則に従う必要があります。一般的なUIスタイルの要件はグループ化する必要があります。要件の責任者が本当に望んでいる場合、機能要件で非機能要件を(個別にまたはグループとして)参照できます。
バージョン管理
多くの「標準」がある企業環境にいる場合-特定のUIまたはセキュリティ(いくつか例を挙げれば)要件ドキュメントを作成して、バージョン管理することができます。そうすれば、アプリケーション固有の要件(主に機能要件)を記述できます:「アプリケーションは、XYZ-Company-SecReq-DocumnentNamingStandard.docxで定義されたセキュリティ要件のV2.3に準拠する必要があります」。