Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones

Autores
Masson, Iván; Pastore, Roman
Año de publicación
2016
Idioma
español castellano
Tipo de recurso
tesis de grado
Estado
versión aceptada
Colaborador/a o director/a de tesis
Vidal, Santiago
Díaz Pace, Andrés
Descripción
La evolución y mantenimiento de los sistemas de software es una tarea costosa en el proceso de desarrollo de software. Dichos costos tienden a crecer exponencialmente en la medida en que los sistemas se vuelven más grandes y complejos. Una de las mayores preocupaciones en la evolución y mantenimiento de sistemas es la existencia de problemas estructurales de diseño que no son descubiertos y por ende no son subsanados en las etapas tempranas del desarrollo. Este tipo de problemas en el diseño pueden ser identificados mediante “code smells”. Un code smell es un síntoma en el código fuente del sistema que ayuda a identificar un problema de diseño. Los smells permiten a los desarrolladores detectar fragmentos de código que deberían ser reestructurados, para de esa manera mejorar la calidad del sistema. En este aspecto los smells actúan como antipatrones de diseño que ponen en evidencia estas debilidades del sistema. Existen diferentes herramientas semiautomatizadas para la identificación de smells en un sistema tales como inCode o iPlasma, sin embargo una de las mayores limitaciones de dichas herramientas es que usualmente encuentran una gran cantidad de smells; esto puede volverse un problema para el desarrollador por diversas razones. En principio el desarrollador puede verse abrumado por la cantidad de información a analizar, teniendo en cuenta que las herramientas solo señalan los smells y el desarrollador es finalmente quien decide en cada caso si se trata de un problema o no y de sí efectivamente merece que se le otorgue tiempo de desarrollo a solucionar el smell. Una técnica que suele utilizarse para solucionar los code smells es el refactoring. El refactoring es una técnica controlada para mejorar el diseño del código de un sistema. Consiste en aplicar una serie de transformaciones al código para mejorar ciertos aspectos estructurales del mismo sin alterar su comportamiento. Por otro lado, el desarrollador es quien debe decidir qué problemas son relevantes para la “salud” del sistema y cuales interfieren con el objetivo para el que fue diseñado. Bajo estas condiciones es válido mencionar que en la práctica no todos los smells encontrados en un sistema indican un problema de diseño, por ej. pueden existir métodos extensos en ciertas clases, pero cuya extensión puede estar relacionada a la complejidad de la tarea que realizan y no a la falta de modularización. En este sentido, cada smell encontrado requiere de un análisis particular, lo que obliga al desarrollador a detenerse en cada smell de la lista resultante de un análisis y seleccionar aquellos que, bajo su criterio respaldado por su entendimiento del sistema, necesitan ser reparados. En este contexto es necesaria una herramienta que asista al desarrollador en la tarea de identificar aquellos smells que sean prioritarios para la evolución y mantenimiento del sistema. En esta línea se ha propuesto SpIRIT (Smart Identification of Refactoring opportunITies) una herramienta semiautomatizada que realiza una priorización de los code smells de un sistema de acuerdo a su criticidad. Se definen como problemas críticos aquellos que comprometen la arquitectura de un sistema. Luego los mismos autores proponen JSpIRIT (Java Smart Identification of Refactoring opportunITies) que se trata de un plugin para el IDE de desarrollo Eclipse y el cual se utiliza en el desarrollo de éste trabajo. Párrafo extraído de la tesis de grado a modo de resumen
Fil: Masson, Iván. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
Fil: Pastore, Román. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
Fil: Vidal, Santiago. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
Fil: Díaz Pace, Andrés. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
Materia
Code smells
Spirit
Smart Identification of refactoring opportunITies
Computación
Arquitectura-computación
Diseño de bases de datos
Diseño de software
Software
Nivel de accesibilidad
acceso abierto
Condiciones de uso
http://creativecommons.org/licenses/by/2.5/ar/
Repositorio
RIDAA (UNICEN)
Institución
Universidad Nacional del Centro de la Provincia de Buenos Aires
OAI Identificador
oai:ridaa.unicen.edu.ar:123456789/588

