  Software visualizations can provide a concise overview of a complex software
system. Unfortunately, since 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 typical diverges from one visualization to
another. We propose a consistent layout for software maps in which the position
of a software artifact reflects its \emph{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, since
the vocabulary of software artifacts tends to be stable over time.
