MENU

IBM Project Bob登場! ~コード支援ツールとは一線を画し、ソフトウェア開発を変革する「AIペアプログラマー」に迫る |特集 生成AIとIBM i 7社の取り組み

IBM watsonx Code Assistant for iから
IBM Project Bobへ

「IBM Project Bob」は2025年10月7日、米フロリダ州オーランドで開催された「IBM TechXchange 2025」で発表された。年次イベントのハイライトの1つとして発表されたものだが、その内容はIBM iのユーザー/ベンダーはもとより、日本IBMのPower事業部のメンバーも驚かせたようだ。

というのも、IBMは2024年7月に、RPG Ⅲプログラムの開発・保守を生成AIで支援する「RPG Code Assistant」のPoCプロジェクトを公表し、それ以来プロジェクトが順調に進んでいることを折に触れて報告してきたからである。1年後の2025年7月には、COBOLへの対応を含めた「IBM i Code Assistant」へ名称を変更し、日本独自の活動として継続をしてきた。またグローバル主導で「IBM watsonx Code Assistant for i(以下、WCA4i)」の開発も進められ、2025年10〜12月に第1弾の製品発表を行うことも表明していた。

ところが、その3カ月後の10月7日に発表されたIBM Project Bobは、WCA4iとはまったく別で、WCA4iで公表されていた機能・ソリューションを大きく上回る「別次元の製品」だった。さらに「Bob(ボブ)」という名称もIBMの製品としては異例で、「公式キャラクター」(図表1)の登場も多くのIBM i関係者を驚かせた。

図表1 IBM Project Bobのキャラクター「Bob」

「IBM Project Bobは、ただのコード支援ツールではありません 。それはあなたのAI開発パートナーです。IBM Project Bobは、あなたの開発スタイルに合わせて設計されており、設計からデプロイまでワークフローに寄り添って動作します。レガシーシステムのモダナイゼーションでも、新規アプリケーションの構築でも、Bobは高品質なコードをより早く生成できるよう支援します。Bobはソフトウェア開発ライフサイクル全体を変革するのです」(IBM Project Bob開発責任者のニール・サンダレーサン氏)

優秀なプログラマーが
隣にいる感覚で利用できる

日本IBMの茂木映典氏(テクノロジー事業本部Powerテクニカル・セールス)によると、IBM Project Bob(以下、Bob)は以下の特徴をもつという。

・ソフトウェア開発とモダナイゼーションを変革
・AIペアプログラマーとして開発者を支援
・幅広い言語に対応
 - Java、Python、JavaScript、TypeScript、GO、C++、Kotlin、Bash、Node.Jsなど
 - RPG(Ⅱ、Ⅲ、固定長RPG Ⅳ、フリーフォームRPG)、COBOL、SQL、DDS
・IDEに統合されコンテキスト対応の支援を提供
・コード説明、プログラム作成、ドキュメント作成をサポート
・フローチャートやER図などを生成しプログラム構造を説明
・日本語を含む多言語に標準対応

「Bobは、技術的な詳細やリリース時期、提供形態、価格、開発ロードマップなどの情報は米IBMのごく一部の関係者に限られていて、それ以外には未公表の段階ですが、アーリーアクセス版を動かして確認すると、WCA4iで対応するとしていた5つの機能(図表2)はすべてカバーすると理解してよいようです。

それに加えて、ソフトウェア開発の全工程をサポートするさまざまな機能を備えています。“AIペアプログラマー”はそのサポート役の特徴を示す表現で、Bobは開発の各工程で開発者に寄り添って考え、必要な作業を自動で行います。あたかも優秀なプログラマーが隣にいる感覚で利用できます」(茂木氏)

図表2 IBM Project Bobが支援するアプリケーションライフサイクル

図表3の左側は、Project Bobの働きを概念的に示したもの。「開発者の視点で考え」→「コードを生成」→「セキュアな開発」という開発者が一般的に行う一連の作業を一貫してサポートすることを示している。

図表3 IBM Project Bobの流儀

