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

業務システムでは、長年の開発により仕様書の最新化が行われていないことが多く、業務システムの移行や再構築など際、仕様書の整備に多大な時間がかかる。

そこで今回、富士通研究所では、大規模なプログラムを分割して業務仕様を表の形で抽出する技術と、分割された表から全体の表を再構成する技術によって、プログラムに実装されている業務仕様を条件表として自動的に抽出する技術を開発した。

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

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

これにより、従来は呼出元・呼出先の経路数の積程度の実行経路を分析する必要あったが、今回、それぞれの和程度の経路数にまで処理を削減した。この削減効果は、サブルーチン呼び出しが多重であるほど大きくなるといい、例えば、3重のサブルーチン呼び出しで、従来は3,060個の実行経路の分析が必要であったところを41個に削減できたという。

抽出した条件表は、プログラムの途中の処理内容を人が追跡して理解する手間を削減でき、条件表を利用して再整備したドキュメントは、次のシステムを設計する際の資料として活用できるという。

今回開発した技術

また、条件表をBRMS(Business Rule Management System。業務担当者が理解しやすい形式の業務ルールを、プログラムを作成せずに実行できるようにするシステム)ルールに加工・変換することによって、業務システムの変化の大きい部分においても、BRMSに移行する際のルール作成を効率化できるという。

同社はこの技術を社内でCOBOLプログラムへ適用したところ、仕様書の再整備にかかる時間を約3分の2に削減できたという。

同社では、2017年度中の実用化を目指している。