パターン分析画面の見かた

この画面では、Sider Scan が「パターン分析」と呼んでいる分析手法を用いて重複コードペア間の記述パターンの不一致を検出します。記述パターンの不一致は、修正漏れであったり、コードの記述の一貫性のなさが原因であることが多いため、確認をお薦めします。

パターン分析画面の例

上図のパターン分析画面において

  • 背景が白色の部分は重複コード
  • 背景が灰色の部分はロジックが異なる部分
  • ピンクでハイライトされた行と単語(word) が、パターンの不一致が検出された箇所
  • 灰色でハイライトされた行と単語(word)が、パターンの不一致word が重複相手において対応するword
  • 緑でハイライトされた行と単語(word) が、上記不一致word の根拠となるword 群

となります。

最初にSider Scan は、重複コードブロックの中に、ある決まったパターンを検出します。例えば、上記の例の場合、変数の型として、左でsize_t を使っている箇所では、右でも必ずsize_t である、というパターンを見つけます。このSider Scan が見つけた記述パターンが緑にハイライトされます。

次に、Sider Scan は、見つけた記述パターンに反する部分が無いか調べます。上記の例の場合、右のコードの17行目はsize_t です。先程の緑でハイライトされた記述パターンのとおりであれば、左のコードの対応箇所もsize_t であるはずですが、実際のコードはssize_t と記述されています。このため、Sider Scan は、このssize_t をパターンの不一致とみなして、ピンクにハイライトしています。

つまり、この画面の解釈としては、ピンクでハイライトされたssize_t は、他の行の緑でハイライトされたword のパターンから類推すると、size_t である可能性が高い、という意味になります。実際に、このssize_tsize_t に修正する必要があるかどうかは、前後のソースコードやこの関数の呼び出し元等を精査しないとわかりませんが、一度確認しておく価値はあるでしょう。

その他、左右のコードのタイトル部にはソースコードのフルパスが表示されています。また、解析結果のE-mail に添付されている「CIサーバーで詳細を見る」ボタンを押せば、ブラウザ上で上下左右にスクロール出来たり、CTRL-F でテキスト検索が利用可能な詳細ビューワーを開くことができます。ご活用下さい。