主な移行方式
移行方式

言語変換


言語バージョンアップ/
フレームワーク変換

エミュレーション方式移行


移行手法 半自動変換 自動変換 リホストなど
各方式の専門用語
リライト、リエンジニアリング、リビルド、再構築
マイグレーション、レガシーマイグレーション、コンバージョン、ストレートコンバージョン、ストコン、脱ホスト、バージョンアップ、ラッピング(画面などの表面だけ大きく変える)
リホスト
ITモダナイゼーション、移行、更新、刷新
概要説明
他言語に変換する。例えばCOBOL→Java等。
日本では数社しかできない技術であるが、無理なツール変換で保守困難になるケースが多い。
リフォームなら、処理ロジックをツール変換し、お客様希望のフレームワーク等に合わせて、高い保守性の為に手修正も行うことで、品質と保守性の両立を実現する。
同じ言語のバージョンアップ、フレームワーク変更。
殆どの移行会社は以下の3種類しか対応できない。
・COBOL→COBOL
・VB→VB.net
・Powerbuilderの
 バージョンアップ
リフォーム技術なら、更に広い範囲での対応が可能。
既存マシン(OS)の機能をミドルウェアで実現することより、最小限のプログラム修正等で移行する。
正し、既存システムの構造・言語等が継承されるので、保守性等の問題が残る。
メリット
高品質 高品質 高品質
 再開発と比べ、1桁もバグが少ない。  再開発と比べ、1、2桁もバグが少ない。  再開発と比べ、2桁以上バグが少ない。
低コスト 低コスト 低コスト
 改善要件によるが、大半の場合、再開発と比べ、1/2〜1/5になる。  再開発と比べ、数分の一になる。十分の一以下になる場合もある。
※業務機能テスト等を含めない見積を提示するベンダーもあるので、工程範囲の確認が重要。
 再開発と比べ、桁違うほど低コストマイグレーションよりも低コスト。
短納期 短納期 短納期
 大規模の移行なら、再開発と比べ、何割か工期を短縮できる。但し、極端の工期短縮は困難。  大規模の移行なら、再開発と比べ、大幅に工期を短縮できる。但し、極端の工期短縮は困難。  大規模の移行なら、再開発と比べ、半分以下の工期で開発できる。通常のマイグレーションよりも、1割以上工期を短縮できる。但し、極端の工期短縮は困難。
高い保守性・成長性 ある程度の保守性改善 多少の保守性改善
 新規開発とほぼ同レベルの保守性、成長性を実現できる。  ソース編集・テスト等はOPEN環境で簡単にできるだけではなく、運用などの改善も可能。  正しくリホストミドルウェアを選べば、ソース編集・テスト等はOPEN環境で行えるなどで、ある程度保守性改善が可能。
デメリット
手でソースを書き直す(リライト)場合が多く、限られた工数と期間の中に、品質が悪く失敗するケースが多い。
対策へ
無理にツール変換したり、不十分のテストをしたり、性能、品質等の問題で失敗する場合もある。
ツール問題の対策へ
テスト不足問題の対策へ
性能問題の対策へ
技術問題で失敗する可能性があるホスト機能を再現する高度かつ複雑な技術が必要で、手動対応も複絡んでいるので、QCDを守れないリスクがある。
対策へ
Java等に変換したら保守性が高くなるとは限らなく、慎重の確認が必要。
対策へ
言語が変わらなく、場合によってデータ等の構造もレガシーのままで、システムの保守性・成長性が悪く、対応技術者が少ない。
対策へ
古い言語と仕組がそのまま残り、システムの保守性・成長性が悪く、対応できる技術者が少なくなっていく。
対策へ
他の手法より移行コストが高い。
一部の既存ベンダーはパークを守る為に移行コストを保守費用に織り込む向きもある。
対策へ
保守性維持・見える化を考慮しない移行をすれば、将来の更なる再構築が困難になる。
対策へ
ランニングコストが要注意
一部のリホストのライセンス料・ランニングコストが高い。
対策へ
    将来の再構築が難しくなる
リホスト後のシステムを再構築する経験を持つ会社は極端に少なく、更にブラックボックス化された特殊システムの再構築は難しい。
対策へ
移行
パターン
・COBOL→JAVA(オンライン)
・COBOL→JAVA(バッチ)
・COBOL→.NET(オンライン)
・COBOL→.NET(バッチ)
・COBOL→プロシージャ
・COBOL→Pro*C
・RPG→JAVA(オンライン)
・RPG→JAVA(バッチ)
・RPG→.NET(オンライン)
・RPG→.NET(バッチ)
・RPG→プロシージャ
・PL/T→JAVA(オンライン)
・PL/T→JAVA(バッチ)
・PL/T→.NET(オンライン)
・PL/T→.NET(バッチ)
・PL/T→プロシージャ
・NATURAL→JAVA
・NATURAL→.NET
・APL→VBA
・APL→.NET
・APL→JAVA
・IDLU→JAVA
・アセンブラ→C
・アセンブラ→JAVA
・アセンブラ→COBOL
・Fortran→C
・Fortran→VB.net/C#.net
・Fortran→JAVA
・VB→C#.NET
・VB→JAVA
・.net→JAVA
・JAVA→Python
・OracleDeveloper→VB.net/C#.net
・OracleDeveloper→ASP.net
・OracleDeveloper→JAVA
・ACCESS→VB.net/C#.net
・ACCESS→ASP.net
・ACCESS→JAVA
・ASP→PHP
・ASP→JAVA
・PowerBuilder→VB.net/C#.net
・PowerBuilder→ASP.net
・PowerBuilder→JAVA
・Delphi→VB.net/C#.net
・Delphi→ASP.net
・Delphi→JAVA
・Notes→JAVA
・Notes→SharePoint
・PHP→JAVA
・PHP→ASP.NET
・HOLON→.net
・HOLON→JAVA
・COBOL→COBOL/JCL
・RPG→RPG/CL
・Fortran→Fortran
・VB→VB.NET
・VB→ASP.NET
・.net→.net
・JAVA→JAVA
(フレームワークの変更なし)

・JAVA→JAVA
(フレームワークの変更あり)

・Oracle Developer
→Oracle Developer

・ACCESS→ACCESS
・ASP→ASP.net
・PowerBuilder→PowerBuilder
・Delphi→Delphi
・PHP→PHP
・COBOL→COBOL/JCL
・PL/T→PL/T