id RIDUNICEN_992aa0455d5051ed300f42a4321708c2
oai_identifier_str oai:ridaa.unicen.edu.ar:123456789/588
network_acronym_str RIDUNICEN
repository_id_str a
network_name_str RIDAA (UNICEN)
spelling Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicacionesMasson, IvánPastore, RomanCode smellsSpiritSmart Identification of refactoring opportunITiesComputaciónArquitectura-computaciónDiseño de bases de datosDiseño de softwareSoftwareLa evolución y mantenimiento de los sistemas de software es una tarea costosa en el proceso de desarrollo de software. Dichos costos tienden a crecer exponencialmente en la medida en que los sistemas se vuelven más grandes y complejos. Una de las mayores preocupaciones en la evolución y mantenimiento de sistemas es la existencia de problemas estructurales de diseño que no son descubiertos y por ende no son subsanados en las etapas tempranas del desarrollo. Este tipo de problemas en el diseño pueden ser identificados mediante “code smells”. Un code smell es un síntoma en el código fuente del sistema que ayuda a identificar un problema de diseño. Los smells permiten a los desarrolladores detectar fragmentos de código que deberían ser reestructurados, para de esa manera mejorar la calidad del sistema. En este aspecto los smells actúan como antipatrones de diseño que ponen en evidencia estas debilidades del sistema. Existen diferentes herramientas semiautomatizadas para la identificación de smells en un sistema tales como inCode o iPlasma, sin embargo una de las mayores limitaciones de dichas herramientas es que usualmente encuentran una gran cantidad de smells; esto puede volverse un problema para el desarrollador por diversas razones. En principio el desarrollador puede verse abrumado por la cantidad de información a analizar, teniendo en cuenta que las herramientas solo señalan los smells y el desarrollador es finalmente quien decide en cada caso si se trata de un problema o no y de sí efectivamente merece que se le otorgue tiempo de desarrollo a solucionar el smell. Una técnica que suele utilizarse para solucionar los code smells es el refactoring. El refactoring es una técnica controlada para mejorar el diseño del código de un sistema. Consiste en aplicar una serie de transformaciones al código para mejorar ciertos aspectos estructurales del mismo sin alterar su comportamiento. Por otro lado, el desarrollador es quien debe decidir qué problemas son relevantes para la “salud” del sistema y cuales interfieren con el objetivo para el que fue diseñado. Bajo estas condiciones es válido mencionar que en la práctica no todos los smells encontrados en un sistema indican un problema de diseño, por ej. pueden existir métodos extensos en ciertas clases, pero cuya extensión puede estar relacionada a la complejidad de la tarea que realizan y no a la falta de modularización. En este sentido, cada smell encontrado requiere de un análisis particular, lo que obliga al desarrollador a detenerse en cada smell de la lista resultante de un análisis y seleccionar aquellos que, bajo su criterio respaldado por su entendimiento del sistema, necesitan ser reparados. En este contexto es necesaria una herramienta que asista al desarrollador en la tarea de identificar aquellos smells que sean prioritarios para la evolución y mantenimiento del sistema. En esta línea se ha propuesto SpIRIT (Smart Identification of Refactoring opportunITies) una herramienta semiautomatizada que realiza una priorización de los code smells de un sistema de acuerdo a su criticidad. Se definen como problemas críticos aquellos que comprometen la arquitectura de un sistema. Luego los mismos autores proponen JSpIRIT (Java Smart Identification of Refactoring opportunITies) que se trata de un plugin para el IDE de desarrollo Eclipse y el cual se utiliza en el desarrollo de éste trabajo. Párrafo extraído de la tesis de grado a modo de resumenFil: Masson, Iván. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, ArgentinaFil: Pastore, Román. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, ArgentinaFil: Vidal, Santiago. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, ArgentinaFil: Díaz Pace, Andrés. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, ArgentinaUniversidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias ExáctasVidal, SantiagoDíaz Pace, Andrés2016-052016-06-03T15:10:46Zinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1finfo:ar-repo/semantics/tesisDeGradoapplication/pdfapplication/pdfhttp://www.ridaa.unicen.edu.ar/xmlui/handle/123456789/588https://www.ridaa.unicen.edu.ar/handle/123456789/588spahttp://creativecommons.org/licenses/by/2.5/ar/info:eu-repo/semantics/openAccessreponame:RIDAA (UNICEN)instname:Universidad Nacional del Centro de la Provincia de Buenos Aires2025-09-04T09:43:51Zoai:ridaa.unicen.edu.ar:123456789/588instacron:UNICENInstitucionalhttps://www.ridaa.unicen.edu.ar/Universidad públicaNo correspondehttps://www.ridaa.unicen.edu.ar/oailleiboff@rec.unicen.edu.ar;gimeroni@rec.unicen.edu.ar;lvarela@rec.unicen.edu.ar ;ArgentinaNo correspondeNo correspondeNo correspondeopendoar:a2025-09-04 09:43:51.451RIDAA (UNICEN) - Universidad Nacional del Centro de la Provincia de Buenos Airesfalse
dc.title.none.fl_str_mv Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
title Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
spellingShingle Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
Masson, Iván
Code smells
Spirit
Smart Identification of refactoring opportunITies
Computación
Arquitectura-computación
Diseño de bases de datos
Diseño de software
Software
title_short Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
title_full Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
title_fullStr Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
title_full_unstemmed Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
title_sort Análisis y mejoras de usabilidad y performance sobre una herramienta de asistencia en el refactoring de aplicaciones
dc.creator.none.fl_str_mv Masson, Iván
Pastore, Roman
author Masson, Iván
author_facet Masson, Iván
Pastore, Roman
author_role author
author2 Pastore, Roman
author2_role author
dc.contributor.none.fl_str_mv Vidal, Santiago
Díaz Pace, Andrés
dc.subject.none.fl_str_mv Code smells
Spirit
Smart Identification of refactoring opportunITies
Computación
Arquitectura-computación
Diseño de bases de datos
Diseño de software
Software
topic Code smells
Spirit
Smart Identification of refactoring opportunITies
Computación
Arquitectura-computación
Diseño de bases de datos
Diseño de software
Software
dc.description.none.fl_txt_mv La evolución y mantenimiento de los sistemas de software es una tarea costosa en el proceso de desarrollo de software. Dichos costos tienden a crecer exponencialmente en la medida en que los sistemas se vuelven más grandes y complejos. Una de las mayores preocupaciones en la evolución y mantenimiento de sistemas es la existencia de problemas estructurales de diseño que no son descubiertos y por ende no son subsanados en las etapas tempranas del desarrollo. Este tipo de problemas en el diseño pueden ser identificados mediante “code smells”. Un code smell es un síntoma en el código fuente del sistema que ayuda a identificar un problema de diseño. Los smells permiten a los desarrolladores detectar fragmentos de código que deberían ser reestructurados, para de esa manera mejorar la calidad del sistema. En este aspecto los smells actúan como antipatrones de diseño que ponen en evidencia estas debilidades del sistema. Existen diferentes herramientas semiautomatizadas para la identificación de smells en un sistema tales como inCode o iPlasma, sin embargo una de las mayores limitaciones de dichas herramientas es que usualmente encuentran una gran cantidad de smells; esto puede volverse un problema para el desarrollador por diversas razones. En principio el desarrollador puede verse abrumado por la cantidad de información a analizar, teniendo en cuenta que las herramientas solo señalan los smells y el desarrollador es finalmente quien decide en cada caso si se trata de un problema o no y de sí efectivamente merece que se le otorgue tiempo de desarrollo a solucionar el smell. Una técnica que suele utilizarse para solucionar los code smells es el refactoring. El refactoring es una técnica controlada para mejorar el diseño del código de un sistema. Consiste en aplicar una serie de transformaciones al código para mejorar ciertos aspectos estructurales del mismo sin alterar su comportamiento. Por otro lado, el desarrollador es quien debe decidir qué problemas son relevantes para la “salud” del sistema y cuales interfieren con el objetivo para el que fue diseñado. Bajo estas condiciones es válido mencionar que en la práctica no todos los smells encontrados en un sistema indican un problema de diseño, por ej. pueden existir métodos extensos en ciertas clases, pero cuya extensión puede estar relacionada a la complejidad de la tarea que realizan y no a la falta de modularización. En este sentido, cada smell encontrado requiere de un análisis particular, lo que obliga al desarrollador a detenerse en cada smell de la lista resultante de un análisis y seleccionar aquellos que, bajo su criterio respaldado por su entendimiento del sistema, necesitan ser reparados. En este contexto es necesaria una herramienta que asista al desarrollador en la tarea de identificar aquellos smells que sean prioritarios para la evolución y mantenimiento del sistema. En esta línea se ha propuesto SpIRIT (Smart Identification of Refactoring opportunITies) una herramienta semiautomatizada que realiza una priorización de los code smells de un sistema de acuerdo a su criticidad. Se definen como problemas críticos aquellos que comprometen la arquitectura de un sistema. Luego los mismos autores proponen JSpIRIT (Java Smart Identification of Refactoring opportunITies) que se trata de un plugin para el IDE de desarrollo Eclipse y el cual se utiliza en el desarrollo de éste trabajo. Párrafo extraído de la tesis de grado a modo de resumen
Fil: Masson, Iván. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
Fil: Pastore, Román. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
Fil: Vidal, Santiago. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
Fil: Díaz Pace, Andrés. Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas, Argentina
description La evolución y mantenimiento de los sistemas de software es una tarea costosa en el proceso de desarrollo de software. Dichos costos tienden a crecer exponencialmente en la medida en que los sistemas se vuelven más grandes y complejos. Una de las mayores preocupaciones en la evolución y mantenimiento de sistemas es la existencia de problemas estructurales de diseño que no son descubiertos y por ende no son subsanados en las etapas tempranas del desarrollo. Este tipo de problemas en el diseño pueden ser identificados mediante “code smells”. Un code smell es un síntoma en el código fuente del sistema que ayuda a identificar un problema de diseño. Los smells permiten a los desarrolladores detectar fragmentos de código que deberían ser reestructurados, para de esa manera mejorar la calidad del sistema. En este aspecto los smells actúan como antipatrones de diseño que ponen en evidencia estas debilidades del sistema. Existen diferentes herramientas semiautomatizadas para la identificación de smells en un sistema tales como inCode o iPlasma, sin embargo una de las mayores limitaciones de dichas herramientas es que usualmente encuentran una gran cantidad de smells; esto puede volverse un problema para el desarrollador por diversas razones. En principio el desarrollador puede verse abrumado por la cantidad de información a analizar, teniendo en cuenta que las herramientas solo señalan los smells y el desarrollador es finalmente quien decide en cada caso si se trata de un problema o no y de sí efectivamente merece que se le otorgue tiempo de desarrollo a solucionar el smell. Una técnica que suele utilizarse para solucionar los code smells es el refactoring. El refactoring es una técnica controlada para mejorar el diseño del código de un sistema. Consiste en aplicar una serie de transformaciones al código para mejorar ciertos aspectos estructurales del mismo sin alterar su comportamiento. Por otro lado, el desarrollador es quien debe decidir qué problemas son relevantes para la “salud” del sistema y cuales interfieren con el objetivo para el que fue diseñado. Bajo estas condiciones es válido mencionar que en la práctica no todos los smells encontrados en un sistema indican un problema de diseño, por ej. pueden existir métodos extensos en ciertas clases, pero cuya extensión puede estar relacionada a la complejidad de la tarea que realizan y no a la falta de modularización. En este sentido, cada smell encontrado requiere de un análisis particular, lo que obliga al desarrollador a detenerse en cada smell de la lista resultante de un análisis y seleccionar aquellos que, bajo su criterio respaldado por su entendimiento del sistema, necesitan ser reparados. En este contexto es necesaria una herramienta que asista al desarrollador en la tarea de identificar aquellos smells que sean prioritarios para la evolución y mantenimiento del sistema. En esta línea se ha propuesto SpIRIT (Smart Identification of Refactoring opportunITies) una herramienta semiautomatizada que realiza una priorización de los code smells de un sistema de acuerdo a su criticidad. Se definen como problemas críticos aquellos que comprometen la arquitectura de un sistema. Luego los mismos autores proponen JSpIRIT (Java Smart Identification of Refactoring opportunITies) que se trata de un plugin para el IDE de desarrollo Eclipse y el cual se utiliza en el desarrollo de éste trabajo. Párrafo extraído de la tesis de grado a modo de resumen
publishDate 2016
dc.date.none.fl_str_mv 2016-05
2016-06-03T15:10:46Z
dc.type.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
info:eu-repo/semantics/acceptedVersion
http://purl.org/coar/resource_type/c_7a1f
info:ar-repo/semantics/tesisDeGrado
format bachelorThesis
status_str acceptedVersion
dc.identifier.none.fl_str_mv http://www.ridaa.unicen.edu.ar/xmlui/handle/123456789/588
https://www.ridaa.unicen.edu.ar/handle/123456789/588
url http://www.ridaa.unicen.edu.ar/xmlui/handle/123456789/588
https://www.ridaa.unicen.edu.ar/handle/123456789/588
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv http://creativecommons.org/licenses/by/2.5/ar/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by/2.5/ar/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
application/pdf
dc.publisher.none.fl_str_mv Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas
publisher.none.fl_str_mv Universidad Nacional del Centro de la Provincia de Buenos Aires. Facultad de Ciencias Exáctas
dc.source.none.fl_str_mv reponame:RIDAA (UNICEN)
instname:Universidad Nacional del Centro de la Provincia de Buenos Aires
reponame_str RIDAA (UNICEN)
collection RIDAA (UNICEN)
instname_str Universidad Nacional del Centro de la Provincia de Buenos Aires
repository.name.fl_str_mv RIDAA (UNICEN) - Universidad Nacional del Centro de la Provincia de Buenos Aires
repository.mail.fl_str_mv lleiboff@rec.unicen.edu.ar;gimeroni@rec.unicen.edu.ar;lvarela@rec.unicen.edu.ar ;
_version_ 1842341497659195392
score 12.623145