Implementación de refactorings automáticos en lenguajes con LiveTyping

Autores
Balboa, Fernando
Año de publicación
2022
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión publicada
Colaborador/a o director/a de tesis
Wilkinson, Hernán Alfredo
Descripción
Todo programa tiene un ciclo de vida. La expectativa de vida del software en general crece junto con su tamaño y complejidad, y el desarrollo suele estar atado a un presupuesto acotado. A medida que el codebase muta y se vuelve más complejo, también se vuelve más difícil de mantener. Una de las herramientas más frecuentes, que se encuentra por defecto en muchas de las IDEs comerciales, son los refactorings automáticos. Se conoce como refactoring a la acción de reestructurar el código, manteniendo su comportamiento actual. El objetivo de estos cambios queda a discreción del programador, aunque suele ser mejorar algún aspecto de mantenibilidad del código. La automatización de las reestructuraciones provee dos ventajas. La primera es que aseguran al programador que el cambio que está introduciendo es seguro en términos de comportamiento, porque eliminan la posibilidad de error humano. La segunda es que promueven su uso frecuente para mejorar la mantenibilidad, haciendo que sean muy poco costosas en términos de tiempo y esfuerzo para el programador. Este trabajo se enfoca en el desarrollo de dos refactorings automáticos: Inline Temporary Variable e Inline Method, ambos implementados en el lenguaje Smalltalk-80. La plataforma en la cual fueron integrados es Cuis University, la cual provee un sistema de recolección de datos de tipado (LiveTyping) que puede ser utilizado para mejorar la calidad de las herramientas. Uno de los objetivos principales es la exploración de las dificultades de implementación de los mismos en un lenguaje con tipado dinámico y cómo puede aprovecharse la información de LiveTyping en los refactorings automáticos.
Fil: Balboa, Fernando. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
Materia
REFACTORING
PARSER
PARSE NODE
SOURCE RANGE
AST
INTEFAZ
TEST
TDD
Nivel de accesibilidad
acceso abierto
Condiciones de uso
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
Repositorio
Biblioteca Digital (UBA-FCEN)
Institución
Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
OAI Identificador
seminario:seminario_nCOM000549_Balboa

