平成29年度 プロジェクトマネージャ試験 午前II 問18
ソフトウェアのリファクタリングの説明はどれか。
- ア 外部から見た振る舞いを変更せずに保守性が高いプログラムに書き直す。
- イ ソースコードから設計書を作成する。
- ウ ソフトウェア部品を組み合わせてシステムを開発する。
- エ プログラムの修正が他の部分に影響していないかどうかをテストする。
解答・解説を見る
正解:ア
AI解説
リファクタリングとは、ソフトウェアの外部から見た振る舞い(機能・入出力)を変えずに、内部構造を整理して保守性・可読性の高いプログラムに書き直すことである。「外部仕様は不変、内部構造を改善」という2点がそろっているかが判断基準で、アがこれに該当する。 ア: 正しい。外部から見た振る舞いを変更せずに内部構造を改善するのはリファクタリングの定義そのものである。 イ: ソースコードから設計書などの上流成果物を復元するのはリバースエンジニアリングの説明である。 ウ: 既存のソフトウェア部品(コンポーネント)を組み合わせて開発するのは、コンポーネントベース開発・部品再利用の説明である。 エ: 修正が他の部分に悪影響を与えていないかを確認するテストは、リグレッションテスト(回帰テスト)の説明である。 💡 リファクタリングとセットで出るのがXP(エクストリームプログラミング)のプラクティス。リバースエンジニアリング・リグレッションテストとの3択混同が定番なので、「振る舞い不変+内部改善」のキーワードで即断する。
出典:平成29年度 秋期 プロジェクトマネージャ試験 午前II 問18 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。