検索
特集/連載

「レガシーシステム刷新」をAIに丸投げしてはいけない 8つの用例と4つの注意点AIを活用したレガシーシステムの刷新【後編】

AI技術によるレガシーシステム刷新は、タスクを迅速に実行し、開発チームの労力を減らす上で役立つ。ただしAIモデルの提案を受け入れるだけでは、リスクを生むことになりかねない。知っておくべき“限界”とは。

Share
Tweet
LINE
Hatena

 企業のIT予算を圧迫し、事業成長の足かせになっているのがレガシーシステムの存在だ。この根深い課題を解決するには、企業ごとの状況に応じた多様な刷新アプローチの検討が欠かせない。ここで活用できる切り札として浮上しているのがAI(人工知能)技術だ。AIツールを活用してレガシーシステムを刷新する8つの具体的なタスクと、そのために知っておくべき4つの“限界”を掘り下げる。

AIはレガシーシステムをどう変えるのか

 AI技術は、問題を一瞬で解決する魔法のつえではない。あらゆる資料を読み込み、完璧なメモを取り、退屈な提携作業を文句一つ言わずにこなしてくれる、有能な同僚のような存在だ。AI技術をうまく活用すれば、レガシーシステムの刷新を構想する段階から、実際にシステムを稼働させるまでの時間の短縮につながる。以下に、AI技術を活用したレガシーシステム刷新の具体的な8つの例を紹介する。

例1.レガシーコードから仕様書とテストを生成する

 AIツールに、現在レガシーシステムが実行していることを、平易な言葉と実行可能なテストとして可視化してもらう。これによって、現在のシステムの振る舞いを「変更が加えられていない基準の状態」として設定可能になるため、開発者は守るべきビジネスロジックを変えてしまっていないかどうかを逐次確認できる。意図しない変更を心配することなく、システムの構造の改善、設計上の問題の修正、技術の変更といった作業を進められる。

例2.ソースコードの定型的な修正を大規模に適用する

 複数システムにまたがって、ソースコードの機械的で細かい修正を、AIツールに一任する。使用しているライブラリ(プログラム部品群)のアップグレード、API(アプリケーションプログラミングインタフェース)の置換、ログ出力形式の統一といった作業が挙げられる。ビジネスロジックはそのままに、ソースコードの一貫性と互換性を高めることが可能だ。

例3.APIでレガシーシステムを覆い、安全な分離点を構築する

 レガシーシステムの前面にモダンなAPIを配置し、トラフィックをそのAPIに集約させる。これによって、開発チームはAPIを介して新機能を追加しつつ、裏側で段階的にレガシーシステムを改修できるようになる。システム間の依存度を下げ、中核部分を安全に改修するための時間を稼ぐことが可能だ。

例4.利用データを分析してアプリケーションを整理する

 レガシーシステムの実際の利用状況や費用のデータをAIツールに分析させて、アプリケーションを維持するか、他のシステムに統一するか、廃止すべきかを判断する。刷新に着手する前にスコープを絞り込み、最終的には重要な幾つかのアプリケーションに投資を集中させ、冗長なものや使われていないものを排除することが目的だ。

例5.安全なリフト&シフトのために、インフラ構成コードと手順書を生成する

 属人化していたシステム設定に関する知識を、インフラの構成を自動化する「インフラ構成コード」(IaC)、システム切り替えの手順書、動作確認テストをAIツールで作成する。プロビジョニング(配備)とテストを自動化することによって、手作業によるミスを減らし、安全かつ円滑なリフト&シフトを実現する。

例6.業務における機能ごとのまとまりを抽出し、アーキテクチャ改善のヒントを得る

 レガシーシステム内のソースコードとデータを分析して、機能的なまとまりを自動で識別する。AIツールは、巨大なシステムの中から「在庫管理」「価格設定」「注文処理」といった機能のまとまりを見つけ出し、それらがどう連携すべきかを提案する。これは、将来システムを機能ごとに分割(マイクロサービス化)していく上での、貴重な設計図になる。

例7.ひな型とテストコードを自動生成してシステムの再構築を支援する

 システムを一から作り直す際に、開発の初期段階をAIツールが支援する。AIツールは、モダンな技術を用いたアプリケーションのひな型や、新旧システムの動作が完全に一致することを検証するためのテストコードを自動生成することに役立つ。これによって開発チームは、システムの品質を確保しながら、迅速に開発を軌道に乗せることができる。

例8.購入か自社開発かの判断を支援する

 「維持とリファクタリングの組み合わせ」「再構築」「クラウドサービスによるリプレース」という3つの選択肢について、長期的な費用、業務要件との一致度、システムの連携に必要な労力を比較する。その結果、どの業務分野で自社開発を続けるべきかを数値に基づいて客観的に判断できるようになる。

AI主導のレガシーシステム刷新における限界

 レガシーシステム刷新のスピードを上げることにAI技術は役立つが、計画を立てる際に考慮すべき限界もある。以下にその例を示す。

限界1.コンテキストとデータ品質

 AIモデルは与えられた情報しか参照できない。古い仕様書、欠落したログ、サンプルデータに含まれない例外的な状況を考慮できないため、誤った結論や脆弱(ぜいじゃく)なソースコードを生み出す恐れがある。

限界2.振る舞いの網羅性

 AIツールが生成したテストケースは、既存のバグ(不具合)を正しい動作だと誤認してしまったり、システム間の相互作用を見逃したりする可能性がある。そのため、実務に精通した担当者によるレビュー、探索的テスト、本番環境での安全策が依然として不可欠だ。

限界3.セキュリティ、プライバシー、コンプライアンス

 AIツールが生成したソースコードは、脆弱性を含んでいたり、機密情報を不適切に扱ったり、ライセンスに抵触するソースコード再利用をしたりする恐れがある。これらを回避するには、安全策、SAST/DAST(静的/動的アプリケーションセキュリティテスト)、SBOM(ソフトウェア部品表)、明確なデータ取り扱いルールの整備が欠かせない。

限界4.アーキテクチャと変更管理

 ソースコードの編集を提案できても、技術的なトレードオフの判断、変更を適用する順序付け、組織的な合意形成といった責任を、AIツールは負うことができない。厳格なガバナンス、品質基準の自動チェック、ロールバック手順がなければ、大規模な変更はリスクを高めるだけだ。


 これらの限界を念頭に置いて活用すれば、AI技術は企業を着実で目に見える発展に導いてくれる。ただしそれはあくまで人の能力を増幅させる強力なツールであり、全てを任せられる自動操縦装置ではないことを肝に銘じるべきだ。

Copyright © ITmedia, Inc. All Rights Reserved.
本記事は制作段階でChatGPT等の生成系AIサービスを利用していますが、文責は編集部に帰属します。

ページトップに戻る