モダナイゼーションの進め方

AI駆動モダナイゼーション戦略

対象: 未来明るく電力 レガシーシステム(VB6 + COBOL、約50万行、596プログラム) 作成日: 2026-06-16 位置づけ: 04-playbook.md(従来型24ヶ月計画)のAI強化版 ステータス: 調査・戦略策定


目次


1. エグゼクティブサマリー

一文で言うと

AI(Claude Code + 自動変換ツール + マルチエージェント並列処理)の活用により、従来24ヶ月の移行計画を 10-12ヶ月に圧縮し、総コストを 40-55%削減 できる。ただしAIは「下書きマシン」であり「品質保証者」ではない。人間の判断・検証・ドメイン知識は引き続き不可欠。

数字の要約

指標従来(24ヶ月)AI駆動(10-12ヶ月)差分
期間24ヶ月10-12ヶ月50-58% 短縮
総コスト3.5-8億円1.5-3.5億円40-55% 削減
チーム規模12-18名5-8名55-67% 削減
テスト工数手動作成(工数の50%)AI生成+手動レビュー(40%)カバレッジ向上
並列変換不可(逐次Wave)4-8並列ストリーム構造的変化

AI活用でのみ可能になること(従来手法の高速化ではない新パターン)

  1. 並列変換ストリーム: VB6/COBOLの完全分離構造を活かし、4-8のワークツリーで同時変換
  2. ゴールデンマスターテスト自動生成: 手動では不経済だったカバレッジ水準を実現
  3. 全596本の自動解析・スコアリング: 移行難易度の定量評価を数日で完了
  4. 差分検証の自動分類: Shadow Test の出力差分をAIが自動トリアージ

AIで圧縮できないもの(正直な制約)

  • Shadow Test / Reverse Shadow の実行期間(2-4週間 × 2): 実データでの検証は時間が必要
  • お客様ヒアリング・業務判断: 人間のスケジュールに依存
  • ExeOdbc の設計判断: システム全体の基盤は自動変換ではなく人間が設計
  • 文字コード変換(CP932→UTF-8)の網羅テスト: 地道な検証が必須

2. 従来手法 vs AI駆動の構造的な違い

パラダイムの転換

従来のプレイブック(04-playbook.md)は「1チームが逐次的にWaveを進める」前提。AI駆動では作業の構造自体が変わる。

従来: 逐次実行モデル(合計 18ヶ月)

Wave 1 ・ 3ヶ月

80本

Wave 2 ・ 3ヶ月

150本

Wave 3 ・ 6ヶ月

200本

Wave 4 ・ 6ヶ月

AI駆動: 並列実行モデル(合計 6-7ヶ月) — 4ストリームを同時並行

Stream A

VB6リーフ

Stream B

COBOLバッチ

Stream C

中核業務

Stream D

複雑処理

役割分担の変化

作業従来の担当AI駆動での担当
コード読解・理解人間(100%)AI(70%)+ 人間(30%の確認)
変換コード生成人間(100%)AI(70-80%)+ 人間(20-30%の修正)
テストケース設計人間(100%)AI(テスト仕様提案)+ 人間(設計判断)
テストコード生成人間(100%)AI(60-70%)+ 人間(30-40%の修正)
ドキュメント生成人間(100%)AI(90%)+ 人間(レビュー)
アーキテクチャ設計人間(100%)人間(100%) ← 変わらない
ビジネスルール確認人間(100%)人間(100%) ← 変わらない
品質最終判定人間(100%)人間(100%) ← 変わらない

要点: AIは「実行」を加速するが、「判断」は人間に残る。


3. ゴールデンマスターテスト戦略

3.1 概要

ゴールデンマスターテスト(Characterization Testing / Approval Testing)は、Michael Feathers が "Working Effectively with Legacy Code" で定義した手法。

核心: 既存システムの入出力を記録し、変更後も同じ出力が得られることを検証する。「正しさ」ではなく「変わっていないこと」を保証する。

なぜモダナイゼーションの成否を左右するか: 70-80%のモダナイゼーションプロジェクトが失敗する最大の原因は「ビジネスロジックの微妙な変質」。ゴールデンマスターテストはその防波堤となる。

