Software visualization can be of great use for understanding and exploring a software system in an intuitive manner. In the past decade the software visualization community has developed a rich wealth of visualization approaches and provided evidence of their usefulness for expert tasks, such as reverse engineering, release management or dynamic analysis
Typically, these visualization approaches had been implemented in interactive tools. However most of these tools are stand-alone prototypes that have never been integrated in an IDE (integrated development environment). Little is thus known about the benefits of software visualization for the “end users” in software engineering, that is for everyday programmers. What is lacking is how these techniques support the day to day activities of software developers
In this paper, we report on a pilot study of a spatial software visualization tool – Codemap – that is embedded in the IDE. We embedded a stand-alone prototype in the Eclipse IDE, and added novel thematic overlays that support the most important development tasks with visual feedback.
Spatial representation of software is supposed to support developers in establishing long term, spatial memory of the software system. Developers may use spatial memory to recall the location of software artifacts, and to put thematic map overlays in relation with each other.
The scenario of our user study is first to make contact with users of an initially unknown closed-source system. Our main question was whether and how developers make use of the embedded visualization and if our initial assumptions made when designing the visualization (as for example the choice of lexical similarity as the map’s base layout are based on a valid model of developer needs. )
Participants had 90 minutes to solve 5 exploratory tasks and to fix one bug report. We used the think-aloud protocol and recorded the voices of the participants together with a screen capture of their IDE interactions. We took manual notes of IDE interaction sequences and annotated the sequences with the recorded think-aloud transcripts.
Results are mixed — some support and some challenge our assumptions on how developers would use the embedded visualization. Participants found the map most useful to explore search results and call graphs, but only rarely used the map for direct navigation as we would have expected.
Participants made good use of the map to inspect search results and call graph, they reported that the spatial visualization provided them with an immediate esti- mate of quantity and dispersion of search results.
But participants found the layout of the map (which uses lexical information to cluster classes by topic ) surprising and often confusing. This led to the revision of our initial assumption that lexical similarity is sufficient to lay out the cartographic map.
Developers intuitively expect that the map meets their mental model of the system’s architecture. We observed that if this is not given, developers are not able to take advantage of the map’s consistent layout. So for example, even though north/south and east/west directions had clear (semantic) interpretations in the map used for the user study, developers did not navigate along these axes.
Based on the results of our user study, we conclude that such maps should incorporate structural information and be improved from point of usability and that we need more work to make two models (one structural, one conceptual) coexist without creating confusion.
To read this external content in full, download the complete paper from the author online archives at Arxiv.org.