「JavaのEJBシステムを解析して仕様書を復元したいが、どれくらいの費用がかかるのか見当がつかない」「見積もりを取ったら想定の3倍の金額が来て驚いた」—Javaのリバースエンジニアリングに関する費用の問い合わせは、このような悩みを抱えた担当者から多く寄せられます。Javaはバイトコード形式で逆コンパイルしやすい言語特性を持つものの、ProGuardによる難読化やSpringフレームワークの複雑性によって、見積もりにブレが生じやすい側面もあります。
本記事では、Javaのリバースエンジニアリングに関する費用相場を、成果物の粒度・プロジェクトの種別・Java固有のコスト要因ごとに体系的に解説します。LOC課金の仕組みと落とし穴、モダナイゼーション全体での費用目安、コストを抑える具体的な方法まで、実務で役立つ情報を網羅しています。
▼全体ガイドの記事
・Javaのリバースエンジニアリングの完全ガイド
Javaリバースエンジニアリングの費用構造

Javaのリバースエンジニアリングの費用は、主にLOC(Lines of Code:ソースコード行数)に基づく従量課金制で算定されます。ただし、Javaはバイトコードから逆コンパイルされた行数を基準とするか、元のソースコード推定行数を基準とするかでLOCの数え方が変わるため、ベンダーに確認が必要です。また、解析難易度(難読化の有無・フレームワークの複雑さ)によって単価に補正係数がかかる場合があります。
LOC課金制とJavaにおける適正単価
ソースコード解析による仕様書復元の基本料金は、4,000行までを30万円(基本セット)として、超過分は1行あたり50円程度が市場相場です。例えば、ECサイトの商品登録機能(約10ファイル・4,000行)は約30万円、API連携システム(外部I/O項目リスト化)は約50万円、WordPressポータルサイト(CMS構造解析)は約60万円、在庫予約システム(約30ファイル・セキュリティ確認含む)は約80万円が目安となります。
ただし、これらはシンプルなJavaシステムの相場であり、EJBやSpringなどの大規模フレームワークを使ったシステムでは単価に1.5〜2倍程度の補正がかかるケースがあります。Javaのコードは逆コンパイルで元のソースに近い形を復元できるため、C言語のバイナリ解析と比べると解析しやすいものの、フレームワークが隠蔽するビジネスロジックを読み解くには追加工数が必要です。
Javaの複雑さを反映した見積補正
Javaのリバースエンジニアリングの見積もりにおいて、LOC単価だけで計算すると実費と大きく乖離するケースが多くあります。見積補正が必要な主なケースは以下の通りです。まず、ProGuardやR8で難読化されたAndroidアプリのAPKは、変数名・クラス名がすべて記号に置き換えられており、可読性のあるコードを復元するための「リネーミング作業」が追加で必要です。この工数は難読化のレベルによりますが、標準ケースの2〜4倍の工数になることがあります。
次に、EJBやStrutsを使ったシステムは、フレームワーク固有の設計パターン(Facade・DAO・Transfer Objectなど)を理解した上で解析しなければ業務ロジックを正確に抽出できません。このフレームワーク習熟コストが見積もりの変動要因になります。また、Springの設定ファイル(XML・アノテーション・Java Config)やAOP設定の解析は、通常のJavaコードの解析とは別に工数見積もりが必要です。これらの補正要因を事前に洗い出すことが正確な見積もりの出発点です。
成果物粒度別の費用相場

リバースエンジニアリングの費用を左右する最大の要因の一つが、成果物の粒度です。「仕様書を作ってほしい」という依頼でも、フローチャートレベルなのか、新システム開発に直接使える詳細設計書レベルなのかによって、費用は数倍の開きが生じます。発注前に成果物のイメージを具体的に合意しておくことが予算管理の基本です。
フローチャートレベル(最小粒度)
最も軽量な成果物は、処理フローを図示したフローチャートと簡易な機能一覧です。この粒度では、Javaコードの主要な処理経路をスイムレーン図や業務フロー図として可視化し、どの機能がどの順序で実行されるかを概括的に把握できます。費用の目安は、1万行規模のシステムで50万〜100万円程度です。現状把握・スコーピング・チームへの共有が主目的で、新システム設計には不十分なレベルです。
業務仕様書レベル(中粒度)・詳細設計書レベル(高粒度)
業務仕様書レベルでは、フローチャートに加えて画面遷移図・入出力項目定義・業務ルール記述・エラー処理仕様が含まれます。Javaシステムの場合、Strutsの画面遷移(struts-config.xml)やSpring MVCのコントローラとビューのマッピングを解析して画面遷移図を作成する工程が含まれます。1万行規模で200万〜500万円程度が目安であり、現行システムの移行要件定義に使えるレベルの成果物が得られます。
詳細設計書レベルは、新システム開発のインプットとして直接使用できる品質を持ち、クラス設計書・ER図・API定義・シーケンス図・テスト仕様書まで含む最高粒度の成果物です。SpringベースのJavaシステムの場合、DI設定・Bean依存関係・トランザクション境界・例外ハンドリング・セキュリティ設定まで設計書に反映する必要があります。費用は1万行規模で500万〜1,000万円以上、大規模システムでは数千万円に達するケースもあります。
Javaリバースエンジニアリング固有のコスト要因

