Show simple item record

Commits Analysis for Software Refactoring Documentation and Recommendation

dc.contributor.authorRebai, Soumaya
dc.contributor.advisorKessentini, Marouane
dc.date.accessioned2021-09-15T13:51:32Z
dc.date.issued2021-12-17
dc.date.submitted2021-08-23
dc.identifier.urihttps://hdl.handle.net/2027.42/169486
dc.description.abstractSoftware projects frequently evolve to meet new requirements and/or to fix bugs. While this evolution is critical, it may have a negative impact on the quality of the system. To improve the quality of software systems, the first step is “detection" of code antipatterns to be restructured which can be considered as “refactoring opportunities". The second step is the “prioritization" of code fragments to be refactored/fixed. The third step is “recommendation" of refactorings to fix the detected quality issues. The fourth step is “testing" the recommended refactorings to evaluate their correctness. The fifth step is the “documentation" of the applied refactorings. In this thesis, we addressed the above five steps: 1. We designed a bi-level multi-objective optimization approach to enable the generation of antipattern examples that can improve the efficiency of detection rules for bad quality designs. 2. Regarding refactoring recommendations, we first identify refactoring opportunities by analyzing developer commit messages and quality of changed files, then we distill this knowledge into usable context driven refactoring recommendations to complement static and dynamic analysis of code. 3. We proposed an interactive refactoring recommendation approach that enables developers to pinpoint their preferences simultaneously in the objective (quality metrics) and decision (code location) spaces. 4. We proposed a semi-automated refactoring documentation bot that helps developers to interactively check and validate the documentation of the refactorings and/or quality improvements at the file level for each opened pull-request before being reviewed or merged to the master 5. We performed interviews with and a survey of practitioners as well as a quantitative analysis of 1,193 commit messages containing refactorings to establish a refactoring documentation model as a set of components. 6. We formulated the recommendation of code reviewers as a multi-objective search problem to balance the conflicting objectives of expertise, availability, and history of collaborations. 7. We built a dataset composed of 50,000+ composite code changes pertaining to more than 7,000 open-source projects. Then, we proposed and evaluated a new deep learning technique to generate commit messages for composite code changes based on an attentional encoder-decoder with two encoders and BERT embeddings.en_US
dc.language.isoen_USen_US
dc.subjectCommit message analysisen_US
dc.subjectRefactoring documentationen_US
dc.subjectRefactoringen_US
dc.subjectOptimizationen_US
dc.subjectDetectionen_US
dc.subjectRefactoring recommendationen_US
dc.subjectCode reviewen_US
dc.subject.otherComputer and Information Scienceen_US
dc.titleCommits Analysis for Software Refactoring Documentation and Recommendationen_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.committeememberMaxim, Bruce
dc.contributor.committeememberMohammadi, Alireza
dc.contributor.committeememberSong, Zheng
dc.identifier.uniqname45217486en_US
dc.description.bitstreamurlhttp://deepblue.lib.umich.edu/bitstream/2027.42/169486/1/Soumaya Rebai final dissertation.pdf
dc.identifier.doihttps://dx.doi.org/10.7302/2532
dc.identifier.orcid0000-0002-9530-8280en_US
dc.description.filedescriptionDescription of Soumaya Rebai final dissertation.pdf : Dissertation
dc.identifier.name-orcidRebai, Soumaya ; 0000-0002-9530-8280en_US
dc.working.doi10.7302/2532en_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.