ITパスポート

問39

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

運用中のソフトウェアの仕様書がないので,ソースコードを解析してプログラムの仕様書を作成した。この手法を何というか。

選択肢

  • ア:コードレビュー
  • イ:デザインレビュー
  • ウ:リバースエンジニアリング
  • エ:リファクタリング
  • ア
  • イ
  • ウ
  • エ

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

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

運用中のソフトウェアで仕様書が存在しない、または整備されていない場合に、ソースコードを解析して仕様や設計情報を推定し、仕様書として文書化する手法は「リバースエンジニアリング」です。既存システムの理解や保守作業のために用いられます。

ア:不正解

コードレビューは、ソースコードを読み、誤りや改善点を指摘して品質を高める作業です。ソースコードから仕様書を作成する手法ではありません。

イ:不正解

デザインレビューは、設計段階の設計書などを関係者で確認し、要求を満たしているか、不備がないかを検証する作業です。ソースコード解析による仕様書作成とは異なります。

ウ:正解

リバースエンジニアリングは、運用中のソースコードなどを解析して、仕様書や設計情報を明らかにし文書化する手法です。問題文の内容に一致するため正解です。

エ:不正解

リファクタリングは、外部から見た動作を変えずに、内部構造を整理して保守しやすくする作業です。仕様書の作成を目的とする手法ではありません。

Point

この問題は、リバースエンジニアリングの定義を確認することがねらいです。ソースコードを解析して仕様を推定し、仕様書として文書化する行為がどの用語に当たるかを判断できるようにします。

解くために必要な知識

この問題を解くには、リバースエンジニアリングと周辺用語の違いを理解している必要があります。

用語の整理

用語名 意味 ポイント
リバースエンジニアリング 既存の製品やプログラムを解析し、仕様書や設計書などの設計情報を明らかにすることです。 「成果物(仕様書など)を作る」点が特徴です。
ソースコード プログラミング言語で記述された、プログラムの記述そのものです。 解析対象になります。
仕様書 ソフトウェアが提供すべき機能や動作条件などを定義した文書です。 リバースエンジニアリングで復元対象になり得ます。
コードレビュー 作成者以外がソースコードを確認し、誤りや改善点を指摘する作業です。 目的は品質確認であり、仕様書の作成ではありません。
デザインレビュー 設計内容が要求を満たすか、不備がないかを関係者で確認する作業です。 設計書を評価する作業であり、ソースコードから復元する作業ではありません。
リファクタリング 外部仕様を変えずに、内部構造を整理して可読性や保守性を高めることです。 仕様書を作る作業ではなく、コードを改善する作業です。

選択肢ごとの解説

ア:不正解

コードレビューは、ソースコードを読み、誤りや改善点を指摘して品質を高める作業です。ソースコードから仕様書を作成する手法ではありません。

イ:不正解

デザインレビューは、設計段階の設計書などを関係者で確認し、要求を満たしているか、不備がないかを検証する作業です。ソースコード解析による仕様書作成とは異なります。

ウ:正解

リバースエンジニアリングは、運用中のソースコードなどを解析して、仕様書や設計情報を明らかにし文書化する手法です。問題文の内容に一致するため正解です。

エ:不正解

リファクタリングは、外部から見た動作を変えずに、内部構造を整理して保守しやすくする作業です。仕様書の作成を目的とする手法ではありません。

まとめ

運用中のソフトウェアで仕様書が存在しない、または整備されていない場合に、ソースコードを解析して仕様や設計情報を推定し、仕様書として文書化する手法は「リバースエンジニアリング」です。既存システムの理解や保守作業のために用いられます。

理解すべき用語

  • リバースエンジニアリング

    既存の製品やソフトウェアを解析し、構造や仕様を推定する手法です。

  • ソースコード

    プログラムの処理手順を、プログラミング言語で人が読める形に書いた文字列です。

  • コードレビュー

    ソースコードを作成者以外が確認し、欠陥や改善点を見つける作業です。

  • デザインレビュー

    設計書などの成果物を関係者で確認し、欠陥を早期に見つけて品質を高める作業です。

  • リファクタリング

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

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

マイ単語帳
用語解説

リバースエンジニアリング

ソースコード

コードレビュー

デザインレビュー

リファクタリング