Javaには他の言語と比べて費用の変動幅を大きくする固有の要因があります。これらを事前に理解しておくことで、見積もりの精度を上げ、予算計画を適切に立てることができます。
ProGuard難読化の解除工数
AndroidアプリのAPKに含まれるJavaバイトコードには、ProGuardまたはR8による難読化が施されている場合が多くあります。難読化後のコードは、クラス名がa・b・c、メソッド名がa()・b()・c()というように意味のない記号に置き換えられており、逆コンパイル自体は成功しても、コードの意味を解読することが格段に難しくなります。
ProGuardのマッピングファイル(mapping.txt)が入手できる場合は、自動的に元の名称を復元できますが、マッピングファイルがない場合は手動でのリネーミング作業が必要です。この作業は、実行時のログ・例外スタックトレース・UIの表示テキストなどを手がかりにしながら進める地道な作業であり、標準的なJavaシステムの解析と比べて2〜4倍の工数が必要になることが多いです。例えば、標準Javaシステムの解析が50万円であれば、難読化APKは100万〜200万円程度になる計算です。
Springフレームワーク依存の追加解析コスト
Springを使ったシステムでは、DI(依存性注入)・AOP(アスペクト指向プログラミング)・Spring MVCのDispatcherServletによるリクエストルーティングなど、フレームワークが隠蔽する処理が多数あります。この「フレームワーク依存の設計意図」は、バイトコードからは読み取れないため、設定ファイル(XML・application.yml)やBeanFactory定義の解析が追加で必要です。
また、EJBシステムの場合はCMT(コンテナ管理トランザクション)の境界定義、MDB(メッセージ駆動Bean)のキューとの連携仕様、リモートインターフェースのスタブ・スケルトン構造など、フレームワーク固有の要素を理解するためのドキュメント調査工数も発生します。これらを加味すると、EJB/Springシステムの解析費用はシンプルなJava SEシステムと比べて20〜50%増しになる場合があります。
モダナイゼーション全体での費用目安

EJBやStrutsで構築されたJavaシステムをSpring Bootなどの現代的なアーキテクチャへ移行する場合、リバースエンジニアリングはモダナイゼーション全体プロジェクトの中の一工程です。全体費用を把握するために、移行手法別の費用目安を整理します。
リホスト/リプラットフォーム/リファクタリング/リビルドの費用比較
モダナイゼーションの手法は投資規模によって4段階に分かれます。リホスト(単純移行:同等のJavaアプリをインフラのみ移行)は数千万円〜1億円台・期間3〜6ヶ月、リプラットフォーム(Java EEからコンテナ・クラウドネイティブへ移行)は1億円〜3億円・期間6〜12ヶ月、リファクタリング(EJB/StrutsからSpring Bootへのコードレベルの再設計)は2億円〜5億円・期間12〜18ヶ月、リビルド/リライト(既存Javaをゼロから再開発)は5億円以上・期間18ヶ月以上が目安です。
これらのうち、リファクタリングとリビルドでは事前のリバースエンジニアリングによる仕様復元フェーズのウェイトが特に大きくなります。仕様復元フェーズの費用はモダナイゼーション全体の10〜30%程度を占める場合があります。例えば2億円のリファクタリングプロジェクトでは、仕様復元フェーズに2,000万〜6,000万円が投じられる計算です。この仕様復元フェーズでの手戻りを減らすことが、全体プロジェクトのコスト管理において最も重要な施策の一つです。
セキュリティ・脆弱性診断を目的としたJava解析の費用
Javaアプリケーション(サーバーサイド・Android)のセキュリティ診断目的でリバースエンジニアリングを実施する場合の費用目安は以下の通りです。自動ツールのみによる診断(SpotBugs・FindSecBugs等)は10万〜30万円、手動診断(標準レベル:主要な脆弱性クラスを網羅)は50万〜150万円、Androidアプリのバイトコード解析を含む総合診断は50万〜250万円が相場です。
OSSライセンスコンプライアンス確認のためのJavaバイトコード解析(不正ライセンスのライブラリ混入チェック)は、FossologyやORT(OSS Review Toolkit)などのツールを活用することで、数万〜十数万円のツール費用で実施できるケースもあります。ただし、GPLウイルスや難解なライセンス解釈が必要な案件では法務費用が別途発生します。
特急料金の相場と注意点

