Background: Software is an integral part of today's world with an outlook of ever-increasing importance. Maintaining all of these software artifacts is a major challenge for software engineering. A future with robust software primarily relies on programmers' ability to understand existing source code, because they spend most of their time on it.
Program comprehension is the cognitive process of understanding source code. Since program comprehension is an internal cognitive process, it is inherently difficult to observe and measure reliably. Decades of research have developed fundamental models of program comprehension, but there still are substantial knowledge gaps in our understanding of program comprehension.
Novel psycho-physiological and neuroimaging measures provide an additional perspective on program comprehension which promise new insights to program comprehension. Recently, these measures have been permeating software engineering research. The measures include eye tracking and physiological sensors, but also neuroimaging measures, such as functional magnetic resonance imaging (fMRI), which allow researchers to more objectively observe cognitive processes.
Aims: This dissertation aims to advance software engineering by better understanding program comprehension. We apply and refine the use of psycho-physiological and neuroimaging measures. The goals are twofold:
First, we develop a framework for studying program comprehension with neuroimaging, psycho-physiological, eye tracking, and behavioral methods. For neuroimaging, we focus on functional magnetic resonance imaging (fMRI), as it allows researchers to unravel cognitive processes in high detail. Our framework offers a detailed, multi-modal view on program comprehension that allows us to examine even small effects.
Second, we shed light on the underlying cognitive process of program comprehension by applying our experiment framework. One major focus is to understand experienced programmers' efficient top-down comprehension. We also link programmers' cognition to common code complexity metrics.
Method and Results: To fulfill our goals, we conduct a series of empirical studies on program comprehension. In these studies, we use and combine fMRI, psycho-physiological, and eye-tracking measures. Throughout the experiments, we develop and refine a multi-modal experiment framework to shed light onto program comprehension with a neuro-cognitive perspective. We demonstrate that the framework provides a reliable approach to quantify and to investigate programmers' cognitive processes.
We explore the neuro-cognitive perspective of program comprehension to validate and extend established program-comprehension models. We show that programmers using top-down comprehension require less cognitive effort, but use the same network of brain areas.
We also demonstrate how our developed experiment framework and fMRI as a measure can be used in software engineering to provide objective data in long-standing debates. For example, we show that commonly used, but criticized code complexity metrics indeed only have a limited predictive power on the required cognitive effort to understand source code.
Conclusion: In our interdisciplinary research, we show how neuroimaging methods, such as fMRI, in combination with psycho-physiological, eye tracking and behavioral measures, is beneficial to software-engineering research. This dissertation provides a foundation to further investigate the neuro-cognitive perspective to programmers' brains, which is a critical contribution to the future of software engineering. / Hintergrund: Software ist ein fester Bestandteil der heutigen Welt mit einer immer wichtiger werdenden Bedeutung. Das moderne Leben ist infolgedessen zunehmend von funktionierender und möglichst fehlerfreier Software abhängig. Deshalb ist die Pflege aller Software-Artefakte eine wichtige und große Herausforderung für das Software-Engineering. Eine Zukunft mit robuster Software hängt in erster Linie von der Fähigkeit ab, den vorhandenen Quellcode zu verstehen, da damit die meiste Zeit verbracht wird.
Programmverständnis ist der kognitive Prozess des Verstehens von Quellcode. Da dieser kognitive Prozess intern abläuft, ist ein zuverlässiges Beobachten und ein genaues Messen mit erheblichen Schwierigkeiten verbunden. Jahrzehntelange Forschung hat zwar grundlegende Modelle des Programmverständnisses entwickelt, aber das Bild von Programmverständnis weist noch immer erhebliche Wissenslücken auf.
Neuartige psychophysiologische und nicht-invasive human-bildgebende Verfahren bieten zusätzliche Perspektiven auf das Programmverständnis, die neue Erkenntnisse versprechen. In den letzten Jahren haben diese Erfassungsmöglichkeiten die Software-Engineering-Forschung durchdrungen. Zu den Messverfahren gehören Eyetracking und physiologische Sensoren, aber auch nicht-invasive Human-Bildgebung, wie die funktionelle Magnetresonanztomographie (fMRT). Diese innovativen Messverfahren ermöglichen es Forschenden, kognitive Prozesse objektiver und genauer zu verfolgen und auszuwerten.
Ziele: Diese Dissertation zielt darauf ab, Software-Engineering durch ein besseres Erfassen des Programmverständnisses voranzubringen. Dafür werden psychophysiologische und nicht-invasive human-bildgebende Verfahren angewendet und verfeinert. Es werden zwei Ziele verfolgt:
Zum einen wird ein Framework für Experimente zum Programmverständnis, die mit Human-Bildgebung, Psychophysiologie, Eyetracking und Verhaltensmethoden durchgeführt werden, entwickelt. Bei der Human-Bildgebung erfolgt die Konzentration auf die funktionelle Magnetresonanztomographie (fMRT), da sie kognitive Prozesse mit hoher Detailschärfe entschlüsseln kann. Das entwickelte Framework bietet eine detaillierte, multimodale Sicht auf das Programmverständnis, die es ermöglicht, auch kleine Effekte zu untersuchen.
Zum anderen wird der zugrunde liegende kognitive Prozess des Programmverständnisses durch den Einsatz des aufgestellten Frameworks analysiert. Ein Hauptaugenmerk liegt dabei auf dem Erfassen des effizienten Top-Down-Verstehens von Quellcode. Zusätzlich wird die Kognition beim Programmieren mit gängigen Komplexitätsmetriken von Quellcode verknüpft und im Zusammenhang ausgewertet.
Methodik und Ergebnisse: Um die Ziele zu erreichen, werden eine Reihe empirischer Studien zum Programmverständnis durchgeführt. In diesen Studien werden fMRT, Psychophysiologie sowie Eyetracking verwendet und miteinander kombiniert. Während der Experimente erfolgt eine Entwicklung und Verfeinerung eines multimodalen Experimentframework, um das Programmverständnis mit einer neurokognitiven Perspektive zu beleuchten. Es wird dokumentiert, dass das entwickelte Framework einen zuverlässigen Ansatz bietet, um kognitive Prozesse beim Programmieren zu quantifizieren und zu untersuchen.
Weiterhin wird die neurokognitive Perspektive des Programmverständnisses erforscht, um etablierte Programmverständnismodelle zu validieren und zu erweitern. Im Kontext dessen wird belegt, dass das Top-Down-Verständnis das gleiche Netzwerk von Gehirnbereichen aktiviert, aber zu geringerer kognitiver Last führt.
Es wird demonstriert, wie das entwickelte Experimentframework und fMRT als Messverfahren im Software-Engineering verwendet werden können, um in langjährigen Debatten objektive Daten zu bieten. Dabei wird insbesondere gezeigt, weshalb gängige, aber in Frage gestellte Komplexitätsmetriken von Quellcode tatsächlich nur eine begrenzte Vorhersagekraft auf die erforderliche kognitive Last beim Verstehen von Quellcode haben.
Schlussfolgerung: In interdisziplinärer Forschung wird nachgewiesen, dass nicht-invasive human-bildgebende Verfahren wie die fMRT, kombiniert mit Psychophysiologie, Eyetracking sowie Verhaltensmethoden für die Software-Engineering-Forschung von erheblichem Vorteil sind. Diese Dissertation bietet eine belastbare Grundlage für die weitere Untersuchung der neurokognitiven Perspektive auf das Gehirn von Programmierern. Damit wird ein entscheidender Beitrag für ein erfolgreiches Software-Engineering geleistet.
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:79002 |
Date | 06 May 2022 |
Creators | Peitek, Norman |
Contributors | Siegmund, Janet, Apel, Sven, Weimer, Westley, Siegmund, Janet, Technische Universität Chemnitz |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | English |
Detected Language | German |
Type | info:eu-repo/semantics/publishedVersion, doc-type:doctoralThesis, info:eu-repo/semantics/doctoralThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Relation | 10.5281/zenodo.5625142 |
Page generated in 0.0049 seconds