COBOLのリバースエンジニアリングのフルスクラッチ・オーダーメイド開発について

COBOLのリバースエンジニアリングは仕様を読み解く「調査」、フルスクラッチ・オーダーメイド開発は、その仕様をもとに作り直す「実装」で、両者は一続きの計画として進めるのが基本です。

  • COBOLリバースエンジニアリングとフルスクラッチ開発の関係
  • フルスクラッチを選ぶべき境界線
  • リバースエンジニアリング成果物がフルスクラッチの品質を左右する

フルスクラッチの要否は、業務ロジックの残り具合とコア業務かどうかで決まります。本テーマの全体像は、次の記事にまとめています。

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

COBOLリバースエンジニアリングとフルスクラッチ開発の関係

COBOLリバースエンジニアリングとフルスクラッチ開発の関係

COBOLシステムの刷新には主に3つの道筋があり、投資規模・自由度・現行ロジックの活用度合いがそれぞれ異なります。まずこの位置づけを押さえておくと、自社に合った進め方を選ぶ土台になります。

リバースエンジニアリングは「調査」、フルスクラッチは「実装」という工程の違い

リバースエンジニアリングは「調査」の工程です。JCLのジョブネット解析、COPY句の展開によるデータ構造の復元、動的解析による業務シナリオの検証を通じて、実装レベルの情報を設計や仕様のレベルへ引き上げます。

これに対しフルスクラッチ・オーダーメイド開発は、復元された仕様書を要件として、クラウドネイティブな技術基盤の上に新しいアーキテクチャとコードベースをゼロから構築する「実装」の工程です。

フルスクラッチであっても、現行業務ロジックの全貌を正確に把握する作業は避けて通れません。そのため、リバースエンジニアリングを省いて完全にゼロから始めることは現実的に難しく、両者は連続した一つのプロジェクトとして計画するのが基本です。

自動変換(リライト)との違い・フルスクラッチを選ぶ意味

リバースエンジニアリング後の実装方法には、既存のビジネスロジックを踏襲しながら、COBOLを自動変換ツールでJavaなどへ機械的に書き直す「リライト」という選択肢もあります。

リライトは、フルスクラッチに比べて短期間・低コストで済み、レガシー技術者不足のリスクを速やかに解消できるのが強みです。ただし、非効率な業務プロセスや古いデータモデルの制約は、そのまま引き継がれてしまいます。

一方、フルスクラッチは、リバースエンジニアリングで復元した「業務のWhy(なぜその処理が必要か)」をもとに、データモデルや業務プロセスを現代的に再設計できます。競争力の再構築を狙える点に、フルスクラッチを選ぶ最大の意味があります。

ポイント

迷ったときは、リバースエンジニアリングを前工程として一つの計画に組み込む前提で考えると、後の判断がぶれにくくなります。

フルスクラッチを選ぶべき境界線(業務ロジック生存率)

フルスクラッチを選ぶべき境界線(業務ロジック生存率)

フルスクラッチは投資規模が大きいからこそ、リバースエンジニアリングの結果を踏まえて「本当にゼロから作るべきか」を、客観的な基準で見極めることが大切です。

業務ロジック生存率70%以上・50%以下の判断基準

判断の目安になるのが、リバースエンジニアリングで復元した現行COBOLの機能のうち、新システムでも必要とされる機能の割合を示す「業務ロジック生存率」です。

生存率が70%以上であれば、復元した仕様をベースにフルスクラッチで再構築する投資対効果が高くなります。一方、50%以下であれば現行ロジックの多くが不要ということになり、リバースエンジニアリングにかけたコストの多くが無駄になりかねません。

生存率が低いと分かった場合は、解析を深追いするより、現行業務を新たにヒアリングして業務プロセスから再設計する方向へ、早めに切り替えることも検討すべきです。

コア業務領域か標準機能で代替可能かの見極め

