Con el desarrollo de un programa orientado a la detección de plagio en código fuente, el alumno Aarón Ramírez de la Cruz, obtuvo el primer lugar en el concurso SOCO (Source Code Reuse) en Bangalore, India, que reúne a grupos de todo el mundo interesados en evaluar sus propuestas de sistemas.
El programa desarrollado por el alumno, en colaboración con la maestra Gabriela Ramírez de la Rosa, investigadora del Departamento de Tecnologías de la Información, consistió en analizar diferentes aspectos, como las similitudes estructural, léxica y de estilo, que pudieran dar evidencia de un posible plagio entre un programa o lenguaje de programación y otro.
Aarón de la Cruz, quien cursa el octavo trimestre de la licenciatura en Tecnologías y Sistemas de Información de la Unidad Cuajimalpa, y la maestra Gabriela Ramírez explicaron que el lenguaje de programación que analizaron fue Java y “la idea principal fue ver diferentes aspectos que podrían darnos evidencias de que dos programas fueron o no plagiados”.
Se analizó la estructura, pues los lenguajes de programación tienen propiedades muy particulares, por ejemplo, la sintaxis. Otro aspecto analizado fue el léxico; es decir, qué palabras y qué combinaciones se utilizaron para escribir en este lenguaje, ya que los programadores tienen cierta libertad de elegir nombres de variables, identificadores, funciones, entre otros, para ver similitudes o coincidencias.
Una tercera medida fue la estilística, relevante porque existen en el texto características que permiten identificar si un autor escribió o no ese texto, basado en el estilo de su escritura, por ejemplo, si escribe sentencias largas, la puntuación, letras mayúsculas y minúsculas. En los lenguajes de programación es posible recuperar este tipo de características estilísticas, explicó la investigadora.
Con este análisis “obtuvimos tres diferentes vistas del código fuente y basándonos en ellas tratamos de identificar una similitud que nos dijera en qué medida estos dos códigos se parecen”.
Al final lo que hicimos fue calcular diferentes tipos de similitudes para todos los pares de códigos que teníamos y establecer un modelo automático basado en un algoritmo de aprendizaje, a través del cual la máquina aprende qué características son importantes, cuáles no y cuáles tienen mayor relevancia en un lenguaje u otro para determinar si un documento es plagio o no”.
El trabajo del alumno se encuentra en un marco experimental y de análisis y no hay aún una aplicación como tal, “pero el modelo ya funciona” con un grado de confianza de 80 por ciento.