Temporal Visualisation of Hierarchical Data June 2007 Shaun McDonald (035510907) BSc Computer Science Supervisors: Greg Michaelson & Robert Pointon

DECLARATION I, Shaun McDonald, confirm that this work submitted for assessment is my own and is expressed in my own words. Any uses made within it of the works of other authors in any form (e.g., ideas, equations, figures, text, tables, programs) are properly acknowledged at any point of their use. A list of the references employed is included. Signed: Date:

Table of Contents 1 Introduction..............................................................................................................................1 2 Aims and Objectives................................................................................................................2 3 Literature Studied....................................................................................................................3 3.1 Version Control Systems.................................................................................................3 3.2 Current Software and Visualisations...............................................................................3 3.2.1 Cvstat.......................................................................................................................4 3.2.2 SourceForge.net Project Statistics..........................................................................5 3.2.3 Bloof.........................................................................................................................6 3.2.4 CVS Report..............................................................................................................8 3.2.5 Treemaps.................................................................................................................9 Disk Inventory X.........................................................................................................10 3.2.6 Time Machine.........................................................................................................11 3.2.7 Summary................................................................................................................12 3.3 Other Search Areas.......................................................................................................12 4 Prototype Design...................................................................................................................15 4.1 CVS Repository Chooser..............................................................................................15 4.1.1 First Version...........................................................................................................16 4.1.2 Second Version......................................................................................................18 Flow Diagram.............................................................................................................19 Data Structures Used.................................................................................................19 4.2 Data Structures Used in the Visualisation Panels........................................................20 4.3 Visualisation Panels......................................................................................................20 4.3.1 Tree View...............................................................................................................21 4.3.2 Tree Table..............................................................................................................22 4.3.3 Revision Table.......................................................................................................22 4.3.4 Calendar................................................................................................................24 5 Prototype Implementation.....................................................................................................29 5.1 Command Line..............................................................................................................29 5.2 TreeView........................................................................................................................31 Flow Chart..................................................................................................................31 Data Structures..........................................................................................................32 5.3 TreeTable.......................................................................................................................33 Data Structures..........................................................................................................33 5.4 Revision Table...............................................................................................................34 Data Structures..........................................................................................................36 5.5 Calendar........................................................................................................................37 Data Structures..........................................................................................................39 6 Testing...................................................................................................................................40 6.1 Strategy.........................................................................................................................40 6.2 Results...........................................................................................................................40 6.2.1 Section 1 – Background Information.....................................................................41 Question 1 – Are you a software or web developer?................................................41 Question 2 – Do you know what source code management or revision control is?.41 Question 3 – How often do you use version control?................................................41 Question 4 – How much confidence do you have with revision control?..................42 Correlation between the answers for the questions..................................................42 6.2.2 Section 2 – Test Questions....................................................................................43 6.2.3 Section 3 – Visualisation Evaluation.....................................................................43 Question 1 – Easiest to use visualisation and why...................................................43 Question 2/3 – What users liked about the Calendar................................................44 Final Dissertation – Final Report

Page i

Shaun McDonald

Question 2/3 – What users liked about the TreeTable..............................................44 Question 4/5 – What users found annoying with the Calendar.................................44 Question 4/5 – What users found annoying with the TreeTable...............................45 Question 6 – How users would improve the visualisations.......................................45 Question 7 – Ratings.................................................................................................45 Question 7 – TreeTable.........................................................................................46 Question 7 – Calendar..........................................................................................47 7 Evaluation..............................................................................................................................48 7.1 Were the Aims and Objectives met?.............................................................................48 7.2 Future developments.....................................................................................................49 8 Bibliography...........................................................................................................................50 9 Illustration Index....................................................................................................................52 10 Appendix 1: Project Progress.............................................................................................54 10.1 Aims and Objectives....................................................................................................54 11 Appendix 2: Project Timetable.............................................................................................55 12 Appendix 3: Testing Results................................................................................................57 12.1 Section 1: Question 1..................................................................................................57 12.2 Section 1: Question 2..................................................................................................57 12.3 Section 1: Question 3..................................................................................................57 12.4 Section 1: Question 4..................................................................................................58 12.5 Section 2......................................................................................................................58 12.6 Section 3: Visualisation completed first......................................................................58 12.7 Section 3: TreeTable Visualisation Ratings.................................................................59 12.8 Section 3: Calendar Visualisation Ratings..................................................................59 13 Appendix 4: Full Text of Questionnaire...............................................................................61

Final Dissertation – Final Report

Page ii

Shaun McDonald

1 Introduction The vast majority of software projects now use some form of source code management (SCM) tools to store and manage their source code. This makes it easier for the developers to collaborate on the project and to document all the changes that have happened to the source code. This produces a wealth of information that can be analysed for patterns or useful information by other developers on the project. Five visualisations were produced to see what can be shown with the CVS data. Two of the visualisations were used for a user evaluation to get user feedback. It was found that textual data in a table was easy for users to digest since they were already used to that representation of data. They also found it easier as it allows them to get specific values fairly easily. A pictorial view is good for getting the general trend in the data, however it takes the user longer to interpret the information displayed.

Final Dissertation – Final Report

Page 1

Shaun McDonald

2 Aims and Objectives The aims and objectives of the project were as follows: 1. to produce a program to enable users to easily see where files have changed, which is the ultimate aim of the project; 2. to base the program on CVS data, using multiple visualisations; 3. to create many visualisations for the user, thus a comparison of the different visualisations can be performed making it possible to determine which visualisations are best; 4. allow traversal of the directory structure, permitting a zooming effect on the specific parts of the directory structure because some users will only be interested in parts of the version control repository rather than the whole repository.

Final Dissertation – Final Report

Page 2

Shaun McDonald

3 Literature Studied A variety of literature related to the project was studied. This varied from the current creators of temporal hierarchical data, to information about visualisation and current visualisation software.

3.1

Version Control Systems

Version control systems often come under various different names. This includes revision control software, version control software, source code management. There is currently a large variety of version control software available at this time [1]. It ranges from the old, trusted and open source, CVS [2] [3], to the more recent, proprietary Microsoft Team Foundation Server [4]. A Version Control System holds a history of all the changes to a set of files in a file system hierarchy.

3.2

Current Software and Visualisations

I started by looking for similar software that was currently available. This included software that can be used as a replacement for the command line CVS tools for doing the checkout. They can manipulate the CVS repository in the same way as the command line tools. Examples of this include NetBeans, and a variety of software that is built upon the library that the NetBeans community has built [5]. I also looked into libraries that allow communication with version control repositories. The advantage of using a library like the NetBeans Java CVS library is that users of the end product do not require to have the command line CVS client installed. However, depending on how the tool is built, the user may have to have to have the part of the repository that they want to work on checked out previously. The library is made to be fully compatible with the command line CVS tool, thus making it possible to switch between the many different tools possible. The end product could be made to do this for the user.

Final Dissertation – Final Report

Page 3

Shaun McDonald

On the other hand you get tools that just give out some statistics that is based on the log output of a version control repository. Some of these statistical tools communicate directly with the version control repository, whereas others work on the output of a log command for the respective repository. Very few tools work with many different types of repository. Though some tools come from a family of tools that give the same output, but have completely different applications to be able to work with different types of repository.

3.2.1

Cvstat

The CVS Statistics Generator is an open source project [6]. It takes the output of the CVS log command and parses it to produce an analysis of the work that each developer has done within the project. This information can be for any part of a CVS repository that can be output in a single CVS log command. This is both good and bad. It is a positive because it is flexible. On the down side it is slow, non-graphical and the user needs to know the command line to be able to use it. The output is simply a HTML table built by a command line program. This allows you to automatically generate the reports at a regular interval so that they are always up to date. However you cannot just look at the page that is produced and see where there has been activity in the repository. This tool is good for doing an analysis of how many commits or how many lines of code a particular developer has done. Some screenshots of the output of the tool are shown below:

Illustration 1: Showing the start of the statistics that are produced by cvstat

