Ermitteln des Aufmerksamkeitsfokus beim Browsen von API-Dokumentation

Beschreibung

In dem oben genannten Projekt werden die einzelnen Tätigkeiten eines Programmierers zwecks detaillierter Analyse aufgezeichnet. Eine häufige Aktion und Arbeit eines Programmierers ist das Suchen in der Dokumentation einer Bibliothek, um z.B. eine passende Methode aus einer API auszuwählen.

Es ist von großem Interesse, feststellen zu können, nach was und auf welche Weise ein Programmierer zu einem Zeitpunkt sucht. Schon eine einfache Aussage über den Aufmerksamkeitsfokus auf z.B. eine Methode einer Klasse kann genügen um festzustellen,

Solche einzelnen Durchsuchaktionen - üblicherweise "Browsen" genannt - müssen automatisch aufgezeichnet werden können, um eine systematische Beobachtung einer größeren Gruppe von Programmierern durchführen zu können.

Das Ergebnis einer solchen Aufzeichnung wäre eine XML-basierte Liste von "Browse"-Ereignissen. Diese könnten grafisch in Form von zweidimensionalen Plots aufbereitet werden, um z.B. zu illustrieren

Aufgabe

Ziel dieser Arbeit ist es, diese automatische Aufzeichnung zu realisieren und in der Praxis einzusetzen:

  1. Es gilt eine allgemeine Bibliothek für das Verfolgen von Browsing-Aktionen in HTML-Code zu entwickeln. Diese wird wahrscheinlich auf asynchronem Javascript und XML (AJAX) basieren. Hier eine Liste der Anforderungen:
    1. Die Bibliothek ist in der Lage bei folgenden Ereignissen Beginn und Ende oder Auftrittszeitpunkt zu loggen:
      1. HTML-Seite im Browser geladen
      2. Anchor-Tag im Sichtfenster des Browsers sichtbar
      3. Link angeklickt.
      4. (Optional) Mausbewegung
      5. (Optional) Markierung und Kopieren
    2. Die Daten werden zentral auf einem Server in Form von XML oder in einer Datenbank gespeichert.
    3. Es existiert ein Session-Konzept, d.h. ein Benutzer kann eindeutig zugeordnet werden (IP ist nicht genug).
    4. Es besteht eine hinreichend intelligente Heuristik zum Erkennen von Inaktivität.
    5. Es besteht eine hinreichend intelligente Heuristik zum Erkennen von Erreichen einer Seite via externer Navigation (Google, Bookmarks, etc = Referrer).
    6. Es besteht eine hinreichend intelligente Heuristik zum Erkennen von Volltextsuche auf der einer Seite mittels Browserfeatures (STRG+F, etc).
  2. Diese Bibliothek soll dann für API-Dokumentation, welche mit JavaDoc generiert wurde, eingesetzt werden.
  3. Bei einem laufenden Projekt oder während eines Experimentes wird das entstandene Werkzeug eingesetzt und evaluiert.
  4. Zusätzlich kann eine geeignete Auswertung der Durchsuchereignisse erfolgen, d.h. das Zusammenfassen der Daten in Form von Fokuscluster, typischer Suchpfade und Qualitäten des Durchsuchens. Alternativ kann auch an einer guten grafischen Darstellung der Aufzeichnungen gearbeitet werden, die solch explorative Datenarbeit gut unterstützt.

Wie üblich schließt die Arbeit mit einer schriftlichen Ausarbeitung und einem Vortrag ab.

Diskussion der Ziele, die mit dem Tool erreicht werden können

Zuerst wollen wir die folgenden zwei Gebiete unterscheiden, auf dem das Werkzeug nützlich sein könnte:

  1. Einsatz in der Praxis
  2. Einsatz im Labor

Beide Domänen haben ganz andere Anforderungen und Bedürfnisse.

  1. Praxis
    1. Einsatz in Systemen zur automatischen Verbesserung des Informationspräsentation.
      • Dies lässt sich am besten durch das Amazon-Feature "Benutzer, welche dieses Buch gekauft haben, haben auch dieses gekauft" erklären.
      • Es geht also um vollautomatischen Einsatz der gesammelten Daten zur Verbesserung der Darstellung des Inhalts der Webseite. Es werden bei diesem Ansatz keine wirklich neuen Inhalte generiert.
    2. Einsatz zur Ermittlung von Problemstellen in der Dokumentation
      • Es geht darum, dass das Browse-Verhalten der Benutzer herangezogen werden soll, um den Dokumentierenden des Systems Anhaltspunkte zu liefern, wo besondere Aufmerksamkeit gefordert ist.
      • z.B. könnte das System Mitteilungen ausgeben, welches die häufigst verwendeten Methoden sind. Dies kann dann helfen, Energien auf diese Methoden zu fokussieren.
    3. Einsatz zur Erkennung von strukturellen Problemen in der Website
      • Gelingt es aus dem Browse-Verhalten erfolgreich darauf zuschließen, wo in der Struktur der Website (im Falle von JavaDoc würde dies der Struktur der API selbst entsprechen), dann kann man gezielt Verbesserungen an diesem Punkt vornehmen.
      • Als Beispiel sei die Position des JPEG-Loaders in Java genannt, welcher eigentlich besser in Java2D aufgehoben wäre.

  1. Labor
    • Sammeln von Charakteristika über den Benutzer
      • Ist der Benutzer Experte oder Anfänger?
      • Durchsucht der Benutzer die Webseite flächendeckend oder zielgerichtet?
      • Welche Teile wurden wirklich betrachtet?
      • Lassen sich Session identifizieren?
      • War die Suche des Benutzers erfolgreich oder unerfolgreich.

Alte Beschreibung:

Offene Fragen

Betreuer

Diese Arbeit wird betreut von Christopher Oezbek und LutzPrechelt.

Quellen

Unterseiten

Comments