可視化はゴールではなく、理解のスタートに過ぎません。6回かけて作ってきた地図を、次はJava移行やクラウドリフトの判断材料としてどう使うか、そこまで見届けたくてこのまとめを書きました。
シリーズ全体の整理表
図1: COBOLコード可視化 — Division図・コールグラフ・Jarviz 3Dの3段階まとめ
3段階の可視化アプローチを目的・ツール・得られる情報の観点で整理します。
| 段階 | 可視化の種類 | 主なツール | 得られる情報 | 用途 |
|---|---|---|---|---|
| 1 | Division構造図 | PlantUML / Mermaid | プログラム骨格・COPY句・CALL依存 | プログラム単位の全体把握・ドキュメント化 |
| 2 | Paragraph Call Graph | Python(正規表現)+ Graphviz | PERFORM呼び出し連鎖・デッドコード候補 | 影響範囲調査・リファクタリング優先度判断 |
| 3 | Jarviz 3Dマップ | JSONL + jarviz-graph | 複数プログラムを横断した依存の全体俯瞰 | システム全体の構造把握・Java版との統合 |
JavaシリーズとのJSONL共通化
Javaシリーズ・COBOLシリーズの最大の特徴は、同じJSONLフォーマットでCall Graph情報を統合できる点です。 フィールドのマッピングをまとめます。
| JSONLフィールド | Java | COBOL |
|---|---|---|
appSetName | アプリケーション名 | システム名 |
artifactFileName | *.jar | *.cbl |
packageName | com.example.service | PROCEDURE(固定) |
className | クラス名 | PROGRAM-ID |
methodName | メソッド名 | Paragraph名(呼び出し先) |
callerClassName | 呼び出し元クラス名 | 呼び出し元PROGRAM-ID |
callerMethodName | 呼び出し元メソッド名 | 呼び出し元Paragraph名 |
💡 混在グラフの実用的な価値
JavaのWebフロントエンドからCOBOLバッチ処理まで、cat java.jsonl cobol.jsonl > all.jsonlの1行で統合グラフを生成できます。「どのJavaサービスが最終的にどのCOBOLプログラムを呼ぶか」が1画面で確認できるのは、モダナイゼーション計画の立案に非常に役立ちます。
モダナイゼーションへの展望
可視化はモダナイゼーションの「現状把握フェーズ」の道具です。 Call Graphが完成したあとに着手できる次のアクションを整理します。
次のステップ
本シリーズで構築したCall Graph解析基盤は、さらに以下の方向に発展できます。
- CI/CD組み込み: プルリクエスト時にCall Graphの差分を自動生成し、影響範囲をレビューに表示する
- グラフDB活用: Neo4j などにCall Graphを格納し、Cypher クエリで「特定Paragraphの全依存パス」を検索する
- ANTLR文法の活用: 正規表現ベースより精度の高い構文解析が必要な場合はANTLR4のCOBOL文法を使う
- コマーシャルツール連携: MicroFocus・IBM Z Open Editorなどの商用IDEが提供するCall Graph機能と組み合わせる
✅ シリーズ完走お疲れ様でした
Javaシリーズとともに活用することで、レガシーシステム全体を一枚の地図で見渡すことができます。可視化はゴールではなく「理解のスタート」です。地図を手に、次の設計へ進んでください。
COBOL可視化まとめでよくある誤り
可視化シリーズを通じて理解を深めた後の活用段階でも、ツール選定や出力結果の解釈に誤りが生じやすいポイントがあります。
| 誤り/失敗パターン | 何が起きるか | 正しい対処/防止策 |
|---|---|---|
| 1つの可視化ツールだけで全体を把握しようとする | Division構造・Call Graph・3D可視化それぞれの強みが活かせず、把握漏れが生じる | Division構造図→Paragraph Call Graph→Jarviz 3Dの順番で段階的に使い分けて全体像を構築する |
| 可視化結果を最終成果として扱い、コードを読まない | 可視化では表現できない条件分岐やデータ操作の詳細が見落とされ設計ミスにつながる | 可視化は「理解のスタート」と位置づけ、重要な処理フローは必ずソースコードで確認する |
| 古いCOBOLソースに対して正規化をせずに可視化ツールを適用する | 固定形式フォーマットや継続行が残ったまま解析され誤ったグラフが生成される | 可視化前に必ずnormalizationシリーズの正規化処理を適用してからツールを実行する |