もう一つの境界線は、対象のCOBOLシステムが自社の強みや差別化要因となる中核業務で、SaaSなどの標準機能では代替できないかどうかです。たとえば、バックオフィス業務のように標準化しやすい領域であれば、パッケージやSaaSへの乗り換え(リプレース)で十分に対応できます。

しかし、自社独自の商流や生産方式、顧客体験に直結するロジックがCOBOLの中に埋め込まれたコア領域であれば、標準機能に業務を合わせることで、かえって競争力を失いかねません。リバースエンジニアリングで業務ロジックの重要度を一覧にしておくと、フルスクラッチかリプレースかの判断の精度が大きく高まります。

ポイント

迷ったときは、業務ロジック生存率が70%以上で、コア業務領域に当たるかを見ます。50%以下や、標準機能で代替できる場合は、リプレースや再設計も比べます。

リバースエンジニアリング成果物とフルスクラッチの品質への影響

リバースエンジニアリング成果物がフルスクラッチの品質を左右する

フルスクラッチを選んだ場合、その成否は前工程であるリバースエンジニアリングの成果物の質によって、ほぼ決まると言っても過言ではありません。

要件定義を短縮する詳細設計書レベルの成果物

リバースエンジニアリングの成果物には、フローチャートのみ、業務機能仕様書、詳細設計書という3段階の粒度があります。フルスクラッチの要件定義を効率化するには、DB設計とAPI仕様、画面遷移図、バッチジョブ設計書まで含む詳細設計書レベルの成果物が求められます。

この粒度の成果物があれば、新システムの開発チームは、COPY句で定義されたデータ項目の意味やJCLのジョブネットが担っていた処理順序を、ゼロから調べ直す必要がありません。そのため、要件定義フェーズの期間を大幅に短縮できます。

逆に、簡易なフローチャートだけで着手すると、実装段階で「このデータ項目は何のために存在するのか」という疑問が頻発し、その都度リバースエンジニアリングへの差し戻しが発生することになります。

「Why」解明が不十分な場合の移行後バグリスク

COBOLプログラムには、30年以上前に意思決定された業務ルールが数多く埋め込まれています。コードを読めば「何をしているか(How)」は分かっても、業務部門の協力なしに「なぜそうなっているか(Why)」を正確に把握することはできません。

このWhyの解明が不十分なまま、フルスクラッチの要件に落とし込むと、新システム稼働後に「特定の取引条件でだけ計算結果が合わない」といった、業務ルールの解釈違いによるバグが多発します。そのため、フルスクラッチという大きな投資を無駄にしないためにも、リバースエンジニアリングの段階で業務部門を巻き込んだヒアリングを徹底し、Whyまで含めた成果物を要件定義の土台とすることが欠かせません。

ポイント

成果物が詳細設計書レベルまで揃っているか、業務部門と「なぜ」まで解明できているかを見ると、着手してよい状態かを判断しやすくなります。

フルスクラッチ開発の期間・費用感と進め方

フルスクラッチ開発の期間・費用感と進め方

フルスクラッチを選ぶなら、どの程度の期間と費用を見込んでおくべきか、現実的な相場感を押さえておく必要があります。

リバース工程込みの期間・費用の目安

詳細設計書レベルのリバースエンジニアリングは、JCL・VSAM・DB2を含む複雑な環境では、4,000行規模でも100〜200万円程度です。数万行規模の大型システム全体になると、数千万円規模になることもあります。

これに続くフルスクラッチの実装フェーズは、対象範囲を限定したマイクロサービス化でも2,000万〜8,000万円、期間8〜18ヶ月程度が目安です。主要サブシステム全体を対象とする場合は、3,000万円〜2億円程度、期間12〜30ヶ月以上が目安になります。

リバースエンジニアリングから実装まで含めた全体の実質総費用は、実装フェーズの見積もり額の1.3〜1.5倍程度を見込んでおくと現実的です。社内協力の工数や並行稼働期間中のコストも含めた予算感になるため、この幅で予算を組むのがよいでしょう。

