ユースケース:影響範囲分析
影響分析とは、変更を行う(行った)箇所がソフトウェア全体にどのような影響を与えるかを明らかにし、変更の範囲やテストの範囲を特定する分析手法のことです。例えば、何年にも渡ってメンテナンスされたレガシーなコードや、自身が担当していないコードを修正するような場合、影響分析を行うことで、変更のコストを削減しつつ、ソフトウェアの品質を維持することができます。
影響範囲の分析では、変更対象の要素に対して直接依存関係を持つ要素だけではなく、さらにそれらに対して間接的に依存関係を持つ要素も抽出する必要があります。
右図の例では、ModuleCに対する変更の影響を分析する場合、ModuleA,Gだけではなく、ModuleD,Eも考慮する必要があります。
このような分析をソースコードベースで実施した場合、膨大な時間を必要とし、かつ、抜けや漏れが発生しやすいという問題があります。
影響範囲分析の関連資料はこちら>>
右図の例では、ModuleCに対する変更の影響を分析する場合、ModuleA,Gだけではなく、ModuleD,Eも考慮する必要があります。
このような分析をソースコードベースで実施した場合、膨大な時間を必要とし、かつ、抜けや漏れが発生しやすいという問題があります。
影響範囲分析の関連資料はこちら>>
課題
ツールを使わない影響分析(Grep)では、1つの要素名を検索し、直接の影響箇所を分析します。
- 間接的な影響箇所は調査範囲が漏れることがあります
- 調査や分析に時間がかかることがあります
- 調査方法や調査結果は属人性が高い場合があります

原因
コードを理解していない例:何年にも渡ってメンテナンスされたレガシーなコードである
コードの可読性が低い、目視による確認の限界
例:自身が担当していないコードの修正を行う必要が生じた
解決策
Lattixは、Java、.NET、C/C++アプリケーションのアーキテクチャや、UML、SysMLのモデルを解析し、ソフトウェアの構造と依存関係を可視化する、アーキテクチャ分析ツールです。
1. 変更された要素から影響範囲を確認する
ポイント
- 変更された要素をLattixが認識する
- 変更された要素を起点とした影響分析レポートを出力、テスト範囲の分析に活用可能
2. 不具合混入リスクの高い箇所から影響範囲を確認する
ポイント
- メトリクスから構造的に不具合の可能性が高い要素をLattixで認識する
- 不具合混入リスクが高い要素を起点として影響分析レポートを出力、テスト範囲の分析に活用可能
Lattixの機能
Lattixではメトリクスにて不具合混入リスクが高い要素を特定することができます。ユースケース:リスク分析・テスト範囲分析
また、不具合リスクの高い要素を起点とした影響分析レポートの生成を行うことができます。 これらの作業は自動化できるため、テスターのスキルや経験に依存せず、テストが重点的に必要な範囲をレポートする仕組みを作ることができます。
3. 影響範囲の発散を防止する
ポイント
- Lattixでの解析前に、設計ルールをLattixに付与する
- 1~2での説明にあった影響範囲の調査効率化と合わせて、期待外の影響範囲を抽出する
運用
影響範囲の分析は、CI環境に取り入れてより効率的に(機械的に)運用ができると開発者による精度のムラがなくなります。コードのチェックインタイミングなどでコマンドラインからレポートを自動出力する運用が効果的です。

<CI環境との運用イメージ図>
関連資料のご案内
過去に開催したソフトウェア品質向上セミナーの講演資料をご案内します。資料は、セミナーにご登壇いただいた企業様の品質向上に関する取り組みをご紹介しています。資料をご希望の方は、申込フォームよりお申し込みください。
三菱電機株式会社様
ソフトウェア開発と並行して実施する効率的・継続的なアーキテクチャ改善の取り組み
サービス提供のスピードアップを目的に、影響分析を含むアーキテクチャ保全の仕組みを構築されております。事例では、影響範囲の発散を防止するために設計ルールを設定し、指摘・是正の取り組みをご紹介いただきました。
イベント・セミナー
アーキテクチャ分析ツール Lattixに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- lattix-info@techmatrix.co.jp