富士通研究所は2月29日、複雑で大規模な業務アプリケーションから、業務のための機能や役割を実現している「機能コンポーネント」を自動発見するマイニング技術と、発見した機能コンポーネントに基づいてアプリケーションの構造を可視化するソフトウェア地図の自動作成技術を開発したと発表した。

具体的には、機能を実現する際の重要度に応じてプログラム間とデータ間の依存関係をスコアリングし、ソフトウェア全体を対象にしてマイニングを行うことによりソフトウェアアーキテクチャを復元する技術が開発された。これにより、機能コンポーネントを自動的に発見し、アプリケーションを分割・整理することが実現される。

発見した機能コンポーネントは二次元上に配置し、市街地をモデルにした地図の形式で表示し、街区(機能コンポーネント)、建物(プログラム)の粒度でプログラム複雑度や修正頻度、利用頻度情報などを三次元で可視化することで、直観的な理解や品質評価を容易にする。

ソフトウェア地図の作成ステップ

ソフトウェア地図の例

ソフトウェア地図の利用例

今回開発した技術を用いれば、これまで困難だったアプリケーションの現状把握を短期間で直観的に実現できるという。同社が提供している資産分析サービスでは、3ヵ月程度の詳細な分析を実施して現状把握に必要な情報を作成していたところ、同技術を応用すると1.5ヵ月程度の簡易分析でも現状把握が可能になると見込んでいる。