COBOLシステムの課題は言語自体のせいではない
COBOLシステムの維持が限界を迎えつつある。だが、果たしてこれはCOBOL言語自体の問題なのだろうか。東京システムハウスによれば、必ずしもそうではないという。
「COBOLシステムの維持が困難になったのは、仕様書・テストケースの消失や仕様理解者不足、長年の改修による複雑化、標準でない記述の増加といった要因によります。つまり、レガシー問題はCOBOL言語そのものの問題ではなく、IT資産の健全性の問題といえるのです」と同社の比毛 寛之氏は指摘する。
東京システムハウス株式会社
システムインテグレーション事業部
取締役事業部長
比毛 寛之氏
仕様書の消失や仕様理解者不足は、システムの管理に必要な「知識」が不健全な状態といえる。一方、システム複雑化や標準でない記述は「構造」の不健全さといえるだろう。これらを解消することが、モダナイゼーションを進める上でのカギなのだ。
「当社では、知識と構造の健全性を取り戻すために2つのソリューション/アプローチを提案しています。1つは『AIベテランエンジニア』、もう1つは『二刀流移行』です。これらを活用することで、COBOLシステムをはじめとするレガシー問題を解決し、システムの次世代化をスムーズに進められるようになります」と比毛氏は言う。
組織内の形式知とベテランの暗黙知をAIが集約・提供
まずAIベテランエンジニアは、経験豊富なエンジニアに代わってAIが仕様書の作成や質問への対応を実施するソリューションだ。システムのブラックボックス化を解消するとともに、ベテランの知見を誰もが広く活用できるようにする。
「知識には形式知と暗黙知が存在します。ここでいう形式知とは、システムの機能要件や業務ロジック全体の流れ、データの入出力など、『システムが何をしているか』を指すもの。暗黙知は、開発の注意点や設定の方針、開発の経緯など『なぜそうなっているか』に関わる知識です。AIベテランエンジニアを利用することで、この両方を組織内で共有し、知識の健全性を保つことが可能になります」と同社の島田 桃花氏は説明する。
東京システムハウス株式会社
IT基盤ソリューションプロジェクト・シニアアソシエイト
島田 桃花氏
形式知の共有は、AIベテランエンジニアの機能の1つである「仕様書作成システム」が担う(図1)。ここにCOBOLコードをアップロードすると、マークダウン形式の仕様書や業務ロジックを可視化したフローチャートが自動生成される。仕様書の枠組み作成などの決定的な処理は静的解析が、意味解釈はAIが担当することで精度の高い仕様書を出力する。
図1 AIベテランエンジニア
多くのCOBOLシステムでは、長年の改修によって仕様書やベテランのノウハウが失われつつある。AIベテランエンジニアは、経験豊富なエンジニアに代わり、AIが仕様書作成や質疑応答に対応してくれる
暗黙知は「質疑応答システム」が担当する。仕様書作成システムで復元した形式知と、ベテランの暗黙知をベクトルDBに取り込み、それを基にAIがCOBOLシステムに関する質問やコード修正案に回答する仕組みだ。
「また質疑応答システムでは、チャットの履歴とフィードバックから暗黙知を抽出してナレッジ化していくため、新任者でもベテランに近い精度と速さで回答を得ることが可能です」と島田氏。使うほどにシステムが学習し、回答精度も上がっていくという。
外部のAI駆動開発ツールから質疑応答システムのナレッジを利用することも可能だ。MCP(Model Context Protocol)サーバーを介することで、外部のエディタ上でアシストを受けたり、コード修正や不具合調査、デバッグなどの作業を自律的に実施したりできるという。
「この仕組みを活用すれば、ベテランの知識をAIが継承し、新しい担当者でも容易に既存COBOLを保守できる『AIネイティブ開発』を実現できます。また、現行のCOBOL資産を継続使用する際の運用・改修も効率化できるなど、モダナイゼーション以外の領域でも多くのメリットを得ることが可能です」と島田氏は話す。
二刀流移行とIT資産のデトックスで構造を健全化
もう1つの二刀流移行では、オープンソースのCOBOLコンパイラであるopensource COBOL 4J(以下、COBOL 4J)を活用する。COBOL 4JはCOBOL原文を変換する際に中間Javaソースコードを生成する。これをjavacでコンパイルすることで、Javaバイトコードを生成する流れだ。
「COBOLリホストとJavaリライトを同時に実現できるため、この方法を二刀流と呼んでいます。メリットは、いつでもCOBOLをJavaリライトできることです」と比毛氏は紹介する。
ここで生成されるJavaはいわゆる「JaBOL」だが、移行にかけられる期間・コストが限られる中では現実的な解となる。そもそもCOBOL風のJavaであることは、ロジックが正しく再現されている証であり、現行担当者にも理解しやすい形式といえる。まずは中間Javaで脱レガシー化を図り、改修の多いところから段階的にリファクタリングしていくのがお勧めだという。なお、東京システムハウスでは、生成されるJavaの可読性・変更容易性を改善したオプション製品「opensource COBOL 4J Advance」も提供している。これを併用すれば、より効率的に進めることができるだろう。
「さらに、IT資産の構造の根本的な見直しもご支援可能です。これを当社は『IT資産のデトックス』と呼んでいます」と比毛氏は述べる(図2)。
IT資産のデトックスでは、まずリファクタリングによってムダなコードを整理し、移行時のトラブルやコスト増大を防ぐ。移行中にリファクタリングを行うと現新比較の不一致原因が増加するため、リファクタリングは必ず移行前に実施する。資産整理と依存関係の可視化にはAIベテランエンジニアが威力を発揮するという。
次に、ビジネスロジックに合わせてテクノロジーを選択できるようにするため、両者を分離する。同社のメインフレーム機能代替フレームワーク製品「AJTOOL」などを用いた技術分離層をロジックとテクノロジーの中間に配置し、技術変化に左右されない構造をつくる。
そして最後にテストケースを再構築する。「現新比較テスト」を再利用可能な資産として保管し、かつ自動的に実行できるようにする。バージョン管理ツールやCI/CDパイプラインを導入することで、保守フェーズでもテストを自動で実行し、バグの発生を最小化するという。
「AIの進化はCOBOLの希望です」と比毛氏は強調する。レガシー言語を悪者にせず、知識と構造を健全化する観点からモダナイゼーションを捉え直す。これにより、新たな解決策が見えてくるだろう。東京システムハウスの提案は、ITモダナイゼーションに新たな視点をもたらすものといえる。





