ABSTRACT

The increasing complexity of software applications is leading to the increased complexity involved in project design. In addition to code maintenance works, build configuration maintenance works are gaining prominence to ensure that unintended disruptions do not occur and slow-down of system functioning [64]. The researchers in [65] observed that poor build maintenance efforts result in the breakdown of the build configuration. The study in [66] reiterated the importance of build maintenance by studying the costs occurring due to building breakages. Any modifications in source or test codes also cause changes in build configuration files. In [67], ML techniques are proposed for training models to estimate build modifications on the basis of earlier changes in both sources and build files. The study in [68] further emphasized on the feasibility of making these estimations across multiple projects.

The current chapter attempts to improve the performance of these methods by modifying the source code and commit categories. The approaches suggested in [69, 70] are utilized to extract source file modification features. A Change Distiller is a plugin to obtain code modifications on the basis of tree-differencing [71]. It extracts two following versions of the source code and generates respective ASTs. By comparing these two ASTs and mapping the differences to respective code modification classes, Change Distiller obtains changes. To classify commit messages, Lile Hattori [72] suggested the division of these messages into four classes according to the content.