機能要件と非機能要件について
機能要件(functional requirement)について
機能要件とは
機能要件とは、業務要件を実現するために必要なシステムの機能に関する要件のことです。
つまり、開発における要件定義のうち、必ず搭載すべき機能や挙動を機能要件といいます。
例えば、以下の項目は機能要件として挙げられます。
・業務を構成する機能間の情報(データ)の流れを明確にする。
・表示された選択肢から項目を押下するユーザインターフェースを採用する。
・帳票を配布するために、帳票出力機能を備える。
機能要件ではシステム化の背景・理由・目的を明確する
機能要件とは、顧客(ユーザ)がシステムに対して求めている機能のことです。
しかしながら、要件定義の段階では、顧客はシステムの具体的な完成形をイメージできていないことの方が多いです。
また、顧客には予算やスケジュールなどの制約があるため、その制約の中でシステムへの実装の可否・優先順位などを考慮する必要があります。
機能要件は、プロジェクトのゴールともいえるため、システム化の背景・理由・目的を明確にして、ユーザと認識を一致させておく必要があります。
非機能要件(Non-functional requirement)について
非機能要件とは
非機能要件とは、使いやすさ・性能・信頼性・セキュリティ・制約条件などといった、機能要件以外の要件全般のことです。
非機能要件は顧客にとって、顕在的な要求ではなく潜在的な要求の場合が多く、抽象的な要件となります。
しかしながら、顧客は使いやすさや応答性などの要素を通じてソフトウェアの品質を評価するため、顧客満足度の向上のために非機能要件の対応は必須です。
ソフトウェア・エンジニアリング基礎知識体系(SWEBOK)では、非機能要件を以下のように定義しています。
非機能要求は、時として、制約条件(constraints)もしくは品質要求(quality requirements)として知られている。
また、この要求はさらに以下のように分類できる。
(例えば)性能要求、保守容易性要求、安全性要求、信頼性要求、電磁気互換性要求、その他の様々なタイプの要求である。
非機能要件の例
以下の例は非機能要件に該当します。
・システム開発で用いるプログラム言語に合わせた開発基準、標準の技術要件を作成すること(技術要件)
・4時間以内のトレーニングを受けることで,新しい画面を操作できるようになること(使用性/習得性)
・業務量がピークの日であっても,8時間以内で夜間バッチ処理を完了できること(性能効率性/時間効率性)
・現行のシステムから新システムに72時間以内で移行できること(移植性/置換性)
・地震などの大規模災害時であっても,144時間以内にシステムを復旧できること(信頼性/回復性)
非機能要件要求仕様定義ガイドライン
日本情報システムユーザー協会(JUAS)が発行した『非機能要件要求仕様定義ガイドライン』では、以下の10種類に分類し定義しています。
- 機能性
- 信頼性
- 使用性
- 効率性
- 保守性
- 移植性
- 障害抑制性
- 効果性
- 運用性
- 技術要件
非機能要求グレードにおける6つのカテゴリ
情報処理推進機構(IPA)では、非機能要件を大きく6つのカテゴリに分類しています。
このカテゴリを満たす形で要件定義を行えば、クライアントを満足させるソフトウェアを開発することができるという指針です。
非機能要求グレード|独立行政法人 情報処理推進機構
カテゴリ | 説明 |
---|---|
可用性 | 運用スケジュールや障害発生時の復旧などに関する要求 |
性能/拡張性 | ピーク時の負荷や業務量増加の対応などに関する要求 |
運用/保守性 | システム運用時の稼働率や問題発生時の対応などに関する要求 |
移行性 | 新システムへの移行(可否や移行手順など)に関する要求 |
セキュリティ | 利用者の制限や不正アクセスの防止などに関する要求 |
システム環境/エコロジー | システムの設置環境や消費エネルギー量などに関する要求 |