Final Dissertation – Final Report

Page 4

Shaun McDonald

Illustration 2: Screenshot showing a summary at the end of the report

3.2.2

SourceForge.net Project Statistics

SourceForge is an infrastructure for hosting open source projects. They provide a variety of tools for users. SourceForge produces some very simple statistics that basically show you how active the project is overall. It doesn't give you an idea of how active a particular area of the source code is. The information is shown in the form of a simple line graph and a table with the full figures of the data in the graph. The data is given in respect of time. This is one of the things that we are looking for, but it unfortunately does not do this in detail as to where in the repository the files are changing. An example of this from the phpMyAdmin project is shown below in Illustration 3.

Final Dissertation – Final Report

Page 5

Shaun McDonald

Illustration 3: Sample output from the SourceForge.net project statistics page of the project phpmyadmin

3.2.3

Bloof

Bloof is the output of a thesis where the aim was contributing an abstraction layer for analysing software projects to the software evolution research field [7]. Through the use of Java Web Start it is fast and easy to get running. It uses a variety of charts to show you how your project has changed over time. However the charts are not able to show you where in the repository that there has been changes in the form of an easy chart. You have to create several different charts that show the same type of data, using different file filters. You will then have problems comparing the different data due to the inability to show many visualisations side by side. There are a variety of filters available based on time, developer, or the file/folder. This means that you can get a variety of custom reports using specific criteria. Some screenshots of Bloof in action are shown below. Final Dissertation – Final Report

Page 6

Shaun McDonald

Illustration 4: Bloof showing the summary of changes

Illustration 5: Summary tables for a specific folder Final Dissertation – Final Report

Page 7

Shaun McDonald

Illustration 6: Bloof line chart for the total Illustration 7: Bloof showing the file count lines of code for a specific folder over time for a specific folder over time

Illustration 8: Bloof showing the number of files changed on a particular day

3.2.4

CVS Report

CVS Report is a Java program that gives a table output of the log command [8]. It also produces a few charts summarising the information. The program can produce some HTML output for the user to put on to a web site if they wish. CVS Report has a sister tool for accessing the subversion repositories. This again is a fairly simple tool that gives an overview of the whole project, with a few nice charts.

Final Dissertation – Final Report

Page 8

Shaun McDonald

Illustration 9: Screenshot of CVS Report, with the charts it creates shown too (taken from their web site)

3.2.5

Treemaps

I took a search on current visualisation software, that is not relevant to version control, but is relevant to hierarchies. One such example is tree maps. Treemaps are a way of putting a lot of hierarchical data into a fixed space [9]. One very common use of this is for answer the question: “Where has all the space on my disk gone?”. The reason why it is so useful, is that you can easily see where there are large files. Software able to do this has been around since 1990. The alternative to showing it graphically is to use a list sorted by file size. However this doesn't show a few large files buried deep in the file system.

Final Dissertation – Final Report

Page 9

Shaun McDonald

Disk Inventory X An example of up to date software that uses the Treemaps for seeing the size of files and folders on your hard drive is Disk Inventory X [10]. It does have the ability for you to zoom the directories and only view a specific portion of the directory structure. This program only gives you information about file sizes, rather than how much change there is in the file structure. A screen shot of the program, which only runs under Mac OS X, is shown below. Earlier variations of the software used the same algorithm but run on a older operating system. Many different variations of this algorithm have been implemented. Unfortunately there has been no work done so far in using it for showing the changes in a file structure.

Illustration 10: Disk Inventory X running on Mac OS X 10.4 There is the possibility of changing the size of the squares to deal with the number of changes within a specific time frame, or the size of the change in each file within a specific time frame. On speaking with the project supervisors on this, it was decided that this would not be a very Final Dissertation – Final Report

Page 10

Shaun McDonald

good way to show where the changes in the repository are. The file blocks would be constantly moving around, which would make it difficult to work out where in the repository the large change has taken place, as you would need to do some more investigation to find out what has changed. At this point it was decided that having some view of all the data, that would change very little over time in terms of order or structure of the list of files. Most people are used to seeing files in a list, instead of in another diagrammatic form, thus using a completely different representation of the files will mean that the users would have a learning curve in working out the new representation of the file system.

3.2.6

Time Machine

Time Machine is a new backup technology that Apple are going to introduce into Leopard, the next version of Mac OS X [11]. Time Machine stores a backup of all your files so that you can go back in time to get your files. What made it interesting for this project is the bar down the right hand side for navigating time. The fact there are large and small lines there to make it easier to find a specific point in time makes it very useful to the end user.

Illustration 11: Time Machine, note the granulations on the right hand side of the screen Time machine does not give an overview of how or where the files have changed. It is aimed at users who know where something was and need to get it back. For example to get a deleted or modified photo or address book card. Final Dissertation – Final Report

Page 11

Shaun McDonald

3.2.7

Summary

I have summarised the findings of the features in the software above in the table below. Application

cvstat

sf.net Project Statistics

bloof

CVS Report

Disk Inventory X

Time Machine

Mathematical No Chart (Bar/Pie/Line)

Yes Line

Yes Line and XY Scatter

Yes No Bar and Pie

Non-standard Table Maths Chart

Table

Table, List

Table

Yes Yes Rectangles based on file size

Browse Source

No

No

Yes

No

Yes

Unsure

Textual Summary

Yes Table

Yes Table

Yes Table

Yes Table

No

No

Graphical Summary

No

Yes Line Chart

Yes

Yes

Yes Nested Rectangles

No

Graphically No show location of changes

No

No

No

No though does graphically show location of large files

No

Diff source

No

No

No

No

No

Based on time, developer, or file

Based on time, user, or commit message

Able to view only a particular folder

Yes though limited

No

Filters/Search Based on Based on the output time of the cvs log command

No

I intend to look at producing something with a textual and graphical summary, with the ability to browse the source tree.

3.3

Other Search Areas

A search of other computer visualisations was also undertaken. The FishEye Table allows the user to be able to view the whole table, whilst zooming in to read a small portion of the detail [12]. The FishEye visualisation would be good since it

Final Dissertation – Final Report

Page 12

Shaun McDonald

allows you see the whole table, whilst being able to zoom into a specific part of the table to get more detailed information. This is exactly what my supervisors are looking for. The above piece of work referenced the Fisheye Menu research that had been done at the University of Maryland's Human Computer Interaction Lab [13]. Bederson has also produced a Java applet to demo the code for the Fisheye Menu [14]. The great thing about the FishEye visualisation is that you can see all the data, whilst zooming. You can always see where you are in the data structure. A sample screenshot is shown below.

Illustration 12: Fisheye menu demonstration applet One problem with the Fisheye menu is that users simply would find it strange to use. This could stop users from using the software, as it isn't what they would expect. Users generally expect static menus that don't change after they have opened the menus.

Final Dissertation – Final Report

Page 13

Shaun McDonald

A look at some visualisation books was also taken. Tufte has written a variety of books that look at visualisation of information in a meaningful manner [15] [16]. One useful visualisation was one on the Cholera Epidemic in London, 1854 [17]. It showed that having a map with some indicator of the magnitude of the deaths at each point in time allowed you to pin point the information that you are looking for quickly. The problem is to turn the file system into some form of map.

Final Dissertation – Final Report

Page 14

Shaun McDonald

4 Prototype Design Five prototype applications were designed and implemented to see which data is available to use and see some basic ways that the data can be used. The designs of these prototype programs are explained in this chapter. The next chapter deals with the implementation of the prototypes. For the four graphical visualisations, I used the same code for the user to choose the data to visualise. I am going to explain the data chooser first. Thereafter the actual visualisations will be discussed. Below is a family tree showing the relationship between the different visualisations.

Project

Command Line

Graphical

Revision Based

File System Based

TreeView

TreeTable

RevisionTable

Calendar

Illustration 13: Family Tree of the prototypes produced

4.1

CVS Repository Chooser

In order that the user be able to visualise the data, they must be able to choose which data to visualise. The repository chooser will get the information needed to be able to visualise the data from the information provided by the user. Final Dissertation – Final Report

