[论文解读] Object-Oriented Program Comprehension: Effect of Expertise, Task and Phase
本研究探讨了程序员经验水平、编程任务类型(文档编写 vs. 代码复用)以及理解阶段如何影响面向对象程序理解中文本基模型(程序模型)与情境模型(心理理解)的构建。基于心理模型框架,研究发现存在四重交互作用:在文档编写任务中,专家与新手在情境模型构建上存在差异,而复用任务则仅在需要时促使新手构建情境模型,凸显了理解过程中任务驱动的认知适应性。
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.
研究动机与目标
- 考察程序员经验水平、任务类型与理解阶段对程序理解的综合影响。
- 探究这些因素如何影响两种心理模型类型(文本基模型(程序模型)与情境模型(系统行为理解))的构建。
- 评估任务需求(文档编写 vs. 复用)是否在不同经验水平上对模型构建产生差异化影响。
- 评估理解过程在时间维度上的演变(第一阶段 vs. 第二阶段)与模型构建之间的关系。
提出的方法
- 采用真实世界面向对象代码,对新手与专家程序员开展实验研究。
- 采用被试内设计,设置两个阶段(第一阶段与第二阶段),以评估理解随时间的变化。
- 将参与者分配至两种任务条件:文档编写与代码复用。
- 通过任务后评估测量模型构建,重点关注文本基模型(语法与结构)与情境模型(功能理解与系统行为)。
- 采用 van Dijk 与 Kintsch(1983)的心理模型框架对参与者理解输出进行分类与分析。
- 使用四重方差分析(four-way ANOVA)检验经验水平、任务、阶段与模型类型之间的交互作用。
实验结果
研究问题
- RQ1程序员经验水平如何影响程序理解过程中文本基模型与情境模型的构建?
- RQ2编程任务类型(文档编写 vs. 复用)如何影响新手与专家程序员的模型构建?
- RQ3理解过程在两个阶段(第一阶段与第二阶段)中,其模型构建如何演变?
- RQ4在程序理解中,经验水平、任务、阶段与模型类型之间是否存在显著的四重交互作用?
主要发现
- 在经验水平、阶段、任务与模型类型之间发现了四重交互作用,表明理解过程中存在复杂且相互依赖的影响。
- 在文档编写组中,专家与新手在情境模型构建上存在差异,但在程序模型构建上无显著差异,表明专家无论任务类型如何,均能形成更深层次的概念理解。
- 在复用组中,阶段、经验水平与模型类型之间存在三重交互作用:新手在时间推移中提升了情境模型构建能力,但程序模型构建能力未见提升。
- 新手在理解过程中不会自发构建强大的情境模型,但当任务明确要求时,他们具备构建情境模型的能力,表明模型构建具有任务驱动性。
- 阶段效应在新手复用参与者中增强了情境模型的构建,表明时间和任务背景能提升经验较少开发者的概念理解能力。
- 在大多数条件下,程序模型构建几乎不受阶段、任务或经验水平的影响,表明语法理解更具稳定性,且较少受外部因素影响。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。