- AWS Builder Center›
- builders.flash
AWS Transform for mainframe と GenU で COBOL プログラム説明書を作ってみよう - 後編: フローチャート等の図表の生成
2025-11-04 | Author : 皆川 元
はじめに
こんにちは、Mainframe Modernization Specialist Solution Architect の皆川元です。
AWS Transform for mainframe (ATX) を使うと、メインフレーム上の JCL や COBOL コードをドキュメント化したり、Java にリファクタリングすることができます。従来 COBOL プログラムの処理内容を理解するには COBOL スキルが必要だったところ、COBOL 未経験の開発者にも理解できるよう説明文が生成されるだけでも価値がありますが、ATX が出力する PDF は英文です。また、日本の SI の現場で使われているプログラム設計書には、文章による記述に加えて、各種関連図やフローチャート等の図表により、理解を促進する工夫が見られます。
本記事では、AWS の生成 AI サービス用サンプルアプリケーション Generative AI Use Case JP (GenU) を使って、ドキュメントを日本語化し、ドキュメントを補完する各種図表を生成する方法を紹介します。前編/後編の 2 回に分けてご説明しますが、今回は COBOL プログラムのフローチャート、データフロー図、ファイルレイアウト、CRUD 表の生成を取り上げます。更に、JCL の依存関係図とフローチャートの生成手順も示します。
[前編] ドキュメント日本語化と依存関係図生成
[後編] フローチャート等の図表の生成(今回)
ご注意
本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。
builders.flash メールメンバー登録
builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。
ビジネスロジックの抽出
ATX のビジネスロジック抽出機能は、2025 年 5 月 15 日付けで ATX の一般提供が開始された時点でパブリックプレビューでしたが、2025 年 7 月 16 日付けで一般提供が開始されました。この機能で抽出したビジネスロジックには、フロー図も含まれます。
抽出したビジネスロジックを表示してスクロールダウンすると、[Flow diagram and functional rules] セクションにフロー図が表示されます。このフロー図は、ファイル単位/テーブル単位のデータフローに、制御フローを組み合わせたものになっています。初期表示では、[Show] 欄で [High-Level Overview] が選ばれていて、 該当のプログラムもしくは JCL のフロー全体が表示されています。このドロップダウンを切り替えることで、特定のビジネスロジックにフォーカスし、クローズアップすることができます。
複雑なフロー図では、画面のレイアウト上に全体が表示し切れない場合があります。そのときは、抽出結果が格納されている S3 バケットにAWS マネジメントコンソールでアクセスし、ダウンロードします。
ダウンロードしたファイル bre_output.zip 内で該当のプログラムもしくは JCL の HTML を特定し、ブラウザで開くとフロー図の全体を見ることができます。
プログラムの処理内容のフローチャートの生成
対象のプログラムのドキュメントを ATX で表示し、XML をダウンロードします。
XML ファイルのテキストをコピー
ダウンロードした XML ファイルをメモ帳等で開いて、<FlowchartRepresentation> ~ </FlowchartRepresentation> タグで括られた部分を見つけます。その中にネストされている‘<![CDATA[’ ~ ‘]]>’ の間のテキストをコピーします。
フローチャートを生成
GenU のメニューで [ダイアグラム生成] を選び、図の種類に [フローチャート] を指定します。
上でコピーしたテキストをプロンプトにペーストし、[生成] を押下します。
フローチャートをダウンロード
フローチャートが生成されたら、必要に応じて [SVG] もしくは [PNG] を押下してダウンロードします。
[準備] GenU システムプロンプトの調整
GenU の [チャット] に切り替えて、以下のようにシステムプロンプトを変更します。
システムプロンプトを表示
[システムプロンプト] をクリックして展開表示します。
デフォルト時の注意事項
デフォルトでは、入力された質問文から言語を判断するようになっています。このままでは、ソースコードを外国語と判断して誤作動する場合があります。
システムプロンプトを変更
「あなたはチャットでユーザーを支援するAIアシスタントです。」のように変更して、[保存] ボタンを押下します。
システムプロンプトのタイトルを設定
適当なタイトルを設定して、[作成] ボタンを押下します。
システムプロンプトの呼びだし
保存したシステムプロンプトは、以下の操作により呼び出すことができます。
チャット画面の右端に表示されている本のアイコンをクリックします。
保存したシステムプロンプトを選択
すると、この画面のように展開表示されます。上で保存したシステムプロンプトをクリックすると、今から行うチャットに設定されます。
プログラムのデータフロー図の生成
データフローの生成は、Mermaid 記法による記述と、その視覚化の二段階で行います。
対象のプログラムのコードと、そのプログラムが参照するコピーブックおよび BMS マップを添付します。このとき、以下の点に注意します。
- GenU に添付できるよう、ファイルの拡張子を「.txt」に変更します。
- 添付するファイルが UTF-8 でエンコーディングされていることを確認します。ファイルのエンコーディングが UTF-8 以外の場合、GenU が全角文字を適切に読み込めないことがあるため、プロンプトに添付する前に UTF-8 にエンコードし直します。
- GenU に添付できるファイル数は 5 個までという制約があります。この制約を超える場合は、プログラムをエディターで編集し、COPY ステートメントをコメントアウトし、対象のコピーブックの内容を直接コピー&ペーストして埋め込み、添付するファイル数が 5 個以内になるよう調整します。
- BMS マップとそのコピーブックは、拡張子が異なりますが、名称が同じなので、GenU 添付時に重複しているというエラーになります。この状態を解消するため、名称が重複しないよう変更して調整します (e.g. COTRN02.bms → COTRN02-bms.txt, COTRN02.cpy → COTRN02.cpy.txt)。
プロンプトに指示を入力
まず、以下のようにプロンプトに入力します。
CBSTM03A内のデータフローを、Mermaidによりレイアウトして下さい。ファイル内のデータ項目は、それぞれの枠内にまとめて列挙します。
対象のプログラムと COBOL コピーブック、CALL で呼び出しているサブプログラムのファイルを添付して、送信します。
データフローをコピー
Mermaid 記法によるデータフローが生成されたら、生成部分の右上隅のコピーボタンをクリックして、コピーします。
データフローを生成
Mermaid 記法の記述を視覚化するツールはいくつかあります。GenU のメニューで [ダイアグラム生成] を選び、図の種類に [フローチャート] を指定して、視覚化することも可能です。生成 AI を使わなくても良いので、別のツールで視覚化した結果を以下に示します。
ファイルレイアウトの生成
GenU のチャットに戻ります。
プロンプトに以下のように⼊⼒し、送信します。データフロー⽣成時に添付したファイルが引き続き GenU に認識されているため、同じファイルを改めて添付し直す必要はありません。
各ファイルのレイアウトを表形式で表示して下さい
レイアウトの出力
すると、各ファイルのレイアウトが出力されます。
データ項目の CRUD (Create, Read, Update, Delete) 表の生成
続いて、プロンプトに以下のように入力し、送信します。
VSAMファイル別およびDb2テーブル別にデータ項目単位のCRUDをそれぞれ表形式で表示して下さい
CRUD の出力
すると、各ファイルのデータ項目単位の CRUD が出力されます。
JCL の依存関係図の生成
JCL の図表も COBOL プログラムと同様の操作で生成することができます。
GenU のメニューで [ダイアグラム生成] を選び、図の種類に [マインドマップ] を指定します。
JCL POSTTRAN の依存関係図を生成する場合は、プロンプトに以下のように入力します。
POSTTRAN.jclの依存関係を視覚化して下さい。SystemおよびFile declaration assignementへの依存関係は含めません。Dataset useとExec programはnameのみ表示します。
改行後に dependencies ファイルの内容をコピー&ペーストし、[生成] を押下します。依存関係図が生成されたら、必要に応じて [SVG] もしくは [PNG] を押下してダウンロードします。
JCL のフロー図
JCL のフロー図は、冒頭に示したビジネスロジックの抽出結果に含まれています。左記をダウンロードしたファイル bre_output.zip 内の POSTTRAN.jcl の HTML 表示のフロー図の部分を以下に示します。
まとめ
今回は、ATX のアウトプットと生成 AI を使って、フローチャート、データフロー図、ファイルレイアウト、CRUD 表、そして JCL の依存関係図とフロー図を生成してみました。各社設計標準に従って開発者が手作業で記述する設計ドキュメントと比較すると、体裁や見栄えの点で敵いませんが、それなりの内容の図表が生成できることがわかりました。
メインフレームモダナイゼーションのプロジェクトでは、モダナイズそのものもさることながら、現行システム自体の機能やデータの理解、テストケースやテストデータが重要になります。そして、モダナイゼーション実施時には、このようなノウハウやナレッジが、現行システムの運用保守を担当するチームに求められます。一方で、技術的な有識者の引退や退職により、現行システムに関する体系的/包括的なナレッジが失われ、保守用ドキュメントが更新されないまま陳腐化している、という課題を耳にすることがあります。
今回ご紹介したような手法を使って、プログラムの構造や処理フローを可視化し、現行システムの理解を深めることができます。このアプローチを応用して、メインフレームモダナイゼーションによる AWS 活用に弾みを付けて頂ければと思います !
筆者プロフィール
皆川 元
アマゾン ウェブ サービス ジャパン合同会社
メインフレームモダナイゼーション スペシャリスト ソリューションアーキテクト
新卒で入社した会社で七年半アセンブラープログラミングしていました。AWS サービスを活用したメインフレームモダナイゼーションを検討中のお客様や AWS パートナー様をご支援しています。好きなサービスは AWS Nitro System です。