Page 15

Shaun McDonald

Other desktop visualisers have asked for all the details of the CVS repository and the local directory of the checked out files. An example of this from CVS Report is shown in Illustration 14 on page 16.

Illustration 14: An example of getting the information to connect to a CVS repository from CVS Report

4.1.1

First Version

Initially I chose a similar approach for my application to choose the data to visualise. Illustration 15 on page 17 shows the initial hand drawn design of the repository chooser. A screen shot of the initial mock-up is shown in Illustration 16 on page 18.

Final Dissertation – Final Report

Page 16

Shaun McDonald

Pop-up menu of connection types Create a connection to CVS Connection Type: Username: Password: Host: Choose Local folder

Location: Quit

Create Connection

Checks the connection information is valid and passes it to the visualisation panel

Illustration 15: Initial hand drawn design for the repository chooser

Final Dissertation – Final Report

Page 17

Shaun McDonald

Illustration 16: First mock-up to get information to access a CVS repository However, using this approach took a long time to produce a reliable, working GUI to get the connection information for the CVS repository. My supervisor pointed out that the required information was already saved. It was only necessary to parse this information and then connect to the CVS repository. This led to a complete redesign of the repository chooser. The redesigned version is in the next section.

4.1.2

Second Version

The second version of the repository chooser was novel. No other CVS analyser investigated for deliverable 1 used a similar method to directly access the repository. A screen shot of the simple user interface is shown in Illustration 17. On clicking the button, a standard Java folder chooser is shown to the user.

Illustration 17: Second, usable method to access a CVS repository This method used some checking once the user had chosen a folder. This checking ensured that the selected CVS directory was valid. It also ensured that the CVS repository could be Final Dissertation – Final Report

Page 18

Shaun McDonald

accessed so that a visualisation panel could get the log information from the repository.

Flow Diagram Illustration 18 shows the flow of actions that the repository chooser goes through before transferring the control to the parent frame. The repository chooser completes some checks to ensure that the user's selected folder is an appropriate one, which is able to be loaded by the panel. A panel showing the CVS visualisation is loaded into the window, when control passes to the parent frame.

Illustration 18: Flow diagram of the Repository Chooser

Data Structures Used The following files inside the local checked out CVS folder, which the user selects are read and parsed: ●

CVS/Root

Final Dissertation – Final Report

Page 19

Shaun McDonald



~/.cvspass

First it is necessary to parse the CVS/Root file to find out where the CVS Server is. During the checking of the password, the file ~/.cvspass needs to be parsed for getting the password to connect to the server. The information from the parsing of the CVS/Root file is needed to decide which password to choose.

4.2

Data Structures Used in the Visualisation Panels

All the visualisations use the log information from CVS for each file. In the Tree View visualisation the log information is fetched from the CVS server whenever the user clicks a node in the JTree. All the other visualisations pre-load the log information when the panel is initially loaded. The Netbeans Java CVS Library has a high level object for representing the log information that comes back from the CVS server queries. The LogInformation object contains the following information for each file: list of revisions (see below for the information contained in a revision); list of symbolic names; branch; description; file; keyword substitution; locks; repository file name; total revisions. Each revision contains the following information for each LogInformation.Revision: number of lines added; author; branches; commit ID; date; lines string (for example, +10 -3); log information header; message; number; number of lines removed; and the current state of the checked out file.

4.3

Visualisation Panels

I have implemented a several visualisation panels that are inserted into the main window once a folder has been chosen to visualise. For getting the information from CVS, a library which handled all connections and requests to the CVS server was used. It also parses the output from the CVS server and places it into a series of specially designed objects. The Final Dissertation – Final Report

Page 20

Shaun McDonald

specially designed objects come with the library.

4.3.1

Tree View

The tree view involved 2 panels side by side. The left panel shows the file system view of all the CVS files. The right panel shows information specific to the currently selected file or folder. A screen shot of this demo is shown in Illustration 26. The original idea for this prototype was to show that data from CVS can be shown to the user in a graphical user interface (GUI). It also shows that information specific to a particular file can be shown when it is selected in the JTree. A similar system is used in some Integrated Development Environments or CVS GUI tools which show information about the revisions of a specific file. This prototype program helped with understanding what data is available and how it can be used. This prototype is an extension of the initial command line prototype that I had produced. This showed it graphical user interface rather than using a purely textual command line system.

File system view showing the tree of files and folders that are under version control.

Some textual information from CVS about the file or folder selected on the left.

Illustration 19: Basic overview of the TreeView visualisation

Final Dissertation – Final Report

Page 21

Shaun McDonald

4.3.2

Tree Table

The tree table is special because it combines a JTree and a JTable into the same component. An example from the Sun Developer Network (SDN) was used to implement the main part of the GUI and the model [18]. The SDN example gave me the JTreeTable which sorts by the size of the files and folders in a selected directory. Time was needed to add an extra column of information which is specific to CVS. The column chosen to include was “Total Revisions”. This data was picked because the information was useful. The original idea behind this prototype was to show that summary information about directories can be shown in a table. The TreeTable was simply extending a concept of showing a size of files and folders to the user in a tree table. This concept came from some sample code as mentioned above.

Filename

Size

No. of Commits

Lines Added Lines Removed

A tree showing the files and folders under revision control Illustration 20: Overview of the basics of the treetable

4.3.3

Revision Table

This visualisation takes all the revisions from all the checked out files and lists them in a

Final Dissertation – Final Report

Page 22

Shaun McDonald

table. The table is sortable and can be filtered by date of commit. The listing of a series of CVS revisions in a table has been done before in various forms. In deliverable 1, one example of this was CVS Report. The current prototype is better than CVS Report in two ways. First it is far simpler to get the data from CVS because it is unnecessary to manually enter the CVS root. Second when you change the filter, the revision table program does not go back to the CVS server to get the same information again. This method was initially used as a way to show that a list of revisions can be shown to a user in a table. One of my design ideas, with the sliders (from deliverable 1), was selected, to perform some filtering on the data based on the date of commit. The sliders allow you to easily set the first and last dates for filtering revisions. The first date slider is not allowed to be set after the last date slider. This means that you will always have a valid date range to filter on. The filter is automatically updated as the sliders are dragged. The sliders are similar to the sliders used in media players. A hand drawn mock-up of the revision table is shown in Illustration 21. Many other visualisations that I have looked at as part of the background reading were able to show the revisions. Some of them, such as CVS Report, were able to do filtering of the list of revisions, however CVS Report needed to access the CVS server each time the filter was changed. This visualisation was designed to store the whole list of revisions locally so that the list of revisions can be changed dynamically using the sliders. This also meant that there would be minimal delay when the filter was changed.

Final Dissertation – Final Report

Page 23

Shaun McDonald

Sortable table of revisions. The table is filtered by changing the sliders below.

Total Revisions shown:

Information panel about revisions and dates.

First Revision Date: Last Revision Date: Current First Revision Selected: Current Last Revision Selected: Date Selection: Top First Date, Bottom Last Date

Sliders Illustration 21: Sketch of revision table design

4.3.4

Calendar

One easy way of showing the data based on time is to place it on to a calendar. This Final Dissertation – Final Report

Page 24

Shaun McDonald

prompted the idea for this visualisation. The idea is to have a month view of a calender with transparent, coloured circles over each day to denote the a piece of cumulative data. Each circle would have it's radius n colour relative to one of the following options: ●

the number of commits for the specific day;



the number of lines added for the specific day;



the number of lines removed for the specific day;

Sample code shows how to draw a basic calendar on to a JPanel [19]. The additional items specified above would be drawn on top of the current calendar. My design sketches are shown in the Illustrations 22, 23 and 24. None of the visualisations that I have looked at previously have been able to show the data in this form. Thus this is a novel approach to showing this kind of data.

Final Dissertation – Final Report

Page 25

Shaun McDonald

Month

Year

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

Radius is the number of commits on a particular day Illustration 22: Initial design sketch, day of month numbers would appear inside each box

