失われゆく「COBOL」技術、レガシーコードとの向き合い方をGitHubが解説AIエージェントを使った3つのステップ

AIエージェントの登場により、COBOL技術者の引退で現実味が遠のいていたレガシーシステム刷新がより現実的になりつつある。その具体的な手法をGitHubがブログで紹介した。

» 2025年10月21日 09時00分 公開
[@IT]

 GitHubは2025年10月14日(現地時間)、公式ブログで“レガシーコード”を救うための新しいアプローチを紹介した。背景には、古いソースコードを理解できる人材の減少がある。例えばプログラミング言語「COBOL」のソースコードがいまだに世界中の銀行や保険会社、政府などのシステムを動かしているが、それを理解する開発者を見つけるのは簡単ではなくなっている。

 レガシーシステムをモダナイゼーションするためのアプローチとして、GitHubはAIコーディングアシスタント「GitHub Copilot」を活用した3つのステップを紹介した。Microsoftの専門家チーム「Microsoft Global Black Belt」が実践したレガシーモダナイゼーションのアプローチに基づくものだ。

 GitHubはこの取り組みを、ソースコードを単に置き換えるのではなく、理解し再生するための現実的なアプローチだと説明している。COBOLに限らず、さまざまなレガシーモダナイゼーションプロジェクトに応用できる体系的な方法だという。

ステップ1:ソースコードを理解する

 レガシーシステムの問題の一つは、そのコードが具体的に何をしているのかを把握できなくなってしまうことだ。システム自体は今も動き続けているとしても、組織がその「中身を理解している」とは限らない。

 そこで最初のステップはソースコードを理解し、モダナイゼーションの準備をすることだ。ここではGitHub Copilotは“考古学ツール”になる。AIを使うことで次のようなことが可能になるという。

  • 業務上のビジネスロジック(処理内容)を整理する
  • 読み取ったソースコードの内容をマークダウン形式で文書化する
  • モジュール間の呼び出し関係や依存関係を自動的に識別する
  • 無関係なコメントや古い修正履歴などを削除、整理する
  • 必要に応じて補足コメントを追記する

ステップ2:ソースコードを補強する

 次はソースコードの理解を補う情報を付け加えるステップ。コードの意図を説明するコメントを補い、依存マップを作成する。これにより、属人化したロジックが“誰でも読める資産”に変わる。ブログ記事は、この段階を「エンリッチメント」と表現している。

 COBOLプログラムは、大きく4つの構造に分かれている。

  • 識別部(プログラムに関するメタデータ)
  • 環境部(ファイルとシステムの構成)
  • データ部(変数宣言とデータ構造)
  • 手続き部(実際のビジネスロジック)

 COBOLの構文を理解しなくても、AIに解析させることで自然言語で構造を理解できるようになる。

ステップ3:ソースコードを再生させる

 個々のファイルを分析し、エンリッチメントを終えたら、次はそれがどのように連携するのかを理解する必要がある。ここでAIエージェントによる自動化ワークフローを構築する段階に移行する。

 Microsoft Global Black Beltのジュリア・コーディック氏のチームは、複数の専門エージェントをオーケストレーションするフレームワークを構築した。各エージェントは特定のジョブを持つ。連携させることで、単一では対応し切れない複雑な処理を実現する。

 その具体的なプロセスは次の通り。

  • 呼び出しチェーンマッピング
    • ファイルの相互作用を図式化する。1つのエージェントがCOBOLファイルを読み取り、別のエージェントがプログラム間の呼び出しを追跡し、また別のエージェントが視覚的に図式化する。依存関係を手動でたどることなく、システム全体のマップを作成できる。
  • テスト駆動型モダナイゼーション
    • 一つのエージェントがビジネスロジックを抽出し、別のエージェントがそのロジックを検証するテストケースを生成し、また別のエージェントがそれらのテストに合格するソースコードを生成する。テストは、移行作業の“セーフティーネット”として機能する。
  • 依存関係の最適化
    • 最新の同等のものに置き換え可能なユーティリティークラスとライブラリを特定する。エージェントは使用しているCOBOLライブラリを分析し、代替ライブラリの有無を確認し、置き換え可能な部分を見つける。

AIによる現実的なモダナイゼーション

 AIエージェントを活用することでモダナイゼーションを推進できるようになるものの、メインフレームの問題は「1回のクリックで解決できる」わけではなく、実際には以下のような現実に向き合う必要があるとブログ記事は指摘している。

  • 検証のために人間が常に最新の情報を把握している必要がある
  • COBOLのソースコードは固有かつ複雑になっている
  • AIエージェントの活用はまだ初期段階にある
  • 完全な自動化には少なくとも5年はかかる

 AIを活用したアプローチは、レガシーシステムの維持・刷新を従来よりも現実的なものに変える可能性を秘めている。従来は高額なコンサルタントを雇い、5年以上をかけて変換作業をしても、最終的にはメンテナンス不可能なソースコードが生み出されるという現実もあった。

 レガシーシステムは、単なる技術的負債の問題ではなく、ビジネスの存続に関わる問題だが、組織においてはCOBOLの専門知識不足が深刻になっている。AIを使うことで、最終的に生成されるソースコードは開発者が実際に作業できるものになり得るとブログ記事は指摘している。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。