基本情報技術者 2017年 春期 午前(科目A) 問65
問題文
非機能要件の定義で行う作業はどれか。
選択肢
ア:業務を構成する機能間の情報(データ)の流れを明確にする。
イ:システム開発で用いるプログラム言語に合わせた開発基準、標準の技術要件を作成する。(正解)
ウ:システム機能として実現する範囲を定義する。
エ:他システムとの情報授受などのインタフェースを明確にする。
🔒 解説は解答すると表示されます
非機能要件定義【午前解説】
正解の理由
正解は イ です。
非機能要件(Non-Functional Requirements, NFR)はシステムの品質属性や技術的制約を表します。プログラム言語やフレームワーク、コーディング規約、ビルド/デプロイ手順などの「開発基準・標準」は技術的制約に該当するため、非機能要件の定義作業に含まれます。これらは「何を実現するか(機能)」ではなく「どのように実現するか(品質・制約)」を規定します。
非機能要件(Non-Functional Requirements, NFR)はシステムの品質属性や技術的制約を表します。プログラム言語やフレームワーク、コーディング規約、ビルド/デプロイ手順などの「開発基準・標準」は技術的制約に該当するため、非機能要件の定義作業に含まれます。これらは「何を実現するか(機能)」ではなく「どのように実現するか(品質・制約)」を規定します。
解法ステップ
- 「非機能要件とは何か」を短く定義する(品質属性・制約)。
- 各選択肢を「機能(何を)」か「非機能(どのように)」かで分類する。
- 非機能に該当する選択肢を選ぶ(技術基準・標準・品質に関するものを選択)。
- あいまいな選択肢は「目的(業務)」か「手段(技術)」かを基準に判定する。
選択肢別の誤答解説
- ア: 業務を構成する機能間の情報(データ)の流れを明確にする。
→ これは業務フローやデータフローの定義で、どの機能がどのデータを扱うかを示すため、機能要件寄りです。非機能要件ではありません。 - イ: システム開発で用いるプログラム言語に合わせた開発基準、標準の技術要件を作成する。
→ 正解。言語や開発基準は技術的制約や品質確保のための非機能要件に該当します。 - ウ: システム機能として実現する範囲を定義する。
→ これは機能のスコープ定義であり、何を実現するかを示すため機能要件に当たります。非機能要件ではありません。 - エ: 他システムとの情報授受などのインタフェースを明確にする。
→ インタフェース仕様(データフォーマットやAPI)は通常機能要件やインテグレーション仕様に分類されます。性能・暗号化などの付随する非機能項目は別途定義されます。
よくある誤解
- 機能と非機能を混同する:データフローやインタフェースは「どの機能がどのデータを扱うか」という機能要件寄りとされることが多いです。
- インタフェース定義を非機能と誤認:外部接続の性能要件は非機能ですが、インタフェース仕様自体(交換フォーマット・API)は基本的に機能仕様に含まれます。
- 実装詳細=非機能と考える誤り:選定した言語やフレームワークは制約として非機能に含めますが、アルゴリズムの細かい実装手順は設計・実装フェーズの詳細です。
補足コラム
非機能要件はSRS(要求仕様書)で品質属性として明確に記述することが望ましいです。代表的な非機能例は性能(応答時間、スループット)、可用性、拡張性、保守性、セキュリティ、運用性、法令遵守、開発技術基準などです。実務では「測定可能な基準(例:応答時間は2秒以下、可用性99.95%)」に落とし込むことが重要です。また、インタフェース自体は機能仕様と見なすのが一般的ですが、インタフェースの性能要件やセキュリティ要件は非機能として扱います。
FAQ
Q: プログラミング言語の指定は本当に非機能要件ですか?
A: はい。言語やプラットフォームの指定は開発制約であり、品質や運用に影響するため非機能要件に含まれます。
A: はい。言語やプラットフォームの指定は開発制約であり、品質や運用に影響するため非機能要件に含まれます。
Q: インタフェース仕様は非機能要件になり得ますか?
A: インタフェースの「形式・データ項目」は機能仕様ですが、インタフェースの「性能や暗号化要求」は非機能要件です。用途ごとに分けて記載します。
A: インタフェースの「形式・データ項目」は機能仕様ですが、インタフェースの「性能や暗号化要求」は非機能要件です。用途ごとに分けて記載します。
Q: 非機能要件はどの段階で定義すべきですか?
A: 要求定義~基本設計段階で明確にし、設計・検証で評価指標として使えるようにします。
A: 要求定義~基本設計段階で明確にし、設計・検証で評価指標として使えるようにします。
関連キーワード: 非機能要件、品質属性、開発基準、技術要件、機能要件、インタフェース仕様、要求定義、SRS、性能要件、保守性、セキュリティ

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