3.2 プログラム種別ごとの適用可能性

(A) COBOL バッチ処理 — 適用難易度: 低〜中(最適)

Golden Master Testing の最も得意なパターン。

[適用パターン]
入力ファイル → COBOL バッチ → 出力ファイル + DB変更

Golden Master = {
  入力ファイル(固定),
  DB初期状態(スナップショット),
  出力ファイル(キャプチャ),
  DB最終状態(スナップショット)
}

具体的な実装手順:

  1. テスト用DBにSQL Server データベーススナップショットを復元
  2. 入力ファイルを配置
  3. COBOLバッチをBAT経由で実行
  4. 出力ファイルをdiffで比較
  5. DBの変更をSQLでダンプし、Golden Masterと比較

カバレッジ見積もり:

  • 設備管理サブシステム(133本、バッチ主体): 60-80% カバー可能
  • 料金CISサブシステム(287本)のバッチ部分: 30-40%

(B) VB6 バッチ処理(GUI なし) — 適用難易度:

VKNDD0B(441行)のような「引数→処理→DB更新」型。

[適用パターン]
EXE起動(引数あり) → ExeOdbc経由DB操作 → ログ出力

Golden Master = {
  コマンドライン引数,
  DB初期状態,
  DB最終状態,
  ログファイル出力
}

課題:

  • ExeOdbc.bas のODBC DSN名がハードコードされている可能性
  • VB6ランタイムが必要 → CI/CDにWindows VMが必須

(C) VB6 GUI フォームアプリケーション — 適用難易度: (最大の壁)

VB6 GUI はゴールデンマスターテストの最大の課題。

図を読み込み中…

現実的な対応:

  1. DBレベルのGolden Master: GUI操作は手動で行い、DB状態の変化だけをキャプチャ
  2. TestComplete: VB6コントロールを直接認識可能だが、年額約$5,000/席
  3. ビジネスロジック層の分離: テスト可能な関数に抽出(工数: 1プログラムあたり数日)

3.3 使用ツール

ツール用途成熟度費用
ApprovalTests.NetC# 移行後コードのApprovalテスト高(10年以上の実績)無料(OSS)
TextTestCOBOLバッチの入出力テスト無料(OSS)
TestCompleteVB6 GUI テスト自動化~$5,000/年/席
QuerySurgeDB比較テスト高(商用)$15K-$50K/年
SQL Server Developer EditionテストDB無料

3.4 CombinationApprovals(最重要テクニック)

Llewellyn Falco が特にレガシーコードで推奨する手法。全入力組み合わせを自動生成し、出力をまとめてスナップショット保存。

// C# での使用例(移行後コードに対して)
[Fact]
public void TestAllCombinations_MeterDataProcessing()
{
    CombinationApprovals.VerifyAllCombinations(
        (ctl, id, jigyosha, kubun) => service.ProcessRecord(
            new Kndd0Record { Ctl = ctl, Id = id, Jigyosha = jigyosha, Kubun = kubun }),
        new[] { "D", "H", "T" },           // CTL: データ/ヘッダ/トレーラ
        new[] { "1", "2", "9" },           // ID
        new[] { "2903", "9999", "" },      // JIGYOSHA: 事業者
        new[] { "0", "1" }                 // KUBUN: 今回/前回
    );
    // 3 x 3 x 3 x 2 = 54通りが自動テストされる
}
csharp

3.5 非決定的要素の処理(Scrubber)

非決定的要素本案件での出現箇所対処法
タイムスタンプRN920制御テーブルの更新日時、ログ正規表現でプレースホルダに置換
連番/IDAUTO_INCREMENT、IDENTITY列相対値に変換
浮動小数点金額計算(COMP-3 vs decimal)許容誤差を設定(0.01円)
ファイルパスログ内のフルパスパス部分をマスク
# Scrubber 実装例
import re

def scrub_output(output: str) -> str:
    # タイムスタンプ
    output = re.sub(r'\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}', '<TIMESTAMP>', output)
    # 連番の正規化
    counter = {}
    def normalize_id(match):
        val = match.group(0)
        if val not in counter:
            counter[val] = f"ID_{len(counter)+1:04d}"
        return counter[val]
    output = re.sub(r'(?<=ID=)\d+', normalize_id, output)
    return output
