ニュース

富士通研究所、プログラムに埋め込まれた業務仕様を自動抽出する技術を開発

 株式会社富士通研究所は11日、業務システムのプログラムを解析し、実装されている業務上の決まりや計算の方法などを理解しやすい条件表として自動抽出する技術を開発したと発表した。

 業務システムの移行や再構築などにおいては、設計・開発作業を実施する前段階として、システムの現状把握が必要となるが、長年の開発により大規模かつ複雑化した業務システムでは仕様書の最新化が行われていないことが多く、その整備に多大な時間がかかっている。

 富士通研究所では、業務システムを変化に強いものに移行していくために、業務仕様を、プログラム作成不要で業務ルールを自動的に実行できるBRMS(Business Rule Management System)のように条件表の形で管理することを目指した。

業務システムの部分特性に合わせた移行のアプローチ

 そのためにはまず、現行の複雑なプログラムから業務仕様を掘り起こし、仕様書の再整備や、条件表の形に加工することが必要となる。条件表を抽出する技術としては、従来、プログラムが実行し得る処理経路を網羅的に抽出するシンボリック実行技術を用いてプログラムの実行経路を抽出してから、条件表として整理する手法が知られている。しかし、この手法はプログラムが大規模で複雑になると実行経路の個数が膨大となってしまうため、大規模な業務システムへの適用が難しいという実用上の課題があった。

プログラムから抽出する条件表と特長、実用性の課題

 富士通研究所では、業務システムの大規模なプログラムを解析し、実装されている業務上の決まりや計算の方法などを理解しやすい条件表として抽出する技術を開発した。

 開発した技術は、まず、大規模なプログラムについて、業務ロジックの複雑さやプログラム構造に着目して処理ブロックに分割し、部分ごとに独自のシンボリック実行技術を用いて条件表を抽出する。次に、サブルーチン呼び出しなどプログラムの流れとプログラム中の変数の参照や更新を解析して、分割生成した条件表を結合することによって本来の処理内容の条件表を再構成する。例えば、サブルーチンの呼び出し前後で分割した場合は、呼出元、呼出時点、呼出先の3つの条件表を抽出し結合する。

 これにより、従来は呼出元・呼出先の経路数の積程度の実行経路を分析する必要があったが、それぞれの和程度の経路数にまで処理を削減した。この削減効果は、サブルーチン呼び出しが多重であるほど大きくなり、例えば三重のサブルーチン呼び出しで、従来は3060個の実行経路の分析が必要であったところを41個に削減できた。さらに、入力項目値チェックやデータベースの処理など、業務でのデータ処理に直接関係しない部分は分析の対象外とすることで、注目する業務処理だけの条件表を抽出でき、不要な経路を削減する。

開発した技術の概要

 今回開発した技術によりプログラムから自動抽出した条件表は、仕様書の再整備(リドキュメント)の効率化や、BRMSルールへの変換などに利用が可能。従来分析できなかった、大規模で複雑なプログラムから業務仕様を抽出できるようになり、社内での大規模なCOBOLプログラムへ適用した事例では、仕様書の再整備にかかる時間を約3分の2に削減できたほか、実システムの大規模なプログラムから抽出した条件表を、BRMSルールに加工できることが確認できたという。

 今後、富士通研究所では、システム移行のアプローチにおいて、既存の技術である、プログラム資産から機能部分を見つけ出す技術や、業務ロジックの複雑度を可視化する技術とあわせ、今回開発した技術の実プロジェクトでの試行と課題対応をすすめ、2017年度中の実用化を目指す。