Improving Source Code Locality - Semantic Scholar

Dec 9, 2004 - cluding the methods addColumn and addValue, and the fields cols, vals and table in the InsertCommand class; a number of methods in AxionSql-. Parser, TestInsertCommand, TestDatabase and TestDiskDatabase; and the types ColumnIdentifier and Selectable. In Figure 7 the developer has moved the ...
386KB Sizes 3 Downloads 180 Views
Improving Source Code Locality Jonathan Sillito Ph.D. Thesis proposal December 9, 2004

Abstract Developers working with source code have a strong sense of locality defined by both the modularity of the system and the development environment. For a particular change task some subset of the system will be relevant, and when that subset is not a localized subset, it can be difficult for the developer to identify the relevant entities and to understand how they fit together. This is due to an effect sometimes called cognitive tunnel vision. We propose to study and formalize this notion of locality for software development and produce an interactive visualization that supports a more flexible locality based on navigation activity and multiple relationship types. This should make relevant entities more localized and easier to identify and work with.

1

Contents 1 Introduction

3

2 Problem 2.1 Modularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Information Locality . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Tunnel Vision . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 4 5 7

3 Proposed Solution 3.1 Interactive Visualization . . . . . . . . . . . . . . . . . . . . . . 3.2 Neighbourhood Model . . . . . . . . . . . . . . . . . . . . . . . 3.3 Tableau Eclipse Plugin . . . . . . . . . . . . . . . . . . . . . .

8 9 11 12

4 Sample Scenario 14 4.1 First Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Later in the Task . . . . . . . . . . . . . . . . . . . . . . . . . 18 5 Related Work 5.1 Degree of Interest Based Views . . . . . . . . 5.2 Code Browsing Tools . . . . . . . . . . . . . 5.3 Advanced Source Code Editing Environments 5.4 Software Visualization . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

21 21 22 23 23

6 Evaluation 24 6.1 First User Study . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.2 Second User Study . . . . . . . . . . . . . . . . . . . . . . . . 25 7 Time Line

26

8 Contributions

27

2

1

Introduction

Developers working with source code have a strong sense of entities being local or not. In our view, this locality is defined by the development environment. A group of items will be considered more or less local, relative to a particular view, depending on how much information about those items can be seen simultaneously, how easily a user can switch between the items, and how much set up and maintenance effort the view requires. For tasks that are based on entities that are not local, there is additional navigation overhead, and it is difficult to see and understand relationships and patterns. Remembering and (mentally) integrating various pieces of important information becomes more difficult. The consequence is that it is more difficult to identify the relevant code entities and to understand how they fit together. Our proposed solution to this problem has two parts. The first is an interactive visualization of source code that is flexible, so that an arbitrary subset of the source code can be localized. The second is a model of the neighbourhoods in the system. This model will be used to determine which subset of the system to make the most prominent in the visualization at any point in time. The proposed neighbourhood model is based on navigation history and multiple types of relationships between source code entities. In particular, the thesis of the research is that: A developer’s navigation actions and relationship information derived from source code can be used to produce a view that localizes source code dynamically. This localized view will make relevant entities easier to identify and work with. The evaluation will focus on fi