システムアーキテクト 2018年 午前2 問05
問題文
ソフトウェア要件定義プロセスで定義する内容の具体例として、適切なものはどれか。
選択肢
ア:基幹システムから利用者の所属情報を取得するために、全てのサブシステムで共通の通信プロトコルを使用する。(正解)
イ:データエントリ画面における応答時間は、3秒以内とする。
ウ:窓口業務は、ソフトウェアで実現することと人手で実施する作業を組み合わせて運用する。
エ:利用者の利便性を考えて、受付端末は店舗の入り口から5メートル以内に設置する。
🔒 解説は解答すると表示されます
ソフトウェア要件定義項目【午前2解説】
正解の理由
ソフトウェア要件定義は、システムが外部とどうやり取りするかやソフトウェアに求められる機能・制約を明確にするプロセスです。選択肢の中で、全てのサブシステムで共通の通信プロトコルを使用するという仕様は、システム間インタフェースに関する明確な技術的要件であり、設計・実装に直接影響するため要件定義の典型例です。したがって、アが最も適切です。
(補足)非機能要件である応答時間のような項目も要件定義で扱われ得ますが、その取り扱い方は粒度によります。要件定義段階では「性能目標(例:応答性を重視する)」といった高レベルの合意を置き、数値目標(3秒以内等)は重要度に応じて要件定義で明示するか、詳細設計や性能要件の詳細化で決定する、という整理が実務上の正しい考え方です。
解法ステップ
- 各選択肢が「ソフトウェア要件(ソフト側が満たすべき仕様)」か「運用・配置・業務方針などソフト以外の要素」かを分類する。
- ソフトウェアの設計・実装に直接影響するか(インタフェース、データ仕様、機能・性能)を確認する。
- 選択肢のうち要件定義の成果物(要求仕様書、インタフェース仕様など)に記載される可能性が高いものを選ぶ。
- 判定:システム間共通プロトコルの指定はインタフェース仕様として要件定義に含めるため正解。
選択肢別の誤答解説
- ア: 正解。サブシステム間の通信プロトコルはインタフェース要件であり、設計・開発・テストに影響する。要件定義で決めておくことで整合性が取れる。
- イ: 誤りとされる理由は文脈上「要件定義で直ちに示すべき代表例」としてはやや性質が異なるため。イは「応答時間3秒以内」という具体的な非機能要件(性能指標)であり、非機能要件自体は要件定義で扱うことが一般的だが、数値目標を要件定義で決めるかどうかはプロジェクト方針次第である。重要な性能要件は要件定義で明確にするが、設問はソフトウェア的な相互作用(プロトコル)を問う意図であり、より代表的なアが正答となる。
- ウ: 窓口業務をソフトと人手で組み合わせる運用方針は業務設計や運用ルールに近く、「ソフトウェアがどの機能を実現するか」を示すことはできても、具体的なソフト要件というより業務分担の決定であり通常は業務要件や運用設計で扱う。
- エ: 端末の物理的な設置位置(店舗入り口から5メートル以内)は設置・施設制約であり、ハード配置の詳細設計や現場の運用方針に関する事項。ソフトウェア要件定義で扱う範囲としては不適切。
よくある誤解
- 非機能要件(性能や応答時間)は要件定義では扱わない:
- 誤りです。非機能要件も要件定義の重要な部分です。ただし、要件定義では「性能が重要である」「目標応答時間は〜目安とする」といった高レベルの合意を置き、詳細な数値や試験条件は後工程で詰めることが多い点を区別しましょう。
- 業務分担の決定は必ず要件定義で行うべき:
- 業務フローや自動化対象は要件定義で検討されますが、実際の運用の細部(誰が何をどのタイミングで行うか)は運用設計で確定することが多いです。
補足コラム
要件定義の成果物は大きく「機能要件」「非機能要件(性能・セキュリティ・可用性など)」「インタフェース仕様」「業務要件・運用制約」に分かれます。良い要件定義書は次の特徴を持ちます。
- 合意可能な粒度:関係者が合意できるレベルで記述(あまりに詳細だと設計段階の判断を縛り、あまりに抽象だと実装指針にならない)。
- 測定可能性:非機能要件は可能な限り測定可能な形(応答時間、可用性%など)で記述する。
- トレーサビリティ:要件とテストケース、設計項目を追跡できる。
例:非機能要件の表記例
- 性能(高レベル):データ入力画面の応答性を重視する。業務負荷ピーク時でもユーザ操作から画面表示までの平均応答時間を3秒以内とすることを目標とする(必要に応じて性能試験の条件を要件として付記)。
このように「目標値」を要件定義で記載し、性能試験条件や具体的なチューニング方針は詳細設計・性能設計で確定する運用が現実的です。
FAQ
Q. 応答時間のような数値的な非機能要件は必ず要件定義で決めるべきですか?
A. 必ずしもではありません。重要な性能目標は要件定義で明示して合意を得るべきですが、詳細な試験条件や実装上の達成手段は後工程で詰めるのが一般的です。
A. 必ずしもではありません。重要な性能目標は要件定義で明示して合意を得るべきですが、詳細な試験条件や実装上の達成手段は後工程で詰めるのが一般的です。
Q. 業務をソフトに置き換えるか人手で残すかは要件定義で決めてよいですか?
A. 主要な業務の自動化方針(どの業務をソフトで対応するか)は要件定義で扱いますが、日々の業務手順や細かい分担は運用設計で確定することが多いです。
A. 主要な業務の自動化方針(どの業務をソフトで対応するか)は要件定義で扱いますが、日々の業務手順や細かい分担は運用設計で確定することが多いです。
Q. インタフェース仕様は要件定義でどこまで決めるべきですか?
A. 外部との通信プロトコルやデータ形式など、相互接続に影響する事項は可能な限り要件定義で明確にしておくと設計・テスト工程での手戻りを減らせます。内部の実装方式は設計段階で決めます。
A. 外部との通信プロトコルやデータ形式など、相互接続に影響する事項は可能な限り要件定義で明確にしておくと設計・テスト工程での手戻りを減らせます。内部の実装方式は設計段階で決めます。
関連キーワード: 要件定義、非機能要件、インタフェース仕様、性能要件、運用設計、仕様書作成

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

