http://lattes.cnpq.br/5451570808284186; FREIRE, Victor da Cunha Luna.
Abstract:
Code review is a widely used activity for source code quality assurance. As a typical review activity, code review is strongly dependent on developers’ ability to understand the code under revision. As a consequence, the presence of large changesets containing several independent modifications (e. g. bug fixes, refactoring, features additions etc) can negatively affect the efficacy of code review. To cope with this problem, Barnett et al. developed ClusterChanges — a lightweight static analysis technique for decomposing changesets in different partitions that can be reviewed independently. They have found that ClusterChanges can indeed create different partitions for independent changes within the same changeset and that developers agree with their decomposition. However, the authors’ implementation of ClusterChanges is not publicly available and they restricted their analysis of the technique to software projects thatare: i) closed source, ii) writtenin C#and iii) developed by a single organization. Therefore, there is still limited empirical evidence of ClusterChanges’ applicability to different contexts. To address this situation, we created JClusterChanges, a free and open source implementation (FOSS) of ClusterChanges for Java software, and replicated the original Barnett et. al. study on a sample of 1000 pull requests from Java open source projects hosted on GitHub. By doing so, we found that open source changesets can also be large and contain several independent changes similarly to the changesets of the original study. Thus,our research confirms that the problem is both real and relevant to other environments besides Microsoft’s, increases the body of knowledge about this subject and provides a FOSS implementation of ClusterChanges that shows that it is possible to implement the technique for other contexts and can be used to help future research on this subject.