python

3.6 AI によるテスト生成の現実

LLMで可能なこと(今すぐ):

  1. VB6/COBOLソースを読み、テストケース仕様(入力/期待出力のペア)を生成
  2. 移行後のC#コードに対するxUnitテストの生成
  3. ExeOdbc のSQLパターンを分析し、テストデータを提案

LLMで不可能なこと(当面):

  1. VB6/COBOLコードに対して直接実行可能なテストを生成すること
  2. 暗黙的なビジネスルールの完全な理解
  3. DB副作用の全パターンの推定

実績データ: LLMベースのテスト生成ツールでは、生成テストの 12-42% がコンパイルエラーまたはテスト失敗 (Diffblue 2025 ベンチマーク)。人間レビューは必須。

3.7 ゴールデンマスターの位置づけ(一時的なもの)

J.B. Rainsberger の助言に従い、ゴールデンマスターテストは、「移行の橋渡し」として一時的に使用し、移行完了後はApprovalTests.Net + xUnit による本格的なテストスイートに置き換える。長期保持するとメンテナンスコストが爆発する。

3.8 工数見積もり

項目工数
テストDB環境構築2-4週間
COBOLバッチGolden Master構築(80本)6-8週間
VB6バッチGolden Master構築(60本)4-6週間
Scrubber開発2-3週間
VB6 GUI テストケース作成8-12週間
テスト基盤(CI/CD統合)3-4週間
合計約25-37週間(6-9人月)

4. コンテキスト保全: Knowledge Graph の要否判断

4.1 結論

未来明るく電力のケースでは「本格的な Knowledge Graph(Neo4j等)」はオーバーエンジニアリング。既存の legacy_analyzer の依存マップ(JSON/SQLite)+ Claude Code で十分。

4.2 判断根拠

条件未来明るく電力の状況判断
コード規模約50万行(中規模)JSON/SQLiteで管理可能
依存構造VB6-COBOL完全分離、74%がリーフグラフ横断クエリの必要性低
既存ツールlegacy_analyzerで依存グラフ構築済み追加投資の必要性低
チーム規模5-8名予定少人数チームにGraph DBは過剰
ホットスポットExeOdbc等は既に特定済み発見フェーズは完了

4.3 Knowledge Graph が必要になる条件(現時点では非該当)

  • 100万行以上のコードベース
  • 複数チーム(10名以上)が並行して異なるサブシステムを移行
  • COBOL REDEFINES句が大量に存在し、データリネージの追跡が必要
  • Phase 2以降で複雑な依存関係のデバッグが頻発した場合

4.4 推奨する中間アプローチ

[静的解析(確定的)] + [依存マップJSON] + [Claude Code(確率的)] + [人間検証]
         ↓                    ↓                    ↓                ↓
   legacy_analyzer      コンテキスト供給        コード生成        品質保証
   (既存で完了)        (ファイル単位で投入)    (70-80%自動化)    (20-30%手直し)
  1. legacy_analyzer の依存マップを移行順序の決定に使用(トポロジカルソートでリーフから)
  2. 各プログラム変換時に、そのプログラムの依存先リスト・テーブルスキーマ・仕様書をClaude Codeのコンテキストに含める
  3. ExeOdbc.bas は人間が設計したC#データアクセス層に変換し、自動変換に頼らない

4.5 GraphRAG が効果を発揮する唯一の領域

COBOL の COPY句(copybook)の解析。同一メモリ領域が条件フラグに応じて異なるデータ型として解釈される REDEFINES 句は、LLM単体では見落とすリスクがある。

対策: COPY句を事前に確定的な静的解析ツールで展開してからLLMに渡す。LLMに任せるのではなく、確定的ツールで前処理する。


5. AI強化型 Strangler Fig パターン

5.1 従来 vs AI強化の違い

観点従来のStrangler FigAI強化版
サービス境界の特定人間がコードを読んで判断AIが依存グラフを解析し候補を自動提案
APIラッパー生成手動実装AIがボイラープレートを65%削減
移行リスクスコアリング人間の経験と勘定量的なスコアを自動算出
差分検証手動で差分レポートを目視AIが差分を自動分類(意図的/表示差異/バグ)