Final Dissertation – Final Report

Page 26

Shaun McDonald

46

81

Position of the top left corner of the top left day in the grid

1 Day in month

Illustration 23: Further design ideas looking at the positions of the day in month text and top left corner of the box for each day.

Final Dissertation – Final Report

Page 27

Shaun McDonald

1 Day in the month

Top Left Corner for the date text

14.5

4

20

30

29

15 Centre of the circle

Number of commits, lines added or lines removed Illustration 24: Further specifics on where the centre of the circle will be

Final Dissertation – Final Report

Page 28

Shaun McDonald

5 Prototype Implementation This section covers the implementation side of each prototype that was produced for this project.

5.1

Command Line

The first prototype I implemented was a small command line program that used the NetBeans CVS library. This allowed the navigation of the directory structure like the bash shell. It allowed you to list the CVS specific properties for each file and folder. All connection properties were hard coded into the program. There was no design plan for this prototype other than, see if I can use this library that I have found.

Final Dissertation – Final Report

Page 29

Shaun McDonald

Illustration 25: Test run of the command line test program

Final Dissertation – Final Report

Page 30

Shaun McDonald

5.2

TreeView

Illustration 26: The Tree View CVS demo. Showing a JTree on the left of all the files under CVS control and on the right information about a specific file or folder.

Flow Chart Illustration 27 shows the flow chart for the tree view panel after control has been passed to it. This includes the steps required to load all the files and folders into the tree on the left hand side of to the prototype program.

Final Dissertation – Final Report

Page 31

Shaun McDonald

Illustration 27: Flow Chart for the tree view Data Structures The file tree is of the type DefaultMutableTreeNode, a standard object from the Java API, is a tree basic node. The file list is populated through recursion, adding only files that are currently under CVS control. The CVS server, through the library, returns the log information as a LogInformation object. HTML is then created from the information available in the object for placing in the right panel. A StringBuffer is used for efficiency in concatenating the strings. Final Dissertation – Final Report

Page 32

Shaun McDonald

5.3

TreeTable

Illustration 28: The Tree Table loading the data for a CVS repository, with the loading data progress indicator

Illustration 29: The tree table after loading the data from CVS, showing the GUI after some navigation by the user

Data Structures A class diagram for this prototype is shown in Illustration 29.

Final Dissertation – Final Report

Page 33

Shaun McDonald

Illustration 30: Class diagram of the Tree Table prototype

5.4

Revision Table

While implementing the sliders, a problem was encountered with conversion from a date, which is represented by a long, to the values on the slider, which are represented by integers. Longs have a much larger range than Integers, which is the basis of the problem. OpenMap [20], an open source mapping system that includes time slider support [21] was then used. The TimeSliderSupport class was modified to remove the dependencies on the rest of the library, and to remove the real time support, which was not needed for this prototype program. Illustration 31 shows a basic view of the revision table after opening the visualisation.

Final Dissertation – Final Report

Page 34

Shaun McDonald

Illustration 31: Revision Table after opening and scrolling to the side to show some other columns

Illustration 32: The Revision Table after changing the first date filter

Illustration 33 shows the state of the revision table after it has been sorted by the date of revision and the last date filter after has been changed.

Final Dissertation – Final Report

Page 35

Shaun McDonald

Illustration 33: The Revision Table after changing the last date filter slider and sorting the table by the date of commit.

Data Structures This prototype makes use of the Java 1.5 Generics inside a TableModel. The RevisionTableModel stores the elements of the table in a Vector of type LogInformation.Revision. There are 3 table models that are used. RevisionTableModel gets the data from CVS and stores the unfiltered data. FilteredRevisionTableModel extends RevisionTableModel and allows you to do the filtering of the data based on the dates. The sorting is achieved through the TableSorter class. The TableSorter class takes a data model and allows you to sort its data. I used the table sorter from the Java tutorial.[22] A class diagram is shown in Illustration 34.

Final Dissertation – Final Report

Page 36

Shaun McDonald

Illustration 34: Class diagram of the Revision Table prototype

5.5

Calendar

This visualisation is similar to the Revision Table in terms of the data that it visualises. I added the options to view the number of lines added and removed each day just before the user testing, so that this visualisation was on par with the Tree Table visualisation. On changing the pop-up menu or the month that is shown, the main panel is redrawn to reflect the new set of the data that needs to be shown. Screenshots of the visualisation are shown below.

Final Dissertation – Final Report

Page 37

Shaun McDonald

Illustration 35: The Calendar visualisation showing the number of commits for the month of February 2007.

Illustration 36: Calendar visualisation showing the number of lines added during the month of February 2007.

Final Dissertation – Final Report

Illustration 37: Calendar visualisation showing the number of lines removed for the month of June 2007

Page 38

Shaun McDonald

Data Structures There was a list of CVS revisions stored locally in a Vector of LogInformation.Revision. When the panel was painted, it filtered the list and painted a circle with a diameter of the number of commits or lines added or lines removed over the appropriate date.

Illustration 38: Class diagram of the Calendar visualisation

Final Dissertation – Final Report

Page 39

Shaun McDonald

6 Testing 6.1

Strategy

A task based analysis evaluation was appropriate for this project. Prior to the user evaluation, the users were asked some questions about their previous knowledge of and experience with version control systems. This allowed me to understand how different groups of users understand the visualisations. During the evaluation, users were asked a series of questions that helped to determine that the aims and objectives of the project had been met. These questions include: ●

What file has changed the most recently?



What has changed most?



Which folder has had the most changes in it?

The user was observed during the analysis to see where the user has difficulties understanding the visualisations or where any misconceptions arose. After the evaluation the users were asked a variety of questions about their experience with the software. This included what they liked about the software, and what they found annoying with the software. Thereafter the feedback was reviewed, with a commentary on how the visualisations could be changed to improve them.

6.2

Results

The results of the user evaluation will now be discussed in depth.

Final Dissertation – Final Report

Page 40

Shaun McDonald

6.2.1

Section 1 – Background Information

Question 1 – Are you a software or web developer? All 9 of the users who participated in this trial were either a software or web developers.

Question 2 – Do you know what source code management or revision control is? Only one person in my relatively small sample of developers had no idea at all about what version control is. Roughly half of the testers knew what version control is. Another half of the testers had some idea of what version control is. All testers were reminded about the basic concepts of version control in terms of what a revision is. This minimised the level of previous knowledge between participants affecting the results.

Do you know what Source Code Management or Version Control is? 4

Total

3

2

1

0 Yes

No

Vague Idea

Answers

Illustration 39: Results from Question 2

Question 3 – How often do you use version control? There was a nice spread of users from those who had used revision control previously.

Final Dissertation – Final Report

Page 41

Shaun McDonald

How often do you use revision control? 3

Totals

2

1

0 Never

Tried it once or twice

If I'm forced to use it

I use it in any large or group project

I use it in every project

Answer

Illustration 40: Chart showing how often testers use revision control

Question 4 – How much confidence do you have with revision control? There was a nice spread of users across the confidence levels.

How confidence do you have with revision control?

Totals

3

2

1

0 None

A Little

Some

Lots

Answer

Illustration 41: Chart showing how much confidence testers have with revision control

Correlation between the answers for the questions There was a number of trends that I noticed in the data above, such as: ●

Those who use revision control more usually have more confidence in using revision

Final Dissertation – Final Report

Page 42

Shaun McDonald

control too. ●

Those who said that the knew what version control is, were more likely to use it in any large or group project.



Everyone who said that they knew what revision control is, said that they had either some or lots of confidence in using revision control.

6.2.2

Section 2 – Test Questions

There was some confusion with only 3 of the questions. The first question of the questionnaire where the Calendar was done first caused some confusion as the question wasn't worded well enough. Had the question mentioned the date range then it would have probably confused fewer testers. Those who had done the TreeTable first did not find this confusion. The second last question for the Calendar: “Which month in the year 2007 has had the most number of revisions?”, was found found to be difficult for some users. They found that it was very close between the January and February months. One user stated that it was too close to be able to tell the difference between January and February.

