Javaのリバースエンジニアリングの見積相場や費用/コスト/値段について

Javaのリバースエンジニアリング費用は、数十万円から数億円以上まで幅があります。金額を左右するのは、成果物の粒度、難読化の有無、フレームワーク、納期の4つです。

▼全体ガイドの記事
・Javaのリバースエンジニアリングの完全ガイド

Javaリバースエンジニアリングの費用構造

Javaのリバースエンジニアリング費用は、主にLOC(Lines of Code:ソースコード行数)をもとに算定されます。LOCは、逆コンパイル後の行数か、元のソースコードを推定した行数かで数え方が変わります。

そのため、見積もりを取る際は、開発会社とLOCの基準を事前に確認しておく必要があります。また、難読化の有無やフレームワークの複雑さによっては、単価に補正係数がかかる場合もあります。

LOC課金制とJavaにおける適正単価

LOC課金制では、行数の基準とJava固有の補正係数が、見積もりの額を左右します。

  • 基本料金:4,000行まで30万円。超過分は1行50円程度
  • ECサイト:商品登録機能を含む約10ファイル・4,000行で約30万円
  • API連携:外部I/O項目のリスト化を含めて約50万円
  • WordPressポータル:CMSの構造解析を含めて約60万円
  • 在庫予約:約30ファイル。セキュリティ確認を含めて約80万円

上記は、シンプルなJavaシステムを対象にした市場相場です。一方で、EJBやSpringを使う大規模システムでは、単価が20〜50%増しになる場合があります。

Javaは逆コンパイルで元のソースに近い形を復元しやすく、C言語のバイナリ解析と比べると解析しやすい言語です。ただし、フレームワークが隠蔽するビジネスロジックを読み解く必要があるため、追加の工数がかかります。

Javaの複雑さを反映した見積補正

LOC単価だけで見積もると、実際の費用と大きくずれることがあります。そのため、見積もりの前に補正要因を確認しておく必要があります。

  • 難読化APK:リネーミング作業で、標準の2〜4倍の工数になる場合がある
  • EJB・Struts:Facade・DAO・Transfer Objectの理解が必要になる
  • Spring設定:XML・アノテーション・Java Config・AOPを別途解析する必要がある

ProGuardやR8で難読化されたAndroidアプリのAPKでは、変数名やクラス名が記号に置き換わります。そのため、可読性のあるコードを復元するには、難読化のレベルに応じたリネーミング作業が必要です。

EJBやStrutsでは、設計パターンを理解しなければ業務ロジックを正確に抽出できません。さらに、Springの設定ファイルやAOP設定の解析には、通常のJavaコードとは別の工数が必要です。これらの補正要因を事前に洗い出しておくと、正確な見積もりの出発点になります。

ポイント

見積額に差が出たときは、LOCの数え方が各社で揃っているか、難読化やEJB・Springなどの補正が含まれているかを先に比べると、差の理由が見えてきます。

成果物粒度別の費用相場

フローチャート、業務仕様書、詳細設計書の粒度別に費用相場を並べた図
設計資料として使う範囲が広いほど、費用帯も上がります。

成果物の粒度によって、リバースエンジニアリングの費用は大きく変わります。特に、フローチャートか詳細設計書かで、費用に数倍の開きが生じます。そのため、発注前に受け取る成果物のイメージを、発注側と開発会社で具体的にそろえておくことが、予算管理の基本です。

フローチャートレベル(最小粒度)

フローチャートレベルは、現状把握や対象範囲の見極め(スコーピング)に向いた、軽量な成果物です。

  • 成果物:処理フローの図と簡易な機能一覧
  • 処理経路:スイムレーン図や業務フロー図に描く
  • 費用:1万行規模で50万〜100万円程度

この段階では、主要な処理の流れと、機能が実行される順序をおおまかに把握できます。ただし、このレベルは新システムの設計に使うには不十分です。

業務仕様書レベル(中粒度)・詳細設計書レベル(高粒度)

業務仕様書と詳細設計書では、移行要件定義から新規開発まで対応範囲が広がります。

  • 業務仕様書:1万行規模で200万〜500万円程度
  • 詳細設計書:1万行規模で500万〜1,000万円以上

業務仕様書には、画面遷移図や入出力項目の定義が含まれます。加えて、業務ルールの記述やエラー処理の仕様も、その対象になります。

Strutsではstruts-config.xml、Spring MVCではコントローラとビューを解析します。その解析をもとに画面遷移図を作成し、現行システムの移行要件定義に使います。

詳細設計書は、新システム開発の入力資料としてそのまま使える品質を持ちます。クラス設計書、ER図、API定義、シーケンス図、テスト仕様書まで含まれます。

Springでは、DI設定、Bean依存関係、トランザクション境界を設計書に書き起こします。あわせて、例外ハンドリングとセキュリティ設定も、設計書に反映する必要があります。

特に大規模システムでは、詳細設計書の費用が数千万円に達するケースもあります。

ポイント

求める成果物が詳細設計書なのか、処理の流れを押さえる程度なのかを先に決めてから相場を見ると、各社の見積もりを比べやすくなります。

