Función: El comando escanea el código del programa del proyecto CODESYS abierto en busca de código copiado, y abre la vista «Clone detection results» para mostrar los bloques de código clonados detectados. En el proceso, sólo se consideran clones los bloques de código mayores que un tamaño determinado. Los fragmentos de código muy pequeños no se muestran como clones.
Llame a:
-
Barra de menús: «Construir Análisis estático»
-
Menú contextual: «Análisis estático»
Requisito: El proyecto CODESYS está abierto.
Dos posiciones de código se consideran clones si tienen las siguientes propiedades:
-
Misma composición estructural
-
Las variables tienen el mismo tipo de datos.
-
Los nombres de las variables pueden ser diferentes (excepción: acceso a componentes). Sin embargo, un identificador que esté contenido varias veces en el código tiene que estar en el mismo lugar en ambas posiciones del código.
-
Los literales tienen el mismo tipo de datos.
-
Los literales pueden ser diferentes. Un literal que aparece varias veces en el código tiene que aparecer en el mismo lugar en ambas posiciones del código.
|
|
Pestaña para mostrar los resultados de la búsqueda
|
|
|
La pestaña muestra los clones de código en una vista de árbol y proporciona comandos y opciones de filtro. La primera aparición de un duplicado del conjunto de duplicados se toma como nodo raíz. El color de fondo de los nodos hijos indica si el código es diferente o completamente idéntico. Los mismos colores significan el "mismo código". El contenido de la vista en árbol se ordena de forma descendente por el número de sentencias del código duplicado. |
|
Comandos y filtros en la pestaña |
|
|
«Subnodos/Clones» |
Número de subnodos (sentencias) del bloque de código Si el número de subnodos es inferior a 20, no se tiene en cuenta el clon de código. |
|
«Filtro sobre objeto» |
Campo de entrada para un objeto , por el que se filtra la lista de clones. |
|
«Mostrar clones seleccionados» |
Requisito: Se seleccionan dos nodos hijos del mismo nodo padre. Ambos objetos de programación se muestran en la parte superior de la vista para su comparación. En el proceso, los códigos duplicados se resaltan y las diferencias (por ejemplo, nombres de variables diferentes) se resaltan en un color distinto. |
|
Lista de clones de código |
Columnas
Al hacer doble clic en un nodo hijo, se abre el objeto de programación correspondiente y allí se selecciona el bloque de código duplicado. |