论文标题
综合对程序员的程序,任务和概念的心理模型的研究 - 系统文献综述
Synthesizing Research on Programmers' Mental Models of Programs, Tasks and Concepts -- a Systematic Literature Review
论文作者
论文摘要
程序员的心理模型代表了他们对程序,编程概念和编程的知识和理解。他们指导程序员的工作并影响其任务绩效。了解心理模型对于设计支持程序员的工作系统和实践很重要。尽管程序员心理模型的重要性得到了广泛认可,但多年来,对心理模型的研究有所下降。结果分散了,没有考虑软件工程方面的最新发展。我们分析了对程序员心理模型的研究状态,并概述了现有的研究。我们将来自不同研究链的心理模型的结果联系起来,形成了有关该主题的更统一的知识基础。我们对程序员的心理模型进行了系统的文献综述。我们分析了在不同情况下的心理模型,包括程序的心理模型,编程任务和编程概念的文献。使用九个搜索引擎,我们找到了3678篇文章(不包括重复项)。选择了84个以进行进一步分析。使用雪球技术,我们获得了包含187篇文章的最终结果集。我们表明,文献分享了对心理模型的共同理解的内核。通过在不同研究领域的心理模型上进行整理和联系,我们发现了一些经过精心研究的方面,我们认为这是程序员心理模型的基本特征。这项工作为心理模型的未来工作提供了基础。程序员心理模型的研究领域仍然面临由于缺乏共同的知识基础和定义较差的结构而引起的许多挑战。我们在该主题上创建了一个统一的知识基础。我们还指出了未来研究的方向。特别是,我们呼吁研究研究现代实践和工具的程序员。
Programmers' mental models represent their knowledge and understanding of programs, programming concepts, and programming in general. They guide programmers' work and influence their task performance. Understanding mental models is important for designing work systems and practices that support programmers. Although the importance of programmers' mental models is widely acknowledged, research on mental models has decreased over the years. The results are scattered and do not take into account recent developments in software engineering. We analyze the state of research into programmers' mental models and provide an overview of existing research. We connect results on mental models from different strands of research to form a more unified knowledge base on the topic. We conducted a systematic literature review on programmers' mental models. We analyzed literature addressing mental models in different contexts, including mental models of programs, programming tasks, and programming concepts. Using nine search engines, we found 3678 articles (excluding duplicates). 84 were selected for further analysis. Using the snowballing technique, we obtained a final result set containing 187 articles. We show that the literature shares a kernel of shared understanding of mental models. By collating and connecting results on mental models from different fields of research, we uncovered some well-researched aspects, which we argue are fundamental characteristics of programmers' mental models. This work provides a basis for future work on mental models. The research field on programmers' mental models still faces many challenges rising from a lack of a shared knowledge base and poorly defined constructs. We created a unified knowledge base on the topic. We also point to directions for future studies. In particular, we call for studies that examine programmers working with modern practices and tools.