Javaリバースエンジニアリング固有のコスト要因

Java解析の中心から、ProGuard難読化、リネーミング作業、Spring設定ファイル、EJBのCMT境界定義へ注釈線を伸ばした図
フレームワークや難読化の状態が、調査範囲を左右します。

Javaには、他の言語と比べて費用の変動幅を大きくする固有の要因があります。事前に要因を理解しておくと、見積もりの精度が上がり、予算も立てやすくなります。

ProGuard難読化の解除工数

難読化APKでは、逆コンパイルに成功しても、コードの意味は読み解きにくくなります。

  • 対象:Android APKのJavaバイトコードに、難読化が施される場合がある
  • 復元可能な場合:mapping.txtがあれば、元の名称を自動で戻せる
  • 手動対応:マッピングファイルがなければ、リネーミングの作業が必要になる

難読化後は、クラス名がa・b・c、メソッド名がa()・b()・c()のような記号になります。そのため、手作業では、実行時ログや例外のスタックトレース、UI表示テキストを手がかりに処理の意味を読み取ります。

標準的なJavaシステムの解析と比べて、2〜4倍の工数が必要になることが多いです。たとえば、標準Javaシステムが50万円なら、難読化APKは100万〜200万円程度になります。

Springフレームワーク依存の追加解析コスト

Springでは、フレームワークが隠している処理を、追加で読み解く必要があります。

  • 依存性注入(DI):BeanFactory定義を解析する
  • 横断処理:AOP(アスペクト指向プログラミング)の適用箇所を確認する
  • ルーティング:DispatcherServletによるリクエスト処理の流れを追う

フレームワーク依存の設計意図は、バイトコードからは読み取りにくいものです。そのため、XMLやapplication.ymlといった設定ファイルの解析も、追加で必要になります。

EJBでは、CMT(コンテナ管理トランザクション)の境界定義を確認します。加えて、MDB(メッセージ駆動Bean)のキュー連携やリモートインターフェースも対象になります。

また、フレームワーク固有の要素を理解するため、ドキュメントの調査工数も発生します。これらを加味すると、EJB/Springシステムの解析費用は、シンプルなJava SEシステムより20〜50%増しになる場合があります。

ポイント

難読化やEJB・Springの要因は、標準的な相場に上乗せされます。対象がAPKか、どのフレームワークを使うかを先に把握すると、上乗せ分の見当をつけやすくなります。

モダナイゼーション全体での費用目安

EJBやStrutsからSpring Bootなどへ移行する場合、リバースエンジニアリングは移行全体の一工程です。全体の費用をつかむには、移行手法ごとに投資規模を確認する必要があります。

リホスト/リプラットフォーム/リファクタリング/リビルドの費用比較

移行手法は、投資規模と移行範囲によって4段階に分かれます。

  • リホスト:数千万円〜1億円台、3〜6ヶ月
  • リプラットフォーム:1億円〜3億円、6〜12ヶ月
  • リファクタリング:2億円〜5億円、12〜18ヶ月
  • リビルド/リライト:5億円以上、18ヶ月以上

リホストは、同等のJavaアプリを使い、インフラだけを移行する手法です。リプラットフォームは、Java EEからコンテナやクラウドネイティブへ移行します。

リファクタリングは、EJB/StrutsからSpring Bootへコードレベルで再設計します。また、リビルドやリライトは、既存Javaシステムをゼロから再開発する手法です。

リファクタリングとリビルドでは、仕様復元フェーズの比重が特に大きくなります。仕様復元フェーズは、モダナイゼーション全体の10〜30%を占める場合があります。

たとえば、2億円のリファクタリングなら、仕様復元に2,000万〜6,000万円を投じる計算になります。そのため、仕様復元での手戻りを減らすことが、全体のコスト管理で重要になります。

セキュリティ・脆弱性診断を目的としたJava解析の費用

セキュリティ診断は、自動診断からAndroidのバイトコード解析まで、対象範囲によって費用が変わります。

  • 自動ツール診断:SpotBugs・FindSecBugs等で10万〜30万円
  • 手動診断:主要な脆弱性クラスを網羅して50万〜150万円
  • 総合診断:Androidのバイトコード解析を含めて50万〜250万円

診断の対象は、サーバーサイドJavaアプリケーションとAndroidアプリです。

OSSライセンスの確認には、FossologyやORT(OSS Review Toolkit)を活用できます。また、不正ライセンスのライブラリ混入の確認は、数万〜十数万円でできる場合があります。

ただし、GPLウイルスや難解なライセンス解釈が必要な案件では、法務費用が別途発生します。

特急料金の相場と注意点

障害やセキュリティインシデントでは、通常より短い納期で解析することがあります。そのため、特急対応を依頼する前に、納期短縮による割増率を確認しておくことが大切です。

短納期化による割増率の目安

納期の短縮幅と対応時間によって、通常料金への割増率が変わります。

  • 短納期化:通常納期の50〜70%以内に縮めると、20〜30%増し
  • 超特急対応:休日・深夜対応が必要な場合に、短納期化する案件
  • 緊急対応:専門人材の希少性による割増で、60〜100%増しになる場合がある

