Código duplicadoEl código duplicado es un término en programación de computadores para una secuencia de código fuente que ocurre más de una vez, dentro de un programa o a través de diferentes programas, de propiedad, o mantenido, por la misma entidad. El código duplicado es considerado indeseable por una serie de razones.[1] Un requisito mínimo es usualmente aplicado a la cantidad de código que debe aparecer en una secuencia para ser considerado duplicado en vez de coincidentemente similar. Secuencias de código duplicado se conocen como clones de código o simplemente clones. Las siguientes son algunas de las maneras en que dos secuencias de código pueden ser duplicadas una de la otra:
¿Cómo es creado el código duplicado?Hay un número de razones del por qué el código duplicado puede ser creado, incluyendo:
Problemas asociados con el código duplicadoLa duplicación de código es generalmente considerada una señal de estilo de programación pobre o perezoso. Buen estilo de codificación es generalmente asociado con la reutilización de código. Puede ser ligeramente más rápido desarrollar por duplicación de código, porque el desarrollador no necesita preocuparse en cómo es utilizado el código actualmente o cómo puede ser usado en el futuro. La dificultad es que el desarrollo original es sólo una pequeña fracción del ciclo de vida de un producto, y con la duplicación de código, los costos de mantenimiento son mucho mayores. Algunos de los problemas específicos incluyen:
Detectando el código duplicadoSe han propuesto una serie de algoritmos para detectar el código duplicado. Por ejemplo:
Ejemplo de código duplicado funcionalConsidere el siguiente fragmento de código para calcular el promedio de un arreglo de enteros extern int arreglo1[];
extern int arreglo2[];
int suma1 = 0;
int suma2 = 0;
float promedio1 = 0.0;
float promedio2 = 0.0;
for (int i = 0; i < 4; i++)
{
suma1 += arreglo1[i];
}
promedio1 = suma1 / 4;
for (int i = 0; i < 4; i++)
{
suma2 += arreglo2[i];
}
promedio2 = suma2 / 4;
Los dos bucles pueden ser reescritos en una simple función: int calculaPromedio (int* arreglo_de_4)
{
int suma = 0;
for (int i = 0; i < 4; i++)
{
suma += arreglo_de_4[i];
}
return suma / 4;
}
Usando la función de arriba, dará código fuente que no tiene duplicación de bucles: extern int arreglo1[];
extern int arreglo2[];
float promedio1 = calculaPromedio(arreglo1);
float promedio2 = calculaPromedio(arreglo2);
Referencias
Véase tambiénEnlaces externos |