Implementación de refactorings automáticos en lenguajes con LiveTyping
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 herr...
Guardado en:
| Autor principal: | |
|---|---|
| Otros Autores: | |
| Formato: | Tesis de grado publishedVersion |
| Lenguaje: | Español |
| Publicado: |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
2022
|
| Materias: | |
| Acceso en línea: | https://hdl.handle.net/20.500.12110/seminario_nCOM000549_Balboa |
| Aporte de: |
| id |
seminario:seminario_nCOM000549_Balboa |
|---|---|
| record_format |
dspace |
| spelling |
seminario:seminario_nCOM000549_Balboa2025-08-08T16:49:58Z Implementación de refactorings automáticos en lenguajes con LiveTyping Balboa, Fernando Wilkinson, Hernán Alfredo REFACTORING PARSER PARSE NODE SOURCE RANGE AST INTEFAZ TEST TDD 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. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales 2022 info:eu-repo/semantics/bachelorThesis info:ar-repo/semantics/tesis de grado info:eu-repo/semantics/publishedVersion application/pdf spa info:eu-repo/semantics/openAccess https://creativecommons.org/licenses/by-nc-sa/2.5/ar https://hdl.handle.net/20.500.12110/seminario_nCOM000549_Balboa |
| institution |
Universidad de Buenos Aires |
| institution_str |
I-28 |
| repository_str |
R-134 |
| collection |
Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA) |
| language |
Español |
| orig_language_str_mv |
spa |
| topic |
REFACTORING PARSER PARSE NODE SOURCE RANGE AST INTEFAZ TEST TDD |
| spellingShingle |
REFACTORING PARSER PARSE NODE SOURCE RANGE AST INTEFAZ TEST TDD Balboa, Fernando Implementación de refactorings automáticos en lenguajes con LiveTyping |
| topic_facet |
REFACTORING PARSER PARSE NODE SOURCE RANGE AST INTEFAZ TEST TDD |
| 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. |
| author2 |
Wilkinson, Hernán Alfredo |
| author_facet |
Wilkinson, Hernán Alfredo Balboa, Fernando |
| format |
Tesis de grado Tesis de grado publishedVersion |
| author |
Balboa, Fernando |
| author_sort |
Balboa, Fernando |
| title |
Implementación de refactorings automáticos en lenguajes con LiveTyping |
| 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 |
| publisher |
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
| publishDate |
2022 |
| url |
https://hdl.handle.net/20.500.12110/seminario_nCOM000549_Balboa |
| work_keys_str_mv |
AT balboafernando implementacionderefactoringsautomaticosenlenguajesconlivetyping |
| _version_ |
1843125815456301056 |