超特急対応の割増率は、40〜60%が相場です。なお、通常100万円の解析を、通常4週間のところ2週間で終える場合は、120万〜130万円程度です。また、セキュリティインシデント直後は、専門人材の確保に追加費用が発生します。

特急料金を避けるには、定期的にリバースエンジニアリングで仕様書を更新しておく方法があります。停止後に対応するより、仕様復元とドキュメント整備を予防的に進めておくことが、この方法の狙いです。

EJBやStrutsは、担当者の退職によってブラックボックス化が進みやすいシステムです。そのため、仕様整備を定例業務に組み込むと、緊急対応のコストを大幅に削減できます。

特急対応時の品質リスク

特急対応では、納期を優先するあまり、解析の深さが落ちるリスクがあります。

  • 簡略化:表面的なフローチャートだけを作る場合がある
  • 省略箇所:Springのトランザクション境界やEJBのCMT設定
  • 契約条件:解析範囲と仕様書の粒度を明文化する

必要な設定を省いた仕様書は、後の開発工程で致命的な手戻りを生むおそれがあります。そのため、発注時には、成果物の品質基準と解析範囲を明確にそろえておくことが重要です。そのうえで、「早くても品質は落とさない」という条件を、成果物仕様書と契約条件に書き込みます。

ポイント

特急対応は割増率が大きく、品質を落とすおそれもあります。納期を縮める前に、解析範囲と成果物の品質基準を契約条件に書き込んでおくことが大切です。

コストを抑える5つのポイント

費用を抑える準備として、スコープ限定、デッドコード除外、自動ツール活用、業務部門の準備・段階的実施を並べたチェックリスト
解析対象と進め方を整えると、不要な作業を減らせます。

Javaのリバースエンジニアリング費用を管理するには、対象範囲と進め方を先に整えておくことが必要です。

スコープ限定・デッドコード除外・自動ツール活用

対象を絞り、不要なコードを外し、自動化できる作業を切り分けると、費用を抑えられます。

  • スコープ限定:解析する機能群を指定する
  • デッドコード除外:未使用機能を解析対象から外す
  • 自動ツール活用:自動生成部分と手動解析部分を分ける

「全部を解析してほしい」と頼むより、「この機能群のみ(例:注文処理・在庫管理)」と指定するほうが、費用を数十%削減できます。

特に、EJBやStrutsには、過去の遺物となったコードが多く残る場合があります。そのため、動的解析でデッドコードを特定すると、実効的なLOCを圧縮できます。

発注側では、JD-GUI・CFR・Procyonなどの無料ツールをまず試用します。そのうえで、外注する範囲を決めます。

業務部門の事前準備・段階的実施

業務知識を補いながら対象を段階的に広げる体制を作ると、手戻りと投資リスクを抑えられます。

  • 業務部門の準備:業務に詳しい担当者(ドメインエキスパート)を事前に割り当てる
  • 段階的実施:重要度や改修頻度の高い機能から進める

業務部門がヒアリングに応じられると、解析者の手戻りを減らせます。たとえば、「コードは読めても背景(Why)が分からない」状況では、開発会社への追加の問い合わせが工数を増やします。

全システムを一度に解析せず、重要度の高い機能から順に成果物を確認します。このため、品質と費用対効果を確かめながら進めると、投資リスクを分散できます。

ポイント

対象範囲を絞ることと、業務部門がヒアリングに応じる体制を組み合わせると、費用と手戻りの両方を抑えやすくなります。段階的な進め方も、投資リスクを分けるうえで役立ちます。

まとめ

Javaの費用は、LOCベースの従量課金を出発点に、成果物の粒度で変わります。基本相場は、4,000行で30万円、超過分は1行50円です。

難読化、フレームワーク、特急対応の有無も、費用を大きく左右します。たとえば、ProGuardの難読化APKは標準の2〜4倍が目安です。また、EJBやSpringのシステムは、20〜50%増しになる場合があります。

モダナイゼーションは、リホストからリビルドまで段階的に規模が大きくなります。リホストは数千万〜1億円台、リファクタリングは2億〜5億円です。さらに、リビルドは5億円以上で、投資規模が最も大きい手法です。

費用を抑えるには、成果物の合意、対象限定、デッドコード除外、業務部門の関与が有効です。段階的実施も、費用と投資リスクを管理する方法になります。

比較見積もりでは、LOCの計算方法、補正係数、品質基準を統一します。条件をそろえることで、複数社の見積もりを公平に比較できます。

▼全体ガイドの記事
・Javaのリバースエンジニアリングの完全ガイド

会社紹介

株式会社riplaでは、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを、構想策定・要件定義から開発・改善まで一気通貫で支援。事業会社でIT・DXを経験したプロフェッショナルによる高い要件定義力・システム設計力を活かし、事業成果の最大化に伴走します。

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

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。

・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>

執筆者プロフィール
張田谷凌央
張田谷凌央

株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。事業会社でIT・DXを経験したプロフェッショナルが集う株式会社riplaにおいて、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを構想策定・要件定義から開発・改善まで一気通貫で支援し、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の最大化に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。