ユースケース:構造把握

構造把握とは、ソフトウェアの構造や仕様を把握することです。
例えば、設計書と実装が乖離しているソフトウェアに対して変更設計を行う前に、ソフトウェア全体の構造や依存関係を現存しているソースコードから読み解かなければなりません。ソフトウェア全体の構造や依存関係を目視で確認することは、ミスが起こりやすく手間がかかります。

ここでは、Lattixでのソフトウェア全体の構造を可視化する仕組みを用いた実践的な構造把握の方法をご紹介します。

構造把握の関連資料はこちら>>

課題

  • 他の人が書いたソースコードを理解するのに時間がかかる
  • 部分的な改修や不具合修正が多く、ソフトウェア全体への影響が分からない
  • ドキュメントが古いため、ソースコードを読まなければ仕様が分からない
システムの設計構造は目に見えないため把握が難しく、構造を把握するためには可視化が必要です。特にシステム全体の構造/設計を把握するためには工夫した可視化手法が必要です。

原因

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

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

アーキテクチャ設計当初の構造と実装に乖離がある
例:何年にも渡ってメンテナンスされることで設計書と実態のソフトウェア構造に乖離が生じてしまう

解決策

Lattixは、Java、.NET、C/C++アプリケーションのアーキテクチャや、UML、SysMLのモデルを解析し、ソフトウェアの構造と依存関係を可視化する、アーキテクチャ分析ツールです。
ソフトウェアの全体構造が把握できない課題に対して、全体の依存関係の把握と構造上の問題点の検出を行います。

以下にLattixを使った、構造把握の手順の一部をご紹介します。

  1. ソフトウェアの全体構造や依存関係を可視化する
  2. 着目したい依存関係の種類で構造を確認する
  3. 構造上の問題点を検出する
1. ソフトウェアの全体構造や依存関係を可視化する

ポイント
  • 全体構造を階層的な表形式(DSM)で俯瞰的に可視化する
  • 他機能や他モジュールへの依存関係を把握する

Lattixの利用

Lattixにおいてソフトウェアの構造や要素間の依存関係は階層構造によって表現されます。階層を折りたたんだ状態にすることで、より抽象的な粒度(たとえばコンポーネントやパッケージ)で、ソフトウェア全体を俯瞰することが可能です。
2. 着目したい依存関係の種類で構造を確認する

ポイント
  • 依存関係の種類に着目して分析する
  • DSM上で依存関係をフィルターする

Lattixの利用

DSMに表示する依存関係は、依存関係の種類や要素でフィルターすることができます。 例えば、関数のコール関係やグローバル変数の読込み(Read)/書込み(Write)のみを表示し、意図した依存関係かを確認することができます。
 
3. 構造上の問題点を検出する

ポイント
  • モジュールのレイヤー構造の順番でDSMの要素を並び替える
  • アルゴリズムを用いたリバース的な並べ替えも可能
  • 循環依存や設計上の逆依存などの構造欠陥を検出する

Lattixの利用

ソースコードをLattixで分析しDSMで表示すると、デグレードや影響範囲の発散の要因となりうる構造欠陥箇所を検出できます。 ソースコードを修正する際に、構造上の問題点を把握したうえでソースコードの修正計画を立てることにより、修正作業中の手戻り作業を防止でき、効率的な作業を行えるようになります。

関連資料のご案内

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

富士フイルムソフトウエア株式会社様

富士フイルムソフトウエア株式会社が実践するLattixを用いた構造把握の手法とは?

長年の派生開発により、可読性の悪化、影響範囲の特定難易度が高い、不具合量の増加といった保守性の低下に起因する課題に対して、LattixのDSMを利用してソフト構造が設計通りかどうかを効率よく確認した事例をご紹介いたします。
 

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

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

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

    03-4405-7853

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

お問い合わせ

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