CodeSurveyor: Mapping Large-Scale Software to Aid in Code Comprehension
CodeSurveyor: Mapping Large-Scale Software to Aid in Code Comprehension
27 September 2015
Large codebases — in the order of millions of lines of code (MLOC) — are incredibly complex. Whether fixing a fault, or implementing a new feature, changes to such systems often have unanticipated effects, as it is impossible for a developer to maintain a complete understanding of the code in their head. This paper presents CodeSurveyor, a spatial visualization technique that aims to support code comprehension in large codebases by allowing developers to view large-scale software at all levels of abstraction. It uses a cartographic metaphor to produce an interactive map of a codebase where users can zoom from a view of a system’s high-level architectural components, represented as continents, down to the individual source files and the entities they define, shown as countries and states, respectively. The layout of the produced code map incorporates system dependency data and sizes regions according to a user-configurable metric (line count by default), to create distinctive shapes and positions that serve as strong visual landmarks and keep users oriented. We detail the CodeSurveyor algorithm, show it generates code maps of the Linux kernel (1.4 MLOC) in 1.5 minutes, and evaluate the intuitiveness of the metaphor to software developers and its utility in navigation tasks. Results show the effectiveness of the approach with developers of varying experience levels.
Venue : IEEE 3rd Working Conference on Software Visualization (VISSOFT) 2015
File Name : vissoft-codesurveyor-final.pdf
File Name : code-surveyor.pdf