|
||
富士通、業務ロジックの複雑度を可視化する技術を開発 |
||
株式会社富士通研究所(以下、富士通研究所)5月1日は、複雑で大規模な業務アプリケーションから、業務ロジックの複雑度を可視化する技術を世界で初めて開発しました。従来、プログラムの大きさや条件分岐の数の多さなどから比較的重要な部分を見極める際、業務に関係する処理を実行する業務ロジックとプログラム間のデータ共有や形式チェック処理などを実行する制御ロジックを区別することが困難でした。 今回、業務ロジックをプログラムの記述から自動的に識別する技術と業務ロジックの複雑度を場合分け数などの指標で定量化する技術を開発しました。これにより、アプリケーション資産を簡易的に分析するだけで、業務ロジックを可視化することができます。 本技術により、人手を要する業務アプリケーションの分析作業に要する時間を短縮し、ビジネスの環境変化に即した機能強化や改善など迅速に対応することが可能となります。例えば、システムの再構築などの作業で必要となる初期分析で、分析対象範囲の行数を削減できる上に、業務ロジックの複雑度を定量化することで、理解が難しい複雑な業務ロジックを重点的に把握できます。 開発の背景 企業で運用されている業務アプリケーションは、長年の開発保守により多機能で複雑化していることが多く、機能強化や改善などビジネスの環境変化に即した迅速な対応が難しくなってきています。特に業務アプリケーションの機能追加などで必要となるアプリケーションの実態把握では、特に、他社が開発保守したプログラム資産を活用する場合、人手による分析が必要で多大な時間がかかってしまい、重要な課題となっています。 課題 開発保守の担当者は、業務アプリケーションに含まれる、ビジネス上の手続きである業務ロジックを理解して、担当部分を中心に業務アプリケーションの分析と現状把握を進めますが、業務アプリケーションのプログラムは数千本から数万本におよぶ大規模なものもあり、分析に多くの時間がかかります。一般に、仕様書を再整備するなどして現状把握を進めますが、プログラムの規模や条件の分岐数などを活用して重要な部分を見極めようとしても、ビジネス上の手続きを実行する業務ロジックと、プログラム間のデータ共有や形式チェック処理などを実行する制御ロジックとを区別することができませんでした。また大規模な業務アプリケーションでは、業務ロジックが実装された箇所が多岐にわたり、どの業務ロジックから現状把握を進めるべきか、経験を頼りに人手で選ぶ必要がありました。 開発した技術 今回、アプリケーション資産に対し、ソースプログラムの傾向をつかむためのより簡易的な分析で、業務ロジックの複雑度を可視化する技術を開発しました。これにより、アプリケーションの改善・強化・移行などの意思決定を行う上で、特に開発者などの理解が難しい複雑な業務ロジックを優先して分析することが出来ます。 開発した技術の特徴は以下のとおりです。 業務ロジックをプログラムの記述から自動的に識別する技術 業務システムは、担当者が入力する業務データから業務に関係する判断や計算である業務ロジックを実行します。この業務ロジックをプログラムの記述から自動的に識別します(図1)。 業務データは入出力データの一部となっているため、プログラムの入出力となっているデータを、業務データとみなして処理をします。業務データに対する条件判断や計算処理を、業務ロジックとして扱いますが、チェック処理などは、条件判断ではないため業務ロジックから除きます。 業務ロジックの複雑度を定量化する技術 業務ロジックにおいて条件の組み合わせと結果の対応を表形式で表したものを、一般的に決定表(デシジョンテーブル)と呼びます。この決定表の大きさと業務ロジックの複雑度が対応することに着目し、決定表の大きさを決める「条件に関係した項目数」、「場合分けの数」、「計算式に関係した項目数」の3つの指標を定義しました(図2)。 決定表を作成するためには詳細な分析が必要となり大規模資産を対象とした分析には不向きです。このため、決定表を作成しなくても、これらの指標に相当する特徴量をプログラムの変数や条件分岐の数から近似的に計算する手法を開発し、大規模資産を対象とした分析を可能にしました。 プログラムを分析した結果、業務ロジックの複雑度が大きいものは、業務に関係する判断や計算処理が多くあることがわかりました。COBOLで書かれた業務アプリケーションの約1,200本のプログラムを対象として、業務ロジックの複雑度を上位、中位、下位のグループに分ける社内実験では、業務的な計算を行っているプログラムが上位に含まれ、形式的チェックしか行っていないプログラムは下位に含まれることが確認できました。 効果 今回開発した技術を用いることで、様々な業務アプリケーション資産で現状分析が可能となり 、ビジネスの環境変化に即した機能強化や改善などの迅速な対応が可能となります。社内実験では、行数ベースで分析対象の3割程度のソースプログラムには業務判断や計算を含まないことが確認されました。例えばシステムの再構築などの作業で必要となる初期分析で、分析作業の範囲を絞り込み、業務ロジックの複雑度が大きいものから重点的に把握することが可能になります。 さらに、富士通研究所が開発した、ソフトウェアの機能構造を自動的に地図化するソフトウェア地図のビルの高さに業務ロジックの複雑度を適用することで、地図の区画が表す機能の単位で、複雑な業務ロジックが含まれるかどうかを確認できるので、プログラムサイズによらず、優先的に調査する範囲を見つけることが出来ます。 今後 富士通研究所は、2016年度の実用化を目指し、本技術を様々な業種や多様な言語の業務システム分析に適用・検証していきます。 商標について 記載されている製品名などの固有名詞は、各社の商標または登録商標です。 |