Empirical Foundational Research on Program Comprehension in Software Engineering
Final Report Abstract
The aim of the researchers was to gain a comprehensive understanding of the factors that significantly influence program comprehension. These include behaviors, working patterns, cognitive aspects, and the knowledge acquired and required. Tools developed specifically for the project were used to collect data that provide information about the individual steps taken by the developers when making changes to programs. The evaluation of those data unrevealed characteristic features that can be used to draw conclusions about the current phase in the understanding process of an individual developer. These phases are not as linear as some of the previous theories on program comprehension predicted. Rather, developers often go through the same phases several times and oscillate back and forth between them. In addition, a comprehensive taxonomy of the information requirements of developers was created based on a systematic review of the existing scientific literature. Complementary to that, data were analyzed from the review process of 46 open source projects. Six types of knowledge were identified in the comments, including among others the explicit request to add missing or related information. The researchers also investigated the contribution of visualizations to program comprehension, which give developers a visio-spatial image of programs. Modern virtual reality technologies were analyzed, too. In these investigations, no significant effect of the representation in terms of efficiency and effectiveness in solving the given programming tasks were found. However, some details could be observed, where the test subjects behaved differently depending on how the programs were presented to them (two- or three-dimensional). These findings can be used in future for the design of both the presentation itself and the interactions to be supported by a visualization.
Publications
-
Movement Patterns and Trajectories in Three-Dimensional Software Visualization. 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM), 7(2019, 9), 163-174. IEEE.
Marcel, Steinbeck; Rainer, Koschke & Rudel, Marc
-
Clustering Paths With Dynamic Time Warping. 2020 Working Conference on Software Visualization (VISSOFT) (2020, 9). IEEE.
Koschke, Rainer & Steinbeck, Marcel
-
How EvoStreets Are Observed in Three-Dimensional and Virtual Reality Environments. 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), 7(2020, 2), 332-343. IEEE.
Steinbeck, Marcel; Koschke, Rainer & Rudel, Marc O.
-
Two Decades of Empirical Research on Developers' Information Needs. Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops, 1(2020, 6, 27), 71-77. ACM.
Bouraffa, Abir & Maalej, Walid
-
Recording, Visualising and Understanding Developer Programming Behaviour. 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) (2021, 3). IEEE.
Schroer, Martin & Koschke, Rainer
-
Beyond duplicates. Proceedings of the 19th International Conference on Mining Software Repositories (2022, 5, 23), 48-60. ACM.
Lüders, Clara Marie; Bouraffa, Abir & Maalej, Walid
-
Developers' Visuo-spatial Mental Model and Program Comprehension. 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE) (2023, 5), 1920-1932. IEEE.
Bouraffa, Abir; Fuhrmann, Gian-Luca & Maalej, Walid
-
Understanding and Evaluating Developer Behaviour in Programming Tasks. Proceedings of the 1st ACM/IEEE Workshop on Integrated Development Environments, 8(2024, 4, 20), 35-39. ACM.
Schroer, Martin & Koschke, Rainer