ネットワークスペシャリスト 2018年 午前2 問25
問題文
ソフトウェアのリファクタリングの説明はどれか。
選択肢
ア:外部から見た振る舞いを変更せずに保守性が高いプログラムに書き直す。(正解)
イ:ソースコードから設計書を再作成する。
ウ:ソフトウェア部品を組み合わせてシステムを開発する。
エ:プログラムの修正が他の部分に影響していないかどうかをテストする。
ソフトウェアのリファクタリングの説明【午前2 解説】
要点まとめ
- 結論:リファクタリングとは、外部から見た振る舞いを変えずに保守性を高めるためにプログラムを書き直すことです。
- 根拠:リファクタリングはコードの内部構造を改善し、可読性や拡張性を向上させる手法であり、動作は変えません。
- 差がつくポイント:動作を変えずにコードを改善する点と、設計書の再作成やテストとは異なることを理解することが重要です。
正解の理由
ア: 外部から見た振る舞いを変更せずに保守性が高いプログラムに書き直す。はリファクタリングの定義に合致します。リファクタリングはソフトウェアの機能を変えずにコードの品質を向上させる技術であり、保守性や可読性を高めることが目的です。
よくある誤解
リファクタリングは単なるバグ修正や機能追加ではなく、動作を変えずにコードを整理する作業です。設計書の再作成やテストは別の工程であり混同しやすいです。
解法ステップ
- 問題文の「リファクタリング」の意味を確認する。
- 選択肢の内容が「動作を変えずにコードを改善する」かを判断する。
- 設計書作成やテストなど、リファクタリング以外の作業を除外する。
- 保守性向上に焦点を当てた選択肢を選ぶ。
選択肢別の誤答解説
- イ: ソースコードから設計書を再作成する行為はリバースエンジニアリングに近く、リファクタリングとは異なります。
- ウ: ソフトウェア部品を組み合わせてシステムを開発するのはモジュール化やコンポーネントベース開発であり、リファクタリングではありません。
- エ: プログラム修正の影響をテストするのは回帰テストの説明であり、リファクタリングの定義とは異なります。
補足コラム
リファクタリングはソフトウェア開発の品質向上に不可欠な技術で、継続的インテグレーションやアジャイル開発で特に重視されます。代表的な手法にはメソッドの抽出や変数名の変更、重複コードの削除などがあります。
FAQ
Q: リファクタリングはバグ修正と同じですか?
A: いいえ。リファクタリングは動作を変えずにコードの内部構造を改善する作業で、バグ修正は動作の誤りを直すことです。
A: いいえ。リファクタリングは動作を変えずにコードの内部構造を改善する作業で、バグ修正は動作の誤りを直すことです。
Q: リファクタリングはテストが不要ですか?
A: いいえ。リファクタリング後に動作が変わっていないことを確認するためにテストは必須です。
A: いいえ。リファクタリング後に動作が変わっていないことを確認するためにテストは必須です。
関連キーワード: リファクタリング、保守性、コード品質、回帰テスト、ソフトウェア開発

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

