平成25年度 秋期 ITパスポート試験 問31 解説 システム要件定義
システムが実現すべき応答時間などのシステムの品質を明確にする工程として, 適切なものはどれか。
- ア システムテスト
- イ システム要件定義 ✓ 正答
- ウ ソフトウェア詳細設計
- エ プログラミング
解説
システム開発の流れと要件定義の役割
この問題は、システム開発プロセスの各工程が何を目的としているかを問うものです。「応答時間」や「システムの品質」といった、システムが「何を達成すべきか」という目標を決める工程は、開発の最初期であるシステム要件定義で行われます。
システム要件定義とは何か
システム要件定義とは、これから作るシステムがどのような機能を持つべきか、またどの程度の性能(応答時間や処理能力、稼働率など)が必要かを、利用者側と開発側で合意する工程です。
システム開発は、家を建てる工程に例えられます。要件定義は「どのような家を建てたいか(部屋の数、広さ、住み心地の基準)」を設計図にする前の段階で決める作業です。ここで「応答時間」や「セキュリティレベル」といった非機能要件を明確にしておかないと、完成した後に「画面の切り替わりが遅い」「セキュリティが不安だ」といった致命的な手戻りが発生してしまいます。
誤った選択肢の考え方
なぜ他の選択肢が不適切なのか、それぞれの役割を整理します。
・システムテスト システムが仕様通りに動くかを確認する「答え合わせ」の工程です。要件定義で決めた性能が出ているかを、完成したシステムを使って検証します。
・ソフトウェア詳細設計 プログラムを書き始める直前の工程です。プログラムの具体的な構造や、データ項目の詳細を決めるなど、システム内部の仕組みを設計する段階です。
・プログラミング 設計書に基づいて、実際にプログラムコードを記述する実装工程です。
開発工程全体における位置づけ
システム開発は、大きく分けて「要件定義」→「設計」→「開発(プログラミング)」→「テスト」という順番で進みます。
要件定義は、後の工程すべてに影響を与える最重要プロセスです。ここで定義された「性能目標(応答時間など)」は、詳細設計の指針となり、最終的にはテスト工程で合格ラインとして判定されます。つまり、この問題は「何を作るかという決まり事(要件)」と「それを作るプロセス(設計・実装)」と「完成品を確かめるプロセス(テスト)」を区別できているかを問うているのです。
エンジニアの現場では、この「要件定義」が曖昧なままプロジェクトが進むと、期待した性能が出ずに大掛かりな修正が必要になるリスクが高まります。試験対策としては、各工程が「何を確定させるフェーズか」を言葉とセットで覚えるのが最短ルートです。