Skip to main content

Detección de clones de código

Requisitos:

  • CODESYS Static Analysis esta instalado.

  • A CODESYS El proyecto está abierto. El proyecto incluye el mismo bloque de código en al menos dos objetos de programación.

  1. Hacer clic Construir → Análisis estático → Detectar clones .

    El Resultados de la detección de clones se abre la vista.

  2. Hacer clic _san_icon_result.png Resultados.

    Los clones de código detectados se muestran como una vista de árbol en una ventana.

    Si, además de clones de código idénticos, también hay clones de código con desviaciones, estos nodos secundarios se resaltan en color en la vista de árbol.

  3. En la vista de árbol, seleccione dos clones de código de un nodo secundario y haga clic en el Mostrar clones seleccionados botón.

    Los dos objetos de programación que contienen este código duplicado se abren en el editor y se muestran en la parte superior de la vista.

    Los clones de código idénticos se resaltan en amarillo claro y los clones de código con desviaciones, como los nombres de las variables ivar3 y ivarx en este ejemplo, están resaltados en rojo.

    _san_img_example_codeclone.png
  4. Para crear una función a partir del clon de código idéntico del objeto de programación POU_1, primero haga doble clic en la vista de árbol en la fila con el clon de código de Objeto POU_1.

    El objeto de programación POU_1 se abre en el editor, y en la parte de implementación se resaltan las cuatro filas que contienen el código duplicado.

  5. Cuando haces clic en el Extraer función comando en el menú contextual del bloque de código resaltado, el bloque de código se extrae de POU_1 y se crea un nuevo método a partir de él. El bloque de código en la parte de implementación de POU_1 se reemplaza automáticamente por la llamada del método.

    En el segundo objeto de programación, debe eliminar el código duplicado manualmente y reemplazar la llamada del método.

    Sugerencia

    En una versión posterior, la funcionalidad se ampliará para que el bloque de código duplicado se extraiga automáticamente de ambos objetos de programación y pueda ser reemplazado por la llamada de función correcta.