Computer software has become highly complex, with many applications now in the millions of lines of code, and program features often spread across many files and directories. As a result of this, software engineers today spend a significant amount of time struggling with navigating through all of this code as they add new features to complex applications . This research project will develop a new user interface for programmers called Code Bubbles that visualizes the many pieces of code they need to work with and reference on the screen simultaneously, along with the interrelationships between these code fragments. Providing such a "working set" of all the relevant code fragments on one screen marks a radical departure from the way software development environments work today, where programmers can only see or work with a few locations in the code at a time and have to rely either on memory or on continuous navigation between files to examine their working set. Preliminary user studies with software developers using an early version of Code Bubbles indicate that the approach has the potential to revolutionize the way programmers think about software development and lead to more efficient and more robust applications, and to lower development costs.

Code Bubbles is based on a user interface design that facilitates the simultaneous viewing and manipulation of the fine-grained fragments of information needed to perform tasks. Unlike conventional Interactive Development Environments, which are grounded upon the notion of viewing code at the granularity of a file, Code Bubbles displays fragments of code, documentation, and other artifacts as small bubbles which avoid occlusion by pushing each other out of the way across a large virtual display. Text is automatically reflowed within bubbles for maximum efficiency in using screen space, and "chrome", i.e., controls for manipulating a bubble, is kept to a minimum, again to preserve space for content. This project will apply the Code Bubbles concept to a wide range of programming artifacts including scripting, debugging, code review, and collaboration. An iterative design process will be used that involves professional developers as well as students giving feedback on visualization and user interface designs throughout the design process. The experiments to be conducted as part of the evaluation plan will include longitudinal studies in which developers "take home" the Code Bubbles system and use it on their projects and then give feedback and participate in regular interviews. A version of Code Bubbles will be implemented for educational purposes (high school through college) and will be integrated into Computer Science courses at Brown University and the University of Central Florida. Finally, Code Bubbles will be distributed freely, as open source, so that software developers can begin using it and also contribute their own features.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
1012056
Program Officer
Sol Greenspan
Project Start
Project End
Budget Start
2010-08-01
Budget End
2015-07-31
Support Year
Fiscal Year
2010
Total Cost
$1,155,918
Indirect Cost
Name
Brown University
Department
Type
DUNS #
City
Providence
State
RI
Country
United States
Zip Code
02912