ソフトウェアを“街”で表現――富士通研究所がソフトウェアの機能構造を地図化する技術を開発アプリケーション資産の活用

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

» 2012年02月29日 13時21分 公開
[八木沢篤,@IT MONOist]

 一般的に企業などで運用されている業務アプリケーションは、長年の開発保守により多機能化・複雑化が進み、設計当初に想定していた構造の範囲に収まらない機能追加や構造を越えた業務間の依存関係が作り込まれているものだ。その一方、企業を取り巻くビジネス環境の変化のスピードは目まぐるしいものがある。こうした変化に業務アプリケーションをどのように適用させるべきか、その意思決定には迅速さが求められる。

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


ソフトウェア地図の作成ステップについて 図1 ソフトウェア地図の作成ステップについて(出典:富士通研究所)

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

 さらに、発見した機能コンポーネントを2次元上に配置し、“市街地”をモデルにした地図形式で表示する技術を開発(図2)。各街区(機能コンポーネント)、建物(プログラム)の粒度に基づいて、プログラム複雑度や修正頻度、利用頻度情報などを3次元表現を用いて可視化することで、直観的な理解や品質評価が可能になるとする(図3)。

ソフトウェア地図の例 図2 ソフトウェア地図の例(出典:富士通研究所)
ソフトウェア地図の利用例 図3 ソフトウェア地図の利用例(出典:富士通研究所)

 この地図を用いることで、業務アプリケーションの現状分析作業に要する時間を短縮し、ビジネスの変化に対してシステムをより迅速に対応させることが可能になるとする。同社によると「例えば、クラウドへの移行作業などに必要となる初期分析の期間も約半分に短縮できる」という。

 今後は、さまざまな業種・言語の業務システムの分析に適用し、実用化に向けた検証を進めていく計画である。

Copyright © ITmedia, Inc. All Rights Reserved.