ITパスポート 2009年 秋期 問33
問題文
ソフトウェア詳細設計書に関する記述として、適切なものはどれか。
選択肢
ア:ソフトウェア詳細設計書には、システム結合テストのためのテスト仕様が含まれる。
イ:ソフトウェア詳細設計書に基づいてプログラミングが実施される。(正解)
ウ:ソフトウェア詳細設計書は、システム要件定義の終了を契機として作成が開始される。
エ:ソフトウェア詳細設計書は、将来のメンテナンス用として、単体テストが完了した後で完成させる。
🔒 解説は解答すると表示されます
ソフトウェア詳細設計書に関する記述【ITパスポート 解説】
正解の理由
ソフトウェア詳細設計書は、プログラムを実際に作るとき(プログラミング)に必要な、具体的で詳細な設計情報を記述する文書だからです。モジュール単位の処理手順、データ構造、インタフェース(他の部品とつながるための取り決め)などを示し、これに従ってプログラマがコードを書く流れになります。
用語の補足(初出):
- ソフトウェア詳細設計書:プログラム単位で「どう作るか」を細かく書いた設計書。
- プログラミング:設計に基づいてコンピュータが実行するコードを書く作業。
解法ステップ
- 問題文のキーワード「ソフトウェア詳細設計書」が何を意味するか確認する。
→ 「詳細設計」はコードに落とすための設計。 - 各選択肢がどの開発工程(要件定義、基本設計、詳細設計、プログラミング、単体テスト、結合テストなど)に対応するかを当てはめる。
- 「詳細設計」と「プログラミング」は前後関係が明確なので、それに合致する選択肢を選ぶ。
- 最も妥当なのは「詳細設計に基づいてプログラミングが実施される」→ イ。
短い覚え方:要件定義→基本設計→詳細設計→プログラミング→単体テスト→結合テスト。
選択肢別の誤答解説
-
ア: ソフトウェア詳細設計書には、システム結合テストのためのテスト仕様が含まれる。
誤り。システム結合テスト(複数のサブシステムや外部システムをつなげて行うテスト)の仕様は、一般に「テスト仕様書」や「結合テスト仕様書」にまとめます。詳細設計は主にモジュール内部の作り方やインタフェース仕様を記載します。単体テストの項目が含まれることはありますが、結合テスト全体の仕様までは含めないのが普通です。 -
イ: ソフトウェア詳細設計書に基づいてプログラミングが実施される。
正解。詳細設計はプログラミングの直接の指針となる文書で、コードに落とすための具体的な仕様が書かれます。 -
ウ: ソフトウェア詳細設計書は、システム要件定義の終了を契機として作成が開始される。
誤り。システム要件定義(何を実現するかを決める工程)の終了後すぐに詳細設計が始まるとは限りません。一般的には要件定義→基本設計(外部設計)→詳細設計、という工程で進みます。基本設計で機能の構成や外部仕様を固めてから、詳細設計で内部設計を行います。 -
エ: ソフトウェア詳細設計書は、将来のメンテナンス用として、単体テストが完了した後で完成させる。
誤り。詳細設計書はプログラミング前に完成させるべき文書です。単体テスト(モジュールごとのテスト)で使う情報は詳細設計書に含まれることが多く、単体テスト完了後に初めて詳細設計書を作るのは順序が逆になります。メンテナンス用に更新することはありますが、完成時期の記述としては不適切です。
よくある誤解
-
「詳細設計=テスト仕様書」だと思う誤解
→ 詳細設計は主に実装(プログラミング)向けの仕様です。テスト仕様は別に作るのが一般的です。ただし、単体テスト項目(モジュールの入力や期待値)は詳細設計に記載されることがあります。 -
「要件定義が終わったらすぐ詳細設計」だと思う誤解
→ 実務では要件定義の次に基本設計(外部設計)を行い、その上で詳細設計に入ります。段階を踏むことで全体の整合性を保ちます。 -
「詳細設計はドキュメント化不要。プログラミングだけで良い」
→ アジャイルなどで設計書を軽くする場合もありますが、特に大きなシステムや保守が必要なシステムでは詳細設計は重要です。コードだけでなく文書化しておくと後の保守が楽になります。
補足コラム
設計書の階層とテストの対応(簡単図解イメージ)
- 要件定義(何を作るか)
↓ - 基本設計 / 外部設計(どう見えるか、システム全体の構成)
↓ - 詳細設計(どのモジュールがどう動くか。ここでプログラミングの材料が揃う)
↓ - プログラミング(コードを書く)
↓ - 単体テスト(モジュール単位の動作確認)
↓ - 結合テスト・システムテスト(モジュール間やシステム全体での検証)
覚えやすいポイント:詳細設計は「設計の中で最もプログラミングに近い段階」です。
また、開発手法によっては設計と実装が並行することもあります(例:アジャイル開発)。その場合でも「モジュールをどう作るか」というレベルの設計は必要です。
FAQ
Q1: 詳細設計書には何を書けばいいですか?
A1: 主にモジュールやクラスごとの処理手順、入力・出力、データ構造、外部インタフェースの仕様、エラー処理の方針、単体テストの観点(テストケースの概要)などを書きます。読み手が迷わずプログラミングできるレベルが目安です。
A1: 主にモジュールやクラスごとの処理手順、入力・出力、データ構造、外部インタフェースの仕様、エラー処理の方針、単体テストの観点(テストケースの概要)などを書きます。読み手が迷わずプログラミングできるレベルが目安です。
Q2: 小規模プロジェクトでも詳細設計書は必要ですか?
A2: 小規模なら必須ではない場合もありますが、仕様の共有や保守を考えると簡易な詳細設計を作ることは有益です。ドキュメントは「やりすぎず、足りなすぎず」が大切です。
A2: 小規模なら必須ではない場合もありますが、仕様の共有や保守を考えると簡易な詳細設計を作ることは有益です。ドキュメントは「やりすぎず、足りなすぎず」が大切です。
Q3: 詳細設計と基本設計の違いは何ですか?
A3: 基本設計(外部設計)はシステム全体の構成や機能の境界、外部とのやり取り(UIや他システムとの接続)を決めます。詳細設計は、基本設計で決めた内容を実際にどう実装するか(モジュール内部の処理)に落とし込みます。
A3: 基本設計(外部設計)はシステム全体の構成や機能の境界、外部とのやり取り(UIや他システムとの接続)を決めます。詳細設計は、基本設計で決めた内容を実際にどう実装するか(モジュール内部の処理)に落とし込みます。
関連キーワード: ソフトウェア詳細設計書、詳細設計、基本設計、要件定義、プログラミング、単体テスト、結合テスト、テスト仕様書、ソフトウェア開発プロセス、V字モデル

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

