LIVE: Empirische Studien über die Auswirkungen von Liveness auf das Programmieren
Zusammenfassung der Projektergebnisse
Liveness in Programmierwerkzeugen ist der Eindruck, ein Programm zu verändern, während es läuft. Viele Werkzeuge einschließlich kommerzieller Programmiersysteme wie MS Excel und Jupyter Notebooks unterstützen Liveness. Während Werkzeugentwickelnde annehmen, dass Liveness die Programmiererfahrung verbessert, ist diese Annahme nur unzureichend empirisch belegt. Dieses fehlende Wissen kann dazu führen, dass Liveness nicht bestmöglich eingesetzt wird und so unnötiger Entwurfs- und Implementierungsaufwand entsteht. In diesem Projekt haben wir untersucht, wie Live-Werkzeuge das Debugging beeinflussen. In zwei kontrollierten Experimenten untersuchten wir die Auswirkungen von Aufgabenkomplexität und verzögerten Interaktionen auf den Einfluss von Live-Werkzeugen. Im Gegensatz zu früheren Experimenten hatten unsere Teilnehmenden substanzielle Erfahrung mit diesen. Das erste Experiment testete, ob der Einfluss von Live-Werkzeugen auf die Debugging-Dauer bei einfachen und komplexen Aufgaben unterschiedlich ist. Das Experiment hat gezeigt, dass Live-Werkzeuge die Debugging-Dauer signifikant verkürzen. Die Haupthypothese, dass die Aufgabenkomplexität den Effekt beeinflusst, hat sich nicht bestätigt. Dennoch weisen die Ergebnisse darauf hin, dass die Aufgabenkomplexität die Auswirkungen beeinflusst, allerdings weniger als der Pilot vermuten ließ. Für Forschende und Entwickelnde zeigen die Ergebnisse, dass Programmierende von Live-Werkzeugen profitieren können, aber auch, dass die Aufgabenkomplexität und die Erfahrung der Teilnehmenden mit Liveness beim Planen von Studien oder der Entwicklung von Werkzeugen berücksichtigt werden sollten. Mit dem zweiten Experiment wollten wir die Ergebnisse des ersten Experiments besser verstehen. Nach der Information-Foraging-Theorie gingen wir davon aus, dass Live-Werkzeuge die wahrgenommenen Kosten für den Zugriff auf dynamische Informationen verringern, sodass Programmierende häufiger auf sie zugreifen, wenn sie hilfreich sind. Daher haben wir getestet, ob Programmierende Live-Werkzeuge seltener verwenden, wenn der Zugriff auf sie durch eine künstliche Verzögerung erschwert wird. Die erhobenen Daten reichen nicht für eine volle Analyse, zeigen aber auch keinen deutlichen Rückgang der Nutzung. Eine laufende post hoc-Analyse anhand von Edit-Run-Zyklen deutet jedoch darauf hin, dass sich die Arbeitsabläufe der Teilnehmenden verändert haben. Um andere Forschende darin zu unterstützen, die Komplexität der Aufgaben in ihren Studien zu verstehen und zu formen, haben wir eine Sammlung von Faktoren erstellt und publiziert, die dabei hilft, die Komplexität von Programmwartungsaufgaben zu beeinflussen. Diese Sammlung erlaubt es Forschenden, sich bewusst für ein Komplexitätsniveau ihrer Aufgaben zu entscheiden. Außerdem führte unser Projekt zu einem neuartigen Konzept, Debugging durch Wettbewerbe zu lehren, und zu verbesserten Anordnungen für weitere Liveness-Studien in unserer Gruppe.
Projektbezogene Publikationen (Auswahl)
-
Competitive Debugging: Toward Contests Promoting Debugging as a Skill. Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, 172-184. ACM.
Rein, Patrick; Beckmann, Tom; Geier, Leonard; Mattis, Toni & Hirschfeld, Robert
-
Example Mining. Companion Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming, 60-66. ACM.
Krebs, Eva; Rein, Patrick & Hirschfeld, Robert
-
Materials for Conducting Debugging Contests
Rein, Beckmann, Geier, Mattis & Hirschfeld
-
Toward Understanding Task Complexity in Maintenance-Based Studies of Programming Tools. In: Proceedings of the International Workshop on Programming Experience (PX/22) 2022
Rein, Beckmann, Mattis & Hirschfeld
-
Dataset for Too Simple? Notions of Task Complexity used in Maintenance-based Studies of Programming Tools. Version 1.0
Rein, Beckmann, Krebs, Mattis & Hirschfeld
-
StarTrack. Version 0.8.0
Rein & Hirschfeld
-
Structured Editing for All: Deriving Usable Structured Editors from Grammars. Proceedings of the 2023 CHI Conference on Human Factors in Computing Systems, 1-16. ACM.
Beckmann, Tom; Rein, Patrick; Ramson, Stefan; Bergsiek, Joana & Hirschfeld, Robert
-
Too Simple? Notions of Task Complexity used in Maintenance-based Studies of Programming Tools. 2023 IEEE/ACM 31st International Conference on Program Comprehension (ICPC), 254-265. IEEE.
Rein, Patrick; Beckmann, Tom; Krebs, Eva; Mattis, Toni & Hirschfeld, Robert
-
Toward Studying Example-Based Live Programming in CS/SE Education. Proceedings of the 2nd ACM SIGPLAN International Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments, 17-24. ACM.
Krebs, Eva; Mattis, Toni; Rein, Patrick & Hirschfeld, Robert
-
Artifact for Does Task Complexity Moderate the Benefits of Liveness? - A Controlled Experiment. Version 1.0
Rein, Ramson, Beckmann & Hirschfeld
-
Broadening the View of Live Programmers. The Art, Science, and Engineering of Programming, 8(3).
Rein, Patrick; Flach, Christian; Ramson, Stefan; Krebs, Eva & Hirschfeld, Robert
-
Does Task Complexity Moderate the Benefits of Liveness? A Controlled Experiment. The Art, Science, and Engineering of Programming, 9(1).
Rein, Patrick; Ramson, Stefan; Beckmann, Tom & Hirschfeld, Robert
-
MµSE: Supporting Exploration of Software-Hardware Interactions Through Examples. Proceedings of the CHI Conference on Human Factors in Computing Systems, 1-16. ACM.
Methfessel, Paul; Beckmann, Tom; Rein, Patrick; Ramson, Stefan & Hirschfeld, Robert
-
SpecTacles: Supporting Control Flow Comprehension of Software Developers in TLA+. 2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 15, 174-186. IEEE.
Stachnik, Daniel; Beckmann, Tom; Rein, Patrick & Hirschfeld, Robert
