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...
- 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_ |
1814089326673264640 |