
非機能要件とは?
システム開発において 「機能そのものではなく、システム全体の品質や制約を定める要件」 を指します。
「何ができるか(機能要件)」ではなく、「どのように動作するべきか」 を定義するものです。
例えで言うと:
- 機能要件:レストランで「料理を注文できる」「会計できる」
- 非機能要件:そのレストランが「料理が10分以内に提供される」「清潔である」「年中無休」
主な非機能要件の分類
1. 性能・効率性
- 応答時間(例:画面表示は2秒以内)
- 同時接続数(例:1,000ユーザー同時利用に耐える)
- スループット(例:毎秒100件のリクエスト処理)
2. 信頼性
- 稼働率(例:99.9%以上)
- 障害復旧時間(RTO: Recovery Time Objective)
- データ損失許容度(RPO: Recovery Point Objective)
3. 可用性
- 24時間365日稼働
- メンテナンスの計画と影響範囲
4. 保守性
- ソースコードの可読性・拡張性
- バグ修正や機能追加の容易さ
- ログや監視の仕組み
5. セキュリティ
- 認証・認可(例:パスワードの複雑性ルール)
- 通信の暗号化(例:TLS必須)
- ログイン試行制限、監査証跡
6. 運用・移行
- バックアップ方法
- 運用マニュアルの整備
- データ移行手順
7. ユーザビリティ
- UIの使いやすさ
- アクセシビリティ対応(例:音声読み上げ、色覚バリアフリー)
非機能要件が重要な理由
- 「機能があっても使えないシステム」を防ぐため
- SLA(サービス品質保証)の基礎になるため
- トラブル時の責任分担や契約条件に直結するため