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...
- 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/
id |
UNIANDES2_16f04decd99bdffd4257a1ee9b3add73 |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/53123 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.eng.fl_str_mv |
Cross-language clone detection in mobile programming languages |
title |
Cross-language clone detection in mobile programming languages |
spellingShingle |
Cross-language clone detection in mobile programming languages Código fuente (Computación) Ingeniería |
title_short |
Cross-language clone detection in mobile programming languages |
title_full |
Cross-language clone detection in mobile programming languages |
title_fullStr |
Cross-language clone detection in mobile programming languages |
title_full_unstemmed |
Cross-language clone detection in mobile programming languages |
title_sort |
Cross-language clone detection in mobile programming languages |
dc.creator.fl_str_mv |
Jiménez Gacha, Stephannie |
dc.contributor.advisor.none.fl_str_mv |
Cardozo Álvarez, Nicolás |
dc.contributor.author.none.fl_str_mv |
Jiménez Gacha, Stephannie |
dc.contributor.jury.none.fl_str_mv |
Takahashi Rodríguez, Silvia Rakic, Gordana |
dc.subject.armarc.none.fl_str_mv |
Código fuente (Computación) |
topic |
Código fuente (Computación) Ingeniería |
dc.subject.themes.none.fl_str_mv |
Ingeniería |
description |
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. |
publishDate |
2021 |
dc.date.accessioned.none.fl_str_mv |
2021-11-03T16:11:59Z |
dc.date.available.none.fl_str_mv |
2021-11-03T16:11:59Z |
dc.date.issued.none.fl_str_mv |
2021 |
dc.type.spa.fl_str_mv |
Trabajo de grado - Maestría |
dc.type.coarversion.fl_str_mv |
http://purl.org/coar/version/c_970fb48d4fbd8a85 |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/masterThesis |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.redcol.spa.fl_str_mv |
http://purl.org/redcol/resource_type/TM |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/1992/53123 |
dc.identifier.pdf.none.fl_str_mv |
24038.pdf |
dc.identifier.instname.spa.fl_str_mv |
instname:Universidad de los Andes |
dc.identifier.reponame.spa.fl_str_mv |
reponame:Repositorio Institucional Séneca |
dc.identifier.repourl.spa.fl_str_mv |
repourl:https://repositorio.uniandes.edu.co/ |
url |
http://hdl.handle.net/1992/53123 |
identifier_str_mv |
24038.pdf instname:Universidad de los Andes reponame:Repositorio Institucional Séneca repourl:https://repositorio.uniandes.edu.co/ |
dc.language.iso.none.fl_str_mv |
eng |
language |
eng |
dc.rights.uri.*.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.coar.spa.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-nd/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.none.fl_str_mv |
19 páginas |
dc.format.mimetype.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad de los Andes |
dc.publisher.program.none.fl_str_mv |
Maestría en Ingeniería de Sistemas y Computación |
dc.publisher.faculty.none.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.department.none.fl_str_mv |
Departamento de Ingeniería de Sistemas y Computación |
publisher.none.fl_str_mv |
Universidad de los Andes |
institution |
Universidad de los Andes |
bitstream.url.fl_str_mv |
https://repositorio.uniandes.edu.co/bitstreams/f1ef1a03-4a45-488e-bc42-98b80ee210f9/download https://repositorio.uniandes.edu.co/bitstreams/bd2f8641-7518-458c-a93c-148520863406/download https://repositorio.uniandes.edu.co/bitstreams/d0fe6e72-3e29-47a2-811f-2b8e1cbb1ed5/download |
bitstream.checksum.fl_str_mv |
7f71c3e56e22061bab9999ff788ef2ba f56aafcc6a0318761540948187ccd970 5e2891d5caacb7aadf9aef670fec3ae8 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio institucional Séneca |
repository.mail.fl_str_mv |
adminrepositorio@uniandes.edu.co |
_version_ |
1812134011127988224 |
spelling |
Al consultar y hacer uso de este recurso, está aceptando las condiciones de uso establecidas por los autores.http://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Cardozo Álvarez, Nicolásvirtual::13318-1Jiménez Gacha, Stephannie40c04b95-f057-4259-b4cb-8967121a93a9600Takahashi Rodríguez, SilviaRakic, Gordana2021-11-03T16:11:59Z2021-11-03T16:11:59Z2021http://hdl.handle.net/1992/5312324038.pdfinstname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/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.Clone detection in source code is a program analysis technique that gives insight about the code in multiple fields, like code plagiarism, intellectual property protection, and code quality analysis. In response to the rise of multi-language code bases, new techniques addressing cross-language code clone detection enable the analysis of such polyglot systems. The software development process for mobile applications is an important case in which developers must maintain synchronized versions of their code-base in at least two different programming languages. The proposed approach in this paper for detecting clones involves the use of an enriched concrete syntax tree (eCST) as an intermediate representation for any language that is constructed using the grammar of each supported programming language. The developed technique can estimate code similarities correctly for controlled tests where Type 1, 2, and 3 clones were manually injected in simple code snippets in both, the single-language and multi-language settings. Using a small example mobile application (each code base with over 50 LOC each), we are able to detect 90 code clones. However, we note that the main limitation of our approach is that we do not take into account specific GUI framework commands, as these are not currently included in the grammar for the analyzed languages.Magíster en Ingeniería de Sistemas y ComputaciónMaestría19 páginasapplication/pdfengUniversidad de los AndesMaestría en Ingeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónCross-language clone detection in mobile programming languagesTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesishttp://purl.org/coar/version/c_970fb48d4fbd8a85Texthttp://purl.org/redcol/resource_type/TMCódigo fuente (Computación)Ingeniería201423727Publicationhttps://scholar.google.es/citations?user=3iTzjQsAAAAJvirtual::13318-10000-0002-1094-9952virtual::13318-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::13318-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::13318-1ORIGINAL24038.pdfapplication/pdf1452562https://repositorio.uniandes.edu.co/bitstreams/f1ef1a03-4a45-488e-bc42-98b80ee210f9/download7f71c3e56e22061bab9999ff788ef2baMD51THUMBNAIL24038.pdf.jpg24038.pdf.jpgIM Thumbnailimage/jpeg23485https://repositorio.uniandes.edu.co/bitstreams/bd2f8641-7518-458c-a93c-148520863406/downloadf56aafcc6a0318761540948187ccd970MD55TEXT24038.pdf.txt24038.pdf.txtExtracted texttext/plain62575https://repositorio.uniandes.edu.co/bitstreams/d0fe6e72-3e29-47a2-811f-2b8e1cbb1ed5/download5e2891d5caacb7aadf9aef670fec3ae8MD541992/53123oai:repositorio.uniandes.edu.co:1992/531232024-03-13 14:54:28.309http://creativecommons.org/licenses/by-nc-nd/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.co |