マイグレーションにおいて必須の現行保証を上流工程で実現
これらを具現化したソリューションとして森下氏が提案するのが、従来のV字モデル(ウォータフォールモデル)にリバースソリューションによる現行分析工程を組み合わせ、ソフトウェアエンジニアリングの手法を取り入れた「N字統合開発ソリューション」だ。
ほとんどの場合、ホストマイグレーションにおいては現行機能保証が必須となる。通常のコンバージョンツールを使ったマイグレーションでは、コンバージョン実施後にテスト局面にて現行保証が確定するため、テスト工数の増加や手戻り発生のリスクが大きい。N字統合開発ソリューションでは、従来のV字モデルにおける設計工程の前段階に、リバースによる現行分析を実施。現行分析情報と設計情報はXupper IIの設計リポジトリにより一元管理され、上流工程での現行保証が可能となる。
分析工程では、まず現行プログラムのソースコードをベースに現行設計書にリバースして設計情報を現状最新化し、現行システムの全体像としての、フォワード開発のベースラインを確立する。
リバース作業は、2つのアプローチで行なう。1つはソースコードリバースからプログラム設計レベルのリバースアプローチであり、もう1つは不完全な現行設計情報のベースをトップダウン観点で整理しながらリバース作業を通じて詳細設計、外部設計、要件定義レベルに仕上げていくアプローチである。2つのアプローチの成果物は、設計リポジトリとしてプロセスモデル、データモデルが整合性の取れた形でXupperリポジトリに実現でき、設計のベースラインを確立することができる。
最初のリバース作業でのポイントは、移行対象のソースはできる限り棚卸してデッドコードを排除し、規模の最適化を行うこと。特に4GLからの移行では、利用しているマクロ関係を展開すると規模が膨らむため、マクロ変換して畳むなどの開発保守対象規模を抑える工夫が必要である。2番目のアプローチでは、全体像を把握するのに必要なプログラム構造分析、ジョブフロー図、判定条件検出などのリバースツールを活用しながら、現行設計ベース情報を設計リポジトリとしてXupperリポジトリに構築する。1番目のアプローチでソースリバースしたプログラム仕様(IPO情報)を設計リポジトリにインポートすることで、設計情報とソース情報のトレーサビリティを実現する。
現行保証は2段階で実施。まず、移行後のソースレベルで現行比較し、保証されたものをベースに設計に反映する。そして、テストによる現行保証を行う。すなわち、リバースの結果ベースラインとして作成した設計リポジトリにソースとの紐付けを行い、現行ソースの追跡を可能とし、テスト工程での現新比較の精度向上を実現する。
これにより、手戻りリスクを最小限に抑え、かつ現行設計情報・プログラムを最大限活用できるという(図1)。