Rosarium

実践事例 / 公開物 / case

第4章 コードから仕様と依存関係を復元する

ソースコードからクラス・ファイルの役割と連携を読み解き、仕様と構造を整理する。実行フローや不要コードも確認し、人間が理解して変更できる基盤を作る。

公開:最終更新:

更新履歴

  1. 公開

ai / 設計 / リファクタリング / レガシー / rag

読む目的: 自然言語サービス・RAG・ナレッジ / AI × ソフトウェア開発 / 事例・実務

このBookの目次(全12章)
  1. 全体構成
  2. 第1章 仕様を答えられない状態から、復元すべき情報を決める
  3. 第2章 対象システムの変更を妨げる構造と知識の不足を整理する
  4. 第3章 調査の起点を作るため、ファイルとクラスの役割を整理する
  5. 第4章 コードから仕様と依存関係を復元する
  6. 第5章 処理の流れを復元し、変更影響を追えるようにする
  7. 第6章 人が読む仕様とAIが使うKnowledgeを分ける
  8. 第7章 UI操作と内部処理を結び付け、操作結果を追えるようにする
  9. 第8章 復元したKnowledgeを、根拠を確認できるQAへつなぐ
  10. 第9章 正しさ・出典・回答拒否から、QAの利用可否を評価する
  11. 第10章 評価結果をKnowledgeと回答範囲の改善へ戻す
  12. 第11章 仕様変更に追従できるKnowledge更新フローを作る
  13. 第12章 QAで暗号処理を調査し、人間の変更判断へつなぐ
目次
  1. ファイルの所在から、機能の役割へ進む
  2. AIの説明を、実コードと実行結果で確かめる
  3. 実行されない処理を、現行機能と混ぜない

現在位置:第4章・全12章

ファイルの所在から、機能の役割へ進む

プロジェクトの地図だけでは、各機能がどこに実装されているかは説明できない。そこで、主要なクラスやモジュールについて、役割、主なメソッド、他モジュールとの関係を整理した。

すべての行を同じ深さで読むのではなく、「何のために存在し、どの機能を担い、何と連携するか」を起点にした。データ取得、業務処理、UIとの連携といった役割を短く説明できるようにし、位置関係へ意味を加えた。

AIの説明を、実コードと実行結果で確かめる

GPTへ対象コードを渡して日本語の説明を生成させ、その内容を実際のコードと実行結果で検証した。処理の意図やデータの流れを整理する支援には使えるが、生成された説明を正しい仕様とはみなさない。

コードを読む作業と並行し、ソフトウェアをデバッグ実行して処理を追った。UI操作から呼び出されるクラス・メソッド、条件分岐で選ばれる経路を確認し、静的に読んだ構造と実際に動く構造の差を確かめた。

この照合により、AIが示した役割の候補を、人間が確認した説明へ変えていった。

実行されない処理を、現行機能と混ぜない

調査では、呼び出されないメソッド、到達しない処理、参照されないクラスも特定した。現行の構造理解を妨げていたデッドコードを明確に識別し、削除した。

ファイルの存在を、そのまま現行機能の存在と扱わないことが重要だった。プロジェクト構造、クラスの役割、実行フロー、不要コードの整理を合わせ、ソースコードと現在のシステム構造を対応させた。

ただし、要素の役割だけでは処理の順序や分岐を一目で追えない。次章では、確認した関係をフローとして表現する。