This Article 
 Bibliographic References 
 Add to: 
Visualizing Co-Change Information with the Evolution Radar
September/October 2009 (vol. 35 no. 5)
pp. 720-735
Marco D'Ambros, University of Lugano, Lugano
Michele Lanza, University of Lugano, Lugano
Mircea Lungu, University of Lugano, Lugano
Software evolution analysis provides a valuable source of information that can be used both to understand a system's design and predict its future development. While for many program comprehension purposes, it is sufficient to model a single version of a system, there are types of information that can only be recovered when the history of a system is taken into account. Logical coupling, the implicit dependency between software artifacts that have been changed together, is an example of such information. Previous research has dealt with low-level couplings between files, leading to an explosion of the data to be analyzed, or has abstracted the logical couplings to the level of modules, leading to a loss of detailed information. In this paper, we present a visualization-based approach that integrates logical coupling information at different levels of abstraction. This facilitates an in-depth analysis of the logical couplings, and at the same time, leads to a characterization of a system's modules in terms of their logical coupling. The presented approach supports the retrospective analysis of a software system and maintenance activities such as restructuring and redocumentation. We illustrate retrospective analysis on two large open-source software systems.

[1] T. Ball, J.-M.K. Adam, A.P. Harvey, and P. Siy, “If Your Version Control System Could Talk,” Proc. ICSE Workshop Process Modeling and Empirical Studies of Software Eng., 1997.
[2] T. Ball and S. Eick, “Software Visualization in the Large,” Computer, vol. 29, no. 4, pp. 33-43, Apr. 1996.
[3] D. Beyer and A.E. Hassan, “Animated Visualization of Software History Using Evolution Storyboards,” Proc. 13th Working Conf. Reverse Eng., pp. 199-210, 2006.
[4] S. Bouktif, Y.-G. Gueheneuc, and G. Antoniol, “Extracting Change-Patterns from CVS Repositories,” Proc. 13th Working Conf. Reverse Eng., pp. 221-230, 2006.
[5] S. Breu and T. Zimmermann, “Mining Aspects from Version History,” Proc. 21st IEEE Int'l Conf. Automated Software Eng., pp. 221-230, 2006.
[6] M. Burch, S. Diehl, and P. Weissgerber, “Visual Data Mining in Software Archives,” Proc. Second ACM Symp. Software Visualization, pp. 37-46, 2005.
[7] Readings in Information Visualization—Using Vision to Think, S.K.Card, J.D. Mackinlay, and B. Shneiderman, eds. Morgan Kaufmann, 1999.
[8] M.C. Chuah and S.G. Eick, “Information Rich Glyphs for Software Management Data,” Computer Graphics and Applications, vol. 18, no. 4, pp. 24-29, July 1998.
[9] C. Collberg, S. Kobourov, J. Nagra, J. Pitts, and K. Wampler, “A System for Graph-Based Visualization of the Evolution of Software,” Proc. ACM Symp. Software Visualization, pp. 77-86, 2003.
[10] M. D'Ambros and M. Lanza, “Reverse Engineering with Logical Coupling,” Proc. 13th Working Conf. Reverse Eng., pp.189-198, 2006.
[11] M. D'Ambros, M. Lanza, and M. Lungu, “The Evolution Radar: Visualizing Integrated Logical Coupling Information,” Proc. Third Int'l Workshop Mining Software Repositories, pp. 26-32, 2006.
[12] J. Estublier, D. Leblang, A. van der Hoek, R. Conradi, G. Clemm, W. Tichy, and D. Wiborg-Weber, “Impact of Software Engineering Research on the Practice of Software Configuration Management,” ACM Trans. Software Eng. and Methodology, vol. 14, no. 4, pp. 383-430, Oct. 2005.
[13] H. Gall, K. Hajek, and M. Jazayeri, “Detection of Logical Coupling Based on Product Release History,” Proc. Int'l Conf. Software Maintenance, pp. 190-198, 1998.
[14] H. Gall, M. Jazayeri, and J. Krajewski, “CVS Release History Data for Detecting Logical Couplings,” Proc. Int'l Workshop Principles of Software Evolution, pp. 13-23, 2003.
[15] T. Gîrba, S. Ducasse, and M. Lanza, “Yesterday's Weather: Guiding Early Reverse Engineering Efforts by Summarizing the Evolution of Changes,” Proc. 20th IEEE Int'l Conf. Software Maintenance, pp. 40-49, Sept. 2004.
[16] T. Gîrba, M. Lanza, and S. Ducasse, “Characterizing the Evolution of Class Hierarchies,” Proc. Ninth European Conf. Software Maintenance and Reeng., pp. 2-11, 2005.
[17] M. Jazayeri, H. Gall, and C. Riva, “Visualizing Software Release Histories: The Use of Color and Third Dimension,” Proc. Int'l Conf. Software Maintenance, pp. 99-108, 1999.
[18] M. Lanza, “The Evolution Matrix: Recovering Software Evolution Using Software Visualization Techniques,” Proc. Fourth Int'l Workshop Principles of Software Evolution, pp. 37-42, 2001.
[19] M. Lehman and L. Belady, Program Evolution: Processes of Software Change. London Academic Press, 1985.
[20] R.C. Martin, Design Principles and Design Patterns, www., 2000.
[21] T. Mens and S. Demeyer, “Future Trends in Software Evolution Metrics,” Proc. Fourth Int'l Workshop Principles of Software Evolution, pp. 83-86, 2001.
[22] M. Pinzger, H. Gall, M. Fischer, and M. Lanza, “Visualizing Multiple Evolution Metrics,” Proc. Second ACM Symp. Software Visualization, pp. 67-75, May 2005.
[23] J. Ratzinger, M. Fischer, and H. Gall, “Improving Evolvability through Refactoring,” Proc. Second Int'l Workshop Mining Software Repositories, pp. 1-5, 2005.
[24] A. Riel, Object-Oriented Design Heuristics. Addison Wesley, 1996.
[25] D. Roberts, J. Brant, and R.E. Johnson, “A Refactoring Tool for Smalltalk,” Theory and Practice of Object Systems, vol. 3, no. 4, pp.253-263, 1997.
[26] M.J. Rochkind, “The Source Code Control System,” IEEE Trans. Software Eng., vol. 1, no. 4, pp. 364-370, 1975.
[27] M. Sherriff and L. Williams, “Empirical Software Change Impact Analysis Using Singular Value Decomposition,” Proc. Int'l Conf. Software Testing, Verification, and Validation, pp. 268-277, 2008.
[28] Software Visualization—Programming as a Multimedia Experience, J.T.Stasko, J. Domingue, M.H. Brown, and B.A. Price, eds. The MIT Press, 1998.
[29] J.T. Stasko and E. Zhang, “Focus$+$ Context Display and Navigation Techniques for Enhancing Radial, Space-Filling Hierarchy Visualizations,” Proc. IEEE Symp. Information Visualization, p. 57, 2000.
[30] Team Development with VisualWorks, Cincom Technical White Paper.
[31] C. Taylor and M. Munro, “Revision Towers,” Proc. First Int'l Workshop Visualizing Software for Understanding and Analysis, pp.43-50, 2002.
[32] A. Telea and D. Auber, “Code Flows: Visualizing Structural Evolution of Source Code,” Proc. 10th Eurographics/IEEE Symp. Data Visualization, vol. 27, pp. 831-838, 2008.
[33] W.F. Tichy, “RCS—A System for Version Control,” Software— Practice and Experience, vol. 15, no. 7, pp. 637-654, 1985.
[34] F. Van Rysselberghe and S. Demeyer, “Studying Software Evolution Information by Visualizing the Change History,” Proc. 20th IEEE Int'l Conf. Software Maintenance, pp. 328-337, Sept. 2004.
[35] L. Voinea and A. Telea, “An Open Framework for CVS Repository Querying, Analysis and Visualization,” Proc. Third Int'l Workshop Mining Software Repositories, pp. 33-39, 2006.
[36] J. Wu, R. Holt, and A. Hassan, “Exploring Software Evolution Using Spectrographs,” Proc. 11th Working Conf. Reverse Eng., pp.80-89, Nov. 2004.
[37] T. Zimmermann and P. Weißgerber, “Preprocessing CVS Data for Fine-Grained Analysis,” Proc. First Int'l Workshop Mining Software Repositories, pp. 2-6, 2004.
[38] T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller, “Mining Version Histories to Guide Software Changes,” Proc. 26th Int'l Conf. Software Eng., pp. 563-572, 2004.

Index Terms:
Software evolution, software visualization, logical coupling.
Marco D'Ambros, Michele Lanza, Mircea Lungu, "Visualizing Co-Change Information with the Evolution Radar," IEEE Transactions on Software Engineering, vol. 35, no. 5, pp. 720-735, Sept.-Oct. 2009, doi:10.1109/TSE.2009.17
Usage of this product signifies your acceptance of the Terms of Use.