図表3の右側は、IBM iアプリケーションをモダナイゼーションする場合のIBM Project Bobが提供する機能である。

「Bobが他の生成AIツールと大きく異なるのは、開発者の意図を理解して必要な作業を自動で行うという点です。たとえば、“このRPGプログラムを改修してください”と指示すると、 Bobはプログラムの中身を分析して“この情報は必要ですか”“この情報を知りたいですか”などと聞いてきます。この理解する機能は他の生成AIツールにはなく、Bobの大きな特徴です」と、茂木氏は説明する。

また日本IBMの肥沼沙織氏(テクノロジー事業本部Powerテクニカル・セールス)は、「Bobでは使用する言語を指定できますが、日本語で使用中のVisual Studio Code環境で立ち上げると、Bobは言語環境を判断し、言語を指定しなくても日本語で回答を返してきます。開発者の環境やコンテキストを理解する機能を備えています」と話す。

Bobは、図表4 画面右下のチャットウィンドウに指示を入力すると、次のような処理を連続で実行する。

❶指示の内容を理解して、対象となるファイルを読み込む。
❷周辺ファイルからコンテキストを読み取り、追加すべきファイルを開発者に推薦する。
❸読み込んだファイルの概要説明を生成する。
❹詳細なタスクプランを作成する(以上の生成結果は、チャットウィンドウの上部に表示される)。
❺開発者にタスク実行の可否を求める。
❻タスクを1つずつ実行する(処理済みコードは、中央エリアに緑色の背景で表示される)。
❼実行結果を検証し、必要に応じて自己修正する。
❽必要に応じて以前のチェックポイントにロールバックできる。またフィードバック機能により、プロセスのどの段階でも処理の方向を変えることができる。
❾ファイルの読み書きや、変更提案のインタラクティブな差分表示、関連ファイルの検索が可能。

図表4 IBM Project Bobの画面

IBM Project Bobの
基本的な処理の流れ

図表5は、RPGプログラムについての説明とフローチャートの作成を指示したときの処理の流れである。

図表5 既存コードの概要説明とフローチャートの作成

Bobは指示を受け取ると、対象となるコードを作業スペースから読み込んでコードの中身を理解し、関連するファイルがまだ読み込まれていないと、それを読み込むか否かの判断を開発者に求めてくる。

そして、そのような処理を繰り返してすべてのファイルを読み込むと、ファイル相互の関連と文脈を理解して、フローチャートと説明ドキュメントの作成が行われる。

この作図機能はWCA4iにはなかったもので、茂木氏と肥沼氏は「WCA4iに搭載されていると使い勝手がさらによくなると考えていた矢先にBobが実現しているので、非常に驚きました」を感想を述べる。

この作図機能には、オープンソースのMermaid(マーメイド)が使われている。MermaidはMarkdownの記述法でフローチャートのほか、ER図、状態遷移図、ユーザージャーニー図、要件図などを描出できる。

図表6は、RPGプログラムの改修を指示したときの処理の流れである。

図表6 プログラムの改修

最初に、対象のRPGプログラム名と改修したい内容を入力する。すると、Bobは必要なファイル(画面ファイル、帳票ファイル、DDSや、改修ファイルに関連するRPGソース)を読み込み、改修を行うためのタスクプランを作成する。開発者はこのタスクプランをレビューし、必要に応じてBobに修正を求めることや、直接修正ができる。

開発者にタスク実行の可否の判断を求めてくるので、承認するとタスクが1つずつ実行され、最後にTo-Doリストが更新されてタスクが終了する、という流れである。

タスクが実行されプログラムが改修されていく様子は、画面中央のエリアで確認できる。改修されたプログラムは画面の背景が緑色に変わっていく仕組みである。

改修されたプログラムが要件と異なる場合には、Bobにさらに修正を指示することができる。これを繰り返すことで要件にあったプログラムに近づけていくことができる。

IBM iのアプリ開発における
IBM Project Bobの支援内容

図表7は、IBM iのアプリケーション開発におけるBobの支援機能のデモを、アプリケーションのライフサイクル別にまとめたものである。

