基本情報技術者 2011年 春期 午前(科目A) 問53
問題文
ウォータフォール型のソフトウェア開発において、運用テストで発見された誤りの修復に要するコストに関する記述のうち、適切なものはどれか。
選択肢
ア:外部設計の誤りは、プログラムだけでなく、マニュアルなどにも影響を与えるので、コーディングの誤りに比べて修復コストは高い。(正解)
イ:コーディングの誤りは、修復のための作業範囲がその後の全工程に及ぶので、要求定義の誤りに比べて修復コストは高い。
ウ:テストケースの誤りは、テストケースの修正とテストのやり直しだけでは済まないので、外部設計の誤りに比べて修復コストは高い。
エ:内部設計の誤りは、設計レビューによってほとんど除去できるので、もし発見されても、コーディングの誤りに比べて修復コストは安い。
🔒 解説は解答すると表示されます
ウォータフォールと修復コスト【午前解説】
正解の理由
正解: ア
外部設計(外部仕様)の誤りは、プログラムの実装だけでなく、ユーザ向けマニュアル、運用手順、テスト仕様、試験結果の再整理など多数の成果物に波及します。運用テストは下流(後工程)での検出にあたり、該当箇所を修正すると設計→実装→テスト→文書という複数工程での修正・再試験・再承認が必要になります。したがって、同様の誤りでも外部設計段階での誤りはコーディング段階の誤りよりも修復コストが高くなります。
外部設計(外部仕様)の誤りは、プログラムの実装だけでなく、ユーザ向けマニュアル、運用手順、テスト仕様、試験結果の再整理など多数の成果物に波及します。運用テストは下流(後工程)での検出にあたり、該当箇所を修正すると設計→実装→テスト→文書という複数工程での修正・再試験・再承認が必要になります。したがって、同様の誤りでも外部設計段階での誤りはコーディング段階の誤りよりも修復コストが高くなります。
解法ステップ
- 問題文のキーワード「ウォータフォール」「運用テスト(後工程での検出)」を確認します。
- ウォータフォールの原則を思い出し、「発見が遅れるほど修正コストが増える」ことを適用します。
- 各選択肢がどの工程の誤りを指すか(要求→外部設計→内部設計→コーディング→テスト)を対応させ、後工程での発見時の波及範囲を比較します。
- 最も広範囲に影響し得るもの(外部設計)を選びます。
選択肢別の誤答解説
- ア: 正しい。外部設計の誤りは実装・マニュアル・運用手順・テスト仕様などへ波及し、運用テストでの検出は多工程での手戻りを生むため修復コストが高くなります。
- イ: 誤り。コーディングの誤りは通常、ソース修正と単体テスト程度で済むことが多く、要求定義の誤りは設計・実装・テスト・マニュアルなど広範囲に影響し、修復コストはむしろ要求定義の誤りの方が高くなる傾向があります。
- ウ: 誤り。テストケースの誤りはテストケースの修正とテストやり直しで済むことが多く、外部設計の誤りほど幅広い成果物の修正を伴うことは通常ありません。テストケース誤りが仕様誤解に由来する場合は別ですが、問題文の比較では外部設計の方がコスト高です。
- エ: 誤り。内部設計の誤りは設計レビューで発見できることもありますが「ほとんど除去できる」と断言できず、発見が後工程になれば修復コストは上がります。コーディング誤りより常に安いとは限りません。
よくある誤解
- 「レビューでほとんどの設計誤りは確実に除去できる」→ レビューで多くは検出できますが全ては除去できず、特にユーザ要求と齟齬がある設計はレビューで見落とされやすいです。
- 「テストケースの誤りはテストのやり直しだけで済む」→ 多くはそうですが、テストケース誤りが仕様解釈の誤りに起因する場合は設計や要求へ波及することがあります。
- 「コーディング誤りは常に最も安く直せる」→ 早期に発見された場合は安く済みますが、設計に由来するコーディング誤りは修正範囲が広がることがあります。
補足コラム
- コスト増加のイメージ: 要求段階での欠陥発見は最も安価、設計や実装で見つかると中程度、運用テストやリリース後に見つかると非常に高額になるというのがウォータフォールでの一般的な考え方です。
- 対策: 欠陥の早期発見には要求と設計のレビュー、プロトタイピング、継続的なテスト自動化、成果物間のトレーサビリティ確保が有効です。V字モデルでも同様に上流工程での検証を重視します。
FAQ
Q. 運用テストとは何ですか?
A. 開発したシステムを運用環境に近い条件で総合的に検証するテストで、受入テストやシステムテストの後期工程に相当します。ここでの欠陥は下流で発見された欠陥です。
A. 開発したシステムを運用環境に近い条件で総合的に検証するテストで、受入テストやシステムテストの後期工程に相当します。ここでの欠陥は下流で発見された欠陥です。
Q. 外部設計と内部設計の違いは?
A. 外部設計はシステムが外部(ユーザや他システム)にどう見えるかを定義する仕様、内部設計は外部仕様を実現するための内部構造やモジュール設計を記述します。外部設計の方が影響範囲が広いことが多いです。
A. 外部設計はシステムが外部(ユーザや他システム)にどう見えるかを定義する仕様、内部設計は外部仕様を実現するための内部構造やモジュール設計を記述します。外部設計の方が影響範囲が広いことが多いです。
Q. レビューでほとんどの誤りは防げますか?
A. レビューは非常に有効で多くの欠陥を早期に検出できますが、曖昧な要求や利害関係者の認識差など、レビューだけでは見落とされる問題もあります。複数手段の組合せが重要です。
A. レビューは非常に有効で多くの欠陥を早期に検出できますが、曖昧な要求や利害関係者の認識差など、レビューだけでは見落とされる問題もあります。複数手段の組合せが重要です。
関連キーワード: ウォータフォール, 運用テスト, 外部設計, 修復コスト, 設計レビュー, 欠陥の早期発見, トレーサビリティ, V字モデル

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

