[ Home ] ---
[ Research details ] ---
[ Relo ]
We are building a tool, Relo, to help
developers understand parts of large codebases:
- by reducing the high cognitive overhead found in many software
visualization tools; and
- by allowing developers to incrementally explore the code and build
a visualization representing their mental model (avoiding overloading
the user with information not relevant to his/her goals).
1. Cognitive Overhead: Program understanding tools need to
manage large amounts of information available in codebases. They need to
therefore reduce the cognitive overhead (in program comprehension). Relo thus
- Visualizing code components like fields, methods, classes, and packages, in
a manner similar to UML class-diagrams.
- Editing method implementations in embedded text editors.
- Visualizing code relationships through the their automatic layout as
topological constraints. For example, (as per people’s typical
expectations) inheritance relations are shown vertically, method calls
horizontally and containment by visual nesting.
- Accessing varying levels of detail of the code by providing automatic
fisheye semantic zooming of the code graph.
2. Incremental Browsing: Program understanding tools need to
help programmers understand code features that are scattered throughout the
program text. Developers should be able to browse and find related code
snippets. Support for bottom-up exploration by allowing incremental
building and refining of visualizations, helps developers’ build a mental model
and maintain context. Relo supports bottom-up comprehension by allowing
developers to select relationships they want to follow and using the traversed
paths in building a visualization.
Last Updated: 12th Jan. 2007