富士通研究所はこのほど、長年の保守で複雑になった業務アプリケーションの保守性を高める技術を開発した。2018年にも実用化し、対象言語はCOBOLとJavaからスタートする。利用年数が長い大規模システム向けで、サービス提供価格は未定だが1Mステップ当たり200万~300万円程度を想定する。

 新技術は業務アプリケーションを機能ごとに自動的に分割するもの。複数の機能で同じデータに極力アクセスしないように機能を分割するのが特徴。

 複数の機能が使う共通データと、個別機能に閉じるデータに自動的に分けるため、保守開発時の影響分析コストやデグレード発生件数が減るメリットを見込めるという。

 具体的には3ステップで分割と可視化を進める。最初の「アプリケーションの構造分析」では、まずプログラム群を自作ツールで読み込み、一つの機能が完結するくくりでプログラムを分ける。

新技術の概要
新技術の概要
(出所:富士通研究所)
[画像のクリックで拡大表示]

 次に、機能ごとにアクセスするデータに着目して、複数の機能でアクセスするデータを共通データとして自動的にくくり出す。データの独立性を重視するため、複数の機能に同じプログラムが存在するケースも容認する。

 2番目のステップは「実行ログ情報分析」で、データベースのアクセスログを基に、業務的に連続して実行すべき単位で機能を統合したり整理したりする。

 3番目のステップの「境界の可視化」では、同社が開発・実用化したアプリケーションの構造を「地図」として可視化する技術である「ソフトウェア地図」を使って、つながりが強い機能を近くに寄せて配置する。

「ソフトウェア地図」で可視化した例
「ソフトウェア地図」で可視化した例
(出所:富士通研究所)
[画像のクリックで拡大表示]

 新技術は2016年度に開発を始めた。データに着目して機能をくくるアイデアは、マイクロサービスにヒントを得たという。マイクロサービスとは、独立性が高く、粒度の比較的小さいサービス(インタフェースを持つソフトウエアコンポーネント)を組み合わせることで、変化に強いアプリケーションを構築する手法である。

 富士通研究所で新技術を試行したところ、設計当初に「共通データ」としてくくり出していたもののうち、実際に共通データとして使われていたのは65%程度だったという。35%は個別機能に閉じて使われていたと分かった。