楠本研究室

業績一覧

ホーム業績一覧

Classification of Changes based on API

Classification of Changes based on API
Proceedings of the 23rd International Conference on Product-Focused Software Process Improvement (PROFES2022), pp.061-070 (2022)
概要: In software maintenance process, software libraries are occasionally updated, and their APIs may also be updated. API changes can be classified into two categories: changes that break backward compatibility (in short, breaking changes) and changes that maintain backward compatibility (in short, maintaining changes). Detecting API changes and determining whether each is a breaking or maintaining change is useful for code reviews and release note generations. Since it is burdensome to check API changes manually, research on automatic detection of API changes has been conducted. APIDiff is a tool that automatically detects API changes and classifies the detected changes into breaking and maintaining ones. APIDiff takes two versions of a Java library as input, and it detects API changes based on the similarity of the input code. Each detected change is classified into the two kinds of changes. However, since APIDiff identifies breaking changes for each type of change, it tends to fail to correctly classify changes if multiple changes were conducted to a single API. On the other hand, our proposed technique in this paper groups changes by APIs and checks whether each group contains changes that break backward compatibility. Classifying API changes more correctly by our technique will be helpful for release note generations in maintenance process. We conducted experiments on eight open-source software and confirmed that our technique could detect API changes more correctly than APIDiff. We also confirmed that the proposed technique could classify API changes more correctly into breaking and maintaining ones than APIDiff. タグ: , api, changes, classification
@inproceedings{MasashiIriyama2022,
  author = {Masashi Iriyama and Yoshiki Higo and Shinji Kusumoto},
  title = {Classification of Changes based on API},
  booktitle = {Proceedings of the 23rd International Conference on Product-Focused Software Process Improvement (PROFES2022)},
  pages = {061--070},
  year = {2022},
  month = {nov}
}