富士通研究所、大規模システムから業務仕様を自動抽出する技術を開発

業務システムのプログラムを解析し、実装されている業務上の決まりや計算の方法などを理解しやすい条件表として自動抽出するという。

» 2016年10月12日 08時50分 公開
[ITmedia]

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

 業務システムの移行や再構築では、設計・開発作業の前段階でシステムの現状を把握する必要がある。しかし業務システムが長期間にわたる改善・保守によって、プログラムの大規模化・複雑化、仕様書の陳腐化、開発関係者の散逸などの問題を抱えている場合が多く、その整備や仕様の把握には多大な時間がかかる問題があった。

 新技術の開発に際して富士通研究所は、プログラムを作成せずに業務ルールを自動的に実行できるBRMS(Business Rule Management System)のように条件表の形で業務仕様を管理することを目指したという。そのためには、複雑化した業務システムのプログラムから業務仕様を掘り起こし、仕様書の再整備や、条件表の形に加工することが必要になると判明した。

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

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

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

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

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

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

Photo 今回開発した技術の概要。プログラムから自動抽出した条件表(図の右)は、仕様書の再整備(リドキュメント)の効率化や、BRMSルールへの変換などに利用可能

 新技術を大規模なCOBOLプログラムへ適用した事例では、仕様書の再整備にかかる時間を約3分の2に削減でき、業務システム移行時の業務仕様作成の効率化を実証したという。また、実システムの大規模なプログラムから抽出した条件表をBRMSルールに加工できることも確認できたとしている。今後は、システム移行のアプローチにおいて、既存の技術である、プログラム資産から機能部分を見つけ出す技術や業務ロジックの複雑度を可視化する技術と合わせ、実プロジェクトでの試行と課題対応を進める。2017年度中の実用化を目指すとしている。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