Forschungsthemen
[] Flexible Codemodifikation im Elucidative Programming
Das Elucidative Programming (EP) ist eine neue, hypertextbasierte Art der Softwaredokumentation. Es werden so genannte Tutorials erzeugt, die neben Text auch Quellcodeausschnitte oder Hyperlinks auf Quellcode enthalten. Zur Erzeugung und Wartung solcher Tutorials ist Werkzeugunterstützung nützlich, beispielsweise der am Lehrstuhl entwickelte Tutorialeditor DEFT. In DEFT werden Codeausschnitte nicht physisch in das Tutorial eingefügt, stattdessen werden Referenzen zwischen Quellcode und der entsprechenden Stelle im Tutorial gehalten, welche erst beim Export in ein statisches Format, z.B. HTML oder PDF aufgelöst werden. Ändert sich der referenzierte Quellcode, werden die eingebetteten Codeausschnitte somit automatisch aktualisiert. Oftmals möchte man in Tutorials aber den Code modifiziert darstellen, z.B. für Methoden nur die Signatur, oder aus einer Methode nur ausgewählte Statements. Ebenfalls wünschenswert ist, erläuternde Kommentare einzufügen, die im Originalcode nicht vorhanden sind. Derzeit funktionieren diese so genannten Formate derart, dass angegeben wird, welche Teile des Syntaxbaums des Codeausschnittes herausgefiltert und ggf. durch Alternativtext ersetzt werden sollen. Dieser Ansatz hat jedoch einige Unzulänglichkeiten: - Der Alternativtext ist eine reine Zeichenkette. Es ist nicht möglich, ihn beispielsweise als Kommentar auszuzeichnen und ins Syntaxhighlighting einzubeziehen. - Es ist nicht möglich zu definieren, welche Auswirkungen ein Weglassen bestimmter Tokens auf das Layout des restlichen Codes hat. Sollen existierende Leerzeichen und Leerzeilen beibehalten werden oder nicht? Sollen neue Leerzeichen und Leerzeilen eingefügt werden? - Manchmal möchte man gar keinen Code auslassen/ersetzen, sondern durch Farbwahl bestimmte Stellen hervorheben. Auch eine Kombination von farblicher Hervorhebung und Auslassung von Code ist nützlich. Das ist derzeit noch nicht möglich. In dieser Arbeit ist zunächst zu untersuchen, welche Art von Codemodifikationen und -hervorhebungen in der Praxis verwendet werden. Es sollen sowohl Online-Tutorials als auch gedrucke Werke, z.B. Programmierlehrbücher, in die Betrachtung einbezogen werden. Ebenfalls zu untersuchen ist, ob es bereits Ansätze gibt, Codeausschnitte (semi)automatisch zu verändern. Auf den Rechercheergebnissen aufbauend ist der bisherige Mechanismus zur Codefragmentmodifikation in DEFT zu erweitern, um eine umfangreichere und flexiblere Spezifikation für Veränderungen und Hervorhebungen von Code zu ermöglichen.
Betreuer: Andreas Bartho