「ChatGPTにRPGのソースコードを貼り付ければ、仕様書(設計書)が出てくるんじゃないか?」
「仕様書ありますか?」と聞かれるたびに苦い思いをしてきた方ほど、そう考えたことがあるはずです。
しかし、実際やってみると期待通りにはいかなかったはずです。理由は明白で、ChatGPTのようなチャットAIは貼り付けられた数ファイルしか見ることができません。RPGのプログラムはCALL先や/COPYで他のメンバーを参照し、外部ファイル定義と組み合わせて初めて意味をなす。つまり、目の前のコードを「読む」ことはできても、システム全体を「理解する」ことはできないわけです。
実用レベルの仕様書を自動生成するには、CALL先・COPY句・外部ファイルを自律的にたどれるAIエージェント(Claude Code)がカギになります。
なぜChatGPTではダメなのか?──AS/400(IBM i)RPGをClaude Codeに"精度高く"理解させるために
前述のとおり、チャットAIでは貼り付けたファイルの外が見えません。AIエージェント(Claude Code)はここが違います。自律的にファイルを探索し、「このプログラムはARC01というファイルを使っている」と判断すれば、自分からそのファイル定義を探しに行きます。CALL先があれば、そのプログラムも読みに行く。人間のエンジニアがやるのと同じ動き方をします。
さらに、Claude Codeでは複数のAIエージェントにそれぞれ役割を持たせ、チームとして分業させることができます。
- 解析エージェント ── ソースコードを読み込み、構造・処理ロジック・データフローを抽出する
- 仕様書作成エージェント ── 解析結果をもとに、所定フォーマットで仕様書を生成する
- レビューエージェント ── 生成された仕様書の整合性・網羅性を検証する
1つのAIに全部やらせるのではなく、チームとして分業させます。解析→生成→レビューの流れを組むことで、単一AIの限界を超えた品質を実現できます。
さらに、テンプレートと出力ルールを事前に定義できるため、何本解析してもフォーマットが統一された仕様書が出てきます。
実際に生成されたAS/400(IBM i)RPG言語の仕様書(設計書)
この記事では、GitHubで公開されているAS/400 (IBM i) のRPGプログラムを題材にしています(出典:danielgazcon19/AS400)。実際にAIエージェントにより生成された仕様書の内容を紹介します。
詳細仕様書(設計書)として出力されるもの
処理概要(プログラムの目的・前提条件・実行タイミング)
RPG言語が読めない筆者は、ソースコードのファイル名や構造から当初「データコンバートプログラムか何か」と思っていました。しかし、AIエージェントが出力した処理概要を見ると、実際は顧客(クライアント)情報のサブファイル一覧照会プログラムでした。プログラムの目的が一目でわかります。
ファイル仕様(Fスペック)のテーブル化
RPGの保守で最初に確認するFスペック(ファイル仕様)。AIエージェントは、使用ファイルの一覧とDDSのフィールド定義(型・桁数・用途)を自動でテーブル化して出力します。
メイン処理フロー(フローチャート)
ソースコードからメイン処理の流れをフローチャートとして自動生成します。処理の分岐と順序が一目で把握でき、引き継ぎ資料としてそのまま使えるレベルです。
サブルーチン一覧(処理内容・入出力の詳述)
各サブルーチンの処理内容、主な処理項目、入出力がソースコードの行番号付きで整理されます。どのサブルーチンが何をしているのか、ソースを読まずに把握できます。
インジケータ定義(機能キー・エラー表示・画面制御・ファイル制御の分類整理)
RPG特有のインジケータが、機能インジケータ・エラー表示インジケータといった用途別に分類整理されます。コード中に散在するインジケータの意味とON条件が一覧になるだけで、読解の負担が大きく下がります。
データフロー図・業務フロー図
データフロー図では、入力(ユーザー入力・検索番号)から参照マスター(ARC01)、画面表示までのデータの流れが可視化されます。業務フロー図では、メニュー起動からサブファイル一覧表示、個別検索・照会、プログラム終了までの業務全体の流れが把握できます。
画面仕様書(設計書)として出力されるもの
画面遷移図
どの画面からどのキー操作でどの画面に遷移するかが図で出力されます。このプログラムでは、顧客一覧画面(SCR01)からオプション5+ENTERで詳細照会画面(SCR02)へ遷移し、F3で終了、F5でリフレッシュという構成が一目でわかります。
画面レイアウト(画面イメージの再現)
画面定義のソースコードから、実際の画面イメージを画像として再現します。5250端末の黒背景に項目ラベルと入力フィールドが配置された画面が、ソースコードだけから生成されます。画面仕様書を一から書いた経験がある方なら、この価値がわかるはずです。
画面項目一覧(フィールドID・属性・桁数・入出力区分)
画面上の各項目がフィールドID、テーブルID、属性、桁数、入出力区分まで一覧化されます。画面定義書としてそのまま使えるレベルです。
そのほかにも、以下のような仕様書として必要な情報をドキュメント化できます。
- 入力検証ルール(検証内容・エラー時インジケータ・エラーメッセージ)
- エラー表示仕様
- 外部プログラム呼出
- サブファイル仕様(RRN制御変数・最大行数・表示行数)
- バッチ処理
- 帳票
- サイクル処理
ベテランエンジニアが作る成果物と、構成も粒度も遜色ありません。
AIエージェントの導入で変わる未来
「AIはAS/400 (IBM i) RPG言語を理解して仕様書を書けるのか?」
答えは「実用十分」です。
もちろん、AIエージェントにも限界はあります。コードに書かれていない暗黙のビジネスロジックや運用知識──「このプログラムは本番では使っていないが念のため残してある」「運用手順書にだけ書かれている前処理がある」──は、コードに明示されていなければAIにも見えません。
そのため、職人気質で細部にまでこだわって仕事をしてきたエンジニアの方にとっては、AIが書く仕様書にモヤモヤを感じるかもしれませんが、仕様書の外部委託は、数千万、時に数億という非常に大きな金額が必要になります。また時間も非常にかかります。
こうした様々な「現実」を見たときにAIエージェントによる仕様書の作成は、最も現実的な解決策といえるのではないでしょうか。
当社の生成AIエージェント導入支援サービス
技術的な知識がなくても活用できるよう、導入から定着まで生成AIの専門家として伴走します。当社では、メインフレームやオフコンの知見と最新の生成AI技術の両方を活かし、RPG/COBOLをはじめとするレガシーシステムのドキュメント自動作成をご支援しています。「まず小さく試してみたい」という段階から、組織的な導入まで、伴走型でサポートいたします。
サービス詳細・資料請求はこちら