Show simple item record

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

dc.contributor.authorYackley, Jeffrey J.
dc.contributor.advisorKessentini, Marouane
dc.contributor.advisorMaxim, Bruce R.
dc.date.accessioned2022-05-17T14:38:25Z
dc.date.available2023-05-17 10:38:26en
dc.date.issued2022-08-22
dc.date.submitted2022-04-22
dc.identifier.urihttps://hdl.handle.net/2027.42/172468
dc.description.abstractSoftware 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.en_US
dc.language.isoen_USen_US
dc.subjectAnti-patternsen_US
dc.subjectArtificial intelligenceen_US
dc.subjectRegression testingen_US
dc.subjectSoftware architectureen_US
dc.subjectSoftware engineeringen_US
dc.subjectSoftware qualityen_US
dc.subjectSoftware refactoringen_US
dc.subject.otherComputer and Information Scienceen_US
dc.titleEnhancing Automated Software Refactoring via Simultaneous Testing, Dependency Analysis, and Examining Multi-level Software Quality Concernsen_US
dc.typeThesisen_US
dc.description.thesisdegreenamePhDen_US
dc.description.thesisdegreedisciplineCollege of Engineering & Computer Scienceen_US
dc.description.thesisdegreegrantorUniversity of Michigan-Dearbornen_US
dc.contributor.committeememberChehade, Abdallah
dc.contributor.committeememberHassan, Foyzul
dc.contributor.committeememberXu, Zhiwei
dc.identifier.uniqname2722 5061en_US
dc.description.bitstreamurlhttp://deepblue.lib.umich.edu/bitstream/2027.42/172468/1/Jeffrey Yackley Final Dissertation.pdfen
dc.identifier.doihttps://dx.doi.org/10.7302/4497
dc.identifier.orcid0000-0001-6383-7359en_US
dc.description.filedescriptionDescription of Jeffrey Yackley Final Dissertation.pdf : Dissertation
dc.identifier.name-orcidYackley, Jeffrey; 0000-0001-6383-7359en_US
dc.working.doi10.7302/4497en_US
dc.owningcollnameDissertations and Theses (Ph.D. and Master's)


Files in this item

Show simple item record

Remediation of Harmful Language

The University of Michigan Library aims to describe library materials in a way that respects the people and communities who create, use, and are represented in our collections. Report harmful or offensive language in catalog records, finding aids, or elsewhere in our collections anonymously through our metadata feedback form. More information at Remediation of Harmful Language.

Accessibility

If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.