Show simple item record

A User-aware Intelligent Refactoring for Discrete and Continuous Software Integration

dc.contributor.authorAlizadeh, Vahid
dc.contributor.advisorKessentini, Marouane
dc.date.accessioned2020-04-24T20:49:33Z
dc.date.availableNO_RESTRICTIONen_US
dc.date.available2020-04-24T20:49:33Z
dc.date.issued2020-08-22
dc.date.submitted2020-04-13
dc.identifier.urihttps://hdl.handle.net/2027.42/154775
dc.description.abstractSuccessful software products evolve through a process of continual change. However, this process may weaken the design of the software and make it unnecessarily complex, leading to significantly reduced productivity and increased fault-proneness. Refactoring improves the software design while preserving overall functionality and behavior, and is an important technique in managing the growing complexity of software systems. Most of the existing work on software refactoring uses either an entirely manual or a fully automated approach. Manual refactoring is time-consuming, error-prone and unsuitable for large-scale, radical refactoring. Furthermore, fully automated refactoring yields a static list of refactorings which, when applied, leads to a new and often hard to comprehend design. In addition, it is challenging to merge these refactorings with other changes performed in parallel by developers. In this thesis, we propose a refactoring recommendation approach that dynamically adapts and interactively suggests refactorings to developers and takes their feedback into consideration. Our approach uses Non-dominated Sorting Genetic Algorithm (NSGAII) to find a set of good refactoring solutions that improve software quality while minimizing the deviation from the initial design. These refactoring solutions are then analyzed to extract interesting common features between them such as the frequently occurring refactorings in the best non-dominated solutions. We combined our interactive approach and unsupervised learning to reduce the developer’s interaction effort when refactoring a system. The unsupervised learning algorithm clusters the different trade-off solutions, called the Pareto front, to guide the developers in selecting their region of interests and reduce the number of refactoring options to explore. To reduce the interaction effort, we propose an approach to convert multi-objective search into a mono-objective one after interacting with the developer to identify a good refactoring solution based on their preferences. Since developers may want to focus on specific code locations, the ”Decision Space” is also important. Therefore, our interactive approach enables developers to pinpoint their preference simultaneously in the objective (quality metrics) and decision (code location) spaces. Due to an urgent need for refactoring tools that can support continuous integration and some recent development processes such as DevOps that are based on rapid releases, we propose, for the first time, an intelligent software refactoring bot, called RefBot. Our bot continuously monitors the software repository and find the best sequence of refactorings to fix the quality issues in Continous Integration/Continous Development (CI/CD) environments as a set of pull-requests generated after mining previous code changes to understand the profile of developers. We quantitatively and qualitatively evaluated the performance and effectiveness of our proposed approaches via a set of studies conducted with experienced developers who used our tools on both open source and industry projects.en_US
dc.language.isoen_USen_US
dc.subjectSoftware refactoringen_US
dc.subjectOptimizationen_US
dc.subjectContinuous integrationen_US
dc.subjectSoftware boten_US
dc.subjectCode qualityen_US
dc.subjectArtificial intelligenceen_US
dc.titleA User-aware Intelligent Refactoring for Discrete and Continuous Software Integrationen_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.committeememberGrosky, William
dc.contributor.committeememberMaxim, Bruce
dc.contributor.committeememberOrtiz, Luis
dc.contributor.committeememberZakarian, Armen
dc.identifier.uniqname3119 0488en_US
dc.description.bitstreamurlhttps://deepblue.lib.umich.edu/bitstream/2027.42/154775/1/Vahid Alizadeh Final Dissertation.pdf
dc.identifier.orcid0000-0002-5030-9036en_US
dc.description.filedescriptionDescription of Vahid Alizadeh Final Dissertation.pdf : Dissertation
dc.identifier.name-orcidAlizadeh, Vahid; 0000-0002-5030-9036en_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.