平成28年度秋期 応用情報技術者試験 午前 問49

分野:システム開発技術(要件定義・設計・実装・テスト・レビュー・UML・オブジェクト指向・モジュール分割)|実際に出題されたIPA過去問題

ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。

  1.  ソースプログラムを解析してプログラム仕様書を作る。
  2.  ソースプログラムを探索して修正箇所や影響度を調べる。
  3.  ソースプログラムを見直して構造化されたプログラムに変換する。
  4.  ソースプログラムを分かりやすい表現に書き換える。
解答・解説を見る

正解:ア

AI解説

正解はア。リバースエンジニアリングは、既存のソフトウェアを解析して、その仕様や設計情報など、より上流の成果物を導き出す技術である。設計書が失われた古いシステムの保守などで、ソースプログラムを解析してプログラム仕様書や設計書を作成する作業がこれに該当する。開発の通常の流れ(仕様→コード)と逆方向(コード→仕様)であることが名称の由来である。 ア: 正解。ソースプログラムという下流の成果物から、プログラム仕様書という上流の成果物を導き出す作業はリバースエンジニアリングそのものである。 イ: 誤り。修正箇所や影響範囲を調べる作業は、保守における影響分析(影響調査)であり、仕様を導出するリバースエンジニアリングではない。 ウ: 誤り。既存プログラムを構造化されたプログラムに変換するのはリストラクチャリングの説明である。外部仕様を変えずに内部構造を改善する作業である。 エ: 誤り。ソースプログラムを分かりやすい表現に書き換えるのは、外部から見た振る舞いを変えずに内部を改善するリファクタリングに近い説明である。 💡 「コードから仕様書へ=リバース」「構造の作り直し=リストラクチャリング」「動作を変えずに書き直し=リファクタリング」の3用語をセットで区別する。リバースで得た仕様から再構築するのはリエンジニアリング(フォワードエンジニアリングとの組合せ)である。

出典:平成28年度 秋期 応用情報技術者試験 午前 問49 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「システム開発技術」分野の攻略ポイント

要件定義・設計・実装・テスト・レビュー・UML・オブジェクト指向・モジュール分割を扱います。テスト技法とモジュール結合度・凝集度は、定義を正確に押さえていれば計算も暗記も不要で確実に得点できます。

システム開発技術の攻略ポイントをすべて見る(要点6項目・ひっかけ3項目)→

同じ分野(システム開発技術(要件定義・設計・実装・テスト・レビュー・UML・オブジェクト指向・モジュール分割))の過去問