On the Documentation of Refactoring Types
Eman Abdullah AlOmar, Jiaqian Liu, Kenneth Addo, Mohamed Wiem, Mkaouer, Christian Newman, Ali Ouni, Zhe Yu

TL;DR
This study investigates how well commit messages document refactoring activities, proposing a text mining approach to predict refactoring types and highlighting the variability in documentation quality across different refactoring operations.
Contribution
It introduces a model that predicts refactoring types from commit messages, revealing documentation inconsistencies and emphasizing the need for better developer documentation practices.
Findings
Rename and Extract methods are well documented.
Pull-up and Push-down methods are poorly documented.
Prediction accuracy varies by refactoring type.
Abstract
Commit messages are the atomic level of software documentation. They provide a natural language description of the code change and its purpose. Messages are critical for software maintenance and program comprehension. Unlike documenting feature updates and bug fixes, little is known about how developers document their refactoring activities. Developers can perform multiple refactoring operations, including moving methods, extracting classes, for various reasons. Yet, there is no systematic study that analyzes the extent to which the documentation of refactoring accurately describes the refactoring operations performed at the source code level. Therefore, this paper challenges the ability of refactoring documentation to adequately predict the refactoring types, performed at the commit level. Our analysis relies on the text mining of commit messages to extract the corresponding features…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Software Engineering Techniques and Practices
