Object-Oriented Program Comprehension: Effect of Expertise, Task and Phase
<|reference_start|>Object-Oriented Program Comprehension: Effect of Expertise, Task and Phase: The goal of our study is to evaluate the effect on program comprehension of three factors that have not previously been studied in a single experiment. These factors are programmer expertise (expert vs. novice), programming task (documentation vs. reuse), and the development of understanding over time (phase 1 vs. phase 2). This study is carried out in the context of the mental model approach to comprehension based on van Dijk and Kintsch's model (1983). One key aspect of this model is the distinction between two kinds of representation the reader might construct from a text: 1) the textbase, which refers to what is said in the text and how it is said, and 2) the situation model, which represents the situation referred to by the text. We have evaluated the effect of the three factors mentioned above on the development of both the textbase (or program model) and the situation model in object-oriented program comprehension. We found a four-way interaction of expertise, phase, task and type of model. For the documentation group we found that experts and novices differ in the elaboration of their situation model but not their program model. There was no interaction of expertise with phase and type of model in the documentation group. For the reuse group, there was a three-way interaction between phase, expertise and type of model. For the novice reuse group, the effect of the phase was to increase the construction of the situation model but not the program model. With respect to the task, our results show that novices do not spontaneously construct a strong situation model but are able to do so if the task demands it.<|reference_end|>
@article{burkhardt2006object-oriented,
    title={Object-Oriented Program Comprehension: Effect of Expertise, Task and
  Phase},
    author={Jean-Marie Burkhardt (LEI), Franc{c}oise D'etienne (INRIA), Susan
  Wiedenbeck},
    journal={Empirical Software Engineering (2002)},
    year={2006},
    archivePrefix={arXiv},
    eprint={cs/0612004},
    primaryClass={cs.HC}
}