Skip to main content

コードクローンの検出

要件:

  • CODESYS Static Analysis インストールされています。

  • CODESYS プロジェクトはオープンしています。プロジェクトには、少なくとも 2 つのプログラミング オブジェクトに同じコード ブロックが含まれています。

  1. クリック ビルド → 静的解析 → クローンの検出

    景色 検索結果のクローンを作成する 開きます。

  2. クリック _san_icon_result.png 結果

    見つかったコードクローンは、ウィンドウにツリービューとして表示されます。

    同一のコードクローンに加えて相違点のあるコードクローンがある場合、これらの子ノードはツリービューで色で強調表示されます。

  3. ツリービューで、子ノードの2つのコードクローンを選択し、ボタンをクリックします 選択したクローンを表示する

    この重複コードを含む2つのプログラミングオブジェクトがエディターで開かれ、ビューの上部に表示されます。

    同一のコードクローンは明るい黄色でマークされ、コードクローンには、この例の変数名などの違いがあります。 ivar3ivarx、は赤で強調表示されます。

    _san_img_example_codeclone.png
  4. プログラミングオブジェクトの同一のコードクローンから取得するには POU_1 関数を作成するには、最初にツリービューでのコードクローンの行をダブルクリックします 物体 POU_1

    プログラミングオブジェクト POU_1 エディターで開き、実装部分で、重複したコードを含む4行がマークされます。

  5. 選択したコードブロックのコンテキストメニューでコマンドを使用する場合 抽出機能 を選択すると、コードブロックがオフになります POU_1 抽出され、そこから新しいメソッドが作成されます。の実装部分のコードブロック POU_1 メソッドを呼び出すことで自動的に置き換えられます。

    2番目のプログラミングオブジェクトでは、重複するコードを手動で削除し、メソッド呼び出しに置き換える必要があります。

    ヒント

    後のバージョンでは、重複したコードブロックが両方のプログラミングオブジェクトから自動的に抽出され、正しい関数呼び出しに置き換えられるように、機能が拡張されます。