PPIG 2021 - 32nd Annual Workshop
Doctoral Consortium
Component comprehension in context
Ava Heinonen
Abstract: Computer programming is a cognitively complex task. It requires the programmer to have a good understanding of the programming language they use and the program they are creating (Pennington, 1987). Many programmers also utilize different third-party components - libraries, packages, and dependencies, as a part of their code. Now, a large number of commercial software solutions contain some functionality achieved using third-party components. In order to use the components correctly, programmers must understand what they do and how they work. Program comprehension research, or the study of how programmers create mental models of code, has studied programmers’ understanding for decades (Storey, 2005). Results acquired with code not containing third-party components indicate that the expertise of the individual programmer (Burkhardt, Détienne, &Wiedenbeck, 2002) and details of the task code is comprehended for (Burkhardt et al., 2002; Kim, Lerch, & Simon, 1995; Détienne, 2002) have an effect on the mental models of the programmer. However, research into programmers’ mental models has decreased over the years, and does not yet include comprehension of newer technologies (Bidlake, Aubanel, & Voyer, 2020). Furthermore, research into the comprehension of third-party components has so far been limited to theoretical approaches such as the COTS component comprehension model created by Andrews et al. (Andrews, Stefik, Picone, & Ghosh, 2005). Currently, empirical research into programmers’ mental models of third-party components is rare.