TY - GEN
T1 - Can refactoring be self-affirmed? An exploratory study on how developers document their refactoring activities in commit messages
AU - AlOmar, Eman Abdullah
AU - Mkaouer, Mohamed Wiem
AU - Ouni, Ali
N1 - Publisher Copyright:
© 2019 IEEE.
PY - 2019/5
Y1 - 2019/5
N2 - Refactoring is a critical task in software maintenance and is usually performed to enforce best design practices, or to cope with design defects. Previous studies heavily rely on defining a set of keywords to identify refactoring commits from a list of general commits extracted from a small set of software systems. All approaches thus far consider all commits without checking whether refactorings had actually happened or not. In this paper, we aim at exploring how developers document their refactoring activities during the software life cycle. We call such activity Self-Affirmed Refactoring, which is an indication of the developer-related refactoring events in the commit messages. Our approach relies on text mining refactoring-related change messages and identifying refactoring patterns by only considering refactoring commits. We found that (1) developers use a variety of patterns to purposefully target refactoring-related activities; (2) developers tend to explicitly mention the improvement of specific quality attributes and code smells; and (3) commit messages with self-affirmed refactoring patterns tend to have more significant refactoring activity than those without.
AB - Refactoring is a critical task in software maintenance and is usually performed to enforce best design practices, or to cope with design defects. Previous studies heavily rely on defining a set of keywords to identify refactoring commits from a list of general commits extracted from a small set of software systems. All approaches thus far consider all commits without checking whether refactorings had actually happened or not. In this paper, we aim at exploring how developers document their refactoring activities during the software life cycle. We call such activity Self-Affirmed Refactoring, which is an indication of the developer-related refactoring events in the commit messages. Our approach relies on text mining refactoring-related change messages and identifying refactoring patterns by only considering refactoring commits. We found that (1) developers use a variety of patterns to purposefully target refactoring-related activities; (2) developers tend to explicitly mention the improvement of specific quality attributes and code smells; and (3) commit messages with self-affirmed refactoring patterns tend to have more significant refactoring activity than those without.
KW - Mining software repositories
KW - Self-affirmed refactoring
KW - Software quality
UR - http://www.scopus.com/inward/record.url?scp=85073409904&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85073409904&partnerID=8YFLogxK
U2 - 10.1109/IWoR.2019.00017
DO - 10.1109/IWoR.2019.00017
M3 - Conference contribution
AN - SCOPUS:85073409904
T3 - Proceedings - 2019 IEEE/ACM 3rd International Workshop on Refactoring, IWOR 2019
SP - 51
EP - 58
BT - Proceedings - 2019 IEEE/ACM 3rd International Workshop on Refactoring, IWOR 2019
T2 - 3rd IEEE/ACM International Workshop on Refactoring, IWOR 2019
Y2 - 28 May 2019
ER -