ビッグバン方式を避けた段階的な移行・並行稼働

フルスクラッチであっても、システム全体を一度に切り替える「ビッグバン方式」は避けるべきです。

リバースエンジニアリングで解析済みのモジュールから、優先的に新システムへ段階的に移行する方式が「インクリメンタル方式」です。新旧システムを一定期間並行稼働させ、実データで動作を確かめられるため、大規模投資のリスクを抑える最も現実的な進め方になります。

並行稼働期間中は、リバースエンジニアリング段階で見つけた機能等価性の細かな差異をもとに監視ポイントを絞り込んでおくと、検証の効率が大きく向上します。

ポイント

予算は実装フェーズの見積もりだけで組まず、リバース工程や社内協力、並行稼働の費用まで含めて見ると、実態に近い金額になります。

依頼先選定とプロジェクト成功のポイント

依頼先選定とプロジェクト成功のポイント

最も投資規模の大きいフルスクラッチだからこそ、リバースエンジニアリングから実装まで一貫して支援できる依頼先選びが、プロジェクト全体の成否を左右します。

リバース〜フルスクラッチを一貫して支援できるベンダー選定

依頼先を選ぶ際は、COBOL・JCL・VSAM・DB2の解析実績と、復元した仕様をもとにクラウドネイティブなアーキテクチャを設計・実装できる開発力を見ます。加えて、稼働後の運用支援まで一貫して伴走できる体制を持っているかも、確認しておくことが大切です。

リバースエンジニアリングと実装を別々のベンダーに分けて発注すると、成果物の粒度や表現形式の解釈がずれ、実装フェーズで想定外の手戻りが発生するリスクが高まります。一方で、一気通貫で対応できるパートナーであれば、リバースエンジニアリングの成果物がそのままフルスクラッチの要件定義につながり、プロジェクト全体の一貫性が保たれます。

フルスクラッチで新システムを実装する際、リバースエンジニアリングで得た仕様書をもとにコードを書き起こす体制が、著作権侵害(依拠性)のリスクを避けられているかも重要な確認事項です。

解析チームと実装チームを分け、解析チームが作成した仕様書だけを通じて情報を伝える「クリーンルーム手法」を実践しているかを確かめます。あわせて、著作権法第30条の4に基づく非享受目的の記録(解析専用環境の用意、解析目的・過程の文書化)が適切に行われているかも、契約前に確認しておくことをお勧めします。

法務リスクを軽視したまま進めると、せっかくのフルスクラッチ投資が、後から法的トラブルの火種になりかねません。

ポイント

依頼先は、リバースから実装まで一貫して任せられるか、解析実績と稼働後の運用支援を備えているかで比べると、選定の差が見えやすくなります。

まとめ

COBOLリバースエンジニアリングのフルスクラッチ開発まとめ

COBOLのリバースエンジニアリングとフルスクラッチ・オーダーメイド開発について、工程上の関係と境界線、成果物の質が品質を左右する理由を取り上げました。さらに、期間・費用感と進め方、依頼先選定のポイントも解説しました。

フルスクラッチを正しく理解する鍵は、リバースエンジニアリングという「調査」と実装を、連続した一つのプロジェクトとして捉えることにあります。成果物の質によって、その後の品質・期間・費用が大きく左右されるからです。

業務ロジック生存率70%以上で、コア業務領域という境界線に当てはまる場合は、フルスクラッチへの投資対効果が高くなります。詳細設計書レベルの成果物と、業務部門を巻き込んだWhyの解明が、移行後バグリスクを抑える最大の鍵です。

リバース工程を含めた実質総費用と段階的な移行計画、そして一気通貫で支援できるパートナー選びが、大規模投資を確実に成果へつなげます。そこで、自社のCOBOLシステムがフルスクラッチに適しているか判断がつかない方は、まずリバースエンジニアリングによる現状把握から着手することをお勧めします。

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

会社紹介

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

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

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

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

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

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