Lattix/Understandのメトリクスをデータ分析してみた([Understand 6.3]Understandメトリクスの出力)

Understand

はじめに

本シリーズではLattixとUnderstandのメトリクスを活用した様々な分析方法を、分析スクリプトとして紹介しております。

大変有難いことに、既に本シリーズは多くの方に閲覧頂いており、関連したご質問、活用実績のご連絡、フィードバックなどを多数いただいております。
最近いただいたご質問の中に「Understandメトリクスの出力方法が分からない」と言ったフィードバックがありました。
このため、今回は新しいスクリプトの紹介ではなく、Understandメトリクスの出力方法にフォーカスしていきたいと思います。

今回のテーマは「Understandメトリクスの出力」です。

なお、従来のUnderstand 6.3と先日リリースされたUnderstand 7.0では、
一部のメトリクス設定のオプションが変更されております。

今回はUnderstand 6.3を対象とした出力方法をご紹介します。
※Understand 7.0における出力方法の記事は今後作成予定となります。

なお、下記の説明内で登場するコマンド例に記載されている”myProject.und”はご利用のプロジェクト名に読み替えてください。

前提

  • 使用するUnderstandバージョン
    • Understand 6.3(Build 1139)
  • Understandライセンスが設定され、Understandが使用可能である
  • 環境変数
    • undコマンドの使用には、お使いのマシンにおける環境変数PATHの追加が必要です。
      以下はWindowsの場合の追加例となります。なお、複数のバージョンのUnderstandをインストールしている場合、undコマンドでご利用予定のバージョンのインストールディレクトリをご指定ください。
      • 変数:PATH
      • 値:(Understandインストールディレクトリ)\bin\pc-win64
        (例)C:\Program Files\SciTools\bin\pc-win64

準備

undコマンドのバージョン確認

以下のコマンドにより、現在実行しているundコマンドのビルド番号をご確認いただけます。
Understand 6.3はBuild 1139、Understand 7.0はBuild 1220です。

und version

プロジェクトの作成と解析

本手順(プロジェクトの作成と解析)はGUIから実施いただいても問題ありません。

undコマンドによりプロジェクトを作成する手順例は以下の通りです。

なお、ここでは本記事の目的に注力するため、C/C++の場合の簡易なプロジェクト作成手順例を示すのみに留めます。

und create -db myProject.und -languages c++
mkdir myProject.und\local
und add . -db myProject.und
und settings -C++UseStrict off -db myProject.und
(Shift_JISの場合)und settings -FileEncoding "Shift_JIS" -db myProject.und
(UTF-8の場合)und settings -FileEncoding "UTF-8" -db myProject.und
und analyze -db myProject.und

実際のプロジェクト作成手順やコマンドの使用方法の詳細につきましては、Understandユーザーサポートページよりダウンロードいただける「Understand プロジェクト作成・運用ガイド」や「und コマンドラインガイド」をご確認ください。
(ダウンロードをするには、『Scitools製品ライセンス証書』または『Scitools 製品年間保守サービス証書』に記載されている「ログインID」と「パスワード」が必要です。)

メトリクスレポートの設定と出力

メトリクスレポート形式設定

以下はメトリクスレポートの出力形式を変更する場合の例となります。
ご希望の形式に従い、必要に応じて各コマンドを実行してください。

  • カラム名を表示します。
und settings -MetricWriteColumnTitles on -db myProject.und
  • エンティティ名を相対パスで表示します。
und settings -MetricFileNameDisplayMode RelativePath -db myProject.und
  • 定義ファイルを表示します。
und settings -MetricShowDeclaredInFile on -db myProject.und
  • 定義元ファイルを相対パスで表示します。
und settings -MetricDeclaredInFileDisplayMode RelativePath -db myProject.und

メトリクスファイル名の設定

標準ではメトリクスレポートファイルは”プロジェクト名+.csv”という名称で出力されます。
本名称は変更することが可能です。
(例)コミット番号111のソースコードに対するメトリクスレポート

und settings -metricsOutputFile "myProject_metrics_commit111.csv" -db myProject.und

メトリクス出力設定

指定のメトリクスのみを出力する場合は以下のコマンドを実行します。

und settings -MetricMetrics CountLine CountLineCode CountLineComment Cyclomatic Essential MaxNesting -db myProject.und

現設定における全メトリクスを出力する場合は以下のコマンドを実行します。

und settings -MetricMetrics all -db myProject.und

メトリクスレポートの出力

下記のコマンドの実行により、csv形式にてメトリクスレポートを出力可能です。

und metrics myProject.und

うまくいかない場合には

undコマンドラインガイドを参照

「und コマンドラインガイド」をご確認ください。

Understandユーザーサポートページよりダウンロードいただける「und コマンドラインガイド」をご確認ください。(ダウンロードをするには、『Scitools製品ライセンス証書』または『Scitools 製品年間保守サービス証書』に記載されている「ログインID」と「パスワード」が必要です。)

Understand ユーザーサポートページ>>
 →「Understand 6.3 日本語版 [Build 1139]」
 →「und コマンドラインガイド」

コマンドのヘルプを参照

undコマンドのヘルプを表示します。

und help

und settingsのヘルプを表示します。

und help settings

現在のプロジェクト設定を参照

現在のプロジェクト設定を参照します。

und list settings myProject.und

現在のプロジェクト設定(詳細)を参照します。

und list -all settings myProject.und

現在のプロジェクト設定(メトリクス設定のみ)を参照します。

und list -metrics settings myProject.und

現在のプロジェクト設定(言語設定)を参照します。

und list -lang settings myProject.und

テクニカルサポートに問い合わせる

本記事でご案内した手順でも、メトリクス出力がうまくいかない場合には、テクニカルサポートセンターの宛先へお問い合わせいただくことが可能です。
(ただし、お問い合わせには保守サポートへの加入が必要となり、『Scitools製品ライセンス証書』または『Scitools 製品年間保守サービス証書』に記載されているユーザー登録番号や製品番号のご連絡が必要です。)

お問い合わせいただく際は、以下の4点の情報をご連絡いただけますよう、お願いいたします。

  • ユーザー登録番号や製品番号
  • ご利用のマシン情報(OSとそのバージョン、CPU、搭載メモリ)
  • 以下の実行結果(myProject.undはご利用のプロジェクト名に読み替えてください)
where und ※linux環境の場合はwhich und
und version
und list -metrics settings myProject.und
und list -lang settings myProject.und

  • [ヘルプ]-[サンプルプロジェクト]-[Fastgrep – C]から以下にダウンロードされるサンプルプロジェクト
    C:/Users/(ユーザー名)/AppData/Roaming/SciTools/samples/fastgrep
    でも発生するかどうか
    ※ダウンロード後、ご利用のバージョンでの再解析(und analyze -db fastgrep.und)が必要です。