Have you ever felt lost in a foreign city? Software engineers know that feeling when they navigate through unfamiliar code. It might sound like a trivial problem, but studies have shown that they spend about 25% of their time just on code navigation.1

We – a group of researchers from the Visualization Research Center, University of Stuttgart (VISUS) – have developed signposts for software engineers. Just like real signpost, ours intend to guide software developers through the code, providing data to make informed decisions where to turn next. They represent critical information as small, word-sized graphics, similar to sparklines2 known from Microsoft Excel. But instead of integrating them into spreadsheets or texts, we enrich source code with these little visualizations.

Depending on the task software developers want to solve, we suggest different variants. For instance, one representation visualizes the runtime consumed by a method in the last run of the program.3,4 Every method declaration and method call gets annotated with such a signpost guiding the developer to performance bottlenecks. A central advantage is that the user does not have to switch back and forth between the code and the runtime information while navigating through the code. Other examples from our work use of word-sized graphics to visualize changing values of numeric variables during debugging or guide developers to relevant results as part of a code search tool.5,6

Word-sized graphics enriching code to visualize, among other things, the percentage of runtime consumed by the method and how it was propagated through method calls.

Integrated development environments (IDEs) provide more and more helpful information in their code editors: text highlighting identifies code that is related to compile errors or style issues, side bars give an overview of search results, and even background highlighting is used to visualize software performance. Our prototype implementations of IDE plugins show that you could take this idea a step further by using word-sized graphics. We hope that IDE developers will pick up our ideas to better guide software engineers and make code navigation more efficient.

 


References

  1. Ko, A. J., Myers, B. A., Coblenz, M. J., and Aung, H. H., 2006. An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks. In IEEE Transactions on Software Engineering (Vol. 32, No. 12, pp. 971–987). DOI: 10.1109/tse.2006.116.
  2. Tufte, E. R. 2006. Beautiful Evidence. Graphics Press.
  3. Beck, F., Moseler, O., Diehl, S., and Rey, G. D., 2013. In Situ Understanding of Performance Bottlenecks through Visually Augmented Code. In Proceedings of the 21st IEEE International Conference on Program Comprehension (pp. 63–72). DOI: 10.1109/ICPC.2013.6613834.
  4. Baltes, S., Moseler, O., Beck, F., and Diehl, S., 2015. Navigate, Understand, Communicate: How Developers Locate Performance Bugs. In Proceedings of the 9th International Symposium on Empirical Software Engineering and Measurement (pp. 1–10). DOI: 10.1109/ESEM.2015.7321208.
  5. Beck, F., Hollerich, F., Diehl, S., and Weiskopf, D., 2013. Visual Monitoring of Numeric Variables Embedded in Source Code. In Proceedings of the 1st IEEE Working Conference on Software Visualization (pp. 1–4). DOI:10.1109/VISSOFT.2013.6650545.
  6. Beck, F., Dit, B., Velasco-Madden, J., Weiskopf, D., and Poshyvanyk, D., 2015. Rethinking User Interfaces for Feature Location. In Proceedings of the 23rd IEEE International Conference on Program Comprehension (pp. 151–162). DOI: 10.1109/ICPC.2015.24.
Programmers’ Signposts

Fabian Beck is a postdoctoral researcher at the Visualization Research Center at the University of Stuttgart, Germany in the group of Daniel Weiskopf. His main research interests are information visualization and software engineering, and in particular the intersection of both — software visualization. A specific focus of his research is on methods for visualizing and comparing large and time-varying graphs and hierarchies, often in the context of software. Recent projects also explore applications of word-sized graphics (sparklines) within IDEs and other interactive systems.

One thought on “Programmers’ Signposts

Leave a Reply

Your email address will not be published.

Cookie Consent with Real Cookie Banner