2012年10月24日のセミナーでは、「ソフトウェア流用開発における構造解析ツールの活用法」を講演しました。
その講演では、ISO11783(ISOBUS)農作業機用通信規格を実装したオープンソースのプログラムライブラリを、UnderstandとLattixで分析し、「仕様の把握」・「コード改善のポイント」・「変更による影響度の分析」・「ドキュメント化」について説明し、好評をいただきました。
今回は、その講演内容からUnderstandを用いた分析例をいくつか紹介します。
ディレクトリダイアグラム
ファイル間の依存関係を表示します。
- メインメニューの[プロジェクト]-[アーキテクチャ]-[アーキテクチャのブラウズ]をクリックして、[アーキテクチャブラウザー]を表示します。
- [アーキテクチャブラウザー]に表示されている、”Directory Structure”を右クリックして[グラフィカルビュー]-[Internal Dependencies]をクリックします。
プログラムライブラリのファイル間の依存関係をグラフィカルに確認することにより、そのプログラムライブラリがどのような構造で実装されているかを俯瞰できます。
メトリクスツリーマップ
メトリクスツリーマップを表示します。
メトリクスツリーマップについては、以下の記事を確認してください。
・「メトリクスツリーマップ」
・「Understand 3.0 新機能 ー メトリクスツリーマップ」
メトリクスの粒度を「関数」とすることにより、巨大で複雑な関数が点在していることを確認でき、「コード改善のポイント」を見つけることができます。
複雑な関数
Cyclomaticのしきい値を「20」に設定して、それ以上の複雑度を持つ関数の一覧を取得しています。
(複雑な関数については、「ソースコードの複雑さの評価」で紹介しています)
本質的に複雑な関数
Essentialのしきい値を「10」に設定して、それ以上の本質的に複雑な関数の一覧を取得しています。
(本質的に複雑な関数については、「本質的複雑度の評価」で紹介しています)
「複雑な関数」と「本質的に複雑な関数」を確認して、「コード改善のポイント」を見つけることができます。なお、標準機能ではこの2つの結果を出力することはできません。これらの出力に興味のある方は、SciToolsカスタマーセンター までお気軽にお問合せください。
上記のほかにも、Understandを使用した様々な指標で分析をおこなっています。
Lattixを用いた分析例では、DSM(Dependency Structure Matrix)を用いたモジュール構造の分析、アーキテクチャメトリクスによる定量的な評価、変更による影響度の分析などをおこない、「変更による影響度の分析」・「ドキュメント化」に役立てる方法を紹介しています。
Lattixの分析例も含めた講演資料は、「資料請求ページ」より資料をダウンロードできますので、ぜひご覧ください。