Bachelorarbeit (abgeschlossen)
Automatisches Erkennen von Trial-and-Error-Episoden beim Programmieren
Projekte
Error prevention in software development
Art
50% Konzeption, 50% Implementation
Problembeschreibung
Nicht selten wird beim Programmieren einfach geraten, z.B. bei den Indexgrenzen einer Zählschleife: Beginnt es bei 0? Endet es bei count+1? Muss es <= statt < heißen? Man testet das Programm kurz, rät eine andere Zählbedingung, testet wieder… solange bis es zu passen scheint. Oftmals ist es Bequemlichkeit (schnell mal Testen ist leichter als gründlich drüber nachdenken), oftmals aber auch Unwissen. Aus diesen Gründen gelten solche Programmiertechniken als besonders fehlerträchtig, zumal das Testen vermutlich auch nicht ausreichend war. Im Rahmen der Forschung über Fehlerursachen sollen solche Verhaltensweisen untersucht werden. Dazu sollten Trial-and-Error-Episoden möglichst automatisch erkannt werden können, um nachträglich zu prüfen, ob die entsprechend erstellten Codeteile eine erhöhte Defektrate haben oder nicht.
Aufgabe
Ziel dieser Arbeit ist es, einen geeigneten Trial-and-Error-Episodenerkenner auf Basis des
Mikroprozesses, also der Aktivitäten eines Programmierers, zu realisieren. Dazu ist zunächst zu klären, wie Trial-and-Error-Phasen aussehen können. Die Erkennung ist danach im Rahmen der
Mikroprozessaufzeichnung mit dem
ElectroCodeoGram zu realisieren, welches schon eine Schnittstelle für Episodenerkenner bereit stellt.
Der Ablauf der Arbeit ist grob wie folgt:
- Einarbeitung in das Forschungsthema und die vorliegenden Anforderungen und Probleme
- Formale Beschreibung, was eine Trial-and-Error-Episode ist aufgrund von Befragungen oder Beobachtungen. Dieser Teil der Arbeit kann deutlich ausgeweitet werden, wenn es dazu begründeten Anlass gibt. Die Implementierung kann dann sogar wegfallen.
- Kennenlernen der technischen Umgebung
- Entwurf und Begründung der entsprechenden Entscheidungen
- Implementation und ausreichende Dokumentation
- Einsatz in einer kleinen Fallstudie
Die Arbeit schließt wie üblich mit einer Ausarbeitung und einem Vortrag ab.
Durchführung
Die Arbeit wurde durchgeführt von
Hannes Restel und betreut von
SebastianJekutsch und
LutzPrechelt.
Detailliertere Informationen sind hier zu bekommen:
Ergebnis
> die fertige Ausarbeitung
> die referenzierten Videos
> die Software
> Glossar und Begriffserklärungen