6.2.3

Section 3 – Visualisation Evaluation

The first 6 questions were open answer questions, where the tester could write anything. The more common comments are shown first in each list.

Question 1 – Easiest to use visualisation and why There was a general consensus among users that the TreeTable is more accurate and better for specific data. The TreeTable has a more familiar user interface for new users. The Calendar is easier to get the overall picture. Some users thought that the date information was missing from the TreeTable. One user stated that it depends on usage to determine which visualisation is best. Final Dissertation – Final Report

Page 43

Shaun McDonald

Question 2/3 – What users liked about the Calendar Users liked the Calendar for the following reasons: ●

it was easy to scan and associate changes with time,



it was easier to see the overall differences,



the green dots made it easy to see what was going on



it was simple and easy to follow.

Question 2/3 – What users liked about the TreeTable Users liked the TreeTable for the following reasons: ●

there were concrete number to allow easy comparisons,



the visualisation had a familiar layout to other applications that they have used previously, thus there was a lower learning curve compared to the Calendar visualisation,



all the information was in the same window,



it was simple while providing more information compared to the Calendar.

Question 4/5 – What users found annoying with the Calendar Users found the following problems with the Calendar visualisation: ●

there are no specific values making comparisons difficult (around ¾ of the testers perceived this to be a problem),



extreme values are difficult to see,



having to open the program multiple times,



initially annoying to setup and understand (one tester),



doesn't remember options in the pop-up menu (one tester).

Final Dissertation – Final Report

Page 44

Shaun McDonald

Question 4/5 – What users found annoying with the TreeTable Users found the following problems with the TreeTable: ●

there is no way to be able to get information on the specific revisions made,



there is no way to be able to search the data,



the folder details are right next to the file details so it's easy to get confused (one user),



there is nothing annoying about this visualisation (one user from each group).

Question 6 – How users would improve the visualisations One user thought that the TreeTable shouldn't be changed. Other comments made by the users included: ●

both visualisations should be merged together,



the green dots in the Calendar should have a minimum size,



the calendar should have tool tips so that users can get specific numbers from the visualisation by hovering over the circles,



there should be graphics in the TreeTable,



the user should be able change the column that the TreeTable is able to be sorted by,



polynomial circle sizes should be used for the Calendar, so that area is in proportion rather than the diameter of the circle.

Question 7 – Ratings Users were asked to rate the two visualisations against 4 different items.

Final Dissertation – Final Report

Page 45

Shaun McDonald

Question 7 – TreeTable

TreeTable Visualisation

Number of respondents

Ease of navigating the hierarchy

Ability to get specific numbers of commits/lines added/lines removed

Being able to easily see where there is a large or small number of commit/lines added/lines removed

Ease of being able to navigate the calendar

8 7 6 5 4 3 2 1 0 Very Good

Good

Indifferent

Poor

Annoying

N/A

Question Illustration 42: Chart showing what users thought of the TreeTable visualisation All users found it easy to get navigate the folder structure, and get specific values from the data. Since the list was sorted, they found it fairly easy to see the information in terms of which files had had the most number of revisions, for example.

Final Dissertation – Final Report

Page 46

Shaun McDonald

Question 7 – Calendar

Calendar Visualisation

Number of respondents

Ease of navigating the hierarchy

Ability to get specific numbers of commits/lines added/lines removed

Being able to easily see where there is a large or small number of commit/lines added/lines removed

Ease of being able to navigate the calendar

5

4

3

2

1

0 Very Good

Good

Indifferent

Poor

Annoying

N/A

Question Illustration 43: Chart showing what users thought of the Calendar visualisation Some people didn't mind having to open the same visualisation multiple time since it allowed them to be able to see different directories at the same time. This group of users did comment on the fact that once multiple visualisations were open, it was difficult to tell which window represented which folder. The majority of people found the Calendar application to be good at getting a rough idea of general trend in the data set. However they found it to be useless to get specific values.

Final Dissertation – Final Report

Page 47

Shaun McDonald

7 Evaluation I used two of the five visualisations that I had produced for the project for the user evaluation. I chose two completely different visualisations. They were the TreeTable and the Calendar. They have completely different views of showing the data. The TreeTable shows it in terms of the file system, whereas the Calendar shows the data in terms of the number of revisions on each day. Of the file system based visualisations, the TreeTable was used since it was the more advanced version in some respects. The TreeView allowed you to view the revisions of the files, where the TreeTable didn't. However the TreeView did not do any sorting of the files and folders, nor did it show the summary information at a glance with all the other files. The fact that the TreeView does show the revision log, would be helpful to some of the questions, however it would have been very tedious to find the answers to the revision related questions. Of the revision based visualisations, the Calendar was chosen since it was a completely new concept of showing the data to the user. It was also presented the information graphically to the user, rather than textually unlike the other visualisations. The simple filtering, would have made the revision questions easier to answer. However a specific date chooser would be more useful. An option to for example select the revisions for the month of May would make the analysis easier.

7.1

Were the Aims and Objectives met?

There were four aims and objectives for the project. They were all worked on in some shape or form. Objectives 1 and 3 were related. I originally envisaged having just one program at the end of the day, however I have ended up with three working programs. The first command line

Final Dissertation – Final Report

Page 48

Shaun McDonald

visualisation was basically discarded. The second visualisation (TreeView) evolved into the third visualisation (TreeTable). Objective 2 was met, since many visualisations were produced that showed CVS data. For objective 4, which was dealing with a zooming effect on the directories, the first 3 visualisations allowed this directly within the application. However the RevisionTable and Calendar prototypes indirectly allowed zooming of the directory structure. This was done through the user restarting the prototype and selecting a different directory to use.

7.2

Future developments

There are a variety of things that can be done to improve the current visualisations based on the feedback of the users, and using the visualisations myself. These include: ●

Allow the user to enter a password, if they haven't stored the password in the ~/.cvspass file.



The calendar should show the folder that was opened by the user.



Merging the best parts from TreeTable, RevisionTable and Calendar so that they are in the same program. This would give the advantages of both numerical and graphical summaries.



Allow the visualisation of Subversion repositories, since Subversion is meant to be a replacement for CVS, this shouldn't take too much re-work.

Final Dissertation – Final Report

Page 49

Shaun McDonald

8 Bibliography 1: Wikipedia Community, Comparison of revision control software, http://en.wikipedia.org/wiki/Comparison_of_revision_control_software, Last Accessed: 200612-07. 2: , CVS - Open Source Version Control, http://www.nongnu.org/cvs/, Last Accessed: 200612-07. 3: Wikipedia Communiy, Convurrent Versions System, http://en.wikipedia.org/wiki/Concurrent_Versions_System, Last Accessed: 2006-12-07. 4: Microsoft, Visual Studio Team System Product Information, http://msdn2.microsoft.com/en-us/teamsystem/aa718803.aspx, Last Accessed: 2006-12-07. 5: NetBeans Development Team, NetBeans Java CVS Library Design Overview, http://javacvs.netbeans.org/library/DesignOverview.html, Last Accessed: 2006-12-06. 6: jmallett, freshmeat.net: Project details for CVS Statistics Generator, http://freshmeat.net/projects/cvstat/, Last Accessed: 2006-12-07. 7: Pekacki, Lukasz, Bloof - visualize the evolution of you software project, http://bloof.sourceforge.net/, Last Accessed: 2006-12-08. 8: , VCS Report -> Home, http://vcsreport.sourceforge.net/index.html, Last Accessed: 200612-08. 9: Shneiderman, Ben, Treemaps for space-constrained visualization of hierarchies, http://www.cs.umd.edu/hcil/treemap-history/index.shtml, Last Accessed: 2006-10-18. 10: Derlien, Tjark, Disk Inventory X, http://www.derlien.com/, Last Accessed: 2006-11-07. 11: Apple Computer Inc., Apple - Mac OS X - Leopard Sneak Peek - Time Machine, http://www.apple.com/macosx/leopard/timemachine.html, Last Accessed: 2006-11-08. 12: LeBeau, Renee; SLIS, Indiana University, InfoVis CyberInfrastructure - FishEye Table, http://iv.slis.indiana.edu/sw/fisheye.html, Last Accessed: 2006-12-07. 13: Dederson, Ben, Fisheye Menus, http://www.cs.umd.edu/hcil/fisheyemenu/, Last Final Dissertation – Final Report

