ユースケース:影響範囲分析

影響分析とは、変更を行う(行った)箇所がソフトウェア全体にどのような影響を与えるかを明らかにし、変更の範囲やテストの範囲を特定する分析手法のことです。例えば、何年にも渡ってメンテナンスされたレガシーなコードや、自身が担当していないコードを修正するような場合、影響分析を行うことで、変更のコストを削減しつつ、ソフトウェアの品質を維持することができます。

影響範囲の分析では、変更対象の要素に対して直接依存関係を持つ要素だけではなく、さらにそれらに対して間接的に依存関係を持つ要素も抽出する必要があります。
右図の例では、ModuleCに対する変更の影響を分析する場合、ModuleA,Gだけではなく、ModuleD,Eも考慮する必要があります。
このような分析をソースコードベースで実施した場合、膨大な時間を必要とし、かつ、抜けや漏れが発生しやすいという問題があります。

影響範囲分析の関連資料はこちら>>

コード変更時の影響範囲

課題

ツールを使わない影響分析(Grep)では、1つの要素名を検索し、直接の影響箇所を分析します。


  • 間接的な影響箇所は調査範囲が漏れることがあります
  • 調査や分析に時間がかかることがあります
  • 調査方法や調査結果は属人性が高い場合があります

原因

コードを理解していない
例:何年にも渡ってメンテナンスされたレガシーなコードである

コードの可読性が低い、目視による確認の限界
例:自身が担当していないコードの修正を行う必要が生じた

解決策

Lattixは、Java、.NET、C/C++アプリケーションのアーキテクチャや、UML、SysMLのモデルを解析し、
ソフトウェアの構造と依存関係を可視化する、アーキテクチャ分析ツールです。
以下にLattixを使った、影響分析の手順の一部をご紹介いたします。
構成要素(サブシステムやモジュール、ファイル、関数など)の依存関係を確認し、全影響範囲を把握します。

  1. 変更された要素から影響範囲を確認する
  2. 不具合混入リスクの高い箇所から影響範囲を確認する
  3. 影響範囲の発散を防止する
1. 変更された要素から影響範囲を確認する

ポイント
  • 変更された要素をLattixが認識する
  • 変更された要素を起点とした影響分析レポートを出力、テスト範囲の分析に活用可能

Lattixの機能

Lattixでは新規に追加された要素、依存先が追加された要素を変更点と認識し、依存関係の差分からの影響範囲を可視化できます。
また、変更点を起点とした影響分析レポートの生成を行うことができます。
これらの作業は自動化できるため、担当者のスキルによらない影響分析の仕組みを作ることができます。
2. 不具合混入リスクの高い箇所から影響範囲を確認する

ポイント
  • メトリクスから構造的に不具合の可能性が高い要素をLattixで認識する
  • 不具合混入リスクが高い要素を起点として影響分析レポートを出力、テスト範囲の分析に活用可能

Lattixの機能

Lattixではメトリクスにて不具合混入リスクが高い要素を特定することができます。

ユースケース:リスク分析・テスト範囲分析

また、不具合リスクの高い要素を起点とした影響分析レポートの生成を行うことができます。 これらの作業は自動化できるため、テスターのスキルや経験に依存せず、テストが重点的に必要な範囲をレポートする仕組みを作ることができます。
3. 影響範囲の発散を防止する

ポイント
  • Lattixでの解析前に、設計ルールをLattixに付与する
  • 1~2での説明にあった影響範囲の調査効率化と合わせて、期待外の影響範囲を抽出する
※影響範囲の発散とは、1つの要素が様々な要素やモジュールに依存関係を持ち、変更した際に他の様々な機能にも影響が及んでしまう状態を指します。

Lattixの機能

Lattixでは設計ルールを付与することができます。
設計ルールを設定し、チームメンバーへ共有することで、影響範囲を発散させない(現状の構造を崩さない)抑止力として働きます。

運用

影響範囲の分析は、CI環境に取り入れてより効率的に(機械的に)運用ができると開発者による精度のムラがなくなります。
コードのチェックインタイミングなどでコマンドラインからレポートを自動出力する運用が効果的です。

CI環境との運用イメージ図
<CI環境との運用イメージ図>

関連資料のご案内

過去に開催したソフトウェア品質向上セミナーの講演資料をご案内します。資料は、セミナーにご登壇いただいた企業様の品質向上に関する取り組みをご紹介しています。
資料をご希望の方は、申込フォームよりお申し込みください。

三菱電機株式会社様

ソフトウェア開発と並行して実施する効率的・継続的なアーキテクチャ改善の取り組み

サービス提供のスピードアップを目的に、影響分析を含むアーキテクチャ保全の仕組みを構築されております。
事例では、影響範囲の発散を防止するために設計ルールを設定し、指摘・是正の取り組みをご紹介いただきました。

アーキテクチャ分析ツール Lattixに
関するお問い合わせ

  • テクマトリックス株式会社
    東京本社

    ソフトウェアエンジニアリング事業部

    03-4405-7853

メールでのお問い合わせ
lattix-info@techmatrix.co.jp

お問い合わせ

製品についてやテクマトリックスについてなど、
こちらよりお気軽にお問い合わせいただけます。