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

Miniatura

Autores

Nader Palacio, David Alberto

Director

Tipo de contenido

Trabajo de grado - Maestría

Idioma del documento

Español

Fecha de publicación

2017-12-01

Título de la revista

ISSN de la revista

Título del volumen

Documentos PDF

Resumen

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.

Abstract

Descripción Física/Lógica/Digital

Palabras clave

Citación