【要約】JCLから関係台帳を作り、トレースできるまで――6 JOB(50 STEP)のテストJCLで検証した [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
レガシー移行の現行分析において、エンジニアはプログラム単体では把握困難なジョブ間の依存関係の特定に直面している。具体的には以下の課題が存在する。
- ・プログラム単体では、どのJOBから呼ばれ、どのファイルを受け渡すかの全体像が見えにくい。
- ・生成AIを用いた解析では、出力形式を固定しても「判断」が揺らぎ、解析結果の再現性が確保できない。
- ・DD名やDISPから入出力を安易に推測すると、誤った依存関係が経路全体へ伝播するリスクがある。
// Approach
解析の再現性を確保するため、生成AIに直接判断させるのではなく、AIにPythonコードを書かせ、実行は固定されたコードで行う手法を採用した。
- ・検証用の正解である「Ground Truth(正解台帳)」を先に作成し、第三者監査を経て凍結する。
- ・「allocation(割当)」と「READS/CREATES(入出力)」を分離し、事実のみを記録する。
- ・図ではなく「edge(関係)」を正本として保存し、動的な経路再構成を可能にする。
- ・「CONFIRMED/CANDIDATE/UNRESOLVED」の状態を保持し、決定論的な挙動を担保する。
// Result
6 JOB(50 STEP)のテスト環境を用いた検証において、Pythonによる解析結果がGround Truthと完全に一致した。
- ・構造、割当、制御情報、関係(edge)、トレースの全項目で、不足・余分ともに0件を達成した。
- ・「事実」と「推測」を分離する境界を明確化し、監査に耐えうるデータ構造を確立した。
- ・今後は起点ファイルからのForward traceによる、全STEPのカバレッジ確認へ移行する。
Senior Engineer Insight
> レガシー移行の現行分析において、生成AIの揺らぎを認め、それをPythonによる固定処理へ逃がす設計は極めて実戦的だ。特に「事実」と「推測」を分離する設計は、大規模な依存関係の伝播ミスを防ぐ上で不可欠な防波堤となる。ただし、JCLの複雑な構文や標準ユーティリティの仕様をどこまで網羅できるかが、実運用における真のボトルネックになるだろう。