ひきのうようけん
非機能要件
システムが備えるべき機能以外の要求事項で、性能や信頼性、使いやすさ、セキュリティなどが含まれます。
詳しい説明
1. 定義
非機能要件とは、システムが提供する機能そのもの以外の、品質や性能に関する要求事項を指します。システム開発においては、何ができるかという機能要件とセットで定義される極めて重要な概念です。
具体的には、システムの処理速度や安全性、使いやすさ、障害からの復旧のしやすさなどが含まれます。いくら機能が優れていても、動作が非常に重かったり、すぐにシステムダウンしたりすれば、業務には使えません。ユーザーが快適かつ安全にシステムを利用し続けるために必要な土台となる品質の目標値が、非機能要件です。
2. 仕組みと種類
非機能要件は、国際規格であるISO 25010などの品質モデルに基づいて分類されることが一般的です。代表的な項目には、性能効率性、信頼性、セキュリティ、保守性、移植性、使用性などがあります。
例えば、性能効率性はシステムがどれだけ速く応答できるか、信頼性はどれだけ長く停止せずに稼働できるかを定義します。セキュリティはデータが不正アクセスから守られているか、保守性は機能変更がどれだけ容易に行えるかという観点です。これら全てを高いレベルで実現するのは困難なため、プロジェクトの目的や予算に合わせて優先順位を決め、目標値を設定するのが非機能要件定義の肝です。
3. 試験ごとの視点
ITパスポート試験では、システム開発の流れの中で非機能要件を定義することの重要性が問われます。機能要件を満たすことだけに集中して非機能要件を後回しにすると、リリース後にトラブルが頻発するという失敗パターンを理解しておくことが求められます。
基本情報技術者試験では、より具体的に品質特性のモデルや、目標値の定量化の手法が問われます。例えば、可用性を高めるための冗長化の仕組みや、システムの応答時間に関する指標(レスポンスタイムやスループット)の計算や評価方法など、技術的な詳細に踏み込んだ出題が多くなります。
4. 紛らわしい語との違い
紛らわしい語として、機能要件があります。機能要件は、システムが具体的に何をするかという業務的な処理内容を指します。ログインする、注文を登録する、データを検索するといった動作がこれに該当します。
一方、非機能要件は、その機能をどれくらいの性能や品質で実現するかという側面です。ログインが速やかに行えるか、注文登録のデータが漏洩しないよう安全かという質の部分を定めます。両者は切り離せない関係にありますが、要件定義書では役割を分けて記述するのが基本です。
5. 身近な例
Webサイトの閲覧を例にすると、商品を購入できることや会員登録ができることは機能要件です。一方で、ボタンを押してから画面が表示されるまでが3秒以内であること、クレジットカード情報を通信しても盗まれないSSL化の仕組みがあること、メンテナンス時に簡単にサーバーを切り替えられることは非機能要件です。
もしこれらが欠けていれば、サイトの利用者はストレスを感じたり、情報を入力するのが不安になったりします。当たり前に使っているシステムほど、この非機能要件がしっかりと設計され、支えられていると言えます。
試験で問われること
ITパスポート試験
- 機能要件と非機能要件の違いを理解する。
- 品質の確保には非機能要件の定義が不可欠であることを押さえる。
- 開発初期の要件定義で漏れると手戻りが大きいことを理解する。
基本情報技術者試験
- ISO 25010の品質モデルの項目を暗記する。
- 可用性や信頼性を確保する技術的な手段を理解する。
- 定量的な目標値の表し方を理解する。