FE SUBJECT A
基本情報技術者 科目Aの問題解説:リファクタリングの説明はどれか。
問題
リファクタリングの説明はどれか。
- ア 外部から見た動作を変えずにソースコードの内部構造を改善すること(正解)
- イ 新機能を追加するためにソースコードを修正すること
- ウ バグを修正するためにソースコードを変更すること
- エ 異なるプログラミング言語にソースコードを変換すること
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲
正解と解説
正解:外部から見た動作を変えずにソースコードの内部構造を改善すること
どんな論点か:リファクタリングは、利用者から見える機能や動作を変えずに、ソースコードの内部構造を整理・改善する作業です。重複コードをまとめる、関数名を分かりやすくする、複雑な処理を分割するなどが例です。
ほかの選択肢:イの新機能追加、ウのバグ修正は外部の動作が変わる可能性があります。エは別言語への移植や変換であり、内部構造を改善するリファクタリングとは別の作業だと整理しておくと迷いません。
軽い類題:同じ結果を返すまま、長い関数を小さな関数に分けて読みやすくする作業はリファクタリングです。
つまずきポイント:リファクタリングは「機能追加」と同時に行わないのが原則です。内部構造を変える前後で外部の動作が同じであることを確かめるため、まずテストを用意し、各ステップ後にテストが通ることを確認しながら小さく進めます。こうすると不具合を早く検知でき、安全に改善できます。
他の選択肢はなぜ違う?
- イ新機能の追加は機能拡張で、外部の動作が変わる。
- ウバグ修正も外部の動作を変える作業。
- エ別言語への変換は移植(ポーティング)の話。
この問題について
IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。
公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。