Studienarbeit

Animation vergangener Codeänderungen von Java-Methoden

Stand der Dinge 5.12.05:

Die Auflistung ist als ungefähre zeitliche Reihenfolge gedacht

  • Allgemeines:
    • Umgang mit Eclipse: in arbeit/momentan ausreichend
    • Eclipse Plugin Konzept verstehen: in arbeit/momentan ausreichend

  • ECG Eclipse Sensor:
    • vorhandenen Sensor verstehen: erledigt
    • Sensor erweitern:
      • Listener identifizieren: Welche Listener werden benötigt(codechange); was liefern die Events an Informationen… erledigt(~90%)
      • Code Diff einsammeln: Woher bekommt man den eigentlichen Code Diff… momentan in arbeit
      • Entscheidung treffen: Welche Daten werden benötigt? tbd
      • ECG Nachrichten verstehen: tbd
      • eigene Nachrichten erzeugen: tbd
      • Funktionalität in den Sensor integrieren: tbd

  • ECG:
    • Fragen klären: muss auf Seiten des ECG etwas verändert werden(neuer filewriter ect.)? tbd
    • ...

  • 'Replay Plugin': tbd
    • ...

Stand der Dinge 20.12.05:

  • Listener identifizieren: org.eclipse.jdt.core.IElementChangedListener : Wird bei jedem Code Change innerhalb eines Java-Projektes benachrichtigt.

  • Code Diff einsammeln:
Bin an diesem Punkt auf ernsthafte Probleme gestossen, da das org.eclipse.jdt.core.ElementChangedEvent leider keinen Hinweis darauf liefert, was sich konkret am Code geändert hat. Es liefert zwar einen Handle auf z.B. eine Klasse, innerhalb der etwas verändert wurde, sowie auch Hinweise darauf, das sich etwas an der Struktur geändert hat(Feld entfernt, Methode hinzugefügt ect.), aber keinerlei Informationen darüber, was sich genau geändert hat (keinen Code). Ausserdem, was noch problematischer ist, liefert es anscheinend auch keine Informationen darüber, in welchem Element unterhalb der Klassenstruktur(d.h. in welcher Methode) sich etwas geändert hat.

D.h., wenn sich innerhalb einer Methode etwas ändert, erhält man nur die Information, das sich etwas an der Klasse geändert hat. Habe über verschiedene andere Möglichkeiten nachgedacht, um an den geänderten Code zu kommen(local history?), das Problem ist dabei allerdings nicht nur, einen Code Diff ohne allzu viel Aufwand zu bekommen, sondern eben zusätzlich noch an die Information zu kommen, an welchem Java-Element(also in welcher Methode) sich etwas geändert hat.

tbs(to be solved :))

Die Arbeit ist vom 20.12.2005 bis ca. mitte Februar 2006 aufgrund anderer universitärer Veranstaltungen unterbrochen.

Comments