Page 50

Shaun McDonald

Accessed: 2006-12-08. 14: Bederson, Ben, Fisheye Menu Demo, http://www.cs.umd.edu/hcil/fisheyemenu/fisheyemenu-demo.shtml, Last Accessed: 2006-1208. 15: Tufte, Edward R., Envisioning Information, 1990. 16: Tufte, Edward R., The Visual Display of Quantitative Information, 1983. 17: Tufte, Edward R., Visual Explanations, 1997. 18: Sun Developer Network, Creating TreeTables: Part 2, http://java.sun.com/products/jfc/tsc/articles/treetable2/index.html, Last Accessed: 2007-0308. 19: Marinacci, Joshua & Adamson, Chris, Swing Hacks, 2005. 20: BBN Technologies Solutions LLC, OpenMap - Open Systems Mapping Technology, http://openmap.com/, Last Accessed: 2007-03-12. 21: BBN Technologies Solutions LLC, TimeSliderSupport (OpenMap API), http://www.openmap.org/doc/api/com/bbn/openmap/gui/time/TimeSliderSupport.html, Last Accessed: 2007-03-13. 22: Sun, How to Use Tables (The Java Tutorials), http://java.sun.com/docs/books/tutorials/uiswing/components/table.html, Last Accessed: 2007-03-20.

Final Dissertation – Final Report

Page 51

Shaun McDonald

9 Illustration Index Illustration 1: Showing the start of the statistics that are produced by cvstat...........................4 Illustration 2: Screenshot showing a summary at the end of the report....................................5 Illustration 3: Sample output from the SourceForge.net project statistics page of the project phpmyadmin...............................................................................................................................6 Illustration 4: Bloof showing the summary of changes..............................................................7 Illustration 5: Summary tables for a specific folder....................................................................7 Illustration 6: Bloof line chart for the total lines of code for a specific folder over time.............8 Illustration 7: Bloof showing the file count for a specific folder over time..................................8 Illustration 8: Bloof showing the number of files changed on a particular day..........................8 Illustration 9: Screenshot of CVS Report, with the charts it creates shown too (taken from their web site).............................................................................................................................9 Illustration 10: Disk Inventory X running on Mac OS X 10.4...................................................10 Illustration 11: Time Machine, note the granulations on the right hand side of the screen.....11 Illustration 12: Fisheye menu demonstration applet................................................................13 Illustration 13: Family Tree of the prototypes produced..........................................................15 Illustration 14: An example of getting the information to connect to a CVS repository from CVS Report..............................................................................................................................16 Illustration 15: Initial hand drawn design for the repository chooser.......................................17 Illustration 16: First mock-up to get information to access a CVS repository.........................18 Illustration 17: Second, usable method to access a CVS repository......................................18 Illustration 18: Flow diagram of the Repository Chooser........................................................19 Illustration 19: Basic overview of the TreeView visualisation..................................................21 Illustration 20: Overview of the basics of the treetable............................................................22 Illustration 21: Sketch of revision table design........................................................................24 Illustration 22: Initial design sketch, day of month numbers would appear inside each box. .26 Illustration 23: Further design ideas looking at the positions of the day in month text and top left corner of the box for each day...........................................................................................27 Illustration 24: Further specifics on where the centre of the circle will be...............................28 Illustration 25: Test run of the command line test program.....................................................30 Illustration 26: The Tree View CVS demo. Showing a JTree on the left of all the files under CVS control and on the right information about a specific file or folder..................................31 Illustration 27: Flow Chart for the tree view.............................................................................32 Illustration 28: The Tree Table loading the data for a CVS repository, with the loading data progress indicator.....................................................................................................................33 Illustration 29: The tree table after loading the data from CVS, showing the GUI after some navigation by the user..............................................................................................................33 Illustration 30: Class diagram of the Tree Table prototype......................................................34 Illustration 31: Revision Table after opening and scrolling to the side to show some other columns....................................................................................................................................35 Illustration 32: The Revision Table after changing the first date filter......................................35 Illustration 33: The Revision Table after changing the last date filter slider and sorting the table by the date of commit......................................................................................................36 Illustration 34: Class diagram of the Revision Table prototype...............................................37 Illustration 35: The Calendar visualisation showing the number of commits for the month of February 2007..........................................................................................................................38 Illustration 36: Calendar visualisation showing the number of lines added during the month of February 2007..........................................................................................................................38 Illustration 37: Calendar visualisation showing the number of lines removed for the month of June 2007.................................................................................................................................38 Final Dissertation – Final Report

Page 52

Shaun McDonald

Illustration 38: Class diagram of the Calendar visualisation...................................................39 Illustration 39: Results from Question 2...................................................................................41 Illustration 40: Chart showing how often testers use revision control.....................................42 Illustration 41: Chart showing how much confidence testers have with revision control........42 Illustration 42: Chart showing what users thought of the TreeTable visualisation..................46 Illustration 43: Chart showing what users thought of the Calendar visualisation...................47

Final Dissertation – Final Report

Page 53

Shaun McDonald

10 Appendix 1: Project Progress The project used an iterative design approach, that was driven by the code. As I understood CVS and the Netbeans library more, I produced more advanced visualisations.

10.1

Aims and Objectives

In deliverable 1 it was unclear as to the number of visualisations that were going to be produced. This was clarified for deliverable 2. It also became clear that there would not have been enough to design and implement the software for multiple repositories. Thus this aim was dropped for deliverable 2.

Final Dissertation – Final Report

Page 54

Shaun McDonald

11 Appendix 2: Project Timetable Appropriate timings (±~1 week) for the whole project are shown in the table below: Term 1 1

02/10/2006 Initial discussions about the project with the project supervisors

2

09/10/2006 Allocation form to the Honours Project Coordinator

3

16/10/2006 Start research

Confirmation of supervisor and 2nd reader from the Honours Project Coordinator

4

23/10/2006 Start design ideas

Research continued

5

30/10/2006

6

06/11/2006

7

13/11/2006 Consolidate initial designs

8

20/11/2006 Create deliverable 1 report

9

27/11/2006

Test program created to show that I am able to work with a CVS repository

10 04/12/2006 Finish and hand in deliverable 1 to the Student Office Christmas Break Term 2 1

08/01/2007 Arrange interview with the supervisor and 2nd reader

2

15/01/2007 Complete the interviews

3

22/01/2007 Feedback on deliverable 1 from the Student Office

4

29/01/2007 Continue iterative design

5

05/02/2007

6

12/02/2007

7

19/02/2007 Start report for deliverable 2

8

26/02/2007

9

05/03/2007

Continue with design Start implementation of the prototypes

10 12/03/2007 Finish deliverable 2

19/03/2007 Hand in deliverable 2

Exam Revision

26/03/2007 02/04/2007 09/04/2007 Term 3 1

16/04/2007 Sit Exams

2

23/04/2007

Final Dissertation – Final Report

Exam Revision

Page 55

Shaun McDonald

3

30/04/2007 Complete implementation and start Collect feedback on deliverable 2 design of user evaluation

4

07/05/2007 User evaluation of the system

Start Writing final report

5

14/05/2007

Continue final report

6

21/05/2007 Review evaluation

Continue final report

7

28/05/2007 Finish writing the final report

8

04/06/2007 Hand in the final dissertation to the school office

9

11/06/2007 Presentations

Celebrate the end

10 18/06/2007

Final Dissertation – Final Report

Page 56

Shaun McDonald

12 Appendix 3: Testing Results 12.1

Section 1: Question 1

Are you a software or web developer? Test ID:

Yes

