Tracing Your Maintenance Work – A Cross-Project Validation of an Automated Classification Dictionary for Commit Messages

  • Andreas Mauczka
  • Markus Huber
  • Christian Schanes
  • Wolfgang Schramm
  • Mario Bernhart
  • Thomas Grechenig
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7212)

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.

Keywords

Open Source Project Maintenance Task Software Maintenance Maintenance Work Open Source Software Project 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Bevan, J., Whitehead Jr., E.J., Kim, S., Godfrey, M.: Facilitating software evolution research with kenyon. In: Proceedings of the 10th European Software Engineering Conference, pp. 177–186 (2005)Google Scholar
  2. 2.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture: A System of Patterns, vol. 1. John Wiley and Sons (1996)Google Scholar
  3. 3.
    Emam, K.E.: Benchmarking kappa for software process assessment reliability studies. Empirical Software Engineering 4, 113–133 (1999)CrossRefGoogle Scholar
  4. 4.
    German, D.M., Hindle, A.: Measuring fine-grained change in software: Towards modification-aware change metrics. In: Proceedings of the 11th IEEE International Software Metrics Symposium, p. 28 (2005)Google Scholar
  5. 5.
    Hassan, A.E.: Automated classification of change messages in open source projects. In: Proceedings of the 2008 ACM Symposium on Applied Computing, pp. 837–841 (2008)Google Scholar
  6. 6.
    Hindle, A., German, D.M., Holt, R.: What do large commits tell us? a taxonomical study of large commits. In: Proceedings of the International Working Conference on Mining Software Repositories, pp. 99–108 (2008)Google Scholar
  7. 7.
    Kemerer, C.F., Slaughter, S.: An empirical approach to studying software evolution. IEEE Transactions on Software Engineering 25 (1999)Google Scholar
  8. 8.
    Landis, J.R., Koch, G.G.: The measurement of observer agreement for categorial data. Biometrics 33, 159–174 (1977)MathSciNetMATHCrossRefGoogle Scholar
  9. 9.
    Mockus, A., Votta, L.G.: Identifying reasons for software changes using historic databases. In: Proceedings of the International Conference on Software Engineering, pp. 120–130 (2000)Google Scholar
  10. 10.
    Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International Conference on Software Engineering, ICSE 1976, pp. 492–497 (1976)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Andreas Mauczka
    • 1
  • Markus Huber
    • 1
  • Christian Schanes
    • 1
  • Wolfgang Schramm
    • 1
  • Mario Bernhart
    • 1
  • Thomas Grechenig
    • 1
  1. 1.Research Group for Industrial SoftwareVienna University of TechnologyViennaAustria

Personalised recommendations