富士通研究所は5月1日、複雑で大規模な業務アプリケーションから、業務ロジックの複雑度を可視化する技術を開発したと発表した。新技術により、アプリケーション資産を簡易的に分析するだけで業務ロジックを可視化できるという。同社によると、同種の技術の開発は世界初とのこと。同技術は2016年度の実用化を目指し、さまざまな業種や多様な言語の業務システム分析に適用・検証していく意向だ。

企業で運用している業務アプリケーションは長年の開発保守により複雑化していることが多く、機能強化や改善などビジネスの環境変化に即した迅速な対応が難しくなっているという。とりわけ業務アプリケーションの機能追加などで必要となるアプリケーションの実態把握において、特に他社が開発保守したプログラム資産を活用する場合は、人手による分析が必要で多大な時間を要することから、重要な課題になっているとのことだ。 しかし、従来はプログラムの大きさや条件分岐の数の多さなどから比較的重要な部分を見極める際、業務に関係する処理を実行する業務ロジックとプログラム間のデータ共有や形式チェック処理などを実行する制御ロジックとの区別は困難だったという。

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

業務ロジックの識別技術では、業務システムが担当者の入力する業務データから実行する、業務に関係する判断や計算である業務ロジックをプログラムの記述から自動的に識別する。チェック処理などは条件判断では無いため、業務ロジックから除くとのこと。

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

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

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

決定表の作成には詳細な分析が必要なため、これらの指標に相当する特徴量を、決定表を作成しなくてもプログラムの変数や条件分岐の数から近似的に計算する手法を開発し、大規模資産を対象とした分析を可能にしたとのこと。 プログラムを分析した結果、業務ロジックの複雑度が大きい物は、業務に関係する判断や計算処理が多くあることがわかったという。 COBOLで記述した業務アプリケーションの約1,200本のプログラムを対象に業務ロジックの複雑度を上位・中位・下位のグループに分ける社内実験では、業務的な計算を行っているプログラムが上位に含まれ、形式的チェックしか行っていないプログラムは下位に含まれることが確認できたとしている。

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

同技術により、人手を要する業務アプリケーションの分析作業に費やす時間を短縮し、ビジネスの環境変化に即した機能強化や改善などの迅速な対応が可能になるという。 同社の社内実験では、行数ベースで分析対象の3割程度のソース・プログラムには業務判断や計算を含まないことを確認できたとのことだ。例えばシステムの再構築などの作業で必要となる初期分析で、分析作業の範囲を絞り込み、業務ロジックの複雑度が大きい物から重点的な把握が可能になるとしている。

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