令和4年度38マネジメント系

ITパスポート 令和4年度 問38:開発技術・手法に関する問題

XP(エクストリームプログラミング)の説明として,最も適切なものはどれか。

  • aテストプログラムを先に作成し,そのテストに合格するようにコードを記述する開発手法のことである。
  • b一つのプログラムを2人のプログラマが,1台のコンピュータに向かって共同で開発する方法のことである。
  • cプログラムの振る舞いを変えずに,プログラムの内部構造を改善することである。
  • d要求の変化に対応した高品質のソフトウェアを短いサイクルでリリースする,アジャイル開発のアプローチの一つである。正答
正答:D要求の変化に対応した高品質のソフトウェアを短いサイクルでリリースする,アジャイル開発のアプローチの一つである。

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは d です。

XP(エクストリームプログラミング)は、ソフト作りのやり方の一つ。『ちょっと作っては見せて、また直して』を短くくり返して、お客さんの『やっぱりこう変えて』にすばやく対応する進め方です。料理を少しずつ味見して調整していくイメージ。

こういう『小刻みに進める開発のグループ』をアジャイル開発と呼び、XPはその仲間の一つです。

👉 覚え方:XP=アジャイル(すばやく・小刻み)の仲間。

ほかの選択肢:a テストを先に作る方法(TDD)/b 2人で1台を使って一緒に書く方法(これはXPの一部の技だけど『XP全体の説明』ではない)/c 中身だけきれいに整える作業(リファクタリング)。

標準試験対策の基準レベル

なぜこれが正解か

正解は d。XP(エクストリームプログラミング)は、要求変化に対応しながら高品質なソフトウェアを短いサイクルで反復リリースする、アジャイル開発手法の代表格。XP『全体』を説明しているのはdだけ。

各選択肢の解説

  • a テスト駆動開発(TDD)の説明。TDDはXPで使う具体的なプラクティスの一つだが、XP全体の定義ではない。
  • b ペアプログラミングの説明。これもXPのプラクティスの一つで、XPそのものの説明にはならない。
  • c リファクタリング(振る舞いを変えず内部構造を改善)の説明。これもXPのプラクティスの一部。

覚え方・ひっかけ注意

a・b・cは『XPの中で使う個別テクニック』、dが『XPという開発手法全体の説明』。問われているのは“XPの説明”なので、最も広く本質を表すdを選ぶ。『部分の技術』と『手法全体』を混同させるのが本問のひっかけ。

上級誤答論破・背景理論まで深掘り

理論的背景

XP(eXtreme Programming:エクストリームプログラミング)はKent Beckが1999年に著書「Extreme Programming Explained」で体系化したアジャイル開発手法で、「変化を抱擁する(Embrace Change)」を根本思想とする。ソフトウェア開発における変化(要求変更・技術変化・チーム変化)を敵とみなすのではなく、変化に対応できる設計と開発リズムを最初から組み込むという逆転の発想が核心である。

XPは5つの価値(コミュニケーション・シンプルさ・フィードバック・勇気・尊重)、14の原則、そして具体的な12のプラクティス(後に13に整理)から構成される階層モデルを持つ。正解dの「要求の変化に対応した高品質のソフトウェアを短いサイクルでリリースする、アジャイル開発のアプローチの一つ」がXP全体を最も正確に表す定義である。

アジャイルソフトウェア開発宣言(2001年、Kent BeckほかAgile Alliance)の4つの価値と12の原則は、XPを含むスクラム・FDD・DADなどの共通基盤であり、「動くソフトウェアを計画より重視」「顧客との協調を契約より重視」「変化への対応を計画遵守より重視」という3点がウォーターフォール型との哲学的対立点を表している。

実務での使われ方

XPのプラクティスのうち特に実務定着率が高いのが、テスト駆動開発(TDD:選択肢a)、ペアプログラミング(選択肢b)、継続的インテグレーション(CI)、リファクタリング(選択肢c)、小さなリリースの5つである。TDDは「Red→Green→Refactor」のサイクルで、テストを先に書いてから実装し、最後にコードを整理することで設計品質と仕様の明確化を同時に達成する。

実務での典型パターンは「スクラム(プロジェクト運営の枠組み)+XPのプラクティス(技術的品質担保)」のハイブリッドである。スクラムがスプリント計画・デイリースクラム・スプリントレトロスペクティブで開発リズムを作り、XPのTDD・CI・ペアプロでコード品質を担保する組み合わせは、SalesforceやSpotifyなどの高速開発組織でも採用されている。

ペアプログラミング(選択肢b)は単なる知識共有ではなく「ドライバ(コードを書く人)」と「ナビゲータ(全体設計を見渡してレビューする人)」の役割分担で、コードレビューのリアルタイム化によるバグ混入の抑制と、暗黙知の組織への定着を目的としている。

試験での位置づけ

ITパスポートのソフトウェア開発技法・手法分野における重要テーマで、「XPのプラクティス(部分)をXP全体の定義と取り違えさせる」問題構造が頻出である。本問がその典型で、aのTDD・bのペアプログラミング・cのリファクタリングはいずれもXP内の個別テクニックだが、これらを「XPの説明」として提示することで正答率を下げる設計になっている。

基本情報技術者(FE)では、スクラムのイベント(スプリント・デイリースクラム・スプリントレビュー・スプリントレトロスペクティブ)、バーンダウンチャート、ベロシティ、ユーザーストーリーとタスクの関係がXPと対比的に問われる。応用情報技術者(AP)ではカンバン(Kanban)、SAFe(Scaled Agile Framework)、LeSS(Large-Scale Scrum)など大規模アジャイルの手法まで範囲が広がる。

選択肢の発展補足

選択肢aのTDD(テスト駆動開発)は、テストコードを仕様書として機能させるため、実装の意図が常にテストで明示される。JUnit(Java)、pytest(Python)、RSpec(Ruby)などのユニットテストフレームワークで実践され、CI/CDパイプラインと組み合わせることでコード変更のたびに自動検証が走る仕組みが現代開発の標準となっている。

選択肢cのリファクタリング(Refactoring)はMartin Fowlerが「Refactoring: Improving the Design of Existing Code(1999)」で体系化した手法で、「外部から見た振る舞いを変えずに内部構造を改善する」ことが定義の核心である。コードの不吉な匂い(Bad Smell)として重複コード・長すぎるメソッド・過剰なコメントなど100種類以上のパターンが定義されており、これに対応するリファクタリング技法(Extract Method、Move Method等)を機械的に適用する。テスト(TDD)なしのリファクタリングはデグレードのリスクが高いため、両者はセットで実践するのが原則である。

出典・引用について

出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和4年度38/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

マネジメント系の他の過去問

35
system_audit
36
project_management
37
project_management
38
development_management
39
project_management

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビならITパスポートの過去問を解きながら学べます。