企業のDXを進めるうえで、大きな壁となるのがレガシーシステムです。特に問題となるのが、単に古い技術で構築されていることではありません。「なぜこの処理が存在するのか」「どの業務で使われているのか」「変更するとどこに影響するのか」といった現行システムの構造や業務ルールが分からなくなっていることです。
設計書や仕様書が残っていれば、現行システムを理解するための重要な手掛かりになります。
しかし、長期間運用されてきたシステムでは、ドキュメントが古くなっていたり、実際のプログラムと一致していなかったり、そもそも十分な設計書が存在しなかったりするケースがあります。
こうした状況で注目されているのが生成AIです。生成AIは、既存ソースコードの読解や処理内容の説明、関連箇所の整理などを支援できます。
つまり、生成AIを「新しいシステムを作るための道具」としてだけではなく、「今あるシステムを理解するための道具」として活用する考え方です。
この記事では、設計書が十分に残っていないレガシーシステムをどのように読み解き、生成AIを使った現行理解をモダナイゼーションの起点につなげていくのかを解説します。
設計書が十分に残っていないレガシーシステムをお使いの方
・社内のIT人材が不足している方
・生成AIを使ったモダナイゼーションについて知りたい方
これらに当てはまる方におすすめの記事となっています。これを読めば生成AIを使ったモダナイゼーションについて具体的な方法が丸わかりですよ。
なぜ「現行システムを理解すること」がモダナイゼーションの最初の壁になるのか
レガシーシステムの刷新では、いきなり新しいシステムの設計を始めることはできません。まず必要になるのが、現在どのようなシステムが動いているのかを把握する「現行理解」です。
しかし、長期間使われてきた業務システムほど、現行理解は難しくなります。
例えば、20年以上前に開発された販売管理システムを考えてみましょう。
当初は単純な受注処理だけを行っていたとしても、その後の法改正、事業変更、顧客からの要望、社内ルールの変更などに合わせて、少しずつ改修が追加されていきます。
「この条件の場合だけ特別な計算をする」「このコードの場合だけ別の処理に分岐する」「特定の時間帯だけバッチを実行する」といった処理が積み重なり、結果として現在のシステムができあがります。
問題は、その一つひとつの変更理由が現在の担当者には分からなくなっていることです。
さらに、ドキュメントが残っていたとしても、それが現在のプログラムと一致しているとは限りません。
そのため、現場では「設計書にはこう書いてあるが、実際には別の処理が動いている」という状態が発生します。
このような状況では、モダナイゼーションの要件定義そのものが難しくなります。
新システムに移行する際に、既存システムの機能を単純にコピーすればよいわけではないからです。
「残すべき処理」と「廃止できる処理」を区別しなければならず、そのためには現在のシステムが何をしているのかを正確に理解する必要があります。
IPAのレガシーシステムモダン化に関する資料でも、既存システムの複雑化やブラックボックス化、さらにシステムを理解・改修できる人材の確保が難しくなることが課題として挙げられています。
つまり、モダナイゼーションの第一歩は「新しい技術を選ぶこと」ではありません。
現在のシステムを理解し、何を変えるべきなのかを明確にすることです。
そして、この「読む」という作業に生成AIを活用できる可能性があります。
設計書がなくても、まず「コード・データ・実行環境」から現行を可視化する
設計書がないからといって、現行システムを理解できないわけではありません。
現行理解では、複数の情報源を組み合わせることが重要です。
例えば、ソースコードだけを生成AIに読み込ませて「このプログラムは何をしていますか」と質問する方法があります。
生成AIは、処理の流れや条件分岐、利用しているデータ、外部ファイルとの関係などを人間が理解しやすい文章に変換することができます。
さらに、一つのプログラムだけを見るのではなく、関連する複数のプログラムを調査することで、処理全体の構造を整理することも可能です。
例えば、
画面 → API → 業務ロジック → データベース → バッチ
という処理の流れを整理し、それぞれがどのようにつながっているのかを可視化します。
ここで重要なのは、生成AIに「正解を出してもらう」という考え方ではありません。
生成AIが作った説明を、人間が現行システムを理解するための「仮説」として利用することです。
例えば、AIが、
「この処理は月末締めの請求金額を計算している可能性があります」
と説明した場合、その時点で確定情報として扱うのではなく、実際のデータや業務担当者への確認につなげます。
つまり、
コードを読む → AIが説明する → 人間が確認する → 現行仕様として整理する
というサイクルを作ります。
この方法なら、設計書が存在しないシステムでも、少しずつ現行仕様を再構築できます。
生成AIで「現行仕様書」を再構築するというアプローチ
生成AIを現行理解に活用する場合、単純なコード解説だけで終わらせないことが重要です。
目指したいのは、現在のシステムから現行仕様を再構築することです。
例えば、既存のプログラムを分析して、次のような情報を整理していきます。
- プログラムの目的
- 入力データ
- 出力データ
- 処理条件
- 分岐条件
- 利用テーブル
- 他システムとの連携
- エラー処理
- バッチ処理との関係
- 業務上の意味
- 関連するプログラム
こうした情報をプログラム単位で蓄積すると、個別のコード説明が「システム全体の設計情報」に変わっていきます。
さらに、業務担当者へのヒアリング結果とコード分析を組み合わせることで、現行理解の精度を高めることもできます。
例えば、業務担当者が、
「この画面では毎月25日に請求処理を行っています」
と説明したとします。
一方、コードを分析すると、実際には25日だけではなく、25日が休日の場合に前営業日に処理するロジックが存在していた、といった発見があるかもしれません。
このように、人間が知っている業務知識と、コードに埋め込まれているシステム上のルールを照合することで、現行システムの理解を深めることができます。
最終的には、AIによる解析結果を人間がレビューし、「確認済み」「未確認」「業務担当者への確認が必要」といった状態に分類しておくことも有効です。
生成AIを使うからこそ、AIが出した情報をそのまま正式仕様として扱わないことが重要になります。
「現行をそのまま再現する」のではなく、業務ルールを分離して考える
現行理解が進んだ後に重要になるのが、「何を新システムに持っていくのか」という判断です。
ここで注意したいのが、現在のシステムに存在する処理をすべて新システムへ移植することです。
レガシーシステムには、長年の改修によって不要になった処理や、過去の業務ルールの名残が含まれている可能性があります。
例えば、10年前には必要だった項目が現在は使われていないにもかかわらず、データベースや画面には残っているかもしれません。
また、過去のシステムとの互換性を維持するためだけに存在する処理も考えられます。
こうした処理までそのまま新システムに移せば、古いシステムの複雑さを新しい技術で再現するだけになってしまいます。
そのため、現行理解では、「システムが何をしているか」だけではなく、「なぜその処理が必要なのか」まで確認することが重要です。
この段階では、生成AIに次のような問いを投げることもできます。
「この処理が存在する理由として考えられる業務ルールを整理してください」
「この処理を廃止した場合に影響する可能性がある機能を挙げてください」
「類似した処理や重複しているロジックを抽出してください」
ただし、ここでもAIの回答は判断材料です。
実際に処理を廃止できるかどうかは、業務部門、システム担当者、場合によっては法務やコンプライアンス部門などが確認する必要があります。
つまり、生成AIの役割は「何を残すかを決めること」ではありません。
大量の既存情報を整理し、人間が判断できる状態を作ることです。
この考え方は、モダナイゼーションを単なる「古いシステムの置き換え」から、「業務とITの再設計」へと変えるうえでも重要です。
生成AIによる現行理解をモダナイゼーションの起点にする
生成AIを使ったレガシーシステム分析で最も重要なのは、「コードを読めるようになった」というところで終わらないことです。
本来の目的は、モダナイゼーションの意思決定に必要な情報を整えることにあります。
そのためには、現行システムを次のような段階で整理していくと分かりやすくなります。
まず、ソースコードやデータベースなどから現行システムの構造を把握する。
次に、処理内容と業務担当者へのヒアリングを照合し、現在の業務ルールを整理する。
そのうえで、機能ごとに「維持」「変更」「統合」「廃止」などの候補を整理します。
さらに、システム間連携やデータ依存関係を確認し、どこからモダナイゼーションを進めるべきかを検討します。
これからはレガシーシステムを「古いから捨てる」のではなく、現状を把握したうえで、DXやデータ活用につながる形へ転換していくことが重要です。
まとめ
いかがでしたか。本日は生成AIを使ったモダナイゼーションについて、設計書が十分に残っていないレガシーシステムについて解説していきました。
設計書が存在しないレガシーシステムのモダナイゼーションでは、「分からないから作り直す」という判断を急ぐのではなく、まず現行システムを理解することが重要です。
生成AIを活用すれば、ソースコード、データベース、設定ファイル、ログなどの大量の情報を整理し、人間が理解しやすい形に変換することができます。
重要なのは、生成AIに「レガシーシステムを全部読ませる」ことではありません。
AIによって現行システムを可視化し、人間が業務ルールとシステムの関係を確認し、将来残すべきものと変えるべきものを判断できる状態を作ることなのです。