ITパスポート 2022年 問38
問題文
XP(エクストリームプログラミング)の説明として、最も適切なものはどれか。
選択肢
ア:テストプログラムを先に作成し、そのテストに合格するようにコードを記述する開発手法のことである。
イ:一つのプログラムを2人のプログラマが、1台のコンピュータに向かって共同で開発する方法のことである。
ウ:プログラムの振る舞いを変えずに、プログラムの内部構造を改善することである。
エ:要求の変化に対応した高品質のソフトウェアを短いサイクルでリリースする、アジャイル開発のアプローチの一つである。(正解)
🔒 解説は解答すると表示されます
XP(エクストリームプログラミング)の説明【ITパスポート 解説】
正解の理由
XP は英語で Extreme Programming(エクストリームプログラミング)と呼ばれる、アジャイル開発(迅速に変化に対応するソフトウェア開発の考え方)の一つです。XP の目的は、要求の変化に柔軟に対応しつつ、高品質なソフトウェアを短いサイクルで繰り返しリリースすることです。短い反復(イテレーション)で動くソフトを見せ、フィードバックを得て改善していく点が特徴です。
選択肢の中でこれを最も的確に表しているのが エ の記述です。なぜなら、他の選択肢は XP の中で使われる「個別のプラクティス(実践方法)」を説明しているに過ぎず、XP 全体の定義にはなっていないからです。
解法ステップ
- 問題文のキーワードを確認:「XP(エクストリームプログラミング)の説明として最も適切」→ 全体像を問われている。
- 各選択肢を「全体の定義か、個別の手法か」で分類する。
- 個別手法(TDD・ペアプログラミング・リファクタリング)は XP に含まれるが、説明としては不十分。
- 全体像を示す選択肢が エ であると判断する。
選択肢別の誤答解説
-
ア: 「テストプログラムを先に作成し、そのテストに合格するようにコードを記述する開発手法」
- これは TDD(Test Driven Development:テスト駆動開発)を説明しています。TDD は XP の中で推奨される重要なプラクティスの一つですが、XP 全体の定義ではありません。
- 補足:TDD は「テストを先に書き、そのテストを通すために最小限のコードを書く」を短いサイクルで繰り返す手法です。
-
イ: 「一つのプログラムを2人のプログラマが、1台のコンピュータに向かって共同で開発する方法」
- これはペアプログラミング(pair programming:2人で1つの作業を行う手法)を表します。ペアプログラミングも XP の代表的な実践の一つですが、これだけでは XP 全体の説明になりません。
-
ウ: 「プログラムの振る舞いを変えずに、プログラムの内部構造を改善すること」
- これはリファクタリング(refactoring:内部構造改善のこと)です。コードの品質向上のために頻繁に行う作業で、XP の中でも重視されます。しかし、XP の「全体像」ではないため不正解です。
-
エ: 「要求の変化に対応した高品質のソフトウェアを短いサイクルでリリースする、アジャイル開発のアプローチの一つである」
- これは XP の本質を正しく表しています。短いイテレーション、頻繁なリリース、フィードバック重視、高品質確保のための多数のプラクティス(TDD、ペアプログラミング、リファクタリングなど)を含む点が合致します。
よくある誤解
-
XP = TDD と考える誤解
- TDD は XP の重要な要素ですが、XP はそれ以外にもペアプログラミングや継続的インテグレーション(CI:継続的に統合する自動化プロセス)、顧客との密な連携などを含む総合的な方法論です。
-
XP は「ペアプログラミングだけ」を指す誤解
- ペアプログラミングは一つの手法であり、XP の実践の一部です。XP 全体はプロセスや文化、複数の実践の組み合わせです。
-
XP は規模の小さいプロジェクト専用という誤解
- XP は小~中規模で特に効果的ですが、原則やプラクティスを適切に取り入れれば大規模プロジェクトでも一部有用です。組織の状況によって適用の仕方を工夫する必要があります。
補足コラム
- XP の成立と背景:XP は 1990年代後半に Kent Beck(ケント・ベック)らによって提唱されました。ソフトウェア開発の不確実性が高い状況で、早いフィードバックと継続的改善により失敗リスクを下げることを目指しています。
- XP の代表的プラクティス(いくつか):
- TDD(Test Driven Development:テスト駆動開発)
- ペアプログラミング(pair programming)
- リファクタリング(refactoring)
- 継続的インテグレーション(CI:Continuous Integration)
- 小さなリリース(short releases)
- 顧客と開発者の密なコミュニケーション(on-site customer)
- 実務でのイメージ:顧客の要求が途中で変わっても、2週間ごとに動くソフトを出して確認しながら進めるため、大きな手戻りを防ぎやすくなります。
FAQ
Q1: XP とアジャイルの違いは何ですか?
A1: アジャイルは考え方や価値観の集合です。XP はその考え方に基づく具体的な実践方法の一つです。言い換えれば、XP はアジャイルの「やり方」の一つです。
A1: アジャイルは考え方や価値観の集合です。XP はその考え方に基づく具体的な実践方法の一つです。言い換えれば、XP はアジャイルの「やり方」の一つです。
Q2: TDD は XP 以外でも使えますか?
A2: はい。TDD は XP に由来しますが、XP を採用していないチームでも品質向上のために単独で導入できます。
A2: はい。TDD は XP に由来しますが、XP を採用していないチームでも品質向上のために単独で導入できます。
Q3: ペアプログラミングは生産性を下げませんか?
A3: 一見コストが高く見えますが、バグ削減や知識共有の面でメリットが大きく、長期的には生産性向上につながることが多いです。
A3: 一見コストが高く見えますが、バグ削減や知識共有の面でメリットが大きく、長期的には生産性向上につながることが多いです。
Q4: XP を全部そのまま導入する必要がありますか?
A4: 必要はありません。プロジェクトや組織の状況に合わせて、効果的なプラクティスを選んで導入するのが現実的です。
A4: 必要はありません。プロジェクトや組織の状況に合わせて、効果的なプラクティスを選んで導入するのが現実的です。
関連キーワード: XP、エクストリームプログラミング、アジャイル、アジャイル開発、テスト駆動開発、TDD、ペアプログラミング、リファクタリング、継続的インテグレーション、イテレーション、オンサイトカスタマー

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

