Breaking the Bento Box: Accelerating Visual Momentum in Data-flow Analysis

Downloads: PDF, Slides (PDF), Implementation

Abstract

The bento-box user interface and tool integration paradigm dominates integrated development environments (IDEs). In this paradigm, tools project different information about a system in disjoint panes (boxes) of a window while integrating updates between them as needed. Although popular and functional, the bento-box paradigm has its drawbacks; previous research has shown that expert developers experience disorientation as they work in these environments. In this paper, we explore how context can be preserved for developers within the bento-box paradigm by introducing and experimenting with a tool named ReachHover. This tool supports the answering of common data-flow reachability questions, which have been previously shown to be difficult for developers to answer. To ensure ReachHover supported practical reachability questions of interest to developers, we conducted, and report on, a formative survey of 72 practicing developers about the type and frequency of reachability questions they encounter in their work. We then conducted, and report on, a controlled user study in which 20 practicing developers used ReachHover, finding that participants who used ReachHover answered questions involving visiting multiple files more correctly than those who used standard tooling, and that those developers better maintained context while determining their answers. These findings demonstrate the potential of introducing context-preserving user interfaces for tools within the standard bento-box paradigm of development environments, opening up new avenues for improved tool expression and adoption.

BibTex entry

  @inproceedings{YooM2023,
    author = {James Yoo and Gail C. Murphy},
    title = {Breaking the bento box: accelerating visual momentum in data-flow analysis},
    booktitle = {ICSME 2023: Proceedings of the 39th IEEE International Conference
      on Software Maintenence and Evolution},
    pages = {306-316},
    month = oct,
    year = {2023}
  }