ニュース

富士通研、プログラムに記述された業務ロジックの複雑度を可視化する技術

 株式会社富士通研究所は1日、複雑で大規模な業務アプリケーションから、業務ロジックの複雑度を可視化する技術を開発したと発表した。企業が持つアプリケーション資産に対して、ソースプログラムの傾向をつかむための簡易的な分析を行うことで、業務ロジックの複雑度を可視化できるという。

 従来、プログラムの大きさや条件分岐の数の多さなどから比較的重要な部分を見極める際、業務に関係する処理を実行する業務ロジックと、プログラム間のデータ共有や形式チェック処理などを実行する制御ロジックを区別することが困難だった。また大規模な業務アプリケーションでは、業務ロジックが実装された個所が多岐にわたり、どの業務ロジックから現状把握を進めるべきか、経験を頼りに人手で選ぶ必要があった。

 しかし今回、富士通では、業務ロジックをプログラムの記述から自動的に識別する技術と、業務ロジックの複雑度を場合分け数などの指標で定量化する技術を開発した。

 前者では、通常、業務データは入出力データの一部となっていることに着目。アプリケーションでは、プログラムの入出力となっているデータを業務データとみなして処理を行っているため、業務データに対する条件判断や計算処理を業務ロジックとして扱うが、チェック処理などは条件判断ではないため業務ロジックから除く、といった手法で業務ロジックを自動識別している。

業務アプリケーションに含まれる業務ロジック

 また後者では、業務ロジックにおいて、条件の組み合わせと結果の対応を表形式で表した“決定表(デシジョンテーブル)”の大きさと、業務ロジックの複雑度が対応することに着目。決定表の大きさを決める「条件に関係した項目数」「場合分けの数」「計算式に関係した項目数」の3つの指標を定義した。

決定表を元にした業務ロジックの複雑度の指標

 決定表を作成するためには詳細な分析が必要となり、大規模資産を対象とした分析には向かない。このため、決定表を作成しなくても、これらの指標に相当する特徴量をプログラムの変数や条件分岐の数から近似的に計算する手法を開発し、大規模資産を対象とした分析を可能にしている。

 プログラムを分析した結果、業務ロジックの複雑度が大きいものは、業務に関係する判断や計算処理が多くあることがわかったとのことで、COBOLで書かれた業務アプリケーション約1200本のプログラムを対象として、業務ロジックの複雑度を上位、中位、下位のグループに分ける社内実験を実施。その結果、業務的な計算を行っているプログラムが上位に含まれ、形式的チェックしか行っていないプログラムは下位に含まれることが確認できたという。

業務ロジックの複雑度を定量化した事例

 これらの技術を利用することにより、アプリケーション資産を簡易的に分析するだけで、業務ロジックを可視化できるようになった。社内実験では、行数ベースで分析対象の3割程度のソースプログラムには業務判断や計算を含まないことが確認されたとのこと。

 この技術を活用すれば、人手を要する、業務アプリケーションの分析作業にかかっていた時間を短縮し、ビジネスの環境変化に即した機能強化や改善など迅速に対応可能になるとのことで、例えばシステムの再構築などの作業で必要となる初期分析において、分析作業の範囲を絞り込み、業務ロジックの複雑度が大きいものから重点的に把握する、といったことを行えるとしている。

 なお富士通研究所が開発した、ソフトウェアの機能構造を自動的に地図化するソフトウェア地図のビルの高さに、業務ロジックの複雑度を適用することで、地図の区画が表す機能の単位で、複雑な業務ロジックが含まれるかどうかを確認できるため、プログラムサイズによらず、優先的に調査する範囲を見つけられるとした。

 富士通研究所は2016年度の実用化を目指し、さまざまな業種や多様な言語の業務システム分析に適用・検証していく考えだ。

石井 一志