Abstract
Software is typically improved and modified in small increments (we refer to each of these increments as a modification record—MR). MRs are usually stored in a configuration management or version control system and can be retrieved for analysis. In this study we retrieved the MRs from several mature open software projects. We then concentrated our analysis on those MRs that fix defects and provided heuristics to automatically classify them. We used the information in the MRs to visualize what files are changed at the same time, and who are the people who tend to modify certain files. We argue that these visualizations can be used to understand the development stage of in which a project is at a given time (new features are added, or defects are being fixed), the level of modularization of a project, and how developers might interact between each other and the source code of a system.
Similar content being viewed by others
References
Collberg C, Kobourov S, Nagra J, Pitts J, Wampler K (2003) A system for graph-based visualization of the Evolution of software. In: SoftVis ’03: Proceedings of the 2003 ACM symposium on software visualization, ACM, New York, New York, pp 77-ff
Eick SG, Graves TL, Karr AF, Mockus A, Schuster P (2002) Visualizing software changes. IEEE Trans Softw Eng 28(4):396–412
Fischer M, Pinzger M, Gall H (2003a) Analyzing and relating bug report data for feature tracking. In: Proc. 10th working conference on reverse engineering, IEEE, pp 90–101
Fischer M, Pinzger M, Gall H (2003b) Populating a release history database from version control and bug tracking systems. In: Proceedings of the 19 IEEE international conference on software maintenance (ICSM'03), IEEE Computer Society, pp 23–32
Fisher M, Gall H (2003) MDS-views: visualizing problem report data of large scale software using multidimensional scaling. In: Proceedings of the international workshop on Evolution of large-scale industrial software applications (ELISA)
Gall H, Jazayeri M, Krajewski J (2003) CVS release history data for detecting logical couplings. In: Proceedings of the international workshop on principles of software Evolution (IWPSE), IEEE, pp 12–23
German DM (2004a) Decentralized open source global software development, the GNOME experience. Journal of Software Process: Improvement and Practice 8(4):201–215
German DM (2004b) Mining CVS repositories, the softChange experience. In: 1st international workshop on mining software repositories, pp 17–21
German DM (2004c) Using software trails to reconstruct the Evolution of software. Journal of Software Maintenance and Evolution: Research and Practice 16(6):367–384
German DM, Mockus A (2003) Automating the measurement of open source projects. In: Proceedings of the 3rd workshop on open source software engineering
German DM, Hindle A, Jordan N (2004) Visualizing the Evolution of software using softChange. In: Proceedings SEKE 2004 The 16th international conference on software engineering and knowledge engineering, Knowledge Systems Institute, 3420 Main St. Skokie, Illinois 60076, USA, pp 336–341
Girba T, Ducasse S, Lanza M (2004) Yesterday's weather: guiding early reverse engineering efforts by summarizing the Evolution of changes. In: Proceedings of the 20th IEEE International Conference on Software Maintenance (ICSM’04), pp 44–49
Graves TL, Karr AF, Siy H (2000) Visualizing software changes. IEEE Trans Softw Eng 26(7):653–661
Hassan AE, Holt RC (2003) The chaos of software development. In: Proceedings of the international workshop on principles of software Evolution (IWPSE), pp 84–95
Hassan AE, Holt RC (2004) Predicting change propagation in software systems. In: Proceedings of the 20th IEEE international conference on software maintenance (ICSM'04), pp 284–293
Lanza M (2001) The Evolution Matrix: recovering software Evolution using software visualization techniques. In: Proceedings of the 4th international workshop on principles of software Evolution (IWPSE), pp 37–42
Lerner J, Triole J (2000) The simple economics of open source. Working Paper 7600, National Bureau of Economic Research, http://papers.nber.org/papers/w7600
Liu Y, Stroulia E (2003) Reverse engineering the process of small novice software teams. In: Proc. 10th working conference on reverse engineering. IEEE, pp 102–112
Liu Y, Stroulia E, Wong K, German D (2004) Using CVS historical information to understanding how students develop software. In: 1st international workshop on mining software repositories, pp 32–36
Mockus A, Fielding RT, Herbsleb J (2002) Two case studies of open source software development: Apache and Mozilla. ACM Trans Softw Eng Methodol 11(3):1–38
Ostrand TJ, Weyuker EJ (2004) A tool for mining defect-tracking systems to predict fault-prone files. In: 1st international workshop on mining software repositories, pp 85–89
Ostrand TJ, Weyuker EJ, Bell R (2005) Predicting the location and number of faults in large software systems. IEEE Trans Softw Eng 340–355
Purushothaman R, Perry DE (2005) Toward understanding the rhetoric of small source code changes. IEEE Trans Softw Eng 31(6):511–526
Storey MA, Čubranić D, German DM (2005) On the use of visualization to support awareness of human activities in software development: a survey and a framework. In: Proceedings of the 2nd ACM symposium on software visualization, pp 193–202. To be presented
Williams CC, Hollingsworth JK (2005) Automatic mining of source code repositories to improve bug finding techniques. IEEE Trans Softw Eng 31(6):466–480
Wu J, Holt RC, Hassan AE (2004a) Exploring software Evolution using spectrographs. In: Proc. 11th working conference on reverse engineering, pp 80–89
Wu X, Murray A, Storey M-A, Lintern R (2004b) A reverse engineering approach to support software maintenance: version control knowledge extraction. In: Proc. 11th working conference on reverse engineering, pp 90–99
Ying A, Murphy GC, Ng R, Chu-Carroll MC (2005) Predicting source code changes by mining change history. IEEE Trans Softw Eng 31(9):574–586
Zimmermann T, Weissgerber P (2004) Preprocessing CVS data for fine-grained analysis. In: 1st international workshop on mining software repositories, pp 2–6
Zimmermann T, Weissgerber P, Diehl S, Zeller A (2005) Mining version histories to guide software changes. IEEE Trans Softw Eng 31(6):429–445
Acknowledgments
This research was supported by the National Sciences and Engineering Research Council of Canada, and the Advanced Systems Institute of British Columbia. The author would like to thank the reviewers of this paper for their thoughtful comments that greatly improved the quality of this paper, and the Apache, Evolution, GNU gcc, Mozilla and PostgreSQL development teams.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
German, D.M. An empirical study of fine-grained software modifications. Empir Software Eng 11, 369–393 (2006). https://doi.org/10.1007/s10664-006-9004-6
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-006-9004-6