5.2 ExeOdbc を起点としたStrangler Facade

プレイブック 4.2節 Phase 1 で定義された「ExeOdbc → REST API」の移行が、Strangler Fig の最初の切り口。

Phase 1 完了後のアーキテクチャ

図を読み込み中…

5.3 COM DLL ブリッジの実装

VB6から直接呼び出し可能なCOM-visible C# DLLを作成し、内部でREST APIを呼ぶ:

// ExeOdbcBridge.cs — VB6から呼べるCOM DLL
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
[Guid("A1B2C3D4-E5F6-7890-ABCD-EF1234567890")]
public class ExeOdbcBridge
{
    private readonly HttpClient _http = new();
    private const string BaseUrl = "https://api.internal/v1";

    // VB6の ExeOdbc.bas の ExecDirect に対応
    public string ExecDirect(string sql, string connectionName)
    {
        var response = _http.PostAsync(
            $"{BaseUrl}/query",
            new StringContent(
                JsonSerializer.Serialize(new { sql, connectionName }),
                Encoding.UTF8, "application/json"
            )
        ).Result;
        return response.Content.ReadAsStringAsync().Result;
    }

    // VB6の ExeOdbc.bas の BeginTrans に対応
    public string BeginTransaction(string connectionName)
    {
        var response = _http.PostAsync(
            $"{BaseUrl}/transaction/begin",
            new StringContent(
                JsonSerializer.Serialize(new { connectionName }),
                Encoding.UTF8, "application/json"
            )
        ).Result;
        return response.Content.ReadAsStringAsync().Result;
    }
}
csharp

AIによる支援の範囲:

  • ExeOdbc.bas 28プロシージャの関数シグネチャ解析 → AI可能
  • COM DLLインターフェースのスキャフォールド生成 → AI可能
  • REST APIエンドポイントとの対応マッピング生成 → AI可能
  • エラーハンドリング・タイムアウト・リトライロジック → 人間によるレビュー必須

注意: VB6 COM DLLの完全自動生成ツールは市場に存在しない。GAPVelocity AI はVB6→C#の全面変換ツールであり、ブリッジ生成には対応しない。

5.4 API Gateway によるルーティング

[API Gateway ルーティング]

