ITパスポート

問49

ITパスポート試験過去問 令和5年度(2023年)問49

リファクタリングの説明として,適切なものはどれか。

選択肢

  • ア:ソフトウェアが提供する機能仕様を変えずに,内部構造を改善すること
  • イ:ソフトウェアの動作などを解析して,その仕様を明らかにすること
  • ウ:ソフトウェアの不具合を修正し,仕様どおりに動くようにすること
  • エ:利用者の要望などを基に,ソフトウェアに新しい機能を加える修正をすること
  • ア
  • イ
  • ウ
  • エ

正解と解き方・学習ポイント(AI解説)

正解:ア
あなたの回答:未回答

リファクタリングとは、ソフトウェアが提供する機能仕様を変えずに、プログラムの内部構造を整理して改善することです。目的は、ソースコードを読みやすくし、修正や拡張がしやすい状態にすることです。

ア:正解

リファクタリングの説明です。機能仕様は変えず、ソースコードの構造を整理して読みやすさや修正のしやすさを高めます。

イ:不正解

リバースエンジニアリングの説明です。既存のソフトウェアを解析して、仕様や設計情報を明らかにします。

ウ:不正解

デバッグやバグ修正の説明です。不具合を直して仕様どおりに動かす作業であり、リファクタリングとは区別されます。

エ:不正解

機能追加の説明です。利用者の要望により新機能を追加する変更であり、外部仕様を変えないリファクタリングとは異なります。

Point

この問題は、リファクタリングが「外部から見た機能仕様は変えない」ことを前提に、内部構造だけを改善する作業であると理解しているかを確認することがねらいです。

解くために必要な知識

この問題を解くには、リファクタリングと、解析・不具合修正・機能追加といった作業の違いを理解している必要があります。

用語の整理

用語 意味
リファクタリング 外部仕様(利用者から見た機能や動作)を変えずに、設計やソースコードなどの内部構造を改善し、保守性や可読性を高めること

リファクタリングの具体例

  • 重複している処理を共通化する

  • 長い関数を複数の関数に分割する

  • 役割が大きすぎるクラスを分割する

他の選択肢に出てくる用語

用語 意味
リバースエンジニアリング 既存ソフトウェアを解析して、仕様や設計情報を取り出し、明らかにすること
デバッグ(不具合修正) プログラムの誤り(バグ)の原因を特定し、修正すること
機能追加(拡張) 利用者の要望などに基づいて新しい機能を追加し、外部仕様を変更すること

問題の解法手順

各選択肢の整理

リファクタリングの判定基準

リファクタリングは、次の2点を同時に満たす作業です。

  • 外部から見た機能仕様や動作は変えないこと

  • 内部構造(コードや設計)を改善すること

選択肢と用語の対応

選択肢 内容 該当する用語 正誤
ア 機能仕様を変えずに内部構造を改善する リファクタリング ○
イ 動作を解析して仕様を明らかにする リバースエンジニアリング ×
ウ 不具合を修正して仕様どおりに動かす デバッグ ×
エ 新しい機能を加える修正をする 機能追加 ×

選択肢ごとの解説

ア:正解

リファクタリングの説明です。機能仕様は変えず、ソースコードの構造を整理して読みやすさや修正のしやすさを高めます。

イ:不正解

リバースエンジニアリングの説明です。既存のソフトウェアを解析して、仕様や設計情報を明らかにします。

ウ:不正解

デバッグやバグ修正の説明です。不具合を直して仕様どおりに動かす作業であり、リファクタリングとは区別されます。

エ:不正解

機能追加の説明です。利用者の要望により新機能を追加する変更であり、外部仕様を変えないリファクタリングとは異なります。

まとめ

リファクタリングとは、ソフトウェアが提供する機能仕様を変えずに、プログラムの内部構造を整理して改善することです。目的は、ソースコードを読みやすくし、修正や拡張がしやすい状態にすることです。

理解すべき用語

  • リファクタリング

    外部仕様を変えずにプログラム内部の構造を整理し改善する作業です。

マネジメント系 > 開発技術 > ソフトウェア開発管理技術

マイ単語帳
用語解説

リファクタリング