Hunter: Una plataforma de reingeniería para JavaScript
Professor Advisor
dc.contributor.advisor
Bergel, Alexandre
Author
dc.contributor.author
Orellana Gutiérrez, Diego Ariel Andrés
Associate professor
dc.contributor.other
Olmedo Berón, Federico
Associate professor
dc.contributor.other
Álvarez Rubio, Juan
Admission date
dc.date.accessioned
2019-08-28T15:46:00Z
Available date
dc.date.available
2019-08-28T15:46:00Z
Publication date
dc.date.issued
2019
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/170713
General note
dc.description
Memoria para optar al título de Ingeniero Civil en Computación
es_ES
Abstract
dc.description.abstract
En la ingeniería de software resulta clave entender la estructura del código de un proyecto para poder implementar de forma efectiva las funcionalidades requeridas por el cliente. Sin embargo, es común en la industria que el desarrollador deba enfrentarse a bases de código que le son desconocidas y que no cuentan con una documentación adecuada; lo cual entorpece los ciclos de desarrollo y aumenta los costos. La situación en la cual se debe lidiar con código cuyos desarrolladores ya no se encuentran disponibles resulta especialmente crítica. En tal caso, el programador debe realizar un proceso de reingeniería que resulta complejo y demoroso para poder satisfacer las exigencias dadas por el negocio.
Con el objetivo de abordar dicha problemática, en este trabajo de memoria se construye un primer prototipo de HUNTER, una plataforma de reingeniería para JavaScript que permite al desarrollador explorar bases de código de forma visual e interactiva. Durante la fase de implementación se resolvieron una serie de desafíos técnicos que permitieron aplicar varios conocimientos enseñados a lo largo de la carrera sobre distintos tópicos tales como lenguajes de programación, patrones de diseño y construcción de interfaces de usuario.
Más allá de los retos técnicos enfrentados a lo largo de la confección de la herramienta, se espera que HUNTER pueda asistir al programador en la comprensión de proyectos de JavaScript con los cuales no está familiarizado. Para ello, durante la construcción de la plataforma, se llevaron a cabo pilotos con ingenieros en la industria con la finalidad de recabar feedback temprano y enfocar el desarrollo de HUNTER. Además, mediante experimentos realizados por otros investigadores, se han obtenido resultados que preliminarmente apuntarían a la utilidad de la herramienta para la exploración de proyectos de JavaScript desconocidos.
De esta forma, como resultado del presente trabajo de memoria, se obtiene una primera versión de HUNTER que facilita la comprensión de programas de JavaScript. Asimismo, se proponen diversas mejoras para esta plataforma, tales como la presentación de visualizaciones para frameworks} específicos y su extensión a otros lenguajes. Por otro lado, se plantea la interrogante de si la plataforma pudiera no solamente ayudar a la comprensión de programas desconocidos, sino también a un mejor entendimiento de un sistema con el que el desarrollador ya estuviese familiarizado.