Enhancing Automated Software Refactoring via Simultaneous Testing, Dependency Analysis, and Examining Multi-level Software Quality Concerns
dc.contributor.author | Yackley, Jeffrey J. | |
dc.contributor.advisor | Kessentini, Marouane | |
dc.contributor.advisor | Maxim, Bruce R. | |
dc.date.accessioned | 2022-05-17T14:38:25Z | |
dc.date.available | 2023-05-17 10:38:26 | en |
dc.date.issued | 2022-08-22 | |
dc.date.submitted | 2022-04-22 | |
dc.identifier.uri | https://hdl.handle.net/2027.42/172468 | |
dc.description.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. | en_US |
dc.language.iso | en_US | en_US |
dc.subject | Anti-patterns | en_US |
dc.subject | Artificial intelligence | en_US |
dc.subject | Regression testing | en_US |
dc.subject | Software architecture | en_US |
dc.subject | Software engineering | en_US |
dc.subject | Software quality | en_US |
dc.subject | Software refactoring | en_US |
dc.subject.other | Computer and Information Science | en_US |
dc.title | Enhancing Automated Software Refactoring via Simultaneous Testing, Dependency Analysis, and Examining Multi-level Software Quality Concerns | en_US |
dc.type | Thesis | en_US |
dc.description.thesisdegreename | PhD | en_US |
dc.description.thesisdegreediscipline | College of Engineering & Computer Science | en_US |
dc.description.thesisdegreegrantor | University of Michigan-Dearborn | en_US |
dc.contributor.committeemember | Chehade, Abdallah | |
dc.contributor.committeemember | Hassan, Foyzul | |
dc.contributor.committeemember | Xu, Zhiwei | |
dc.identifier.uniqname | 2722 5061 | en_US |
dc.description.bitstreamurl | http://deepblue.lib.umich.edu/bitstream/2027.42/172468/1/Jeffrey Yackley Final Dissertation.pdf | en |
dc.identifier.doi | https://dx.doi.org/10.7302/4497 | |
dc.identifier.orcid | 0000-0001-6383-7359 | en_US |
dc.description.filedescription | Description of Jeffrey Yackley Final Dissertation.pdf : Dissertation | |
dc.identifier.name-orcid | Yackley, Jeffrey; 0000-0001-6383-7359 | en_US |
dc.working.doi | 10.7302/4497 | en_US |
dc.owningcollname | Dissertations and Theses (Ph.D. and Master's) |
Files in this item
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.