基本情報技術者 2019年 秋期 午前(科目A) 問50
問題文
XP(eXtreme Programming)において、プラクティスとして提唱されているものはどれか。
選択肢
ア:インスペクション
イ:構造化設計
ウ:ペアプログラミング(正解)
エ:ユースケースの活用
XP(eXtreme Programming)において、プラクティスとして提唱されているものはどれか。【午前2 解説】
要点まとめ
- 結論: XPのプラクティスにはペアプログラミングが含まれ、継続的テストやリファクタリングと組み合わさって品質向上と知識共有を実現します。
- 根拠: XPは軽量なアジャイル手法で、具体的な実践(ペアプログラミング、TDD、継続的インテグレーション等)を明示的に推奨する点が特徴です。
- 差がつくポイント: 選択肢の用語が「XP固有のプラクティスかどうか」を判断基準にし、実践的なチーム作業を示すものを選びます。
正解の理由
XP(eXtreme Programming)が提唱する「プラクティス」は、日常の開発活動としてチームが習慣的に行う具体的手法を指します。代表的なプラクティスにはペアプログラミング、テスト駆動開発(TDD)、継続的インテグレーション、リファクタリング、シンプルデザイン、オンサイトカスタマー、スモールリリースなどがあります。
したがって「ペアプログラミング」は明確にXPのプラクティスに含まれ、選択肢の中で正解となります。正解は ウ です。
したがって「ペアプログラミング」は明確にXPのプラクティスに含まれ、選択肢の中で正解となります。正解は ウ です。
よくある誤解
- 「コードレビュー=XPのインスペクション」と混同する誤解:XPは形式的なインスペクションよりペアプログラミングの継続的な共同作業を重視します。
- 「ユースケースや構造化設計はXPのプラクティス」:それらは要求分析や設計手法であり、XPが特に推奨する日常的なプラクティス群とは性格が異なります。
- 「ペアプログラミングは全ての状況で効率が良い」と考える誤り:効果はチーム・タスクに依存し、コストと効果を評価して採用すべきです。
解法ステップ
- 問題文から対象が「XP(eXtreme Programming)」であることを確認します。
- XPの代表的プラクティス(ペアプログラミング、TDD、継続的インテグレーション等)を頭に思い浮かべます。
- 各選択肢が「日常的な開発プラクティス(XPが明示的に推奨)」か、それとも別のカテゴリ(設計手法、分析手法、品質保証手段)かを分類します。
- XPのプラクティスに該当する選択肢を選びます → ペアプログラミング(ウ)。
選択肢別の誤答解説
- ア: インスペクション
- 説明: インスペクションは形式的なレビュー手法で、ウォーターフォールや従来の品質保証で多用されます。XPはインスペクションよりもペアプログラミングなどの継続的な協働を重視するため、XP固有のプラクティスとは言えません。
- イ: 構造化設計
- 説明: 構造化設計は伝統的な設計技法の一種で、XPが掲げる「シンプル設計」は別概念です。構造化設計自体はXPのプラクティスには含まれません。
- ウ: ペアプログラミング
- 説明: XPの代表的プラクティスの一つで、二人一組で共同作業しコード品質とナレッジ共有を図る手法です。したがって正解は ウ です。
- エ: ユースケースの活用
- 説明: ユースケースは要求記述の手法であり、XPが特にプラクティスとして明示するものではありません(XPはユーザーストーリーなど軽量な要求管理を好む)。
補足コラム
ペアプログラミングは「ドライバー(実際にキーボードを操作する人)」と「ナビゲーター(設計や方針を考える人)」に役割を分け、短いスパンで交代します。これによりバグ発見が早まり、知識の共有が進みます。企業によってはコスト面や心理的抵抗から導入が難しい場合もありますが、熟練度の均一化や設計品質の向上など長期的メリットが期待できます。XP自体はKent Beckらによって提唱され、実践的なプラクティス群で迅速で柔軟な開発を目指します。
FAQ
Q1: ペアプログラミングはテスト駆動開発(TDD)とセットですか?
A1: 厳密なセットではありませんが、XPではTDDや継続的インテグレーションと組み合わせて使うことが推奨され、相乗効果が期待できます。
A1: 厳密なセットではありませんが、XPではTDDや継続的インテグレーションと組み合わせて使うことが推奨され、相乗効果が期待できます。
Q2: インスペクションとペアプログラミング、どちらが優れている?
A2: 目的や組織文化によります。インスペクションは形式的で規模の大きいレビューに向き、ペアプログラミングは日常的な品質向上と知識共有に有効です。
A2: 目的や組織文化によります。インスペクションは形式的で規模の大きいレビューに向き、ペアプログラミングは日常的な品質向上と知識共有に有効です。
Q3: 試験で見分けるコツは?
A3: 「XPが明示的に推奨する日常の開発プラクティスか」を基準に判断するとミスが少なくなります。
A3: 「XPが明示的に推奨する日常の開発プラクティスか」を基準に判断するとミスが少なくなります。
関連キーワード: XP, エクストリームプログラミング, ペアプログラミング, プラクティス, テスト駆動開発, 継続的インテグレーション, リファクタリング, シンプル設計, オンサイトカスタマー, アジャイル開発

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

