基本情報技術者試験「リエンジニアリング」の問題
設計書が失われた既存プログラムから、ソースコードを解析して仕様や設計情報(処理構造やデータ構造)を抽出し、上位の設計文書を復元する技術はどれか。
ア要件や設計から実装へと上流から下流へ成果物を生成するフォワードエンジニアリング
イプログラムを実行して挙動を観察する動的テスト
ウ既存資産を作り直して品質を高めるリファクタリング
エ完成した実装物から逆向きに上位の設計図を起こすリバースエンジニアリング
正解
エ.完成した実装物から逆向きに上位の設計図を起こすリバースエンジニアリング
リバースエンジニアリングは、既存のプログラムやソースコードを解析して、その処理構造やデータ構造といった設計・仕様情報を抽出し、失われた上位の設計文書を復元する技術である。設問の記述に合致する。
?選択肢ごとの解説
ア ×フォワードエンジニアリングは要件・設計から実装へと上流から下流に成果物を生成する通常の開発方向であり、コードから設計を抽出する逆方向の技術ではない。
イ ×動的テストはプログラムを実行して挙動を確認するテスト技法であり、設計情報を抽出して文書化する技術ではない。
ウ ×リファクタリングは外部の振る舞いを変えずに内部構造を改善する技術であり、設計情報の抽出・復元そのものを目的とはしない。
エ ○リバースエンジニアリングは、既存のプログラムやソースコードを解析して、その処理構造やデータ構造といった設計・仕様情報を抽出し、失われた上位の設計文書を復元する技術である。設問の記述に合致する。
✎くわしく
既存システムの再生に関わる概念群は方向で整理できる。フォワードエンジニアリングは設計→実装の順方向、リバースエンジニアリングは実装→設計の逆方向、そして両者を組み合わせて既存システムを解析・再構築する取り組みがリエンジニアリングである。リバースは『情報を取り出す』段階、リエンジニアリングは『取り出した上で作り直す』全体活動という包含関係を押さえるとよい。
✓本番での押さえどころ
試験のコツ
『コードから設計・仕様を抽出』『逆方向』とあればリバースエンジニアリング、『解析した上で作り直す』ならリエンジニアリングと判断する。
覚え方
リバース=逆走。完成品(コード)から設計図へ逆向きにたどる、と方向で覚える。
よくある誤り
リバースエンジニアリングとリエンジニアリングを同一視しがちだが、前者は設計情報の抽出、後者は抽出を含めた再構築全体を指す点を区別する。
開発技術の他の問題
アジャイル開発の手法であるスクラムにおいて、スプリントごとに動作するソフトウェアを開発チームが実際に作り上げ、その成果物をプ…ソフトウェアのテストにおいて、プログラムの内部構造には着目せず、入力に対する出力が仕様どおりであるかを検証する手法を採用した…あるシステムのファンクションポイント(FP)を見積もったところ、未調整FPは200であった。技術的複雑度を表す調整係数が0.…ソフトウェアの企画から開発・運用・保守・廃棄までの各活動について、取得者と供給者が同じ言葉で役割や作業範囲を取り決められるよ…ある開発プロジェクトでは、要件定義・設計・実装・テストの各工程を上流から下流へ順に進め、前工程の成果物を承認してから次工程へ…開発対象を複数の部分に分け、各部分について計画・リスク分析・開発・評価の活動を繰り返し、評価のたびにリスクを見極めながら少し…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0096