分類基準の作成

 

欠陥をインポートする前に、外部欠陥を関連付ける欠陥分類基準、カテゴリ、および欠陥タイプを定義する必要があります。定義は .pconf ファイルを作成することによって行います。 この XML ファイルに欠陥のカテゴリおよび重要度タイプを定義し、ユーザーに表示するエラーメッセージを格納します。

次の例は、.pconf ファイルの抜粋を示しています。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<checkers version="1.4">
    <severitytable max="10" warningStart="3" locale="en">
        <severity name="Critical" number="1"/>
         ...
    </severitytable>
    <categories name="TN SDL SDT" locale="en">
        <category name="Err.Lex.Tn">
            <error id="ERR_LEX_COM_IN_COM"/>
            <error id="ERR_LEX_LONG_ID"/>
			<error id="ERR_LEX_RESERVED"/>
        </category>  
        ...
    </categories>
    <checkergroup api="none" id="TN.DEFAULT.CHECKERGROUP" language="SDL/SDT">
        <checker id="ERR.LEX.TN">
            <error autogroupby="0" enabled="true" id="ERR_LEX_LONG_ID" severity="3">
                <title locale="en" text="ID longer than 31 characters"/>
                <title locale="ja" text="ID longer than 31 characters"/>
                <message locale="en" text="{0}"/>
                <message locale="ja" text="{0}"/>
            </error>
            <error autogroupby="0" enabled="true" id="ERR_LEX_RESERVED" severity="3">
                <title locale="en" text="ID is reserved in ANSI C"/>
                <title locale="ja" text="ID is reserved in ANSI C"/>
                <message locale="en" text="{0}"/>
                <message locale="ja" text="{0}"/>
            </error>
            <error autogroupby="0" enabled="true" id="ERR_LEX_COM_IN_COM" severity="3">
                <title locale="en" text="Missing close comment"/>
                <title locale="ja" text="Missing close comment"/>
                <message locale="en" text="{0}"/>
                <message locale="ja" text="{0}"/>
            </error>			
        </checker> 
        ...           
    </checkergroup>
</checkers>  

.pconf ファイルには、3 つの子要素を定義して構成する必要があります。

要素説明
<severitytable>重要度階層を定義します。
<categories>チェッカーカテゴリのセットを定義します。各カテゴリには関連チェッカーのセットが含まれます。通常、カテゴリはチェッカーを機能別にまとめるために使用します。たとえば、"精度の損失" や "危険な型キャスト" などです。これらは通常、ユーザーによって定義されます。
<checkergroup>関連チェッカーのグループを定義します。たとえば、"組み込み C# Path チェッカー" などです。これらは通常、ユーザーによって定義されます。

.pconf ファイルの作成

.pconf ファイルを作成してインポートするには、次のウォークスルーに従います。

  1. チェッカー設定情報を格納する XML ファイルを作成します。.pconf ファイルを作成するには、既存の構成ファイルとテキストエディターを使用するか、または Klocwork Configuration Editor を使用できます。

    分類基準の作成および変更の詳細については、統合ビルド解析用チェッカーの設定 を参照してください。

  2. .pconf ファイルに<severitytable> 要素を追加します。これがルート要素の最初の子になります。ワークフローによっては重要度レベルは任意である場合があるため、このセクションはそのままにしておくことができます。
    <severitytable max="10" warningStart="3" locale="en">
      <severity name="Critical" number="1"/>
      <severity name="Error" number="2"/>
      <severity name="Warning" number="3"/>
      <severity name="Review" number="4"/>
      <severity name="Severity 5" number="5"/>
      <severity name="Severity 6" number="6"/>
      <severity name="Severity 7" number="7"/>
      <severity name="Severity 8" number="8"/>
      <severity name="Severity 9" number="9"/>
      <severity name="Severity 10" number="10"/>
    </severitytable>  
  3. .pconf ファイルに <categories> 要素を追加します。
    <categories name="TN SDL SDT" locale="en">  
      <category name="Err.Sym.Tn">
        <error id="ERR_SYM_NO_TERMINATOR"/>
        <error id="ERR_SYM_EXP_UNCHANGED"/>
        <error id="ERR_SYM_ENUM_LACK_ANSWER"/>
        <error id="ERR_SYM_UNREACHABLE_STATEMENT"/>
      </category>
    </categories>   
    • <categories> 要素には、実際のチェッカーカテゴリを定義する <category> 要素が含まれます。<categories> 要素と <category> 要素の name 属性は、ユーザーによって定義されます。カテゴリに含まれる欠陥タイプを表す <category> の名前を指定する必要があります。
    • <error> 要素の id 属性は、外部欠陥リストで指定された <ErrorID> への直接マッピングです。
  4. .pconf ファイルに <checkergroup> 要素を追加します。
    <checkergroup api="none" id="TN.DEFAULT.CHECKERGROUP" language="SDL/SDT">
      <checker id="ERR.LEX.TN">
       <error autogroupby="0" enabled="true" id="ERR_LEX_LONG_ID" severity="3">
         <title locale="en" text="ID longer than 31 characters"/>
         <title locale="ja" text="ID longer than 31 characters"/>
         <message locale="en" text="{0}"/>
         <message locale="ja" text="{0}"/>
       </error>
       <error autogroupby="0" enabled="true" id="ERR_LEX_RESERVED" severity="3">
         <title locale="en" text="ID is reserved in ANSI C"/>
         <title locale="ja" text="ID is reserved in ANSI C"/>
         <message locale="en" text="{0}"/>
         <message locale="ja" text="{0}"/>
        </error>
      </checker>  

    次のテーブルでは、<checkergroup> 内の要素について説明します。

    要素属性
    <checkergroup>

    api

    どのチェッカーも実行しないことを示すには、"none" を指定します。

    id

    ユーザー定義

    言語

    ユーザー定義。通常は、ソースコードのプログラミング言語を表します。

    <checker>

    id

    ユーザー定義。ただし、通常はカプセル化する欠陥タイプのグループ名を表します。

    <error>

    autogroupby

    0 に設定されます。

    有効

    true に設定されます。

    id

    <error> 要素の id 属性は、外部欠陥リストで指定された <ErrorID> への直接マッピングです。

    severity

    欠陥リストファイルで定義された重要度レベルの解釈に基づく値。

    <title>

    ロケール

    タイトル文字列のロケールコード。たとえば、"en" や "ja" です。

    text

    欠陥の簡単な概要を説明する文字列。

    <message>

    ロケール

    タイトル文字列のロケールコード。たとえば、"en" や "ja" です。

    text

    欠陥の簡単な概要を説明する文字列、または欠陥リストで指定されたメッセージを渡すための {0}。欠陥メッセージは既に生成されており、メッセージのテキストをソースファイル内の行に関連付けることだけが目的であるため、メッセージはそのまま変数として渡されます。

  5. XML ファイルを保存し、Klocwork インストールパスにある /plugins ディレクトリにコピーします。

関連トピック リンク アイコンSee also