id BDUBAFCEN_7fee08f180a38397443e256e9059dd4f
oai_identifier_str seminario:seminario_nCOM000549_Balboa
network_acronym_str BDUBAFCEN
repository_id_str 1896
network_name_str Biblioteca Digital (UBA-FCEN)
spelling Implementación de refactorings automáticos en lenguajes con LiveTypingBalboa, FernandoREFACTORINGPARSERPARSE NODESOURCE RANGEASTINTEFAZTESTTDDTodo programa tiene un ciclo de vida. La expectativa de vida del software en general crece junto con su tamaño y complejidad, y el desarrollo suele estar atado a un presupuesto acotado. A medida que el codebase muta y se vuelve más complejo, también se vuelve más difícil de mantener. Una de las herramientas más frecuentes, que se encuentra por defecto en muchas de las IDEs comerciales, son los refactorings automáticos. Se conoce como refactoring a la acción de reestructurar el código, manteniendo su comportamiento actual. El objetivo de estos cambios queda a discreción del programador, aunque suele ser mejorar algún aspecto de mantenibilidad del código. La automatización de las reestructuraciones provee dos ventajas. La primera es que aseguran al programador que el cambio que está introduciendo es seguro en términos de comportamiento, porque eliminan la posibilidad de error humano. La segunda es que promueven su uso frecuente para mejorar la mantenibilidad, haciendo que sean muy poco costosas en términos de tiempo y esfuerzo para el programador. Este trabajo se enfoca en el desarrollo de dos refactorings automáticos: Inline Temporary Variable e Inline Method, ambos implementados en el lenguaje Smalltalk-80. La plataforma en la cual fueron integrados es Cuis University, la cual provee un sistema de recolección de datos de tipado (LiveTyping) que puede ser utilizado para mejorar la calidad de las herramientas. Uno de los objetivos principales es la exploración de las dificultades de implementación de los mismos en un lenguaje con tipado dinámico y cómo puede aprovecharse la información de LiveTyping en los refactorings automáticos.Fil: Balboa, Fernando. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.Universidad de Buenos Aires. Facultad de Ciencias Exactas y NaturalesWilkinson, Hernán Alfredo2022info:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfhttps://hdl.handle.net/20.500.12110/seminario_nCOM000549_Balboaspainfo:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/arreponame:Biblioteca Digital (UBA-FCEN)instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesinstacron:UBA-FCEN2025-09-04T09:49:19Zseminario:seminario_nCOM000549_BalboaInstitucionalhttps://digital.bl.fcen.uba.ar/Universidad públicaNo correspondehttps://digital.bl.fcen.uba.ar/cgi-bin/oaiserver.cgiana@bl.fcen.uba.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:18962025-09-04 09:49:20.019Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturalesfalse
dc.title.none.fl_str_mv Implementación de refactorings automáticos en lenguajes con LiveTyping
title Implementación de refactorings automáticos en lenguajes con LiveTyping
spellingShingle Implementación de refactorings automáticos en lenguajes con LiveTyping
Balboa, Fernando
REFACTORING
PARSER
PARSE NODE
SOURCE RANGE
AST
INTEFAZ
TEST
TDD
title_short Implementación de refactorings automáticos en lenguajes con LiveTyping
title_full Implementación de refactorings automáticos en lenguajes con LiveTyping
title_fullStr Implementación de refactorings automáticos en lenguajes con LiveTyping
title_full_unstemmed Implementación de refactorings automáticos en lenguajes con LiveTyping
title_sort Implementación de refactorings automáticos en lenguajes con LiveTyping
dc.creator.none.fl_str_mv Balboa, Fernando
author Balboa, Fernando
author_facet Balboa, Fernando
author_role author
dc.contributor.none.fl_str_mv Wilkinson, Hernán Alfredo
dc.subject.none.fl_str_mv REFACTORING
PARSER
PARSE NODE
SOURCE RANGE
AST
INTEFAZ
TEST
TDD
topic REFACTORING
PARSER
PARSE NODE
SOURCE RANGE
AST
INTEFAZ
TEST
TDD
dc.description.none.fl_txt_mv Todo programa tiene un ciclo de vida. La expectativa de vida del software en general crece junto con su tamaño y complejidad, y el desarrollo suele estar atado a un presupuesto acotado. A medida que el codebase muta y se vuelve más complejo, también se vuelve más difícil de mantener. Una de las herramientas más frecuentes, que se encuentra por defecto en muchas de las IDEs comerciales, son los refactorings automáticos. Se conoce como refactoring a la acción de reestructurar el código, manteniendo su comportamiento actual. El objetivo de estos cambios queda a discreción del programador, aunque suele ser mejorar algún aspecto de mantenibilidad del código. La automatización de las reestructuraciones provee dos ventajas. La primera es que aseguran al programador que el cambio que está introduciendo es seguro en términos de comportamiento, porque eliminan la posibilidad de error humano. La segunda es que promueven su uso frecuente para mejorar la mantenibilidad, haciendo que sean muy poco costosas en términos de tiempo y esfuerzo para el programador. Este trabajo se enfoca en el desarrollo de dos refactorings automáticos: Inline Temporary Variable e Inline Method, ambos implementados en el lenguaje Smalltalk-80. La plataforma en la cual fueron integrados es Cuis University, la cual provee un sistema de recolección de datos de tipado (LiveTyping) que puede ser utilizado para mejorar la calidad de las herramientas. Uno de los objetivos principales es la exploración de las dificultades de implementación de los mismos en un lenguaje con tipado dinámico y cómo puede aprovecharse la información de LiveTyping en los refactorings automáticos.
Fil: Balboa, Fernando. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina.
description Todo programa tiene un ciclo de vida. La expectativa de vida del software en general crece junto con su tamaño y complejidad, y el desarrollo suele estar atado a un presupuesto acotado. A medida que el codebase muta y se vuelve más complejo, también se vuelve más difícil de mantener. Una de las herramientas más frecuentes, que se encuentra por defecto en muchas de las IDEs comerciales, son los refactorings automáticos. Se conoce como refactoring a la acción de reestructurar el código, manteniendo su comportamiento actual. El objetivo de estos cambios queda a discreción del programador, aunque suele ser mejorar algún aspecto de mantenibilidad del código. La automatización de las reestructuraciones provee dos ventajas. La primera es que aseguran al programador que el cambio que está introduciendo es seguro en términos de comportamiento, porque eliminan la posibilidad de error humano. La segunda es que promueven su uso frecuente para mejorar la mantenibilidad, haciendo que sean muy poco costosas en términos de tiempo y esfuerzo para el programador. Este trabajo se enfoca en el desarrollo de dos refactorings automáticos: Inline Temporary Variable e Inline Method, ambos implementados en el lenguaje Smalltalk-80. La plataforma en la cual fueron integrados es Cuis University, la cual provee un sistema de recolección de datos de tipado (LiveTyping) que puede ser utilizado para mejorar la calidad de las herramientas. Uno de los objetivos principales es la exploración de las dificultades de implementación de los mismos en un lenguaje con tipado dinámico y cómo puede aprovecharse la información de LiveTyping en los refactorings automáticos.
publishDate 2022
dc.date.none.fl_str_mv 2022
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str publishedVersion
dc.identifier.none.fl_str_mv https://hdl.handle.net/20.500.12110/seminario_nCOM000549_Balboa
url https://hdl.handle.net/20.500.12110/seminario_nCOM000549_Balboa
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
https://creativecommons.org/licenses/by-nc-sa/2.5/ar
eu_rights_str_mv openAccess
rights_invalid_str_mv https://creativecommons.org/licenses/by-nc-sa/2.5/ar
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
publisher.none.fl_str_mv Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
dc.source.none.fl_str_mv reponame:Biblioteca Digital (UBA-FCEN)
instname:Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron:UBA-FCEN
reponame_str Biblioteca Digital (UBA-FCEN)
collection Biblioteca Digital (UBA-FCEN)
instname_str Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
instacron_str UBA-FCEN
institution UBA-FCEN
repository.name.fl_str_mv Biblioteca Digital (UBA-FCEN) - Universidad Nacional de Buenos Aires. Facultad de Ciencias Exactas y Naturales
repository.mail.fl_str_mv ana@bl.fcen.uba.ar
_version_ 1842340717722075136
score 12.623145