システム障害対応やセキュリティインシデントへの対応で緊急のリバースエンジニアリングが必要になる場合、通常の納期より短縮した特急対応を依頼することになります。費用の割増率について、実務相場を以下に示します。
短納期化による割増率の目安
短納期化(通常納期の50〜70%以内に短縮)の場合は総額の20〜30%増し、超特急対応(休日・深夜対応が必要な場合)は40〜60%増しが相場です。例えば、通常100万円の解析案件を2週間(通常4週間)で完了させる場合、120万〜130万円程度の追加費用が必要になります。さらに、セキュリティインシデント発生直後の緊急対応では、専門人材の確保に希少プレミアムが上乗せされ、60〜100%増しになるケースもあります。
特急料金を避けるためには、「システムが止まってから動く」ではなく「定期的にリバースエンジニアリングで仕様書を更新する」という予防的アプローチが有効です。特に、EJBやStrutsシステムのように担当者の退職でブラックボックス化が進みやすいJavaシステムは、定期的な仕様復元・ドキュメント整備をルーティン業務として位置づけることで、緊急対応コストを大幅に削減できます。
特急対応時の品質リスク
特急対応では、解析の深度を落として表面的なフローチャートのみを作成するケースがあります。Javaシステムの場合、Springのトランザクション境界やEJBのCMT設定を省略した仕様書は、後の開発工程で致命的な手戻りを生む可能性があります。特急対応を依頼する場合は、成果物の品質基準(どこまで解析するか、どのような粒度の仕様書を作成するか)を明確に合意した上で発注することが重要です。「早くても品質は落とさない」という約束を具体的な成果物仕様書に落とし込んで契約条件とすることをお勧めします。
コストを抑える5つのポイント

Javaのリバースエンジニアリングの費用を適切にコントロールするための実践的なポイントを5つ紹介します。
スコープ限定・デッドコード除外・自動ツール活用
第一のポイントはスコープの明確化と限定です。「全部解析してほしい」ではなく、「この機能群のみ(例:注文処理・在庫管理)」とスコープを絞ることで、費用を数十%削減できます。第二は、動的解析でデッドコード(実際には使われていない機能)を事前に特定し、解析対象から除外することです。EJBやStrutsのシステムには過去の遺物となったコードが多く残っている場合があり、これを事前にフィルタリングすることで実効的なLOC数を圧縮できます。第三は、JD-GUI・CFR・Procyonなどの無料ツールをまず自社で試用し、自動生成できる部分と手動解析が必要な部分を切り分けてから外注することで、外注費用の最適化が図れます。
業務部門の事前準備・段階的実施
第四のポイントは、業務部門のドメインエキスパートを事前にアサインしてヒアリング体制を整えることです。「コードが読めてもWhyが分からない」状況でのベンダーへの追加問い合わせは、工数増加と費用増加を招きます。業務部門が能動的にヒアリングに応じる体制を整えることで、解析者の手戻りを減らし、全体工数を削減できます。第五は段階的実施(フェーズ分割)です。全システムを一度に解析するのではなく、重要度・改修頻度の高い機能から優先的に解析し、成果物の品質と費用対効果を確認しながら段階的に進めることで、投資リスクを分散できます。
まとめ

Javaのリバースエンジニアリングの費用は、LOCベースの従量課金(4,000行で30万円・超過分50円/行が基本相場)を出発点に、成果物の粒度・難読化の有無・フレームワークの複雑さ・特急対応の有無によって大きく変動します。ProGuardによる難読化APKは標準の2〜4倍、EJB/Springフレームワークのシステムは20〜50%増しが目安です。
モダナイゼーション全体では、リホストで数千万〜1億円台、リファクタリングで2億〜5億円、リビルドで5億円以上と投資規模は段階的に大きくなります。コストを適切にコントロールするには、成果物粒度の事前合意・スコープの限定・デッドコードの除外・業務部門の早期関与・段階的実施の5点が有効です。複数社から比較見積もりを取得する際は、LOCの計算方法・補正係数・成果物の品質基準を統一した条件で依頼することで、公平な比較が可能になります。
▼全体ガイドの記事
・Javaのリバースエンジニアリングの完全ガイド
株式会社riplaでは、IT事業会社出身のプロフェッショナルが「Impact-Driven型支援」を通じて、プロダクトやシステムの納品・提供を目的とせず、お客様と同じ目線で、事業成果の達成をゴールとして、高品質なDX/開発支援をいたします。

また、当社独自の開発テンプレート「Boxシリーズ」による標準機能の高速開発と、AI駆動開発の独自フレームワーク「GoDD」による独自機能のAI実装を組み合わせることで、低コスト・短期間で開発を実現いたします。

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。
・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>


株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。IT事業会社出身のプロフェッショナルが集う株式会社riplaにおいて、「Impact-Driven型支援」を掲げ、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の実現に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。
