性能・信頼性・セキュリティなど機能以外の品質に関する要件。
非機能要件とは、性能・信頼性・セキュリティなど機能以外の品質に関する要件です。「何をするか(機能要件)」ではなく、その機能がどの程度の品質で動くかを定めます。
身近な例で考えると、レストランの「料理の味」と「サービスの質」の関係に似ています。「ハンバーグを出す」が機能だとすれば、「熱々で出てくる」「待ち時間が短い」「衛生的」が非機能にあたります。同じ料理でも、これらが悪いと満足できません。
上の図解のように、同じ「検索できる」でも3秒で出るか30秒かかるかで使い心地は大きく変わります。非機能要件は、こうした目に見えにくい品質を数値や条件で明確にする役割を持ちます。
非機能要件は数が多く整理しづらいため、大きく6つの項目(情報処理推進機構の「非機能要求グレード」の分類)に分けて考えるのが定番です。上の図解と対応しています。
| 項目 | 何を表すか | 例 |
|---|---|---|
| 機能性 | 必要な機能を正しく備えているか | 仕様どおりに動く |
| 可用性 | 止まらず使い続けられるか | 稼働率99.9% |
| 性能・拡張性 | 速く動き利用増にも耐えるか | 3秒以内に応答 |
| 運用・保守性 | 監視や改修がしやすいか | ログを自動収集 |
| 移行性 | 別システムへ移しやすいか | データを移行できる |
| セキュリティ | 不正アクセスから守れるか | 通信を暗号化 |
覚え方のコツは、「速さ(性能)・止まりにくさ(可用性)・安全さ(セキュリティ)」の3つをまず押さえることです。残りの機能性・運用保守性・移行性も、システムを長く使い続けるために欠かせない品質です。
機能要件(=システムが何をするかという要件)と非機能要件は、いつもセットで語られます。違いは次のとおりです。
・機能要件:システムが何をするか(注文できる・検索できる)
・非機能要件:その機能がどの程度の品質か(3秒以内に注文できる・止まらない)
見分け方のコツは、「〜できる」なら機能要件、「速さ・止まりにくさ・安全さ・使いやすさ」を表すなら非機能要件と考えることです。たとえば「ログインできる」は機能、「ログインは2秒以内」は非機能です。
非機能要件はあいまいになりやすいのが特徴です。「速く」「安全に」だけでは人によって基準が違うため、「3秒以内」「稼働率99.9%」のように数値で示すことが大切です。