SC Workbook
科目 A-1 · 開発技術

リファクタリング

ソフトウェア開発におけるリファクタリングの説明として,適切なものはどれか。

  1. ア既存のソフトウェアの実行コードやソースコードを解析し,仕様や設計情報を抽出する。
  2. イプログラムを変更した後に,変更していない部分に影響が及んでいないかを確認するために,既存のテストを再実行する。
  3. ウ2 人の開発者が 1 台のコンピュータを共有し,一方がコードを書き,他方がそれをレビューしながら開発を進める。
  4. エプログラムの外部から見た振る舞いを変えずに,内部の構造を理解しやすく変更しやすいものに改善する。
正解と解説を見る

正解 エ

この問題の基礎知識

  • XP(エクストリームプログラミング)の主なプラクティスには,テスト駆動開発,ペアプログラミング,リファクタリング,継続的インテグレーションなどがある。
  • 回帰テスト(リグレッションテスト)は,プログラムの変更によって変更していない部分に悪影響(デグレード)が生じていないかを,既存のテストを再実行して確かめるテストである。
  • リバースエンジニアリングは,既存のソフトウェアを解析して仕様や設計情報を抽出することである。
  • 内部構造の改善は,重複の除去や命名の改善などを小さな単位で行い,その都度テストを実行して振る舞いが変わっていないことを確かめながら進める。
ア既存のソフトウェアの実行コードやソースコードを解析し,仕様や設計情報を抽出する。

既存のソフトウェアのコードを解析して,仕様や設計情報を明らかにするのはリバースエンジニアリングである。内部構造の改善を目的とする活動ではない。

イプログラムを変更した後に,変更していない部分に影響が及んでいないかを確認するために,既存のテストを再実行する。

変更による意図しない影響(デグレード)を確認するのは回帰テスト(リグレッションテスト)である。リファクタリングの際にも併用されるが,リファクタリングそのものではない。

ウ2 人の開発者が 1 台のコンピュータを共有し,一方がコードを書き,他方がそれをレビューしながら開発を進める。

2 人一組でコーディングとレビューを同時に行うのはペアプログラミングであり,XP のプラクティスの一つである。

エプログラムの外部から見た振る舞いを変えずに,内部の構造を理解しやすく変更しやすいものに改善する。正解

リファクタリングは,機能や外部仕様を変えずに重複の除去や命名の改善などで内部構造を整理する活動である。振る舞いが変わっていないことはテストで確認する。

検証用の出典出典照合済み
M. Fowler, Refactoring: Improving the Design of Existing Code
照合の根拠(4 件)

Fowler の書籍の代わりに,IPA のアジャイル開発版モデル契約とプラクティス活用ガイド編,AP シラバスで正解と各誤答肢を裏付けた

問題 ID A1-DEV-0101 · AI 作成のオリジナル問題 · 正解と各選択肢の根拠を出典の原文で確認しています。 照合日 2026-11-07

非公式の学習用アプリです(IPA とは関係ありません)。問題はすべて AI が作成したオリジナルで、誤りを含む場合があります。