参考
以下は「非機能要求グレード」実践セミナー システム基盤の非機能要件定義を講義と演習で身につけるを参考に記述している。
定義
非機能要件とは、システムが持つべき性能や信頼性などの品質に関する要求である。
機能要件は業務仕様で明確に定義されるのに対し、非機能要件は曖昧になりがちで、システム開発のリスクにつながる。そのため、体系的かつ明確な定義が必要。
1. 非機能要件がなぜ重要か?
非機能要件の不備がビジネスリスクに直結するため。
非機能要件の問題点:
- 曖昧な表現(例:「レスポンスは速く」など)
- ベンダーと発注者間の認識ギャップ
結果として開発後の手戻り、コスト増加につながる。
非機能要件を明確に定義することで、開発の手戻りを防ぎ、運用トラブルを減らすことが可能になる。
2. 非機能要求グレードとは?
IPAが提唱する「非機能要求グレード」は、非機能要件を体系的に整理し、ベンダーとユーザー間での合意形成を円滑にするための手法。
主な構成要素:
- モデルシステムシート:システムの社会的影響を基準に、非機能要件の基準を3段階で定義。
- 社会的影響がほとんどないシステム
- 社会的影響が限定されるシステム(社内基幹系など)
- 社会的影響が極めて大きいシステム(インフラ系など)
- 非機能要求グレード表:非機能要件を可用性、性能・拡張性、運用保守性、移行性、セキュリティ、システム環境・エコロジーの6大項目に分類し、それぞれ具体的なレベルを設定。
- 樹系図(項目一覧):非機能要件の分類をツリー形式で整理し、要件定義の漏れを防ぐ。
3. 非機能要件の主な分類(6大項目)
- ① 可用性
- システム稼働時間、障害時の復旧目標など
- 対策例:冗長化、バックアップセンター設置
- ② 性能・拡張性
- 業務量の増加予測、ピーク時性能要件
- 対策例:キャパシティプランニング(サーバやネットワークの適切な設計)
- ③ 運用・保守性
- 稼働レベル、障害対応レベル、監視体制
- 対策例:運用マニュアル整備、監視ツール導入
- ④ 移行性
- 新システムへの移行方法、移行期間
- 対策例:移行リハーサル、データ移行ツール整備
- ⑤ セキュリティ
- 利用制限、不正アクセス防止、データ秘匿
- 対策例:アクセス管理、不正監視、検知システム導入
- ⑥ システム環境・エコロジー
- 耐震性、消費エネルギー、CO2排出量
- 対策例:環境負荷の少ない機器選定、エネルギー効率改善
4. 非機能要件定義の流れ
非機能要件の定義は、以下の手順で進めると円滑になる:
- 開発システムに最も近い「モデルシステム」を選定。
- 重要な非機能要件をグレード表で確認し、ユーザーとベンダー間でレベル合意。
- 樹系図で項目一覧を確認し、漏れなく詳細項目を決定。
- このように段階的に詳細化することで、コスト・品質面の影響が大きい項目を早期に明確化でき、開発のリスクを軽減できる。
5. 非機能要件定義のメリット
- 発注者と開発ベンダー間でのコミュニケーション円滑化。
- システム開発の手戻り・トラブル削減。
- システム運用コストの明確化。
結果として、システムの信頼性向上、運用安定化、コスト効率化が実現できる。
6. まとめ、感想
チーム内においても上流工程と下流工程で担当者が異なることは往々にしてあるので明確に定義した上で認識の齟齬がない状態を作るようにする。