図表7 IBM iのソフトウェア開発におけるIBM Project Bobの提供機能

「Explain」(理解・説明)では、1980年代に作成されたRPG Ⅱプログラムの図表付き説明や、ファイルレベルのアクセスと変更に関する影響分析レポートなどの生成(図表8)。

図表8 ファイルレベルのアクセスと変更に関する影響分析レポート

図表8で、最初にProject Bobは論理ファイル、物理ファイル、プログラム、その他のファイルをすべて読み込み、アプリケーションの詳細と文脈を理解する。読み込み後、To-Doリストを作成する。これによりマスターデータベースドキュメントを作成するプロセスを確認でき、データベース全体の詳細が確認できる。

「Transform」(移行)では、RPG ⅡプログラムのフリーフォームRPGへの変換(図表9)や、固定形式のRPG ⅣのフリーフォームRPGへの変換(図表10)、レコードレベルアクセスのデータベース処理を埋め込みSQLに置き換える処理(図表11)など。

図表9 RPG IIをモダンなFree Format ILE RPGに変換

図表9で、最初にProject Bobは、RPG Ⅱプログラムを理解するために詳細な図解と理解のためのドキュメントを作成し、アプリケーション全体を把握する。詳細な図解が完成したら、Project Boはプログラムの書き直しを始め、固定形式からフリーフォームへ、難解な変数名から読みやすい変数名へと変換する。いくつかのプロシージャも追加し、プログラムを完全に再構築する。

図表10 固定形式RPGをFree Format RPGに変換

図表10で、Project Bobはすべてのコードファイル、コンテンツ、その他のエンティティを読み込み、深い理解とコンテキストを得る。そして、変更の進め方を記述したTo-Doリストを作成すると、固定形式からフリーフォームへの更新プロセスが始まり、コードが書かれ、変換が進行する。

図表11 レコードレベルアクセスのデータベース処理を埋め込みSQLに置き換え

図表11で、Project Bobは、最初にプログラムと既存のデータ定義を読み込み、包括的な理解を得る。次に、古いI /Oアクセスの手法を削除し、埋め込みSQLとSELECT文を使って置き換えていく。

「Generate」(生成)では、リテレートモード(Literate Mode)と呼ぶコード補完機能により、タスクプランとコード生成、説明文、手順を1つにまとめた理解しやすいドキュメントを生成したり、フリーフォームRPGプログラムへのコメントの付与、オープンソースのRPGUnitを活用したユニットテストケースの作成など。

「Refactor」(再構成)では、変数名をわかりやすい名前に変更したり、未使用の変数の削除(図表12)、O仕様書をプリンターファイルに変換する処理などを行う。

図表12 未使用の変数を削除

図表12で、Project Bobは最初に、プログラム内のすべての変数を確認し、それぞれが使われているかどうか、どこで使われているか、不要になっていないかを調べる。不要な変数が
特定できたら、Project BobはRPGコードを更新し、それらの変数を削除してコードを整理する。これにより、プログラムはより見通しがよく、保守しやすくなる。

肥沼氏によると、「Bob内の処理の途中で確認したい部分にカーソルを当てて右クリックすると、処理内容の説明などを表示することができます」という。まさに開発のパートナーとしてBobを利用できる。

茂木氏は、IBM iユーザーへのBobのインパクトについて次のように語る。

「一番大きなインパクトは、RPG Ⅲでも固定フォームRPG Ⅳでも、フリーフォームのRPGであっても、言語を意識することなく開発が行えることだろうと思えます。オープン系のスキルをもつ技術者も、オープン系言語を扱うのと同じ操作でRPGを扱えます。RPGの知識がまったくない人でも、プログラムのコードを1行1行説明してくれるので、それなりの改修ができますし、たとえば自分が扱いやすいフリーフォームRPGに変換して改修作業を行うことも可能です。Bobは、ソフトウェア開発のスタイルを変革しています」

 

[i Magazine 2025 Winter掲載]

 

新着