Cross-language clone detection in mobile programming languages

La detección de clones en el código fuente es una técnica de análisis de programas que brinda información sobre el código en múltiples campos, como el plagio de código, la protección de la propiedad intelectual y el análisis de la calidad del código. En respuesta al aumento de las bases de código es...

Full description

Autores:
Jiménez Gacha, Stephannie
Tipo de recurso:
Fecha de publicación:
2021
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/53123
Acceso en línea:
http://hdl.handle.net/1992/53123
Palabra clave:
Código fuente (Computación)
Ingeniería
Rights
openAccess
License
http://creativecommons.org/licenses/by-nc-nd/4.0/
Description
Summary:La detección de clones en el código fuente es una técnica de análisis de programas que brinda información sobre el código en múltiples campos, como el plagio de código, la protección de la propiedad intelectual y el análisis de la calidad del código. En respuesta al aumento de las bases de código escritas en varios lenguajes de programación, nuevas técnicas que abordan la detección de clones de código permiten el análisis de dichos sistemas políglotas. El proceso de desarrollo de software para aplicaciones móviles es un caso importante en el que los desarrolladores deben mantener versiones sincronizadas de su código base en al menos dos lenguajes de programación diferentes. El enfoque propuesto en este documento para detectar clones implica el uso de un árbol de sintaxis concreto enriquecido (eCST) como representación intermedia para cualquier lenguaje que se construya utilizando la gramática de cada lenguaje de programación compatible. La técnica desarrollada puede estimar las similitudes de código correctamente para pruebas controladas en las que los clones de Tipo 1, 2 y 3 se inyectaron manualmente en fragmentos de código simples tanto en la configuración de un solo idioma como en la de varios idiomas. Usando una pequeña aplicación móvil de ejemplo (cada base de código con más de 50 LOC cada una), podemos detectar 90 clones de código. Sin embargo, observamos que la principal limitación de nuestro enfoque es que no tenemos en cuenta comandos específicos del marco de la GUI, ya que estos no están incluidos actualmente en la gramática de los lenguajes analizados.