Using Spatial Memory to Navigate Source Code

Total Page:16

File Type:pdf, Size:1020Kb

Using Spatial Memory to Navigate Source Code Code Thumbnails: Using Spatial Memory to Navigate Source Code Robert DeLine, Mary Czerwinski, Brian Meyers, Gina Venolia, Steven Drucker, and George Robertson Microsoft Research, Microsoft Corporation, Redmond, USA rdeline, marycz, brianme, ginav, sdrucker, ggr @ microsoft.com Abstract view requires knowing the name of the method, its containing class and the class‟s containing namespace; Modern development environments provide many to find an object using search requires knowing the features for navigating source code, yet recent studies name of the sought object or a nearby object. The num- show the developers still spend a tremendous amount of ber of symbols in even a modest program can over- time just navigating. Since existing navigation features whelm a developer‟s working memory, causing confu- rely heavily on memorizing symbol names, we present a sion and false navigation steps. A second problem is new design, called Code Thumbnails, intended to allow that source code‟s visual uniformity makes code diffi- a developer to navigate source code by forming a spa- cult to recognize at a glance, leading to disorientation. tial memory of it. To aid intra-file navigation, we add a (DeLine, Khella, Czerwinski and Robertson report an thumbnail image of the file to the scrollbar, which instance where a developer viewed a method, briefly makes any part of the file one click away. To aid inter- navigated away and returned without realizing it was the file navigation, we provide a desktop of file thumbnail same method as before.) Hence, a developer spends images, which make any part of any file one click away. considerable cognitive resources both on remembering We did a formative evaluation of the design with eleven symbols in order to navigate and on distinguishing one experienced developers and present the results. part of the code form another. To lower this cognitive burden, we introduce new 1. Introduction overview features to a development environment to better support the use of spatial memory to navigate Recent studies have shown that experienced developers source code. We call these new features Code Thumb- doing maintenance tasks on unfamiliar source code nails, shown in Figures 1 and 2. The rest of this paper spend a large fraction of their time simply navigating will describe Code Thumbnails (CT) and its preliminary around the code. In a modern development environ- evaluation. ment, such as Microsoft Visual Studio or Eclipse, a developer typically uses many features to navigate: 2. Code Thumbnails opening, switching between, and scrolling within tabbed documents; clicking on items in hierarchical overviews Our design introduces two user interface features to (class view, project file view); clicking on source code Microsoft Visual Studio: the Code Thumbnail Scrollbar entities (go to definition); and issuing textual queries or (CT Scrollbar, or CTS) for navigating within a file; and structural queries (find definition, find callers, find all the Code Thumbnail Desktop (CT Desktop, or CTD) for references) and jumping to the results. In a study of navigating between files. The CT Scrollbar, shown in experienced student developers modifying a 500-line Figure 1, supplements the document‟s vertical scrollbar Java program, Ko, Aung and Myers found that partici- with a thumbnail image of the entire document. The pants spent an average of 35% of their task time navi- document text is shrunk to fit the height of the scrollbar. gating [12]. In a similar study, in which experienced For short files, the thumbnail font size is capped at a professional developers modified a 3000-line C# pro- maximum of 2.5 points, keeping the text just below the gram, DeLine, Khella, Czerwinski and Robertson found threshold of readability; when this is the case (not that the inefficiencies of code navigation played a large shown in Figure 1), the unused portion of the display is role in participants‟ poor task completion rates [5]. In filled with gray. Our intention is that the developer can both studies, experienced programmers had difficulty use the text shape for visual landmarks (a perceptual navigating around programs of very modest size; the activity), without reading the text (a cognitive activity). problem is presumably worse in larger programs. The currently visible portion of the document is reflect- One reason why code navigation is so inefficient is ed both in the scrollbar’s “thumb” (as usual) and with a that most of the provided UI mechanisms are based on box drawn around the corresponding text in the thumb- memorizing symbol names. To open a file requires nail. Since Visual Studio provides a folding editor for knowing its name; to click on a method in a class over- code (that is, the text is parsed into a tree with collapsi- Figure 1. The Code Thumbnail Scrollbar adds a thumbnail image of the document to the scrollbar, with a rectangle indicating the current view (left). On mouse-over, it the names of potential navigation targets are revealed (right). ble nodes ), we reflect this tree in the code thumbnail editor is active is highlighted with a thicker border than with brackets representing the second- and third-level the others. Documents that are currently closed are nodes, which are typically types and their members. The shown with a grey background, grey title and no scroll brackets provide another form of visual landmark. area. As with the CT Scrollbar, moving the cursor over To navigate using the CT Scrollbar, a developer can a thumbnail pops up target labels, and clicking on a either use the scrollbar at left in the usual way, or she thumbnail activates the docum ent‟s editor and scrolls to can click on a location in the thumbnail to jump to the the chosen part of the document. C licking a thum bnail‟s corresponding place in the code. Whenever the mouse title area activates the docum ent‟s editor w ithout scrol- cursor is inside the thumbnail area, labels appear show- ling the document. Double-clicking a grayed thumbnail ing the names of likely navigation targets, specifically opens the document and activates its editor. the names of second-level items with no children (e.g., When the programmer uses any of the standard enums) and third-level items (fields and methods) as search tools, the search results are highlighted in both shown on the right side of Figure 1. In the current de- the CT Scrollbar and CT Desktop. This makes it easy to sign, these pop-up labels occlude the code shape, which see all search results at a glance. is an area for improvement. Both the CT Scrollbar and Desktop are intended to The CT Desktop, shown in Figure 2, shows a allow the developer to form spatial memory of the code. thumbnail image of every source file in the project, The CT Scrollbar provides a stable, one-dimensional arranged on a desktop surface. Each thumbnail has a space per document, with visual landmarks to help the label at the top, which shows the file name and serves as user distinguish different parts at a glance (namely, the a handle for moving the thumbnail. A developer can code shape, the brackets and the target labels). The CT arrange the thumbnails on the desktop as she sees fit. Desktop provides a stable, two-dimensional space of all The code thumbnails are drawn exactly like those in the the documents, again with visual landmarks (namely, CT Scrollbar, except that the currently visible portion is the thumbnail landmarks, plus their placement). drawn with a filled rectangle to make it more apparent. Our UI design choices were driven by our study We use the same font size for all thumbnails on the goals. Specifically, we were interested in whether de- desktop, w hich m eans that each thum bnail‟s height is velopers could form spatial memory of the code and proportional to its file‟s length . The document whose how that would affect their navigation choices. We Figure 2. The Code Thumbnail Desktop window shows thumbnail images of all source files, which the user arranges on a desktop surface. chose thumbnail images of the code to define the space that stationary or predictably moving cues are optimal, and provide visual landmarks because this depiction and that multiple sensory modalities can be combined to requires little learning from the user. In future studies, assist searching through an electronic space. They also we could weigh the spatial-memory benefits of Code have shown that if the space is not divided using a sim- Thumbnails against existing techniques or other, poten- ple, organizing principle, that users will impose their tially unfamiliar representations, like UML diagrams, own, conceptual organization upon the space. Voronoi Treemaps [1], or Software Terrain Maps [6]. However, in previous research, Jones and Dumais Our intention here is to do an initial evaluation of the [11] suggested that, for document retrieval, adding potential of the idea of Code Thumbnails. spatial information to the document has little value beyond giving the document a semantic label. In their 3. Spatial Memory and Visual Code Cues study, participants were able to accurately and efficient- ly retrieve stored documents in the real world with as There is a large body of literature on the use of spatial impoverished a semantic label as a two-letter cue! Stor- cognition while navigating graphical user interfaces (see ing the document in a spatial position did improve per- E hret‟s dissertation [8] for a recent example) and way- formance over baseline control conditions, however. finding [3][4][18], both for real and electronic spaces. Our goal is to build on research as to how land- Some of these studies have culminated in a set of guide- marks and spatial layouts generalize to the retrieval of lines for designers of virtual worlds [16].
Recommended publications
  • Bforartists UI Redesign Design Document Part 2 - Theming
    Bforartists UI redesign Design document part 2 - Theming Content Preface...........................................................................................................................6 The editor and window types......................................................................................7 Python console.............................................................................................................8 Layout:................................................................................................................................................................8 The Console Window.........................................................................................................................................8 Menu bar with a menu........................................................................................................................................8 Dropdown box with icon....................................................................................................................................9 RMB menu for menu bar....................................................................................................................................9 Toolbar................................................................................................................................................................9 Button Textform..................................................................................................................................................9
    [Show full text]
  • Bluebeam Revu Kansas Department of Transportation 700 SW Harrison Topeka, KS 66612
    Kansas Department of Transportation-Bureau of Local Projects http://www.ksdot.org/burLocalProj/BLPDocuments/KDOTBLPEplans.pdf July 1, 2014 i Bluebeam Revu Kansas Department of Transportation 700 SW Harrison Topeka, KS 66612 For additional KDOT training sources, please visit KDOT’s CADD Support channel located at www.youtube.com/kdotcaddsupport Helpful web links: https://studio.bluebeam.com Credit for a majority of this manual goes to: Mike Dillner, KDOT CADD Support Scott Marquis, KDOT CADD Support Jonathan Mushock, KDOT Traffic Safety and Technology Misty Rodriguez, KDOT KCTC Trainer Megan Murray, KDOT KCTC Trainer Ingrid Vandevort, KDOT KCTC Training Coordinator Chapters 1-4 and Appendix A were written by these people and they deserve the credit for the quality of the document they have produced. Revision date: July 2014 ii Bluebeam Revu Kansas Department of Transportation Introduction to Bluebeam Revu This is a guide for how to use Bluebeam Revu for your PDF markup and collaboration needs. Bluebeam Revu provides powerful and easy to use features for marking up Architecture, Engineering, and Construction (AEC) plan PDF documents. The Studio Session feature allows users from any location to participate in a collaborative review. Bluebeam makes use of Amazon Web Services (AWS), commonly referred to as the Amazon Cloud. This service will host the documents for the Studio Session. There are two roles within a Bluebeam Studio Session. That of an initiator, and that of a participant. If you are going to initiate a Studio Session you need to have any tier of Bluebeam Revu installed on your pc. However, to be a participant all that is required is Bluebeam Vu (a free PDF reader), though Bluebeam Revu can be used as well.
    [Show full text]
  • Feature-Rich Components & Tools That Boost the Productivity for You & Your
    Feature-rich components & tools that boost the productivity for you & your development team! Overview tmssoftware.com products Contents VCL Components for Windows application development ........................................................................................... 5 TMS Component Pack............................................................................................................................................... 6 Grid Components .................................................................................................................................................. 6 HTML ENABLED COMPONENTS .......................................................................................................................... 10 Edit controls ........................................................................................................................................................ 13 Planner components ........................................................................................................................................... 17 Outlook / inspector bar components ................................................................................................................. 19 Web connectivity components ........................................................................................................................... 20 Memo components ............................................................................................................................................ 22 System
    [Show full text]
  • Horizontally Scrollable Listboxes for Windows 3.X, Using C++
    Horizontally Scrollable ListBoxes for Windows 3.x, using C++ Ted Faison Ted is a writer and developer, specializing in Windows and C++. He has authored two books on C++, and has been programming in C++ since 1988. He is president of Faison Computing, a firm which develops C++ class libraries for DOS and Windows. He can be reached at [email protected] List boxes are among the most commonly used child controls in Windows applications. List boxes are typically used to show lists of files, fonts, or other variable-length lists of textual information. To add a list box to a dialog box, you generally edit a resource file, using programs such as Microsoft's Dialog Editor or Borland's Resource Workshop. Windows handles most of the list box details transparently. For example, if you add strings to a list box, Windows will automatically put a scroll bar on the control when the list box contains more strings than can be displayed in the client area of the list box. Windows handles scroll bar events - such as moving the thumb or clicking the up/down arrows - without any need for user code. Displaying a list of files in a list box is a somewhat easy task, because filenames have a predefined maximum number of characters. When you create the list box resource, you will generally make the control wide enough to display the longest filename. But what if you use a list box to display strings of varying and unknown length, such as the names of people or the titles of your CD collection ? You could obviously make the list box wide enough to accommodate the widest string you expect, but that would not only look pretty bad, but also waste a great deal of space on the screen.
    [Show full text]
  • Bluebeam Revu PDF Markup & Collaboration
    Bluebeam Revu PDF Markup & Collaboration Bluebeam Revu Idaho Transportation Department 3311 W. State Street P.O. Box 7129 Boise, ID 83713 If you need assistance with Bluebeam, please contact the OTS Support Team: Bluebeam Contacts D1 Benjamin Daley (208) 772-8033 [email protected] D2 Janet Zarate (208) 799-4243 [email protected] D3 Marc Danley (208) 334-8389 [email protected] D4 James Bennett (208) 886-7818 [email protected] D5 Kelli Baker (208) 239-3363 [email protected] D6 Brad Richards (208) 745-5635 [email protected] Bridge Rick Jensen (208) 334-8589 [email protected] HQ Beau Hansen (208) 334-8494 [email protected] HQ Jeremy Hunting (208) 332-7167 [email protected] For More Information: ITD SharePoint CADD/ProjectWise CADD/ProjectWise/Bluebeam Helpful links: BlueBeam Training Materials BlueBeam Support BlueBeam Revu Basics BlueBeam Revu 2016 Tips and Tricks Collaborative Design Review in Bluebeam Studio Revision date: October 2017 ii Bluebeam Revu Idaho Transportation Department Introduction to Bluebeam Revu This course will teach you how to use Bluebeam Revu for your PDF markup and collaboration needs. Bluebeam Revu provides powerful and easy to use features for marking up Architecture, Engineering, and Construction (AEC) plan PDF documents. The Studio Session feature allows users from any location to participate in a collaborative review. Bluebeam makes use of Amazon Web Services (AWS), commonly referred to as the Amazon Cloud. This service will host the documents for the Studio Session. There are two roles within a Bluebeam Studio Session: initiator and participant.
    [Show full text]
  • Hyperion Interactive Reporting
    HYPERION® INTERACTIVE REPORTING – SYSTEM 9 RELEASE 9.3.1 OBJECT MODEL AND DASHBOARD DEVELOPMENT SERVICES DEVELOPER’S GUIDE VOLUME I: DASHBOARD DESIGN GUIDE Interactive Reporting Object Model and Dashboard Development Services Developer’s Guide, 9.3.1 Copyright © 1996, 2007, Oracle and/or its affiliates. All rights reserved. Authors: Dan Montagne The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose. If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to
    [Show full text]
  • UI Manager Properties
    APPENDIX A UI Manager Properties THROUGHOUT THIS BOOK YOU'LL FIND TABLES that list the property names and data types for all the UIResource elements of specific Swing components. Although these tables serve to list all the information about a specific component, I fig­ ured it would be handy to also group all the information about property names in one place. With that in mind, Table A-1 provides a complete list of properties used by the predefined look and feel classes-Motif, Macintosh, Metal, and Windows­ provided with the Swing 1.1.1 release. The table indicates with an "X" which of the four look and feel classes uses a particular property. To change the default setting for any one of these properties, you need to notify the UIManager by storing a new setting in the lookup table of the UIManager. For instance, to change the default text for the "Yes" button on a JOptionPane, 11 you'd replace the 0ptionPane. yesButtonText II property with the new setting 11 11 UIManager. put ( 0ptionPane. yesButtonTextll, Si II);. Then, any component cre­ ated after the setting change will get the new value: 11 5i 11 .1fyou want a displayed component to get the new setting, you must call its updateUI () method. When you change the current look and feel, any custom settings you install may be lost. If the class of the property value setting implements the UIResource interface (an empty marker interface such as Serializable), then the setting will be replaced by the default setting of the look and feel.
    [Show full text]
  • Revisiting Read Wear: Analysis, Design, and Evaluation
    Revisiting Read Wear: Analysis, Design, and Evaluation of a Footprints Scrollbar Jason Alexander 1, Andy Cockburn 1, Stephen Fitchett 1, Carl Gutwin 2, Saul Greenberg 3 1 Dept. of Computer Science 2 Dept. of Computer Science 3 Dept. of Computer Science University of Canterbury University of Saskatchewan University of Calgary Christchurch, New Zealand Saskatoon, Canada Alberta, Canada {jason, andy, saf75} [email protected] [email protected] @cosc.canterbury.ac.nz ABSTRACT having attended to the thumb’s location during previous In this paper, we show that people frequently return to visits, remembering it, and reproducing it accurately. One previously-visited regions within their documents, and that or more of these activities can fail. In their comparison of scrollbars can be enhanced to ease this task. We analysed navigation in paper and electronic documents O’Hara and 120 days of activity logs from Microsoft Word and Adobe Sellen [25] observed that people use fingers to mark Reader. Our analysis shows that region revisitation is a document regions in paper documents for easy return, and common activity that can be supported with relatively short that equivalent methods are lacking when scrolling. They recency lists. This establishes an empirical foundation for conclude that scrolling is “irritatingly slow and distracting” the design of an enhanced scrollbar containing scrollbar and that people need “quicker, more effortless navigation” marks that help people return to previously visited [25], p.341. document regions. Two controlled experiments show that scrollbar marks decrease revisitation time, and that a large One way to improve support for revisitation is by number of marks can be used effectively.
    [Show full text]
  • The Design, Use, and Performance of Edge-Scrolling Techniques Jonathan Aceituno, Sylvain Malacria, Philip Quinn, Nicolas Roussel, Andy Cockburn, Géry Casiez
    The design, use, and performance of edge-scrolling techniques Jonathan Aceituno, Sylvain Malacria, Philip Quinn, Nicolas Roussel, Andy Cockburn, Géry Casiez To cite this version: Jonathan Aceituno, Sylvain Malacria, Philip Quinn, Nicolas Roussel, Andy Cockburn, et al.. The design, use, and performance of edge-scrolling techniques. International Journal of Human-Computer Studies, Elsevier, 2017, 97, pp.58 - 76. 10.1016/j.ijhcs.2016.08.001. hal-01624625 HAL Id: hal-01624625 https://hal.archives-ouvertes.fr/hal-01624625 Submitted on 2 Nov 2017 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. The design, use, and performance of edge-scrolling techniques J. Aceitunoa,b,∗, S. Malacriaa,c, P. Quinnc, N. Roussela, A. Cockburnc, G. Casiezb aInria Lille - Nord Europe, 40 avenue Halley, 59650 Villeneuve d'Ascq, France bUniversit´eLille 1, Cit´eScientifique, 59650 Villeneuve d'Ascq, France cDepartment of Computer Science and Software Engineering, University of Canterbury, Private Bag 4800, Christchurch, New Zealand Abstract Edge-scrolling techniques automatically scroll the viewport when the user points near its edge, enabling users to reach out-of-view targets during activities such as selection or drag-and-drop. Despite the prevalence of edge-scrolling techniques in desktop interfaces, there is little public research on their behaviour, use or performance.
    [Show full text]
  • Workspace Desktop Edition
    Workspace Desktop Edition 8.5.124.08 9/27/2021 8.5.124.08 8.5.124.08 Workspace Desktop Edition Release Notes Release Date Release Type Restrictions AIX Linux Solaris Windows 02/28/18 Update X Contents • 1 8.5.124.08 • 1.1 Helpful Links • 1.2 What's New • 1.3 Resolved Issues • 1.4 Upgrade Notes Workspace Desktop Edition 2 8.5.124.08 What's New Helpful Links This release contains the following new features and enhancements: Releases Info • The rich text email editor Font menu now displays the full list of fonts • List of 8.5.x Releases available on the agent workstation. Previously, only one font per font family was displayed. • 8.5.x Known Issues • Screen Reader applications can now read the names of colors inside the email Rich Text Editor color Picker control. • Agents can now press the Enter key to insert a selected standard Product Documentation response into an email, chat, or other text-based interaction. Workspace Desktop Edition • It is now possible to sort the content of an 'auto-update' workbin based on a column containing integer values. For that purpose, the key-value pair 'interaction-workspace/display-type'='int' must be specified in the annex of Genesys Products the Business Attribute Value corresponding to that column in the Business Attribute "Interaction Custom Properties". Previously those columns were List of Release Notes sorted as strings. • On an Alcatel 4400 / OXE switch, a Supervisor can now fully log out of the voice channel when exiting Workspace if the value of the logout.voice.use-login-queue-on-logout option is set to true.
    [Show full text]
  • A Visual Metaphor for Navigation of Annotation in Digital Documents
    Touching Annotations: A Visual Metaphor for Navigation of Annotation in Digital Documents C.P.Bowers∗, C.Creed, B.R.Cowan, R. Beale Human-Computer Interaction Centre, School of Computer Science, University of Birmingham, Birmingham, B15 2TT, UK Abstract Direct touch manipulation interactions with technology are now common- place and significant interest is building around their use in the culture and heritage domain. Such interactions can give people the opportunity to ex- plore materials and artifacts in ways that would otherwise be unavailable. These are often heavily annotated and can be linked to a large array of re- lated digital content, thus enriching the experience for the user. Research has addressed issues of how to present digital documents and their related anno- tations but at present it is unclear what the optimal interaction approach to navigating these annotations in a touch display context might be. In this paper we investigate the role of two alternative approaches to support the navigation of annotations in digitised documents in the context of a touch interface. Through a control study we demonstrate that, whilst the navigation paradigm displays a significant interaction with the type of annotations task performed, there is no discernible advantage of using a natural visual metaphor for annotation in this context. This suggests that design of digital document annotation navigation tools should account for the context and navigation tasks being considered. Keywords: Document navigation, touch interaction, affordance, interaction techniques, user study ∗Corresponding author Email addresses: [email protected] (C.P.Bowers), [email protected] (C.Creed), [email protected] (B.R.Cowan), [email protected] (R.
    [Show full text]
  • Hiring Manager Manual
    VTHR Recruitment Manual for Hiring Managers Created on May 8, 2013 Training Guide Hiring Managers Table of Contents Hiring Manager Manual .................................................................................................. 1 Recruitment_Create Job Opening pt.1 - Hiring Manager ..................................................... 1 Recruitment_Create Job Opening pt.2 - Appointing Authority .......................................... 18 Recruitment_Review Applicant Information ........................................................................ 21 Recruitment_Run Detailed Application Report .................................................................... 32 Recruitment_Schedule An Interview ..................................................................................... 42 Recruitment_Update Interview Status ................................................................................... 50 Recruitment_Forward Applicant ........................................................................................... 55 Recruitment_Applicant Accepts Job Offer ........................................................................... 58 Recruitment_Reject Applicant & Send Correspondence ..................................................... 62 Page ii Training Guide Hiring Managers Hiring Manager Manual Recruitment_Create Job Opening pt.1 - Hiring Manager Procedure Step Action 1. Click the Main Menu button. 2. Click the Recruiting menu. 3. Click the Create New Job Opening menu. Page 1 Training Guide Hiring Managers
    [Show full text]