— “It is our vision that developers can speak of code as ‘up in the north’, ‘over in the west’, or ‘down-under in south’. We want to provide developers, and everyone else involved in software development, with a shared and spatial and stable mental model of their project. They way we try to reinforce this, is by providing a map in the Integrated Development Environment (IDE). The map is always visible in the bottom-left, just like the GPS navigation device in your car. For each development task, related information is displayed on the map.”
The consistent layout of codemaps helps to establish a stable mental model of software systems. Codemaps use the same visual language as cartographic visualizations found in an atlas. Different phenomena, ranging from population density to industry sectors, weather forecast, birth rate, or even flow of trade, all displayed and expressed using the same layout.
Software Cartography helps to
- navigate within a software system.
- relate different metrics to each other, eg search results and bug prediction.
- stay aware of the actions of other developers of your team,
- understand a system’s domain upon first contact.
- explore a system during reverse engineering.
On a codemap we can display
- test coverage, bug prediction,
- code ownership and open files of other developers,
- search results, declarations and references,
- control and data flow, stack traces,
- Codemap—Improving the Mental Model of Software Developers through Cartographic Visualization. Master's Thesis, University of Bern, January 2010. . PDF →
- Consistent Layout for Thematic Software Maps. In Proceedings of 15th Working Conference on Reverse Engineering (WCRE'08), p. 209—218, IEEE Computer Society Press, Los Alamitos CA, October 2008. . DOI PDF →
- Automatic Labeling of Software Components and their Evolution using Log-Likelihood Ratio of Word Frequencies in Source Code. In MSR '09: Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories, p. 175—178, IEEE, 2009. . DOI PDF →
- Software Cartography: Thematic Software Visualization with Consistent Layout. In Journal of Software Maintenance and Evolution (JSME) 22(3) p. 191—210, April 2010. . DOI PDF →
- Embedding Spatial Software Visualization in the IDE: an Exploratory Study. In SOFTVIS 2010, p. 113—122, October 2010. . DOI PDF →
- Towards Improving the Mental Model of Software Developers through Cartographic Visualization. 2010. Rejected from ACM SOFTVIS 2010. . URL →
- Software Cartography — A Prototype for Thematic Software Maps. Diploma thesis, University of Bern, April 2011. . PDF →