RPGのソースコードが読めない問題は、AIで「1本ずつ読んで日本語で説明する」ところまでは大きく改善できます。
ただし、システム全体の仕様をつかむには、AIだけでは足りません。
呼び出し関係の機械的な集計と、現場での確認を組み合わせる必要があります。
この記事では、AS/400(IBM i)のRPG資産を例に、AIに任せられる範囲と、資産全体を見える化する進め方を整理します。
「このプログラムが何をしているか、誰も説明できない」。
IBM i を長く使っている企業では、珍しくない状況です。
RPGが読めなくなる理由は、言語の特徴と、組織の事情の両方にあります。
RPGは、IBMが提供する業務アプリケーション向けのプログラミング言語です。
IBM i(旧AS/400)で、販売・在庫・会計などの基幹業務を作るために広く使われてきました。
帳票やファイル処理を少ない記述で書ける点が特徴です。
世代によって書き方が大きく異なるため、主な違いを表にまとめます。
|
世代 |
主な特徴 |
書き方 |
よく見かけるソース型 |
|
RPGⅢ(RPG/400) |
桁の位置で意味が決まる。プログラムは1本ずつ独立して動く |
固定形式のみ |
RPG、SQLRPG(埋め込みSQLを使う場合) |
|
ILE RPG(RPGⅣ) |
サブプロシージャーやサービスプログラムで処理を部品化できる |
固定形式(演算部などはフリー形式も可) |
RPGLE、SQLRPGLE(埋め込みSQLを使う場合) |
|
完全フリー形式のILE RPG |
1行目に **FREE と書くと、桁の制約がなくなる。一般的な言語に近い書き方ができる |
フリー形式のみ |
RPGLE、SQLRPGLE |
完全フリー形式は、IBM i 7.1・7.2 向けのPTFで追加されました(出典:IBM「Fully free-form RPG - new in 7.1 and 7.2」https://www.ibm.com/support/pages/node/1108095 )。
RPGは帳票やファイル処理を少ない記述で書ける一方で、ほかの言語にはない独自の仕組みがあります。
これらは人にとっても、AIにとっても、処理の流れを正しく読み取る難しさにつながります。
IBM BobのPremium Package for i に、インジケーターやRPGサイクル専用のスキルが用意されているのも、そのためと考えられます。
AIは、RPGを「読む」作業の多くを肩代わりできます。
ただし、どの作業でも、最後に人が確認する工程は残ります。
作業ごとに、AIに任せられる範囲と、人が確認することを整理しました。
|
作業 |
AIでできること |
人が確認すること |
|
①処理内容の日本語での説明 |
1本のソースコードを読み、使用ファイル・処理の流れ・分岐条件を日本語で説明する |
業務上の意味(なぜその条件なのか)が合っているか |
|
②仕様書の下書き |
入出力・処理概要・使用ファイルを、仕様書の形式で書き起こす |
社内の書式に合っているか。抜けている前提がないか |
|
③改修の影響範囲の洗い出し |
指定した項目やファイルを使っている箇所を、読み込んだ範囲で挙げる |
読み込んでいないプログラムに影響がないか(ツールでの集計と突き合わせる) |
|
④フリー形式への書き換え |
固定形式のソースコードを、フリー形式に書き換えた案を出す |
コンパイルが通るか。テストで動きが変わっていないか |
|
⑤コメントの付与 |
処理のまとまりごとに、日本語のコメントを付ける |
コメントの内容が実際の処理と合っているか |
当社では、IBMが提供するAIコーディングエージェント「IBM Bob」で、RPGの解析を検証しました。
IBM Bobは、標準でもRPGやCOBOLのソースコードを読めます。
PCに保存したソースコードを読ませるだけなら、無料トライアルでも試せます。
当社の検証では、コメントをすべて除いたRPGⅢ 10本と関連するDDSの解析が約1分で終わりました。
仕様書とフローチャートの作成までを含めても、約5分でした。
詳しくは「【IBM i ×AI】40年前のRPGも5分で解析?「IBM Bob」の可能性と活用法」(https://blog.mono-x.com/ibm-i-rpg-analysis-with-ibm-bob )で紹介しています。
さらに、IBM i 向けの追加パッケージ「IBM Bob Premium Package for i」を使うと、IBM i 上のソースコードをPCにコピーせず、そのまま読ませることができます。
IBM i 向けのモード・スキル・知識ベース(RAG:資料を検索して回答に生かす仕組み)により、RPG・CL・DDS・COBOLなどへの対応も強化されます。
※IBM Bob Premium Package for i は、IBM Bobの有料プランに追加する有償の拡張機能です。IBM i 上のソースコードを直接読ませる使い方は、この拡張機能のインストールが前提です(無料トライアルでは利用できません)。
Premium Package for i を使った検証では、次のような日本語の依頼だけで解析が進みました。
ライブラリ HNDLIB91 の QRPGLESRC にあるメンバーの一覧を出してください。
続けて、BPL020(得意先別受注一覧表)の処理概要を説明してください。
図:メンバー一覧と処理概要を依頼した結果
結果は次のとおりです。
図:Explain Code で返ってきた処理フローの図と解説
検証の詳細は「【第2部】IBM Bob Premium Package for i 導入ガイド|動作確認編」(https://blog.mono-x.com/ibm-bob-premium-package-for-i-install-guide-2 )で紹介しています。
導入の手順は「IBM Bobの始め方|導入から最初のRPG解析までの手順」https://blog.mono-x.com/ibm-bob-setup-guideをご覧ください。
AIは1本のソースコードを読むのは得意です。
しかし、AIだけでシステム全体を理解できるわけではありません。
ここを押さえておかないと、AIの説明を過信して判断を誤ります。
IBM Bobのような開発ツールは、1本ずつ読んで直す作業には強い道具です。
一方で、「資産全体で何本あり、どうつながっているか」を一度に描くことは、別の取り組みになります。
AIにRPGを読ませる方法は、大きく2つあります。
手元のPCにソースコードをコピーして読ませる方法と、IBM i 上のソースコードに直接アクセスできるツールを使う方法です。
|
観点 |
ソースコードを手元にコピーして読ませる |
IBM i 上のソースコードに直接アクセスする |
|
主なツール |
汎用のAIチャット・AIコーディングツール(IBM Bob本体を含む) |
IBM i に対応したAIツール(例:IBM Bob+Premium Package for i) |
|
準備 |
対象のソースコードを探してダウンロードする |
IBM i への接続を設定する |
|
関連ソースコードの扱い |
CALL先や/COPYも自分で探してコピーする |
ツールがライブラリやIFS上のソースコードを検索・参照する |
|
IBM i 向けの強化 |
ツールの標準の対応範囲 |
IBM i 向けのモード・スキル・知識ベース(RAG)で強化される |
|
向いている場面 |
数本のプログラムを試しに読ませたいとき |
継続的に多くのソースコードを扱うとき |
QSYS(ライブラリの中のソースファイル)やIFS(IBM i 上のファイルシステム)に直接アクセスできれば、コピーの手間がなくなります。
一方で、数本を試すだけなら、汎用ツールで十分な場合もあります。
汎用ツールでも、MCPやJDBC・ODBCを使った外部ツールを利用するか、自社で仕組みを作り込めば、IBM i とつなぐことはできます。
ただし、つなぐ機能だけでなく、IBM Bobで提供されているような「ガードレールと監査」(変更を適用する前の承認や、監査への対応など)への考慮も必要です。
詳しい比較はまた後日ブログでご紹介したいと考えています。
1本のRPGを読めるようになっても、それは入口にすぎません。
数千本規模の資産全体をつかむには、順番が大切です。
次の5つのステップで進めます。
自社で進める場合は、集計ツールの準備と、AI・確認の段取りを自分たちで組む必要があります。
当社の「AI資産分析アセット」は、この流れをまとめて行うサービスです。
お預かりするのは、IBM i のソースコード(SAVF)と、貴社ホームページの情報、ヒアリングの内容の3つです。
当社のAI解析ツールで現行の業務システムを一括で解析します。
解析と分析の結果に加えて、見えてきた課題と改善の提案までをお届けします。
AIでRPGのソースコードを解析できますか?
できます。
1本ごとの処理内容の説明や、仕様書の下書きまではAIで作れます。
システム全体を把握するには、呼び出し関係の集計と、現場での確認が必要です。
RPGとはどういう言語ですか?
IBM i(AS/400)で業務アプリケーションを作るための、IBMのプログラミング言語です。
販売・在庫・会計などの基幹システムで広く使われています。
RPGⅢとILE RPG(RPGⅣ)の違いは何ですか?
RPGⅢは桁の位置で意味が決まる固定形式で、プログラムは1本ずつ独立して動きます。
ILE RPGはフリー形式でも書け、サブプロシージャーなどで処理を部品化して呼び出せます。
ChatGPTなどの汎用AIにRPGを読ませても大丈夫ですか?
1本のソースコードを読ませて説明させることはできます。
ただし、関連するソースコードがなければ全体の理解には限界があります。
ソースコードを社外のサービスに送る前に、社内の情報管理ルールを確認してください。
AIで仕様書(設計書)を自動で作れますか?
下書きは作れます。
正式な設計書にするには、業務上の意味や前提を人が確認して補う必要があります。
AS/400の開発言語は何ですか?
RPG・COBOL・CL(制御言語)が中心です。いずれもAIで解析する対象になります。
1本ではなく資産全体を読み解くなら、まずは現状の見える化から始めるのが近道です。
※本記事は、弊社ブログや出典・参考記事の内容をもとに、編集部が作成しました。
「PVS One」では、IBM BobのライセンスをPVS Oneのサブスクリプションから消化・充当できるだけでなく、本記事のようなAIエージェントの検証を安全に行えるサンドボックス環境「PVS One for AIエージェント」や、「API-Bridge for AIエージェント」の無償利用特典をご用意しています。IBM iのAI活用や開発環境の効率化・検証環境についてご興味のある方は、ぜひお気軽にお問い合わせください。
>>PVS Oneに関するお問い合わせはこちら
株式会社MONO-X公式サイト
株式会社MONO-Xへのご相談・お問い合わせはこちら
最新記事の通知や配信をご希望の方は、ぜひ下記フォームよりメールマガジンにご登録ください。
[メルマガ登録フォームはこちら]