Back to Search Start Over

Enhancing Automated Software Refactoring via Simultaneous Testing, Dependency Analysis, and Examining Multi-level Software Quality Concerns

Authors :
Yackley, Jeffrey J.
Publication Year :
2022
Publisher :
My University, 2022.

Abstract

Software development is a messy process filled with an assortment of widely varying practices, procedures, and activities. Software refactoring is one of many such activities squeezed in to tight deadlines and frantic work schedules. Refactoring is often discussed as an isolated process, yet developers most often perform floss-refactoring where refactoring operations are performed along-side other development activities such as the addition of a new feature or to fix a bug. This has created a niche for automated tools to assist developers with the time-intensive tasks and the high cognitive cost associated with the practice of constant task switching. The various automated tools created to support refactoring currently rely on combinations of quality metrics and code anti-patterns, often called code smells or code anomalies, to find opportunities to improve the code. Yet, the tools do not use more task-specific knowledge to find opportunities to further improve both the refactoring recommendations and the associated tasks. Additionally, these tools frequently produce an overwhelming number of refactoring recommendations. The overwhelming nature of these recommendation options and competing quality objectives makes refactoring code quite challenging. To further add to this already onerous effort, these refactoring recommendations are presented to developers with little concern for how these refactorings are linked together or need to be applied to the code creating a truly herculean task. To address these challenges, we present the following contributions: (1) A simultasking, search-based algorithm that unifies the tasks of regression test case selection and software refactoring; (2) A theory, algorithm, and web-tool for defining and detecting ordering correctness dependencies between refactorings in a collection which we organize as graphs; and (3) A classifier for 3 architecture anti-patterns based on 16 code anomalies to explore the relationship between code-level and architecture-level issues.

Details

Language :
English
Database :
OpenAIRE
Accession number :
edsair.doi...........cb06b757f16584c3f9e90fb8812eb783
Full Text :
https://doi.org/10.7302/4497