/api/v1/query      → 新REST API(移行済み)
/api/v1/legacy/*   → レガシーODBC Proxy(未移行)
/api/v1/report/*   → レガシーODBC Proxy → 新REST API(段階移行中)

Kong、NGINX、Envoy のいずれかで構成。パスベースルーティングで段階的に新旧を切り替える。


6. CDC・シャドーテスト・並行稼働

6.1 CDC(Change Data Capture)構成

図を読み込み中…

SQL Server CDC セットアップ:

-- DB単位で有効化
EXEC sys.sp_cdc_enable_db;

-- 最優先テーブル: 料金CIS-設備管理間共有テーブル
EXEC sys.sp_cdc_enable_table
  @source_schema = N'dbo',
  @source_name = N'KY110',  -- 両側書き込みの最高リスクテーブル
  @role_name = NULL;
sql

優先テーブル: KY110(料金CIS-設備管理間の両側書き込み)を最初のCDC対象にすべき。残り10件の共有テーブルは片側書き込みまたは読み取りのみなので、CDCの優先度は低い。

注意点:

  • Debezium SQL Server CDC Source V1 は 2026年3月31日にEOL。V2コネクタを使用すること
  • CDC有効化はDBパフォーマンスに影響する。キャプチャ/クリーンアップジョブの間隔を適切に設定
  • SQL Server Agent の起動必須

6.2 シャドーテスト

本システムはバッチ処理主体+GUI操作の構成であり、Webトラフィックベースのシャドーテストツール(Diffy等)はそのままでは適用できない。

バッチ処理向けシャドーラン:

Reconciliation Loop

図を読み込み中…

照合エンジン:

  • DB状態A vs DB状態B → テーブル単位でdiff
  • 出力ファイルA vs B → Scrubber適用後にdiff
  • 差分レポート → AIが自動分類:
    • 意図的改善 → Accept
    • 表示差異 → Known
    • 予期しない差分 → Alert → 人間レビュー

6.3 並行稼働のライフサイクル

プレイブック 7.4節のShadow Mode戦略をAIで強化:

Phase A: Shadow Mode (2-4週間)  ← AIは差分分類を自動化
  レガシー = Source of Truth
  新システムは同じ入力を受けて処理、結果は保存しない
  出力を比較して差分を検出・修正

Phase B: Reverse Shadow (2-4週間)  ← AIは異常検知を支援
  新システム = Source of Truth
  レガシーは検証用に並行稼働
  差分があれば新システム側を修正

Phase C: New Mode
  新システムのみで稼働
  レガシーは待機系として一定期間保持(ロールバック用)

Phase D: 完全停止
  十分な安定稼働を確認後、レガシーを停止

圧縮不可能な制約: Shadow/Reverse Shadow の各2-4週間は実データでの検証であり、AIでは短縮できない。ただし差分レビューの工数は90%削減可能。

6.4 インフラコスト

並行稼働期間はインフラコストが実質2倍になる。これは「リスク低減のための投資」であり、一括切り替え失敗時のビジネス損失と比較すべき。


7. 変換精度のベンチマークと正直な評価

7.1 学術研究のデータ

COBOL → Java/C#

手法精度ソース
AI駆動(GPT-4 + 静的解析)93%(ファイル単位)arXiv:2504.11335 "Code Reborn"
ドメイン特化LLM(XMainframe等)98.4%arXiv:2408.04660
ルールベースツール82%Code Reborn 比較
手動変換75%同上

重要な注意: 「93%」「98.4%」はファイル単位の構文正確性であり、ビジネスロジック等価性ではない

Microsoft Azure ブログの警告: 「ベンダーが "80%の精度" と言っても、自分のコードベースで、自分の制約で、自分のリスクプロファイルで結果を見るまではマーケティングとして扱え」

VB6 → C#

手法自動化率ソース
AI単独40-60%Abto Software
AI + ルールベース併用70-80%LegacyLeap
手動介入が必要な割合20-30%複数ソース一致

7.2 未来明るく電力プロジェクトでの予測

Claude の VB6 理解精度

パターン精度(推定)根拠
単純CRUD(VKNDD0B型)85-95%構造明確、パターンマッチしやすい
ExeOdbc(Win32 ODBC API)60-75%Win32 APIのセマンティクスが曖昧
VB6フォーム(GUI)40-60%イベント駆動→Blazor変換はパターン不安定
暗号的命名のロジック50-70%KUBUN, JIGYOSHA等の意味を推測に頼る

Claude の COBOL 理解精度

パターン精度(推定)根拠
単純バッチ(CRY413型)90-95%パターンが典型的
COPY句含む処理60-80%COPY句の解決が不正確な場合がある
COMP-3演算70-85%重大リスク: 丸め誤差の可能性
PERFORM→THRUスパゲッティ50-65%非構造化制御フローは難易度高
REDEFINES / 暗黙的型変換40-60%メモリレイアウト再現が困難

7.3 自動変換ツールとの比較

ツールVB6精度COBOL精度特徴
GAPVelocity AI70-95%N/AVB6特化、BMW 100万行実績
AWS Blu AgeN/A70-85%COBOL→Java特化
IBM watsonx for ZN/A80%+メインフレーム前提
Claude Code単独50-85%50-85%汎用だが専門ツールに劣る
Claude Code + 専門ツール85-95%80-90%推奨: 組み合わせ

7.4 リワーク率の現実

フェーズAI対応人間対応
コード生成・構文変換70-80%20-30%
ビジネスロジック検証支援のみ100%
データ型・精度の検証一部検出可能ほぼ100%
テスト作成60-70%30-40%
統合テスト支援のみ100%

全体のリワーク率予測:

  • 単純CRUD: 10-15%
  • ExeOdbc: 5-10%(インターフェース明確のため)
  • 複雑業務ロジック: 25-35%
  • 全体平均: 15-20%

7.5 AI変換が「正しく見えるが間違っている」パターン

最も危険な失敗モード。コンパイルは通り、基本テストも通るが、エッジケースで誤った結果を出す:

パターン検出方法
COMP-3 丸め誤差COBOL: PIC S9(7)V99 COMP-3 → C# double で精度劣化金額計算の全パス比較テスト
VB6 暗黙的型変換Variant → C# で型推論ミスScrubber付きGolden Masterテスト
NULL vs 空文字列VB6は混同する、C#は区別するDB結果のNULL/空文字比較
文字コードCP932固有文字(①②③、髙、﨑等)全文字コード変換テーブルでの検証

7.6 批判的な視点

Swimm社の分析: 「Claude Code がCOBOLを読めるとは言えない」

Phase Change Software: 「同じソースコードを2回解析して異なる結果が出る可能性がある確率的ツールに、ミッションクリティカルなシステムの移行を賭けられるか」

Thoughtworks: 「Claude Code は時間とコストの面では卓越しているが、正確性の次元ではまだそうではない」

本文書の立場: これらの批判は正当。だからこそゴールデンマスターテスト + Shadow Test + 人間レビューの三重防御が必須。AIは「下書きマシン」として使い、品質保証は人間が担う。


8. コスト分析と ROI

8.1 Claude API コスト

項目Sonnet 4.6Opus 4.8
全量解析(1回)$210$350
反復改善(10回)$2,100$3,500
プロジェクト全体(10ヶ月)$5,000-$15,000$10,000-$25,000

API代はプロジェクト全体コストの0.5-2%未満。コスト構造上ほぼ無視できる水準。

Claude Code Max 20x プラン($200/月/開発者)を使用する場合、5名 × 10ヶ月 = $10,000。

8.2 商用ツール費用

ツール対象費用(推定)自動化率
GAPVelocity AIVB6→C#$50K-$200K70-85%
AWS Blu AgeCOBOL→Java/C#$0-$1,000(無料枠内)70-85%
ApprovalTests.Netテスト無料(OSS)
TextTestCOBOLテスト無料(OSS)
TestCompleteVB6 GUIテスト~$5,000/年/席

8.3 総コスト比較

手動アプローチ(24ヶ月)

費用項目コスト(推定)
コンサルファーム(分析・設計)5,000万-8,000万円
開発チーム(8-12名 × 18ヶ月)2-4億円
テスト・QA1-2億円
ツールライセンス1,000-3,000万円
トレーニング500-1,000万円
インフラ(並行運用12ヶ月)1,000-2,000万円
予備費(20%)5,000万-1.5億円
合計3.5-8億円

AI支援アプローチ(10-12ヶ月)

費用項目コスト(推定)
AIツール・API100-300万円
開発チーム(4-6名 × 10ヶ月)6,000万-1.2億円
AI専門家/プロンプトエンジニア1,000-2,000万円
テスト・QA4,000-6,000万円
ツールライセンス500-1,500万円
トレーニング300-500万円
インフラ(並行運用6ヶ月)500-1,000万円
予備費(15%)2,000-4,000万円
合計1.5-3.5億円

差分

項目手動AI支援差分
総コスト3.5-8億円1.5-3.5億円40-55% 削減
期間24ヶ月10-12ヶ月50-58% 短縮
チーム規模12-18名5-8名55-67% 削減

8.4 ROI

指標
現在のレガシー保守(推定)年間 4,000万-8,000万円
移行後の保守(推定)年間 1,500万-3,000万円
年間削減額2,500万-5,000万円
投資回収期間(AI支援)3-5年
3年ROI(AI支援)200-304%

見落とされがちなコスト: IT予算の72%がレガシー維持に消費されている現状では、「移行しないコスト」が年間数千万円単位で積み上がる。AI支援移行の費用対効果は、移行コスト単体ではなく現状維持の機会損失コストとの対比で評価すべき。

8.5 隠れコストへの注意

見落としがちな費用推定
文字コード変換テスト(CP932→UTF-8)2-4週間の追加工数
DB移行・スキーマ変換(177テーブル、3DB)4-6週間
外部システム連携(スマメ/EDI)仕様調査仕様書カバレッジ63%、残り37%は調査必要
エンドユーザー教育(VB6 GUI→Web UI)$1K-$3K/人
ロールバック計画策定・検証プロジェクトの5-10%

9. AI強化タイムライン

9.1 全体スケジュール

Phase 0

調査・基盤整備

AI全量解析(596本) / デモ構築(2-3本) / ログ調査(お客様依存) / 正本EXE特定 / DBスキーマ取得

Phase 1

共通基盤移行

ExeOdbc REST API化 / COM DLLブリッジ構築 / CDC基盤構築 / Shadow Test

Phase 2

機能別並列移行

Stream A(VB6リーフ ~120本) / Stream B(COBOLバッチ ~80本) / Stream C(中核業務 ~150本) / Stream D(複雑処理 ~140本) / Golden Master テスト / 各Wave Shadow Test

Phase 3

完全移行

Reverse Shadow / 完全移行・レガシー停止

全体スケジュール ・ 合計 10-12ヶ月(Month 1〜12)

9.2 各フェーズの詳細

Phase 0: 調査・基盤整備(3ヶ月 → 2ヶ月に圧縮

タスク従来AI駆動圧縮率
全ソースコード解析6-8週間2-3週間60%
仕様書突合4-6週間1-2週間70%
移行スコアリング2-4週間2-3日90%
デモ構築4-6週間2-3週間50%
ログ調査4週間4週間(圧縮不可0%

Claude Code で実行:

  • 596本全プログラムのビジネスロジック自動解析・要約
  • 仕様書292本とソースコードの突合・ギャップ分析
  • 依存グラフに基づく移行難易度スコアリング
  • デッドコード候補の静的解析ベース特定

Phase 1: 共通基盤移行(3ヶ月 → 2.5ヶ月に圧縮

[ExeOdbc REST API化のAI駆動ワークフロー]

Step 1: Claude Code が ExeOdbc 28プロシージャを解析     (1日)
Step 2: REST API スキャフォールド自動生成               (1日)
Step 3: 各プロシージャのAPI化(エージェント並列)         (1週間)
Step 4: COM DLL ブリッジ生成                          (1週間)
Step 5: ゴールデンマスターテスト生成(並列)              (3日)
Step 6: 人間レビュー + 修正                           (2週間)
Step 7: Shadow Test                                 (2週間 — 圧縮不可)

Phase 2: 機能別並列移行(12ヶ月 → 6-7ヶ月に圧縮

圧縮の鍵: Waveの並列化

VB6とCOBOLが完全分離しているため、並列実行が可能:

ストリーム対象期間並列度
Stream AVB6リーフプログラム (~120本)5ヶ月エンジニア2名 + Claude ×2
Stream BCOBOLバッチ (~80本)4ヶ月エンジニア1名 + Claude ×1
Stream C中核業務 (~150本)6ヶ月エンジニア2名 + Claude ×2
Stream D複雑処理 (~140本)6ヶ月エンジニア1名 + Claude ×1

各Stream内でさらに 4-8ワークツリー が並列稼働(1開発者あたり)。

Phase 3: 完全移行(6ヶ月 → 2-3ヶ月に圧縮

Shadow/Reverse Shadow の期間自体は圧縮困難だが、差分検証の自動化で人的負荷を大幅削減。


10. リスク分析(AI固有リスク含む)

10.1 AI固有のリスク

リスク影響度発生確率対策
ハルシネーション(存在しないAPI/パッケージの提案)高(5-22%)検証パイプライン(dotnet build)で自動検出
COMP-3 丸め誤差極高decimal型強制 + 金額計算の全パス比較テスト
REDEFINES句の見落としCOPY句の確定的な静的解析で事前展開
ビジネスロジックの微妙な変質極高ゴールデンマスターテスト + Shadow Test
「完了への焦り」(難問をスキップ)人間レビューの義務化、コードレビュープロセス
コンテキスト崩壊(大規模変換で命名規則を忘れる)CLAUDE.md + ワークツリー分離 + 短いセッション
非決定的出力(同じコードで異なる変換結果)変換結果のバージョン管理、diff確認

10.2 従来型リスク(プレイブック 9節から継承)

リスク影響度発生確率対策
ExeOdbc の挙動が完全に再現できないShadow Test で全SQL実行結果を比較
文字コード問題(Shift_JIS → UTF-8)CP932固有文字の網羅テスト
暗黙的なビジネスルールClaude Code でソース分析 + 業務担当者ヒアリング
業務知識の属人化早期のヒアリング、AI支援ドキュメント化
レガシー開発者の退職早期の知識移転、AI支援による理解加速

10.3 市場全体のリスク指標

指標ソース
レガシーモダナイゼーション失敗率70-80%業界統計(AI導入後も変わらず)
Gartner: agentic AIプロジェクト中止率40%+(2027年末まで)Gartner 2025年6月
GenAIパイロットの失敗率95%(組織学習ギャップ)複数ソース

対策: 小さなPoCから開始し、実測データに基づいてスケール判断。VKNDD0B + CRY413 のデモで精度を実測してから本格移行に進む。

10.4 絶対にやってはいけないこと

  1. 「Claude Code で全自動変換」と約束すること — 人間のレビューは必須
  2. ExeOdbc の自動変換を信用すること — システム全体の基盤は人間が設計・レビュー
  3. COMP-3 演算の変換結果を検証なしで使うこと — 金額計算の誤差は致命的
  4. 全596本を一括変換すること — Strangler Figで段階的に
  5. VB6 Variant → C# dynamic を許容すること — 明示的な型宣言を強制
  6. ゴールデンマスターテストを省略すること — 変換の安全網として必須
  7. AIの出力を「正しい」と仮定すること — 常に「下書き」として扱う

11. 実行可能な次のアクション

11.1 即座に開始できること(お客様の協力不要)

アクション工数目的
Claude Code で596本全プログラムの自動解析2-3日移行スコアリング、デッドコード候補特定
ExeOdbc.bas のAI分析・C#変換PoC3-5日28プロシージャの変換精度を実測
VKNDD0B のAI変換(VB6→C#)1-2日VB6変換の精度・工数を実測
CRY413 のAI変換(COBOL→C#)1日COBOL変換の精度・工数を実測
ゴールデンマスターテストのプロトタイプ3-5日VKNDD0Bで実証
CLAUDE.md の整備1日変換ルールの明文化
ApprovalTests.Net + xUnit の基盤構築2-3日テスト基盤

11.2 お客様の協力が必要

アクション目的
本番EXE照合(SHA256)正本バージョンの確定
DBスキーマエクスポート177テーブルのDDL取得
実行ログ取得デッドコード特定、実行プロファイル
業務担当者ヒアリング仕様不明点の解決

11.3 PoC で検証すべき項目

検証項目成功基準失敗時の対応
VB6→C# 変換精度VKNDD0Bで90%以上の行が正しく変換GAPVelocity AIの併用を検討
COBOL→C# 変換精度CRY413で95%以上AWS Blu Age(無料枠)の併用を検討
ExeOdbc 変換の完全性28プロシージャ全てがREST API化可能人間による設計・実装に切り替え
ゴールデンマスターテストCOBOLバッチの入出力比較が自動化可能TextTest + 手動スクリプトに切り替え
並列ワークツリー3-5本の同時変換が品質を維持逐次変換に戻し、従来タイムラインを適用

11.4 判断ポイント

PoC結果に基づき、以下を判断:

[PoC結果による戦略分岐]

変換精度 ≥ 85% かつ テスト自動化成功
  → AI駆動戦略を採用(本文書のタイムライン)
  → 予想: 10-12ヶ月、1.5-3.5億円

変換精度 60-85% かつ テスト部分成功
  → ハイブリッド戦略(AI + 商用ツール + 手動の組み合わせ)
  → 予想: 14-18ヶ月、2-5億円

変換精度 < 60% または テスト自動化失敗
  → 従来戦略に回帰([04-playbook.md](/docs/playbook) のタイムライン)
  → 予想: 24ヶ月、3.5-8億円

付録: 参考文献・ソース

Anthropic / Claude 公式

学術研究

批判的分析

実装リファレンス

コスト・市場データ

テスト手法

このページはお役に立ちましたか?

未来明るく電力

システム資産可視化