ITパスポート過去問 令和3年度(2021年)問48
既存のプログラムを,外側から見たソフトウェアの動きを変えずに内部構造を改善する活動として,最も適切なものはどれか。
選択肢
- ア:テスト駆動開発
- イ:ペアプログラミング
- ウ:リバースエンジニアリング
- エ:リファクタリング
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
外部から見た動作を変えずに、プログラムの内部構造を整理して読みやすさや保守のしやすさを高める活動はリファクタリングです。
Point
この問題は、リファクタリングの定義を理解しているかを確認しています。問題文の「外側から見た動きを変えずに」「内部構造を改善する」という条件に一致する用語を選べることがポイントです。
解くために必要な知識
この問題を解くには、リファクタリングと、関連する開発手法・活動の用語を区別して理解している必要があります。
用語の整理
各用語の意味
| 用語 | 意味 |
|---|---|
| リファクタリング | 外部から見た動作を変えずに、コードの構造を整理して、理解・修正・拡張をしやすくする活動です。 |
| テスト駆動開発(TDD) | テストを先に作り、テストに合格する最小限の実装を行い、必要に応じて改善を繰り返す開発手法です。 |
| ペアプログラミング | 2人で同じ作業を行い、実装と確認を同時に進める開発の進め方です。 |
| リバースエンジニアリング | 既存のソフトウェアを解析し、仕様や設計情報を推定・復元する活動です。 |
リファクタリングの判定基準
問題文の「外側から見たソフトウェアの動きを変えずに内部構造を改善する」は、試験上は次の条件を満たすものとして扱われます。
-
外部から見た動作は変えない
-
内部構造を改善する(重複の除去、処理の分割、命名の見直しなど)
選択肢ごとの解説
- ア:不正解
テスト駆動開発は、テストを先に作成してから実装と改善を進める開発手法です。内部構造を改善する場面はありますが、「外部から見た動作を変えずに内部構造だけを改善する活動」を指す用語ではありません。
- イ:不正解
ペアプログラミングは、2人で共同してプログラムを作る開発手法です。結果として品質向上につながることはありますが、問題文が示す「外部動作を変えずに内部構造を改善する活動」を指す用語ではありません。
- ウ:不正解
リバースエンジニアリングは、既存のソフトウェアを解析して仕様や設計を推定する作業です。内部構造を改善するのではなく、理解や情報の取り出しが中心のため該当しません。
- エ:正解
リファクタリングは、外部から見た動作を変えずに内部構造を整理し、保守性などを高める活動です。問題文の記述に一致するため正解です。
まとめ
外部から見た動作を変えずに、プログラムの内部構造を整理して読みやすさや保守のしやすさを高める活動はリファクタリングです。
マネジメント系 > 開発技術 > ソフトウェア開発管理技術
テスト駆動開発は、テストを先に作成してから実装と改善を進める開発手法です。内部構造を改善する場面はありますが、「外部から見た動作を変えずに内部構造だけを改善する活動」を指す用語ではありません。
ペアプログラミングは、2人で共同してプログラムを作る開発手法です。結果として品質向上につながることはありますが、問題文が示す「外部動作を変えずに内部構造を改善する活動」を指す用語ではありません。
リバースエンジニアリングは、既存のソフトウェアを解析して仕様や設計を推定する作業です。内部構造を改善するのではなく、理解や情報の取り出しが中心のため該当しません。
リファクタリングは、外部から見た動作を変えずに内部構造を整理し、保守性などを高める活動です。問題文の記述に一致するため正解です。