Java 21ランタイム上で正常に起動したBytecode Viewerのメイン画面

AIエージェントと人間がやり取りしながら完成させたJavaマイグレーション

Case Study · AI-Driven Migration オープンソースのBytecode Viewer 2.13.2をJava 8からJava 21へ移行する過程を、Kiro IDEのAI-DLC(AI-Driven Lifecycle)ルールの上で最初から最後まで記録しました。AIがコードを代筆したのではなく、人間が意思決定し、AIがドキュメント・計画・コード・検証を一つずつ積み上げていった話です。 なぜこのプロジェクトをAI-DLCに乗せたのか Bytecode Viewerは、JavaバイトコードやAndroid APKを解析するときに使われる古参のオープンソースデスクトップアプリです。6つのデコンパイラ(CFR、Procyon、FernFlower、JADX、JD-GUI、Krakatau)と3つのディスアセンブラ、そしてJavaScript・Python・Ruby・Groovy・Javaのプラグインシステムを1つのプロセスに収めている、小さいながらも堅実なアプリです。ただしJava 8に固定 されており、その上にモダンなツールチェーンを載せるのは年々重くなっていました。 今回の課題はシンプルです。「Bytecode ViewerをJava 8からJava 21へ移してくれ」。シンプルですが、実際にやってみるとすぐに厄介になります。SecurityManagerはJava 18で削除され、内蔵のNashornエンジンはJava 15で外され、旧バージョンの依存ライブラリ40余りの多くは最新版がJava 11以上を要求します。さらにこのプロジェクトはテストが事実上1つだけ です。 このような典型的なブラウンフィールド・モダナイゼーションを感覚で処理すると、必ず何かを忘れます。どこを消したのか、なぜ消したのか、どんな代替案を検討したのかが揮発しやすいのです。そこで今回はKiro IDEのAI-DLC(AI-Driven Lifecycle) 方法論をそのまま被せ、すべての決定をドキュメント化し、承認ゲートを4回経由して進めました。 結果から先に示します。 指標 値 ソースファイル数 302(main 301 + test 1) 変更ファイル pom.xml + Javaソース4つ + 新規 Dockerfile.build + 新規 Dockerfile.vnc Javaバージョン 1.8 → 21 ビルド成果物 target/Bytecode-Viewer-2.13.2.jar(97MB fat JAR) ビルド環境 Docker(maven:3.9-eclipse-temurin-21) ビルド結果 [DONE] SUCCESS — 302ファイルすべてコンパイル成功 Kiro IDE、AI-DLC、そしてSteering Kiro IDE Kiroはスペック駆動開発(Spec-Driven Development) を前提に作られたAI IDEです。今回の作業で活用した機能は4つです。 ...

2026年5月15日 · 9 分 · AI-DLC Practice Team