富士通研、ソフト機能構造を分析して自動的に地図化する技術
業務アプリの現状把握に効果的
ソフトウェア地図の作成ステップ |
ソフトウェア地図の例 |
ソフトウェア地図の利用例 |
株式会社富士通研究所(以下、富士通研)は、ソフトウェアの機能構造を自動的に地図化(可視化)する技術を開発した。
複雑で大規模な業務アプリケーションから、業務のための機能や役割を実現している機能コンポーネントを自動発見し、発見した機能コンポーネントに基づいてアプリケーションの構造を可視化するソフトウェア地図を自動作成する。
この地図を用いることで、業務アプリケーションの現状分析時間を短縮し、ビジネスの変化に対してシステムをより迅速に対応させることが可能になるという。
業務アプリケーションは長年の開発・保守により多機能化・複雑化している一方で、ビジネス環境はめまぐるしく変化し、改善・強化・移行などに迅速な意思決定が求められる。そのためにアプリケーションの現状把握が必要だが、従来は人手による分析が行われてきた。単純に当初の構造に従った整理だけでは現状把握として不十分なこともあり、またアプリケーション上で高い頻度で利用されている個所はどこか、品質に課題を抱える個所はどこか、拡張性は十分担保されているかなどの情報は、個々のプログラムを見るだけでは把握できないという課題があった。
開発した技術では、機能を実現する上での重要度に応じてプログラム間とデータ間の依存関係をスコアリングし、ソフトウェア全体に対してマイニングを実施してソフトウェアアーキテクチャを復元する。これにより機能コンポーネントを自動的に発見し、アプリケーションを分割・整理できるため、従来人手で行っていた機能単位の特定と切り出しを迅速に行えるようになる。
地図化する際には、発見した機能コンポーネントを2次元状に配置し、市街地をモデルにした形式で表示。さらに各街区(機能コンポーネント)、建物(プログラム)の粒度でプログラム複雑度や修正頻度、利用頻度情報などを3次元で表現するため、直感的な理解が可能となる。
効果としては、これまで困難だった短期間でのアプリケーション現状把握を実現。例えば、同社が提供している資産分析サービスでは3カ月程度の詳細な分析を経て現状把握に必要な情報を作成するが、新技術を適用することで、1.5カ月程度の簡易分析でも現状把握が可能になると見込まれる。
また、ソフトウェア地図は経営者・開発者・運用者などさまざまなレベルのステークホルダーの意思疎通ツールとしても役立つ。地図上で各プログラムや機能コンポーネントごとの複雑度を可視化することで、問題箇所を機能単位で概観でき、開発者でなくても状況の理解や対策の立案が可能になる。さらに継続的に新技術を適用することで、経年変化に基づく将来の品質予測や改善計画立案が可能になるとしている。
富士通研では、さまざまな業種・言語の業務システム分析に適用し、実用化に向けた検証を行っていく予定。