システム工学と要件工学 において、非機能要件(NFR)とは、システムの特定の動作ではなく、システムの動作を判断するための基準を規定する要件である。これは、特定の動作や機能を定義する機能要件とは対照的である。機能要件の実装計画は、システム設計書に詳細に記述される。非機能要件の実装計画は、通常、アーキテクチャ的に重要な要件であるため、システムアーキテクチャ書に詳細に記述される。[ 1 ]非機能要件は、クロスファンクショナル要件と呼ばれることもある。[ 2 ]
ソフトウェアアーキテクチャにおいて、非機能要件は「アーキテクチャ特性」と呼ばれます。ソフトウェアアーキテクチャコンポーネント間の同期通信はそれらを絡み合わせ、同じアーキテクチャ特性を共有する必要があることに注意してください。[ 3 ]
一般的に、機能要件はシステムが何をすべきかを定義し、非機能要件はシステムがどうあるべきかを定義します。機能 要件は通常、「システムは<要件>を行わなければならない」という形式をとり、これはシステムの個々のアクションまたは一部を指し、数学的関数、ブラックボックス記述の入力、出力、プロセスおよび制御機能モデル、またはIPOモデルといった意味で明示的に表される場合もあります。一方、非機能要件は「システムは<要件>でなければならない」という形式をとり、これはシステム全体または特定の側面の全体的な特性であり、特定の機能ではありません。システムの全体的な特性は、開発プロジェクトの成否を分ける要因となることがよくあります。
非機能要件は、しばしばシステムの「品質属性」と呼ばれます。システムの創発特性[注1 ]は、非機能要件に分類されます。非機能要件は、「品質」、「品質目標」、「サービス品質要件」、「制約」、「非動作要件」[ 4 ]、または「技術要件」などとも呼ばれます。[ 5 ]非公式には、安定性や移植性といった属性から「性能」と呼ばれることもあります。品質、つまり非機能要件は、主に2つのカテゴリーに分類できます。
非機能要件は機能要件の範疇に入らないすべての要件であるため、法令、規制、標準、プロトコルなどの設計外の事項や、その他の外部要件など、機能の特性とシステムに対する制約も含まれます。
非機能要件を具体的かつ測定可能な方法で指定することが重要です。[ 8 ] [ 9 ]
あらゆるタイプのシステムに関連する一般的な非機能分類には以下が含まれる[ 10 ]
特定の種類のシステムでは、標準規格に非機能要件のカテゴリが明示的に列挙されている(未定)
This article needs additional citations for verification. (February 2023) |
システムでは、データベース内のレコード数をユーザーに表示することが求められる場合があります。これは機能要件です。この数値がどの程度最新である必要があるかは、非機能要件です。レコード数をリアルタイムで更新する必要がある場合、システムアーキテクトは、レコード数の変化に対して許容範囲内で短い間隔でシステムがレコード数を表示できることを保証する必要があります。
十分なネットワーク帯域幅は、システムの非機能要件となる場合があります。その他の例としては、以下のようなものが挙げられます。
「非機能要件」という用語は、それがカバーする要件セットの重要性を軽視する誤った呼称であると批判されている。 [ 11 ] [ 12 ]その代わりに、「クロス機能要件」(CFR)という用語がThoughtWorksで提案され採用された。[ 2 ]