1 2 3 4 5 6 7 8 9 Are you a software or Yes web developer? Totals:

12.2

1 1 1 1 1 1 1 1 1 No 9

0

Section 1: Question 2

Test ID

Do you know what source code management or revision control is? Yes No Vague Idea 1 2 3 4 5 6 7 8 9

1 1 1 1 1 1 1 1 1 Yes

No

Totals:

12.3

No

4

Vague Idea 1

4

Section 1: Question 3

Test ID:

How often do you use revision control? Tried it once or twice

Never 1 2 3 4

I use it in any If I'm forced to I use it in large or group use it every project project

1 1 1 1

Final Dissertation – Final Report

Page 57

Shaun McDonald

5 6 7 8 9

1 1 1 1 1 Tried it once or twice

Never Totals:

12.4 Test ID:

Totals:

12.5

3

I use it in any If I'm forced to I use it in large or group use it every project project 2 1 3 0

Section 1: Question 4 How much confidence do you have with revision control? None A Little 1 1 2 3 4 1 5 6 7 8 9 1 None A Little 3

Some

Lots 1 1

1 1 1 1 Some

Lots

2

2

2

Section 2

Commentary within the main part of the document

12.6

Section 3: Visualisation completed first

Test ID:

TreeTable first 1 2 3 4 5 6 7 8 9

Final Dissertation – Final Report

Calendar first 1 1 1 1 1 1 1 1 1

Page 58

Shaun McDonald

Totals:

12.7

5

4

Section 3: TreeTable Visualisation Ratings

TreeTable Visualisation Being able to easily see Ability to get specific Ease of being where there is a large or numbers of able to small number of commits/lines navigate the commit/lines added/lines added/lines removed calendar removed 0 0 0 3 0 0 0 5 0 0 1 4 2 1 1 5 1 1 2 3 2 0 1 4 0 0 3 3 0 0 1 2 1 0 1 4

Ease of navigating the hierarchy

Test ID:

1 2 3 4 5 6 7 8 9

Ease of navigating the hierarchy Very Good (0) Good (1) Indifferent (2) Poor (3) Annoying (4) N/A (5)

12.8

Test ID

1 2 3

Ability to get specific numbers of commits/lines added/lines removed

5 2 2 0 0 0

Being able to easily see where there is a large or small number of commit/lines added/lines removed

7 2 0 0 0 0

Ease of being able to navigate the calendar 2 5 1 1 0 0

0 0 1 3 3 2

Section 3: Calendar Visualisation Ratings

Calendar Visualisation Ability to get specific Being able to easily see Ease of Ease of numbers of where there is a large or being able navigating commits/lines small number of to navigate the hierarchy added/lines commit/lines added/lines the calendar removed removed 0 2 2 0 4 4 0 1 4 4 1 0

Final Dissertation – Final Report

Page 59

Shaun McDonald

4 5 1 5 4 3 6 1 3 7 3 3 8 0 4 9 3 4 Answer (code Ease of Ability to get specific Being able to easily see used above navigating numbers of where there is a large or for analysis) the hierarchy commits/lines small number of added/lines commit/lines added/lines removed removed Very Good (0) 2 0 Good (1) 1 1 Indifferent (2) 0 1 Poor (3) 2 3 Annoying (4) 3 4 1 0 N/A (5)

Final Dissertation – Final Report

Page 60

0 1 0 1 0 2

2 1 1 0 1 0 Ease of being able to navigate the calendar

4 3 2 0 0 0

4 4 1 0 0 0

Shaun McDonald

13 Appendix 4: Full Text of Questionnaire

Final Dissertation – Final Report

Page 61

Shaun McDonald

Dissertation Evaluation Questionnaire Temporal Visualisation of Hierarchical Data

Section 1 – Background Information The following questions are used to gauge your level of previous experience. Please circle the appropriate answer. 1. Are you a software or web developer? Yes No 2. Do you know what source code management or revision control it? Yes No Vague Idea 3. How often do you use revision control (CVS/Subversion)? Never Tried it once or twice If I'm forced to use it I use it in any large or group project I use it in every project 4. How much confidence do you have with revision control? None A Little Some Lots

Test ID: First: (Calendar)

Page 1 of 7

Date: / /2007 Second: (Tree Table)

Section 2 – Test Questions You are going to answer a set of questions twice. Once of each visualisation. Some of these questions cannot be answered by one of the visualisations. Please circle the appropriate answer in this section.

Visualisation 1 (Calendar) 1. Which folder has had the most revisions? calendar/

jtreecvs/

revisiontable/

2. Which file has has the most revisions?

calendar/CalendarDemo.java calendar/CalendarDisplay.java calendar/CalendarItemListener.java calendar/CalendarPanel.java calendar/RepositoryChoose.java jtreecvs/AbstractCellEditor.java jtreecvs/AbstractTreeTableModel.java jtreecvs/FileSystemModel2.java jtreecvs/JTreeCvsDemo.java jtreecvs/JTreeTable.java jtreecvs/MergeSort.java jtreecvs/README jtreecvs/RepositoryChoose.java jtreecvs/TreeListener.java jtreecvs/TreePanel.java jtreecvs/TreeTableExample2.java jtreecvs/TreeTableListener.java Test ID: First: (Calendar)

Page 2 of 7

Date: / /2007 Second: (Tree Table)

jtreecvs/TreeTableModel.java jtreecvs/TreeTableModelAdapter.java revisiontable/FilteredRevisionTableModel.java revisiontable/RepositoryChoose.java revisiontable/RevisionDemo.java revisiontable/RevisionTableExample.java revisiontable/RevisionTableListener.java revisiontable/RevisionTableModel.java revisiontable/TableSorter.java

3. Which folder has had the most lines added? calendar/

jtreecvs/

revisiontable/

4. Which month in the year 2007 has had the most number of revisions? January

February

April

May

March

5. Which of the following months in the year 2007 had no lines added? January

February

April

May

Test ID: First: (Calendar)

Page 3 of 7

March

Date: / /2007 Second: (Tree Table)

Section 2 Continued Visualisation 2 (Tree Table) 6. Which folder has had the most revisions? calendar/

jtreecvs/

revisiontable/

7. Which file has has the most revisions?

calendar/CalendarDemo.java calendar/CalendarDisplay.java calendar/CalendarItemListener.java calendar/CalendarPanel.java calendar/RepositoryChoose.java jtreecvs/AbstractCellEditor.java jtreecvs/AbstractTreeTableModel.java jtreecvs/FileSystemModel2.java jtreecvs/JTreeCvsDemo.java jtreecvs/JTreeTable.java jtreecvs/MergeSort.java jtreecvs/README jtreecvs/RepositoryChoose.java jtreecvs/TreeListener.java jtreecvs/TreePanel.java jtreecvs/TreeTableExample2.java jtreecvs/TreeTableListener.java jtreecvs/TreeTableModel.java

Test ID: First: (Calendar)

Page 4 of 7

Date: / /2007 Second: (Tree Table)

jtreecvs/TreeTableModelAdapter.java revisiontable/FilteredRevisionTableModel.java revisiontable/RepositoryChoose.java revisiontable/RevisionDemo.java revisiontable/RevisionTableExample.java revisiontable/RevisionTableListener.java revisiontable/RevisionTableModel.java revisiontable/TableSorter.java

8. Which folder has had the most lines added? calendar/

jtreecvs/

revisiontable/

9. Which month in the year 2007 has had the most number of revisions? January

February

April

May

March

10. Which of the following months in the year 2007 had no lines added? January

February

April

May

Test ID: First: (Calendar)

Page 5 of 7

March

Date: / /2007 Second: (Tree Table)

Section 3 – Visualisation Evaluation I would now like to get your opinions on the two visualisations that you have just tested. 1. Which visualisation did you find easiest to use? If it was easier for some questions please state this.

2. What did you like about visualisation 1 (Calendar)?

3. What did you like about visualisation 2 (Tree Table)?

4. What did you find annoying about visualisation 1 (Calendar)?

