機械制御/振動騒音
IR情報 会社情報

メトリックスに関するFAQ

image_toyo_ss_img_qacpp_title_qacpp.gif.gif
メトリックスに関するFAQ
image_toyo_ss_img_all_line_red.gif.gif
質問1. メトリックスの推奨値について教えてください。 QAC++2.1J 戻る
回答1. QAC++に実装されているメトリックスの推奨値(下限値と上限値)は、 [インストールディレクトリ]\help\pdf\QACPP-2.1J-Metrics.pdf にまとめられています。(この推奨値の原本は [インストールディレクトリ]\bin\qacppmet.txt に記載されています。)
このファイルに記載されている推奨値は、メーカーが過去の文献およびメーカーの経験に基づいて定めたものになります。あくまでも統計的に得られた参考値であり、この推奨値を超えたからといって、不具合等に直結するわけではないという点をご了承ください。
なお、qacppmet.txtに記載されている推奨値は、メトリックスブラウザ内で使用されます。
image_toyo_common_spacer.gif.gif
質問2. メトリックスの閾値を超えたコードに対して警告を出力する方法を教えてください。 戻る
回答2. -thresholdオプションを設定することで、閾値を超えたコードに対して警告を出力することができます。-thresholdオプションに与える警告番号には、通常4700番を使用します。
以下にSTCYCが10を超えたときに、4700番の警告を出力するための設定を記述します。
image_toyo_common_spacer.gif.gif
GUIから設定する場合:
  1. QAC/QAC++のGUIを起動する。
  2. [ファイル(F)]メニューからプロジェクトを開く
  3. フォルダを選択する
  4. [編集(E)] > [フォルダのパラメータ(F)]メニューを選択して、フォルダ・パラーメータ・ダイアログを開く
  5. アナライザ・パーソナリティの編集ボタンを押して、アナライザ・パーソナリティ設定ダイアログを開く
  6. [メトリックス]タブを選択する
  7. [追加]ボタンを押して、メトリックスの境界値を設定するダイアログを開く
  8. 入力フィールドに STCYC>10:4700 と記述する
  9. 上記の手順で開いたダイアログを閉じる
コマンドラインから設定する場合:
  1. コマンドライン解析時に与えるオプションを列挙したファイルを開く
  2. ファイルに -threshold STCYC>10:4700 と記述する
  3.  
設定に関する詳細は、ユーザーズガイドの「解析のメトリックス境界値」セクションをご参照ください。
image_toyo_common_spacer.gif.gif
質問3. 定義しているはずのクラスのメトリックスが出力されません。出力する方法を教えてください。 戻る
回答3. 次の手順でQAC++の設定を確認してください。
  1. メトリックスが出力されないクラスの定義が記述されているヘッダファイルが置かれているディレクトリのパスを確認する
  2. QAC++の設定ファイル(コンパイラ・パーソナリティとアナライザ・パーソナリティ)の中に記述されている「出力を抑止する」オプション(-q または -quiet)の設定値の中に 1. のパスが含まれているかどうかを確認する
「出力を抑止する」オプションは、指定したディレクトリ内のヘッダファイルから得られる情報(警告情報やメトリックス情報)を抑止するオプションになります。
「出力を抑止する」オプションの設定値の中に 1. のパスが含まれている場合は、該当する設定を削除して、メトリックス情報が出力されるようにする必要があります。
image_toyo_common_spacer.gif.gif
補足:
コンパイラに付属しているライブラリや、サードパーティ製のライブラリの中で定義されているクラスのメトリックスは、通常計測する必要はありません。この場合は、逆に「出力を抑止する」オプションを設定して、メトリックスが出力されないようにする必要があります。
image_toyo_common_spacer.gif.gif
質問4. クラスのメトリックスのうち一部のメトリックスが出力されません。出力する方法を教えてください。 戻る
回答4. QAC++は次の2種類の方法でクラスのメトリックスを計測します。
  • ファイル単位で計測する(STDIT, STNOP, STMTH)
  • プロジェクト単位で計測する(STNOC, STWMC, STRFC, STCBO, STLCM)
ファイル単位で計測するメトリックスは、該当するファイルを解析するだけで結果が得られます。
これに対して、プロジェクト単位で計測するメトリックスは、QAC++のプロジェクトに登録されているファイルをすべて解析した上で、プロジェクトレベル解析(QAC++1.5J)またはクロスモジュール解析(QAC++2.1J以上)を実行しなければなりません。
image_toyo_common_spacer.gif.gif
後者のメトリックスを得るためには、GUIまたはコマンドラインでそれぞれ追加の処理を実行する必要があります。以下に実行手順を示します。
image_toyo_common_spacer.gif.gif
GUIから実行する場合(QAC++1.5J):
  1. QAC++のGUIを起動する。
  2. [ファイル(F)]メニューからプロジェクトを開く
  3. 最上位のフォルダを選択する
  4. [解析(A)] > [プロジェクトレベル解析(e)] > [実行(R)]を選択する
GUIから実行する場合(QAC++2.1J以上):
  1. QAC++のGUIを起動する。
  2. [ファイル(F)]メニューからプロジェクトを開く
  3. 最上位のフォルダを選択する
  4. [解析(A)] > [クロスモジュール解析(C)] > [実行(R)]を選択する
コマンドラインから実行する場合(QAC++1.5J):
  1. ユーザーズガイドの「プロジェクトの解析」セクションの内容に従って、ClassMetrics.exeを実行する
    例: ClassMetrics.exe QACPP project.prj -list filelist.lst
コマンドラインから実行する場合(QAC++2.1J以上):
  1. ユーザーズガイドの「クロスモジュール解析」セクションの内容に従って、pal.exeを実行する
    例: pal.exe QACPP -cmaf project.prj -via settings.via -list filelist.lst
    image_toyo_common_spacer.gif.gif
補足:
  • プロジェクト内のすべてのファイルが解析されていることを確認してから、プロジェクト単位のメトリックスを計測してください。
  • 通常はQAC++のプロジェクトファイル名を指定しますが、project.prjの名称は任意です。
  • 各オプション(-list, -via, -cmaf)の詳細は、ユーザーズガイドの「構成オプション」セクションの内容をご参照ください。

PAGE TOP