Software Cartography: thematic software visualization with consistent layout†
Article first published online: 5 FEB 2010
Copyright © 2010 John Wiley & Sons, Ltd.
Journal of Software Maintenance and Evolution: Research and Practice
Special Issue: Working Conference on Reverse Engineering (WCRE 2008)
Volume 22, Issue 3, pages 191–210, April 2010
How to Cite
Kuhn, A., Erni, D., Loretan, P. and Nierstrasz, O. (2010), Software Cartography: thematic software visualization with consistent layout. J. Softw. Maint. Evol.: Res. Pract., 22: 191–210. doi: 10.1002/smr.414
A short version of the paper was previously published in the Proceedings of 15th Working Conference on Reverse Engineering (WCRE'08), IEEE Computer Society Press, Los Alamitos CA, October 2008, pp. 209–218.
- Issue published online: 17 MAR 2010
- Article first published online: 5 FEB 2010
- Manuscript Accepted: 20 AUG 2009
- Manuscript Revised: 2 JUL 2009
- Manuscript Received: 23 FEB 2009
- Swiss National Science Foundation
- Hasler Foundation. Grant Number: 200020-113342
- Software Cartography;
- software visualization;
- program comprehension;
- latent-semantic analysis;
- Multidimensional Scaling;
- software evolution;
- spatial representations of code
Software visualizations can provide a concise overview of a complex software system. Unfortunately, as software has no physical shape, there is no ‘natural’ mapping of software to a two-dimensional space. As a consequence most visualizations tend to use a layout in which position and distance have no meaning, and consequently layout typically diverges from one visualization to another. We propose an approach to consistent layout for software visualization, called Software Cartography, in which the position of a software artifact reflects its vocabulary, and distance corresponds to similarity of vocabulary. We use Latent Semantic Indexing (LSI) to map software artifacts to a vector space, and then use Multidimensional Scaling (MDS) to map this vector space down to two dimensions. The resulting consistent layout allows us to develop a variety of thematic software maps that express very different aspects of software while making it easy to compare them. The approach is especially suitable for comparing views of evolving software, as the vocabulary of software artifacts tends to be stable over time. We present a prototype implementation of Software Cartography, and illustrate its use with practical examples from numerous open-source case studies. Copyright © 2010 John Wiley & Sons, Ltd.