ユースケース:影響分析
影響分析とは、変更を行う(行った)箇所がソフトウェア全体にどのような影響を与えるかを明らかにし、変更の範囲やテストの範囲を特定する分析手法のことです。
例えば、何年にも渡ってメンテナンスされたレガシーなコードや、自身が担当していないコードを修正するような場合、影響分析を行うことで、変更のコストを削減しつつ、ソフトウェアの品質を維持することができます。
ここでは、Understandを用いた実践的な影響分析の方法をご紹介します。
例えば、何年にも渡ってメンテナンスされたレガシーなコードや、自身が担当していないコードを修正するような場合、影響分析を行うことで、変更のコストを削減しつつ、ソフトウェアの品質を維持することができます。
ここでは、Understandを用いた実践的な影響分析の方法をご紹介します。
課題
- 変更がどの範囲まで影響するのか分からない
- 修正すべき箇所が漏れていたことがある
- テストすべき箇所が漏れていたことがある
原因
コードの可読性が低い例:何年にも渡ってメンテナンスされたレガシーなコードである
コードを理解していない、目視による確認の限界
例:自身が担当していないコードの修正を行う必要が生じた
解決策
以下のエンティティの呼び出し/被呼び出し関係を確認し、修正対象の関数の影響範囲を把握します。1.修正する関数の呼び出し関係を確認する
ポイント- 修正対象の関数Aが依存している関数を確認
- 修正対象の関数Aから、別の修正対象の関数への到達経路があるか確認
Understandの利用
Understandでは、Callsグラフを用いて呼び出し関係を確認します。Callsグラフでは、関数の引数、定義しているファイル名を同時に確認できます。また、呼び出し/被呼び出し関係の両方を同時に表示する Butterflyグラフを利用することもできます。 【操作方法】
|
2.修正する関数の被呼び出し関係を確認する
ポイント- 修正対象の関数Aが依存している関数を確認
- 修正対象の関数Aから、別の修正対象の関数への到達経路があるか確認
Understandの利用
Understandでは、Called Byグラフを用いて被呼び出し関係を確認します。Called Byグラフでは、関数の引数、定義しているファイル名を同時に確認できます。また、呼び出し/被呼び出し関係の両方を同時に表示する Butterflyグラフを利用することもできます。 【操作方法】
|
3.修正する関数の呼び出し関係と、関連するグローバル変数の参照関係を確認する
ポイント- 修正対象の関数Aが依存している関数・変数を確認
- 関数Aが、ある変数を利用する経路があるか確認
Understandの利用
Understandの機能を拡張したプラグイン”Calls with Global Objects”を用いて、呼び出し関係と関連するグローバル変数の関係を確認します。 【操作方法】
|
4.修正するグローバル変数の参照位置を確認する
ポイント- 変数の変更によって影響を受ける直接の関数を確認
Understandの利用
情報ブラウザーを用いて、任意のグローバル変数の参照位置の一覧を確認するとともに、Object Referencesグラフを用いて、変数の参照関係を確認します。なお、情報ブラウザー上では、グローバル変数の定義ファイルや型、参照、代入関係を確認できます。 【操作方法】
|
5.修正するグローバル変数を使用している関数と、その呼び出し関係を確認する
ポイント- 変数の変更によって影響を受ける、直接および間接的な関数を確認
Understandの利用
Object Refs with CalledByグラフを用いて、グローバル変数を参照、値を代入している直接および間接的な関数を確認します。 【操作方法】
|
イベント・セミナー
ニュース・キャンペーン
ソースコード解析ツール Understandに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- scitools-info@techmatrix.co.jp