A computational solution for the software refactoring problem: a formalism toward an optimization approach

Software Refactoring consists in reconstructing the code design of an object-oriented system without affecting the external functionality. Common refactoring tasks, in the initial steps, detect the source code components to be affected and recommend accurate Refactoring Operations to be applied to t...

Full description

Autores:
Nader Palacio, David Alberto
Tipo de recurso:
Fecha de publicación:
2017
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
spa
OAI Identifier:
oai:repositorio.unal.edu.co:unal/62354
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/62354
http://bdigital.unal.edu.co/61425/
Palabra clave:
6 Tecnología (ciencias aplicadas) / Technology
62 Ingeniería y operaciones afines / Engineering
Software Engineering
Refactoring
Optimization
Ingeniería de software
Refactorización
Optimización
Rights
openAccess
License
Atribución-NoComercial 4.0 Internacional
id UNACIONAL2_10dde7de3eeebd0f93724a1f1c757302
oai_identifier_str oai:repositorio.unal.edu.co:unal/62354
network_acronym_str UNACIONAL2
network_name_str Universidad Nacional de Colombia
repository_id_str
spelling Atribución-NoComercial 4.0 InternacionalDerechos reservados - Universidad Nacional de Colombiahttp://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Gomez Perdomo, JonatanNader Palacio, David Alberto9f6c2ed9-d510-4648-a36c-8f58bb5cefc83002019-07-02T20:58:02Z2019-07-02T20:58:02Z2017-12-01https://repositorio.unal.edu.co/handle/unal/62354http://bdigital.unal.edu.co/61425/Software Refactoring consists in reconstructing the code design of an object-oriented system without affecting the external functionality. Common refactoring tasks, in the initial steps, detect the source code components to be affected and recommend accurate Refactoring Operations to be applied to those components (an estimation problem). In this document, the author defines, develops and evaluates an Artificial Refactoring Hybrid Adaptive Technique (ArHaT) to estimate refactorings as a combi- natorial model. The author investigated whether Refactoring Impact Prediction yields sets of artificial refactoring operations before implementing them into the code. ArHaT estimates the sets of Refactoring Operations according to some predefined weight values of the quality metrics. The weight values or coefficients capture the developer error-prone knowledge of the code in the objective function. The author conducted several fitness performance evaluations in two open software systems and organized them as a set of experiments. The goal of the experiments is to minimize a ratio between impacted quality metrics and actual quality metrics. Hill-Climbing, Simulated Annealing, and Hybrid Adaptive Evolutionary Algorithm assembled feasible refactorings, yet the latter accomplished the best performance. This research establishes the fundamentals of the automation of the refactoring problem and contributes to reducing the gap between the software defect prediction and the software refactoring.Maestríaapplication/pdfspaUniversidad Nacional de Colombia Sede Bogotá Facultad de Ingeniería Departamento de Ingeniería de Sistemas e IndustrialDepartamento de Ingeniería de Sistemas e IndustrialNader Palacio, David Alberto (2017) A computational solution for the software refactoring problem: a formalism toward an optimization approach. Maestría thesis, Universidad Nacional de Colombia - Sede Bogotá.6 Tecnología (ciencias aplicadas) / Technology62 Ingeniería y operaciones afines / EngineeringSoftware EngineeringRefactoringOptimizationIngeniería de softwareRefactorizaciónOptimizaciónA computational solution for the software refactoring problem: a formalism toward an optimization approachTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTexthttp://purl.org/redcol/resource_type/TMORIGINALRefactoring_Master_Thesis_Final.pdfapplication/pdf9887008https://repositorio.unal.edu.co/bitstream/unal/62354/1/Refactoring_Master_Thesis_Final.pdfe4e8957d89a605b9d6ccb9328419ed55MD51THUMBNAILRefactoring_Master_Thesis_Final.pdf.jpgRefactoring_Master_Thesis_Final.pdf.jpgGenerated Thumbnailimage/jpeg4177https://repositorio.unal.edu.co/bitstream/unal/62354/2/Refactoring_Master_Thesis_Final.pdf.jpgf71ca4a4254a1f7a7c45ef9593169c7fMD52unal/62354oai:repositorio.unal.edu.co:unal/623542023-04-16 23:05:45.559Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.co
dc.title.spa.fl_str_mv A computational solution for the software refactoring problem: a formalism toward an optimization approach
title A computational solution for the software refactoring problem: a formalism toward an optimization approach
spellingShingle A computational solution for the software refactoring problem: a formalism toward an optimization approach
6 Tecnología (ciencias aplicadas) / Technology
62 Ingeniería y operaciones afines / Engineering
Software Engineering
Refactoring
Optimization
Ingeniería de software
Refactorización
Optimización
title_short A computational solution for the software refactoring problem: a formalism toward an optimization approach
title_full A computational solution for the software refactoring problem: a formalism toward an optimization approach
title_fullStr A computational solution for the software refactoring problem: a formalism toward an optimization approach
title_full_unstemmed A computational solution for the software refactoring problem: a formalism toward an optimization approach
title_sort A computational solution for the software refactoring problem: a formalism toward an optimization approach
dc.creator.fl_str_mv Nader Palacio, David Alberto
dc.contributor.author.spa.fl_str_mv Nader Palacio, David Alberto
dc.contributor.spa.fl_str_mv Gomez Perdomo, Jonatan
dc.subject.ddc.spa.fl_str_mv 6 Tecnología (ciencias aplicadas) / Technology
62 Ingeniería y operaciones afines / Engineering
topic 6 Tecnología (ciencias aplicadas) / Technology
62 Ingeniería y operaciones afines / Engineering
Software Engineering
Refactoring
Optimization
Ingeniería de software
Refactorización
Optimización
dc.subject.proposal.spa.fl_str_mv Software Engineering
Refactoring
Optimization
Ingeniería de software
Refactorización
Optimización
description Software Refactoring consists in reconstructing the code design of an object-oriented system without affecting the external functionality. Common refactoring tasks, in the initial steps, detect the source code components to be affected and recommend accurate Refactoring Operations to be applied to those components (an estimation problem). In this document, the author defines, develops and evaluates an Artificial Refactoring Hybrid Adaptive Technique (ArHaT) to estimate refactorings as a combi- natorial model. The author investigated whether Refactoring Impact Prediction yields sets of artificial refactoring operations before implementing them into the code. ArHaT estimates the sets of Refactoring Operations according to some predefined weight values of the quality metrics. The weight values or coefficients capture the developer error-prone knowledge of the code in the objective function. The author conducted several fitness performance evaluations in two open software systems and organized them as a set of experiments. The goal of the experiments is to minimize a ratio between impacted quality metrics and actual quality metrics. Hill-Climbing, Simulated Annealing, and Hybrid Adaptive Evolutionary Algorithm assembled feasible refactorings, yet the latter accomplished the best performance. This research establishes the fundamentals of the automation of the refactoring problem and contributes to reducing the gap between the software defect prediction and the software refactoring.
publishDate 2017
dc.date.issued.spa.fl_str_mv 2017-12-01
dc.date.accessioned.spa.fl_str_mv 2019-07-02T20:58:02Z
dc.date.available.spa.fl_str_mv 2019-07-02T20:58:02Z
dc.type.spa.fl_str_mv Trabajo de grado - Maestría
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/masterThesis
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.content.spa.fl_str_mv Text
dc.type.redcol.spa.fl_str_mv http://purl.org/redcol/resource_type/TM
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.unal.edu.co/handle/unal/62354
dc.identifier.eprints.spa.fl_str_mv http://bdigital.unal.edu.co/61425/
url https://repositorio.unal.edu.co/handle/unal/62354
http://bdigital.unal.edu.co/61425/
dc.language.iso.spa.fl_str_mv spa
language spa
dc.relation.ispartof.spa.fl_str_mv Universidad Nacional de Colombia Sede Bogotá Facultad de Ingeniería Departamento de Ingeniería de Sistemas e Industrial
Departamento de Ingeniería de Sistemas e Industrial
dc.relation.references.spa.fl_str_mv Nader Palacio, David Alberto (2017) A computational solution for the software refactoring problem: a formalism toward an optimization approach. Maestría thesis, Universidad Nacional de Colombia - Sede Bogotá.
dc.rights.spa.fl_str_mv Derechos reservados - Universidad Nacional de Colombia
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.license.spa.fl_str_mv Atribución-NoComercial 4.0 Internacional
dc.rights.uri.spa.fl_str_mv http://creativecommons.org/licenses/by-nc/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
rights_invalid_str_mv Atribución-NoComercial 4.0 Internacional
Derechos reservados - Universidad Nacional de Colombia
http://creativecommons.org/licenses/by-nc/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.mimetype.spa.fl_str_mv application/pdf
institution Universidad Nacional de Colombia
bitstream.url.fl_str_mv https://repositorio.unal.edu.co/bitstream/unal/62354/1/Refactoring_Master_Thesis_Final.pdf
https://repositorio.unal.edu.co/bitstream/unal/62354/2/Refactoring_Master_Thesis_Final.pdf.jpg
bitstream.checksum.fl_str_mv e4e8957d89a605b9d6ccb9328419ed55
f71ca4a4254a1f7a7c45ef9593169c7f
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Nacional de Colombia
repository.mail.fl_str_mv repositorio_nal@unal.edu.co
_version_ 1806886026851909632