ユースケース:構造把握

構造把握とは、ソフトウェアの構造や仕様を把握することです。
例えば、ドキュメントが残されていないソフトウェアに対して部分的な改修や不具合対応を行う場合、変更を行う前にソフトウェアの構造をソースコードから読み解かなければなりません。目視によるソースコードの確認は、ミスが起こりやすく手間がかかります。 ここでは、Understandのソフトウェアを可視化する仕組みを用いた実践的な構造把握の方法をご紹介します。

課題

  • 他の人が書いたソースコードを理解するのに時間がかかる
  • 部分的な改修や不具合修正といったスポット対応が多い
  • ドキュメントが古いため、ソースコードを読まなければ仕様が分からない

原因

アーキテクチャ設計が適切になされていない
例:設計者以外がアーキテクチャを理解できていないため、構造を把握することが難しい

構造を理解するための材料が乏しい
例:開発担当者が頻繁に変更されるため、ドキュメント・ソースコードコメントがメンテナンスされていない

コードの可読性が低い
例:何年にも渡ってメンテナンスされたレガシーなコードである

1.モジュール(ディレクトリ)間の関係を確認する

ポイント
  • モジュール・ディレクトリ構造と関連を確認

Understandの利用

モジュールやディレクトリ構造の関連を確認
Understandでは、Internal Dependenciesグラフを用いて、モジュールやディレクトリ構造の関連を確認します。Internal Dependenciesグラフでは、ディレクトリ・ファイル・関数など、任意の粒度への展開が可能です。また、変数アクセス(Init/Set/Use/Modify)のみ、関数コール(Call)のみといった、特定の依存関係だけを表示することもできます。


【操作方法】
  1. アーキテクチャーブラウザーにて、関連を確認するディレクトリを選択します。
  2. 選択した状態のまま右クリックし、[グラフィカルビュー]-[Internal Dependencies]を選択します。

関連の詳細情報を確認
Internal Dependenciesグラフに表示された依存関係の詳細を、依存関係ブラウザーを用いて確認します。このブラウザーでは任意のディレクトリ・ファイルに関連する依存関係を一度に確認できます。


【操作方法】
  1. アーキテクチャーブラウザーにて、関連を確認するディレクトリを選択します。
  2. 選択した状態のまま右クリックし、[依存関係の表示]を選択します。
 

2.クラスの仕様を確認する

ポイント
  • クラスのメンバーや継承関係から、アーキテクチャを理解

Understandの利用

クラスメンバー、クラスの継承関係を確認
Understandでは、Declarationグラフを用いて、クラスのメンバーや継承関係を確認します。Declarationグラフから、表示されているメンバーのDeclarationグラフを表示させたり、関数のControl Flowを確認することができます。


【操作方法】
  1. エンティティフィルターにて、[表示]を”Classes”(C言語の場合はFiles)へ変更し、対象のクラス(ファイル名)を探します。
  2. 対象のクラスを右クリックし、[グラフィカルビュー]-[Declaration](または[Declaration Files])を選択します。

クラス図を確認
Understandでは、任意のクラスオブジェクトをUMLのクラス図を用いて表示します。


【操作方法】
  1. エンティティフィルターにて、[表示]を”Classes”へ変更し、対象のクラスを探します。
  2. 対象のクラスを右クリックし、[グラフィカルビュー]-[UML Class Diagram]を選択します。
 

3.関数の処理フローを確認する

ポイント
  • モジュール(ディレクトリ)内の任意の関数について処理フローを確認

Understandの利用

モジュール(ディレクトリ)間の関係を確認するにて、関係を確認する際、特定の関数について処理を確認したい場合があります。このような場合は、Internal Dependenciesグラフ上からControl Flowグラフを開くことで、容易に関数内の処理フローを確認することができます。


【操作方法】(Internal Dependenciesグラフ上からControl Flowグラフを開く)
  1. Internal Dependenciesグラフ上にて、該当の関数を選択します。
  2. 選択した状態のまま右クリックし、[グラフィカルビュー]-[Control Flow]を選択します。


【操作方法】(関数名からControl Flowグラフを開く)
  1. エンティティフィルターにて、[表示]を”Functions”へ変更し、修正対象の関数を探します。
  2. 修正対象の関数を右クリックし、[グラフィカルビュー]-[Control Flow]を選択します。
 

4.構造体・共用体の仕様を確認する

ポイント
  • 構造体や共用体の内容を確認し、利用しているデータ型を理解
  • 構造体において、入れ子の型仕様を確認

Understandの利用

Understandでは、Data Membersグラフにより、クラス、構造体、または型が持つコンポーネントをダイアグラムで表示します。構造体に含まれる型も表示するため、全体像を用意に理解することができます。


【操作方法】
  1. エンティティフィルターやエンティティロケーター、エディター上などで、構造体や共用体を選択します。
  2. 選択したまま右クリックし、[グラフィカルビュー]-[Data Members]を選択します。

 

ソースコード解析ツール Understandに
関するお問い合わせ

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

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

    03-4405-7853

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

お問い合わせ

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