This Article 
 Bibliographic References 
 Add to: 
Change Analysis with Evolizer and ChangeDistiller
January/February 2009 (vol. 26 no. 1)
pp. 26-33
Harald C. Gall, University of Zurich
Beat Fluri, University of Zurich
Martin Pinzger, University of Zurich
Changes are the heartbeat of a software system. Software must change to reflect new business, pro­cess, and technology requirements, or it will become progressively less useful. Software typically grows and becomes more complex, inducing more time and effort for performing changes. Software archives such as source code version-control systems and issue-tracking systems (for bugs and change requests) are rich sources to examine what changes have what impact on the software. A software evolution analysis platform called Evolizer analyzes change histories and potential support for evolution. Change types, a core part of the analysis, help discover significant changes and change patterns. A tool called ChangeDistiller enables fine-grained change type extraction and analysis to reason about coding conventions, control or exception flow, and even code and comment coevolution. An investigation of open source and commercial software systems contributed to a deeper understanding of how researchers can actively support software evolution in an integrated development environment.

1. M.M. Lehman, "Programs, Life Cycles and Laws of Software Evolution," Proc. IEEE, vol. 68, no. 9, 1980, pp. 1060–1076.
2. T. Mens and S. Demeyer eds., Software Evolution, Springer, 2008.
3. J. Bevan et al., "Facilitating Software Evolution Research with Kenyon," , Proc. Joint 10th European Software Eng. Conf. and the 13th ACM SIGSOFT Symp. Foundations of Software Eng., ACM Press, 2005, pp. 177–186.
4. T. Zimmermann et al., "Mining Version Histories to Guide Software Changes," IEEE Trans. Software Eng., vol. 31, no. 6, 2005, pp. 429–445.
5. B. Fluri et al., "Change Distilling: Tree Differencing for Fine-Grained Source Code Change Extraction," IEEE Trans. Software Eng., vol. 33, no. 11, 2007, pp. 725–743.
6. B. Fluri and H.C. Gall, "Classifying Change Types for Qualifying Change Couplings," Proc. 9th Int'l Conf. Program Comprehension, IEEE CS Press, 2006, pp. 35–45.
7. B. Fluri, M. Wümrsch, and H.C. Gall, "Do Code and Comments Co-evolve? On the Relation between Source Code and Comment Changes," Proc. 14th Working Conf. Reverse Eng., IEEE CS Press, 2007, pp. 70–79.
8. B. Fluri, E. Giger, and H.C. Gall, "Discovering Patterns of Change Types," Proc. 23rd IEEE/ACM Int'l Conf. Automated Software Eng., IEEE CS Press, 2008, pp. 463–466.
9. S. Kim, K. Pan, and E.J. Whitehead, "Memories of Bug Fixes," Proc. 14th ACM SIGSOFT Symp. Foundations Software Eng., ACM Press, 2006, pp. 35–45.
10. A. Zeller, "The Future of Programming Environments: Integration, Synergy, and Assistance," Proc. Future of Software Eng., IEEE CS Press, 2007, pp. 316–325.
11. B. Fluri, J. Zuberbühler, and H.C. Gall, "Recommending Method Invocation Context Changes," Proc. 1st Int'l Workshop Recommender Systems for Software Eng., ACM Press, 2008; rsse-2008/papersp1-fluri.pdf.

Index Terms:
software evolution analysis, maintenance, enhancement, version control, data mining, recommender systems
Harald C. Gall, Beat Fluri, Martin Pinzger, "Change Analysis with Evolizer and ChangeDistiller," IEEE Software, vol. 26, no. 1, pp. 26-33, Jan.-Feb. 2009, doi:10.1109/MS.2009.6
Usage of this product signifies your acceptance of the Terms of Use.