Understand 6の新機能・改善点

解析結果の差分をグラフィカルにレポート。構造の変化の確認が容易に

2つのUnderstandプロジェクトを比較し、処理フローの差分を色分け表示するフローチャートグラフが追加されました。また、変更されたエンティティについて、コード行数やメトリクスの差分を一覧表示する機能が追加されました。さらに、関数などのエンティティや依存関係の差分を表示するグラフが改良されたのに加えて、グラフ表示と同時にコード差分も表示されるようになり、視認性が向上しました。コードの修正前と後で構造の差分を確認することで、構造の乱れを防ぎ、保守性や再利用性の高い堅牢なプログラムの作成を期待できます。

Compare Control Flow グラフ

2つのUnderstandプロジェクトを比較し、処理フローの差分を色分け表示するフローチャートグラフが追加されました。グラフ表示と同時にコード差分の表示が可能になり、比較しやすくなりました。

Compare Butterfly/Object References グラフ

関数などのエンティティや依存関係の差分を表示するグラフが改良されたのに加えて、グラフ表示と同時にコード差分も表示されるようになり、視認性が向上しました。

変更されたエンティティ

修正前と修正後のコードから作成した2つのUnderstandプロジェクトを比較し、追加/削除/変更されたエンティティの一覧、および、差分メトリクス(コード行数、Cyclomatic など)が表示されるようになりました。 一覧表示の情報は、列オプションで選択可能です。

解析機能が強化され、C/C++メンバーオブジェクトの解析が可能に

C/C++(Strict)モード解析機能が強化され、クラスや構造体のメンバーオブジェクトの解析が可能になりました。メンバーオブジェクトの参照情報からメンバーオブジェクトが属している変数を特定し、インスタンスごとに、構造体変数とメンバー変数を関連付けたリファレンス情報が提供されるようになりました。プログラムの変更前に構造体とメンバー変数の関係を含む影響範囲を確認することにより、プログラム変更やテストの妥当性を高められます。

構造体のメンバー変数の解析例


Understand 5.1では、構造体変数と構造体のメンバー変数は別々の要素として扱われていました。また、メンバー変数が別の構造体にも属する場合に異なるメンバー変数として識別されませんでした。
Understand 6は、C++オプション [メンバ変数にユニークなエンティティを割り当てる]をオンに指定されている場合に、"構造体変数.構造体のメンバー変数"として連結した情報で解析されるようになりました。
上図の例では、ソースコード4行目の参照されている構造体のメンバー変数が属している変数f1.b1を辿れるようになりました。

ポップアップヒントの追加で操作面をサポート。ダークモードの完全対応や解析結果グラフの刷新な ど、視認性を向上

各種機能の説明や使い方のポップアップヒント機能が追加されました。Understandに不慣れな場合でも、次の操作にスムーズに移行でき、操作面でのストレスが緩和されます。すべてのGUIでのダークモード表示や、メトリクス解析結果グラフの刷新、グラフのミニマップ表示など、インターフェイスが改善されました。

ポップアップヒントの追加

画面上の各種機能についての説明や使い方を、ポップアップヒントで確認できるようになりました。

ダークモードの完全対応

すべてのプラットフォームでダークモードに対応できるようになりました。

Cluster 系グラフの改善

グラフエンジンが改良され、Cluster 系グラフが使いやすくなりました。大規模なグラフでも表示可能になりました。 Cluster Call、Cluster Callby、UML Sequence Diagram グラフでは、オプションの表示レベル設定で、すべてのレベルを一度に展開できるようになりました。

【その他 ユーザビリティの改善点一覧】
  • アノテーション機能の拡張:テキストベースで保存。添付ファイルもコメントに追加可能。
  • Gitコミット履歴の表示:ソースエディター上にインラインやポップアップで表示。
  • プロジェクト概要グラフの刷新:グラフ表示を刷新。関連する解析結果ウィンドウへのアクセスが可能に。
  • アーキテクチャ機能の刷新:エンティティ(クラスや関数など)の単位で作成可能。

C++17、C# 9.0やJava 15など、サポート対象を拡充

  • C++17 のサポート:C/C++(Strict)解析で、C++17 に対応。
  • C# 9.0 のサポート:レコード型、最上位レベル ステートメント、パターンマッチングの拡張。
  • Java 15 のサポート:テキストブロックの対応。
  • Python API のサポート:Python コマンド提供とサンプルスクリプトの追加。
  • インポートプロジェクトの改善:Microsoft Visual Studio 2019 プロジェクトのインポートに対応。
  • Understand API の拡張:大規模なDB でエンティティのリストを取得する処理性能が改善。

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

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

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

    03-4405-7853

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

お問い合わせ

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