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)