Tracing your maintenance work --- a cross-project validation of an automated classification dictionary for commit messages

  • Authors:
  • Andreas Mauczka;Markus Huber;Christian Schanes;Wolfgang Schramm;Mario Bernhart;Thomas Grechenig

  • Affiliations:
  • Research Group for Industrial Software, Vienna University of Technology, Vienna, Austria;Research Group for Industrial Software, Vienna University of Technology, Vienna, Austria;Research Group for Industrial Software, Vienna University of Technology, Vienna, Austria;Research Group for Industrial Software, Vienna University of Technology, Vienna, Austria;Research Group for Industrial Software, Vienna University of Technology, Vienna, Austria;Research Group for Industrial Software, Vienna University of Technology, Vienna, Austria

  • Venue:
  • FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

A commit message is a description of a change in a Version Control System (VCS). Besides the actual description of the change, it can also serve as an indicator for the purpose of the change, e.g. a change to refactor code might be accompanied by a commit message in the form of "Refactored class XY to improve readability". We would label the change in our example a perfective change, according to maintenance literature. This simplified example shows how it is possible to classify a change by its commit message. However, commit messages are unstructured, textual data and efforts to automatically label changes into categories like perfective have only been applied to a small set of projects within the same company or the same community. In this work, we present a cross-project evaluated and valid mapping of changes to the code base and their purpose that is usable without any customization on any open-source project. We provide further the Eclipse Plug-In Subcat which allows for a comfortable analysis of projects from within Eclipse. By using Subcat, we are able to automatically assess if a commit to the code was e.g. a bug fix or a refactoring. This information is very useful for e.g. developer profiling or locating bad smells in modules.