Software Cartography

“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,
  • etc

Publications

  1. Adrian Kuhn, Peter Loretan, and Oscar Nierstrasz. 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 
  2. Adrian Kuhn. 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 
  3. Adrian Kuhn, David Erni, and Oscar Nierstrasz. Towards Improving the Mental Model of Software Developers through Cartographic Visualization. 2010. Under submission to NIER track of ICSE 2010. URL 
  4. Adrian Kuhn, David Erni, Peter Loretan, and Oscar Nierstrasz. Software Cartography: Thematic Software Visualization with Consistent Layout. In Journal of Software Maintenance and Evolution (JSME), 2010. To appear. 

Last changed by akuhn on 19 January 2010