プロジェクトマネージャ 2017年 午前2 問18
問題文
ソフトウェアのリファクタリングの説明はどれか。
選択肢
ア:外部から見た振る舞いを変更せずに保守性が高いプログラムに書き直す。(正解)
イ:ソースコードから設計書を作成する。
ウ:ソフトウェア部品を組み合わせてシステムを開発する。
エ:プログラムの修正が他の部分に影響していないかどうかをテストする。
🔒 解説は解答すると表示されます
リファクタリング【午前2解説】
正解の理由
リファクタリングとは、ソフトウェアの外部から見た振る舞いを変えずに、内部のプログラム構造を改善することです。読みやすさや保守性を高めるため、重複した処理を整理したり、複雑な処理を分割したりします。
この説明に当てはまるのは、アです。機能や利用者から見た動作は変えず、保守しやすいプログラムに書き直す点が、リファクタリングの特徴です。
解法ステップ
- 「リファクタリング」という用語から、プログラムの内部構造の改善を思い出します。
- 改善の前後で、外部から見た振る舞いが変わるかを確認します。
- 振る舞いを変えずに保守性を高める説明を選びます。
選択肢別の誤答解説
- ア:正解です。外部から見た振る舞いを変えず、プログラムの内部を整理して保守性を高めます。
- イ:ソースコードを基に設計書を作成することです。既存のソフトウェアから設計情報を抽出する「リバースエンジニアリング」に当たります。
- ウ:既存のソフトウェア部品を組み合わせてシステムを開発することです。コンポーネントを利用した開発の説明です。
- エ:プログラム変更による影響がほかの部分に及んでいないか確認するテストです。「回帰テスト(リグレッションテスト)」に当たります。
よくある誤解
- 機能を追加することもリファクタリングだと思う
リファクタリングでは、原則として外部から見た振る舞いを変えません。機能追加とは区別します。 - プログラムを修正する作業はすべてリファクタリングだと思う
不具合修正や機能変更は、外部から見た振る舞いが変わる場合があります。内部構造の改善とは分けて考えましょう。 - 変更後に行うテストとリファクタリングを混同する
変更の影響を確認するのは回帰テストです。リファクタリングそのものではありません。
補足コラム
リファクタリングでは、変更の前後で同じ入力に対する出力や操作の結果が変わらないことを確認するのが基本です。そのため、変更前後の動作を確かめるテストを用意しておくと、内部構造を安全に改善できます。
FAQ
Q. リファクタリングは、プログラムの動作を変えないのですか?
A. 利用者から見た機能や動作は変えないのが原則です。一方、コードの構造や内部処理は改善します。
A. 利用者から見た機能や動作は変えないのが原則です。一方、コードの構造や内部処理は改善します。
Q. リファクタリングを行う目的は何ですか?
A. コードを理解しやすくし、将来の修正や機能追加をしやすくすることです。
A. コードを理解しやすくし、将来の修正や機能追加をしやすくすることです。
関連キーワード: リファクタリング、保守性、リバースエンジニアリング、コンポーネント開発、回帰テスト

\ せっかくなら /
プロジェクトマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

