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.
翻译:程序员的心理模型代表了他们对程序、编程概念和一般编程的了解和理解。他们指导程序员的工作并影响他们的工作表现。理解心理模型对于设计支持程序员的工作系统和做法十分重要。虽然程序员的精神模型的重要性得到了广泛的承认,但是对精神模型的研究多年来已经减少。结果分散,没有考虑到软件工程的最新发展。我们分析了程序员精神模型的研究状况,并提供了现有研究的概况。我们把不同研究领域对精神模型的研究结果联系起来,以形成关于这一主题的更统一的知识库。我们对程序员的精神模型进行了系统的文献审查。我们分析了在不同背景下处理精神模型的文献模型,包括程序、编程任务和编程概念的心理模型,我们利用9个搜索引擎发现了3 678篇文章(不包括复制品)。我们利用雪球技术,获得了187篇文章的最后结果集。我们显示,文献对各种精神模型的共同理解的内涵。我们通过对不同研究领域的精神模型的整理和连接结果。我们分析了不同研究领域有关精神模型的文献,我们发现了一些基础模型的基础研究。我们发现了一些基础研究的方面。我们从基础研究基础研究基础研究基础研究基础研究基础基础研究。我们为缺乏基础研究提供了许多的基础。我们研究基础研究基础基础研究基础基础基础基础基础基础。我们研究。我们研究基础研究基础基础基础研究基础研究。我们为基础研究基础研究基础研究基础研究基础基础研究。我们为基础研究基础研究基础研究基础研究基础。我们为基础。我们为基础研究基础研究基础研究基础研究。我们为基础。我们为基础研究。我们为基础研究基础研究基础研究基础基础基础基础研究基础研究基础研究。我们为基础研究基础研究基础研究基础研究。我们进行基础研究基础研究基础研究。我们进行基础研究。我们为基础研究。我们为基础研究。我们为基础研究。我们为基础研究。我们为基础基础研究。我们为基础基础研究。我们为基础基础研究。我们为基础研究。我们为基础研究基础研究,为基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究。我们基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究基础研究。我们基础研究。我们基础研究。我们基础研究。我们基础研究。我们基础