ABSTRACT

Introduction Visualization techniques are widely considered to be important for understanding large-scale software systems [15]; yet knowing what to visualize and how to present information are themselves daunting issues. e challenges are many. First, there are several stakeholders in a software project-architects, developers, maintainers, managers-each asking dierent questions about the software. Answering a diverse set of questions will involve dierent abstraction levels, such as the architecture, the middle level structure [15], or the source code itself. Each question may require a distinct analysis; multiple analyses can generate huge volumes of data, which may be dicult to store, to manipulate, and to present. Having to manage multiple analyses, possibly through multiple visualizations (views), places a signicant cognitive burden on any individual stakeholder. Multiple views also tend to make it dicult for separate stakeholders to communicate on subtle issues about a software architecture. ese challenges make it hard for multiple stakeholders to reach a common understanding or consensus about the project.