Interaktives Lehrbuch, Baukasten und Werkzeug in einem
Beim Entwickeln von Computer-Programmen nimmt die Fehlersuche einen immensen Raum ein. Oftmals gut die Hälfte der Zeit verbringen Programmierer:innen nur damit, Bugs aufzuspüren und sie zu beheben, erklärt CISPA-Faculty und Universitätsprofessor Dr. Andreas Zeller. Um ihnen die Arbeit zu erleichtern, forschen Wissenschaftler:innen an Tools, mit denen die Fehlersuche automatisiert und Bugs behoben werden können. Wie solche Werkzeuge und Techniken des automatischen Debuggings funktionieren und wie man sie in komplexen Programmen effektiv nutzen kann, bleibt dabei für Entwickler:innen häufig undurchsichtig. Mit dem „Debugging Book“ will Andreas Zeller Licht ins Dunkel bringen und gibt außerdem frische Impulse in die Lehre.
Andreas Zeller ist ein Macher. Einer der schnell und viel arbeitet – und gerne. Wie viel Zeit bei der Software-Entwicklung völlig sinnlos vergeudet wird, ärgert den 55-Jährigen deshalb kolossal. „Angenommen heute wird ein wissenschaftliches Paper über ein neues Debugging-Tool veröffentlicht. Dann dauert es oft noch sechs Monate bis es veröffentlicht und der Quellcode offengelegt wird. Forscher:innen müssen danach wieder Wochen und Monate investieren, um den riesigen Wust an Programmcode auseinanderzunehmen und zu verstehen, wie das Werkzeug arbeitet. Für einen guten wissenschaftlichen Prozess müsste der Code von vornherein offenliegen und es müsste Schritt für Schritt erklärt werden, wie das Tool funktioniert“, sagt Zeller.
Genau das hat er in seinem Online-Buch für verschiedene Debugging-Werkzeuge und -Techniken getan. „Ich habe mich hingesetzt und mir ein Werkzeug nach dem anderen angeschaut, sie genommen und in einer einfach zu lesenden und zu benutzenden Form noch einmal nachgebaut. So sieht man wie die einzelnen Teile zusammenspielen und Programmierer:innen lernen zu verstehen, wie die Werkzeuge funktionieren und können sich dann auch eigene bauen“, erklärt Zeller. Die einzelnen Kapitel hat er mit Programmcode-Stücken, die live ausführbar sind und in andere Programme eingebaut werden können, illustriert. So können seine Leser:innen mit den Werkzeugen erstmal im Kleinen experimentieren, bevor sie ins Große gehen. „Bisher sitzen Doktorand:innen oft über Jahre an einem Werkzeug und versuchen das für sehr komplexe Systeme zum Laufen zu bringen. Dabei gibt eine Reihe von Sackgassen und sie sind oft gezwungen wieder alles vom Kopf auf die Füße zu stellen. Diese Entwicklungsseite lässt sich um ein Vielfaches verringern.“
Das „Debugging Book“ mit seinen Erklärungen, Videos, Folien und Codes ist in den vergangenen Monaten entstanden und steht im Netz kostenlos zur Verfügung. Zeller nutzt es in seinen Lehrveranstaltungen an der Universität des Saarlandes. „Ich habe meine Vorlesungen komplett umgestaltet. Jetzt bekommen meine Studierenden das Buch und arbeiten an kleinen Projekten. Und sie kommen damit sehr schnell zu Ergebnissen und es bleibt Zeit für andere Dinge. Die Resonanz war sehr positiv.“ Darüber hinaus ließen sich mit dem Programm auch große Aufgaben erfüllen. Einige seiner Doktorand:innen nutzten die Beschreibungen der Algorithmen, um selbst neue Werkzeuge für die Fehlersuche zu erstellen. Das Debugging Book bleibt dabei work in progress. „Es kann ständig erweitert werden. Viele Leute schicken mir zum Beispiel Beschreibungen ihrer eigenen Algorithmen“, sagt Zeller und fügt noch hinzu: „Es wäre schön, wenn sich eine solche Arbeitsweise generell in der Software-Entwicklung etablieren würde.“