5. What did you find annoying about visualisation 2 (Tree Table)?

6. Are there any ways that you would improve the visualisations?

Test ID: First: (Calendar)

Page 6 of 7

Date: / /2007 Second: (Tree Table)

7. Please rate the following items for each visualisation (tick the appropriate box): Visualisation 1 (Calendar) Item

Very Good

Good

Indifferent

Poor

Annoying

Very Good

Good

Indifferent

Poor

Annoying

Ease of navigating the hierarchy Ability to get specific numbers of commits/lines added/lines removed Being able to easily see where there is a large or small number of commit/lines added/lines removed Ease of being able to navigate the calendar

Visualisation 2 (Tree Table) Item Ease of navigating the hierarchy Ability to get specific numbers of commits/lines added/lines removed Being able to easily see where there is a large or small number of commit/lines added/lines removed Ease of being able to navigate the calendar

Test ID: First: (Calendar)

Page 7 of 7

Date: / /2007 Second: (Tree Table)

Dissertation Evaluation Questionnaire Temporal Visualisation of Hierarchical Data

Section 1 – Background Information The following questions are used to gauge your level of previous experience. Please circle the appropriate answer. 1. Are you a software or web developer? Yes No 2. Do you know what source code management or revision control it? Yes No Vague Idea 3. How often do you use revision control (CVS/Subversion)? Never Tried it once or twice If I'm forced to use it I use it in any large or group project I use it in every project 4. How much confidence do you have with revision control? None A Little Some Lots

Test ID: First: (Tree Table)

Page 1 of 7

Date: / /2007 Second: (Calendar)

Section 2 – Test Questions You are going to answer a set of questions twice. Once of each visualisation. Some of these questions cannot be answered by one of the visualisations. Please circle the appropriate answer in this section.

Visualisation 1 (Tree Table) 1. Which folder has had the most revisions? calendar/

jtreecvs/

revisiontable/

2. Which file has has the most revisions?

calendar/CalendarDemo.java calendar/CalendarDisplay.java calendar/CalendarItemListener.java calendar/CalendarPanel.java calendar/RepositoryChoose.java jtreecvs/AbstractCellEditor.java jtreecvs/AbstractTreeTableModel.java jtreecvs/FileSystemModel2.java jtreecvs/JTreeCvsDemo.java jtreecvs/JTreeTable.java jtreecvs/MergeSort.java jtreecvs/README jtreecvs/RepositoryChoose.java jtreecvs/TreeListener.java jtreecvs/TreePanel.java jtreecvs/TreeTableExample2.java jtreecvs/TreeTableListener.java Test ID: First: (Tree Table)

Page 2 of 7

Date: / /2007 Second: (Calendar)

jtreecvs/TreeTableModel.java jtreecvs/TreeTableModelAdapter.java revisiontable/FilteredRevisionTableModel.java revisiontable/RepositoryChoose.java revisiontable/RevisionDemo.java revisiontable/RevisionTableExample.java revisiontable/RevisionTableListener.java revisiontable/RevisionTableModel.java revisiontable/TableSorter.java

3. Which folder has had the most lines added? calendar/

jtreecvs/

revisiontable/

4. Which month in the year 2007 has had the most number of revisions? January

February

April

May

March

5. Which of the following months in the year 2007 had no lines added? January

February

April

May

Test ID: First: (Tree Table)

Page 3 of 7

March

Date: / /2007 Second: (Calendar)

Section 2 Continued Visualisation 2 (Calendar) 6. Which folder has had the most revisions? calendar/

jtreecvs/

revisiontable/

7. Which file has has the most revisions?

calendar/CalendarDemo.java calendar/CalendarDisplay.java calendar/CalendarItemListener.java calendar/CalendarPanel.java calendar/RepositoryChoose.java jtreecvs/AbstractCellEditor.java jtreecvs/AbstractTreeTableModel.java jtreecvs/FileSystemModel2.java jtreecvs/JTreeCvsDemo.java jtreecvs/JTreeTable.java jtreecvs/MergeSort.java jtreecvs/README jtreecvs/RepositoryChoose.java jtreecvs/TreeListener.java jtreecvs/TreePanel.java jtreecvs/TreeTableExample2.java jtreecvs/TreeTableListener.java jtreecvs/TreeTableModel.java

Test ID: First: (Tree Table)

Page 4 of 7

Date: / /2007 Second: (Calendar)

jtreecvs/TreeTableModelAdapter.java revisiontable/FilteredRevisionTableModel.java revisiontable/RepositoryChoose.java revisiontable/RevisionDemo.java revisiontable/RevisionTableExample.java revisiontable/RevisionTableListener.java revisiontable/RevisionTableModel.java revisiontable/TableSorter.java

8. Which folder has had the most lines added? calendar/

jtreecvs/

revisiontable/

9. Which month in the year 2007 has had the most number of revisions? January

February

April

May

March

10. Which of the following months in the year 2007 had no lines added? January

February

April

May

Test ID: First: (Tree Table)

Page 5 of 7

March

Date: / /2007 Second: (Calendar)

Section 3 – Visualisation Evaluation I would now like to get your opinions on the two visualisations that you have just tested. 1. Which visualisation did you find easiest to use? If it was easier for some questions please state this.

2. What did you like about visualisation 1 (Tree Table)?

3. What did you like about visualisation 2 (Calendar)?

4. What did you find annoying about visualisation 1 (Tree Table)?

5. What did you find annoying about visualisation 2 (Calendar)?

6. Are there any ways that you would improve the visualisations?

Test ID: First: (Tree Table)

Page 6 of 7

Date: / /2007 Second: (Calendar)

7. Please rate the following items for each visualisation (tick the appropriate box): Visualisation 1 (Tree Table/) Item

Very Good

Good

Indifferent

Poor

Annoying

Very Good

Good

Indifferent

Poor

Annoying

Ease of navigating the hierarchy Ability to get specific numbers of commits/lines added/lines removed Being able to easily see where there is a large or small number of commit/lines added/lines removed Ease of being able to navigate the calendar

Visualisation 2 (Calendar) Item Ease of navigating the hierarchy Ability to get specific numbers of commits/lines added/lines removed Being able to easily see where there is a large or small number of commit/lines added/lines removed Ease of being able to navigate the calendar

Test ID: First: (Tree Table)

Page 7 of 7

Date: / /2007 Second: (Calendar)

Temporal Visualisation of Hierarchical Data June ...

They can manipulate the CVS repository in the same way as the command line tools. Examples of this ... log command and parses it to produce an analysis of the work that each developer has done within the .... Time Machine is a new backup technology that Apple are going to introduce into Leopard, the next version of ...

2MB Sizes 0 Downloads 122 Views

Recommend Documents

Temporal Visualisation of Hierarchical Data June 2007 ...
Jun 18, 2007 - folders on your hard drive is Disk Inventory X [10]. It does have the ... Time Machine is a new backup technology that Apple are going to introduce into Leopard, ... A search of other computer visualisations was also undertaken.

FanLens: Dynamic Hierarchical Exploration of Tabular Data
Keywords: Tabular data visualization, dynamic hierarchy specifi- cation, radial .... The large angle of Pacific Divison guides us to explore it and find the team ...

FanLens: Dynamic Hierarchical Exploration of Tabular Data
Keywords: Tabular data visualization, dynamic hierarchy specifi- cation, radial space-filling visualization, fisheye distortion. 1 INTRODUCTION. Tabular data is ...

Learning hierarchical invariant spatio-temporal features for action ...
way to learn features directly from video data. More specif- ically, we .... We will call the first and second layer units simple and pool- ing units, respectively.

Data mining information visualisation
area over the last ten years. However, in the ... caused by external usage or internal process variations [2]. Farmers ... to application in mainstream information technology. There are ... within the next few years Data Mining and Knowledge. Discove

Integration and Visualisation of Genomics and Proteomics Data - GitHub
This enables co-visualization of genomics, transcriptomics, and proteomics data using the Integrative ... The software is available via the GitHub code repository:.