A computational solution for the software refactoring problem: from a formalism toward an optimization approach
Abstract: 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 a...
- 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/62057
- Acceso en línea:
- https://repositorio.unal.edu.co/handle/unal/62057
http://bdigital.unal.edu.co/60911/
- Palabra clave:
- 62 Ingeniería y operaciones afines / Engineering
Software Engineering
Refactoring
Optimization
- Rights
- openAccess
- License
- Atribución-NoComercial 4.0 Internacional
id |
UNACIONAL2_047faf77769e031039b07a705f619a7f |
---|---|
oai_identifier_str |
oai:repositorio.unal.edu.co:unal/62057 |
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:50:07Z2019-07-02T20:50:07Z2017-12-01https://repositorio.unal.edu.co/handle/unal/62057http://bdigital.unal.edu.co/60911/Abstract: 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: from a formalism toward an optimization approach. Maestría thesis, Universidad Nacional de Colombia - Sede Bogotá.62 Ingeniería y operaciones afines / EngineeringSoftware EngineeringRefactoringOptimizationA computational solution for the software refactoring problem: from 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/62057/1/Refactoring_Master_Thesis_Final.pdfe4e8957d89a605b9d6ccb9328419ed55MD51THUMBNAILRefactoring_Master_Thesis_Final.pdf.jpgRefactoring_Master_Thesis_Final.pdf.jpgGenerated Thumbnailimage/jpeg4177https://repositorio.unal.edu.co/bitstream/unal/62057/2/Refactoring_Master_Thesis_Final.pdf.jpgf71ca4a4254a1f7a7c45ef9593169c7fMD52unal/62057oai:repositorio.unal.edu.co:unal/620572024-04-21 23:51:47.306Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.co |
dc.title.spa.fl_str_mv |
A computational solution for the software refactoring problem: from a formalism toward an optimization approach |
title |
A computational solution for the software refactoring problem: from a formalism toward an optimization approach |
spellingShingle |
A computational solution for the software refactoring problem: from a formalism toward an optimization approach 62 Ingeniería y operaciones afines / Engineering Software Engineering Refactoring Optimization |
title_short |
A computational solution for the software refactoring problem: from a formalism toward an optimization approach |
title_full |
A computational solution for the software refactoring problem: from a formalism toward an optimization approach |
title_fullStr |
A computational solution for the software refactoring problem: from a formalism toward an optimization approach |
title_full_unstemmed |
A computational solution for the software refactoring problem: from a formalism toward an optimization approach |
title_sort |
A computational solution for the software refactoring problem: from 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 |
62 Ingeniería y operaciones afines / Engineering |
topic |
62 Ingeniería y operaciones afines / Engineering Software Engineering Refactoring Optimization |
dc.subject.proposal.spa.fl_str_mv |
Software Engineering Refactoring Optimization |
description |
Abstract: 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:50:07Z |
dc.date.available.spa.fl_str_mv |
2019-07-02T20:50:07Z |
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/62057 |
dc.identifier.eprints.spa.fl_str_mv |
http://bdigital.unal.edu.co/60911/ |
url |
https://repositorio.unal.edu.co/handle/unal/62057 http://bdigital.unal.edu.co/60911/ |
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: from 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/62057/1/Refactoring_Master_Thesis_Final.pdf https://repositorio.unal.edu.co/bitstream/unal/62057/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_ |
1814090147904356352 |