Program Source Code Documentation Experiment

Spencer Rugaber (PI)

Shaoyu Xue (Undergraduate Student)

spencer@cc.gatech.edu

sxue@cc.gatech.edu

Introduction

This study is part of our current research into program comprehension source code documentation tools. Program comprehension involves examining a piece of software and gaining understanding at different levels of abstraction. One of the methods for achieving this task is to examine the program source code and its documentation. Through this method, the program analyzer may gain some general understanding of the program for further understanding at high levels of program representation.

To assist with our research, this study will examine the effectiveness of several methods of source code documentation and the amount of understanding that programmers acquire from the use of these methods. In particular, the effectiveness of documentation tools will be examined. This will be achieved through two approaches: source code understanding through documentation with the use of the tool; and source code understanding through the examination of previously documented code.

Experiment

Participants: Fifteen student programmers of the intermediate level or above will be recruited. Upon completion, they will receive extra credit for one of their classes.

Materials: A demographic survey questionnaire will be used to gather background information on the participants. Two programs, P1 and P2, plus a training program will be used to test the participants. P2 will have versions that are documented in JavaDoc, TAJ, and textual documentation. In addition, pre-test and post-test questionnaires will be used to gather additional information.

Procedure: A background questionnaire will be completed by all subjects. The fifteen programmers will be randomly divided into three groups: G1, G2, and G3. The participants will fill out the background questionnaire at the beginning of the session. Furthermore, G1 will receive JavaDoc training and G2 will receive TAJ training. Then, for 15 minutes, each group will be asked to document P1 by using different documentation tools. G1 will use JavaDoc, G2 will use TAJ, and G3 will use textual documentation. Next, the programmers will take a short test to determine the general amount of understanding that they have of the program through the documentation of its source code. The test takes 20 minutes. Understanding will be measured by the amount of correct answers and the types of questions answered correctly.

Then, the programmers will be handed documented versions of P2 to study for 15 minutes. G1 will receive code with JavaDoc, G2 will receive code with TAJ, and G3 will receive code with textual documentation. Similar to the previous part, the programmers will then take a short test to determine general understanding. This test is also 20 minutes long, and understanding will be measured by the amount of correct answers and types of questions answered correctly.

Upon completing each of the two tasks, the participants will fill out a questionnaire about the strategies they used in doing these tasks and their general opinions of the tool they used.

The entire experiment will last two hours.