105
Diplomarbeit Qualitative und quantitative Analyse von Interaktionsaufzeichnungen vorgelegt von Christian Spannagel [email protected] 21. Januar 2003 Technische Universität Darmstadt Fachbereich Informatik Fachgebiet Praktische Informatik Betreuer: Prof. Dr. Ulrik Schroeder Prüfer: Prof. Dr. Wolfgang Henhapl

Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Diplomarbeit

Qualitative und quantitative Analysevon Interaktionsaufzeichnungen

vorgelegt von

Christian [email protected]

21. Januar 2003

Technische Universität DarmstadtFachbereich Informatik

Fachgebiet Praktische Informatik

Betreuer: Prof. Dr. Ulrik SchroederPrüfer: Prof. Dr. Wolfgang Henhapl

Page 2: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Eidesstattliche Erklärung

Ich versichere an Eides statt, dass ich die vorliegende Diplomarbeit selbstständig verfasst,keine anderen als die angegebenen Quellen und Hilfsmittel benutzt sowie alle wörtlichoder sinngemäß übernommenen Stellen in der Arbeit gekennzeichnet habe. Diese Arbeithat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.

Darmstadt, den 21. Januar 2003

Christian Spannagel

Page 3: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Vorbemerkungen

Ich möchte darauf hinweisen, dass der Einfachheit halber im Text der männlichen Formbestimmter Begriffe (Benutzer) der Vorzug gegenüber der Schrägstrich-Schreibweise (Be-nutzer/Benutzerinnen) oder Groß-I-Schreibweise (BenutzerInnen) gegeben wurde. Derweibliche Part ist aber immer implizit enthalten.

Zum anderen habe ich der besseren Lesbarkeit wegen darauf verzichtet, bei Klassenna-men (JEditorPane) konsequent die Package-Einordnung (javax.swing.JEditorPane)mit anzugeben, sofern dies aus dem Kontext ersichtlich oder nicht von Belang ist.

In UML-Klassendiagrammen sind außerdem immer nur die im jeweiligen Kontext rele-vanten Attribute und Methoden eingetragen und nicht alle zur Klasse gehörigen.

Page 4: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Inhaltsverzeichnis

1. Einleitung 11.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1. Beispiel 1: Analyse von Videoaufzeichnungen . . . . . . . . . . . . 21.1.2. Beispiel 2: Untersuchung der Benutzung von Lernsoftware . . . . 3

1.2. Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3. Begriffsbestimmungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3.1. Benutzer-Programm-Interaktion . . . . . . . . . . . . . . . . . . . 41.3.2. Interaktionsaufzeichnung . . . . . . . . . . . . . . . . . . . . . . . 61.3.3. Graphische Benutzungsschnittstelle . . . . . . . . . . . . . . . . . 71.3.4. Capture&Replay-Programm . . . . . . . . . . . . . . . . . . . . . 81.3.5. Qualitative Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3.6. Quantitative Analyse . . . . . . . . . . . . . . . . . . . . . . . . . 10

2. Anwendungsfelder 122.1. Fokus Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2. Fokus Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3. Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3.1. Beispiel 1: Nachvollziehen von Lernwegen in Hypertext-Systemen 142.3.2. Beispiel 2: Ermitteln von Suchstrategien . . . . . . . . . . . . . . 162.3.3. Beispiel 3: Ergonomische Evaluation eines Editors . . . . . . . . . 18

2.4. Folgerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.1. Automatische Erkennung von Verhalten . . . . . . . . . . . . . . 192.4.2. Unterschiedliche Granularität . . . . . . . . . . . . . . . . . . . . 202.4.3. Erweiterbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3. Die Basissysteme 213.1. Jacareto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.1.1. Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.1.2. Die Aufzeichnung . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.1.3. Die Wiedergabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.1.4. Starten der Zielanwendung . . . . . . . . . . . . . . . . . . . . . . 263.1.5. Komponentenverwaltung . . . . . . . . . . . . . . . . . . . . . . . 273.1.6. Weitere Merkmale von Jacareto . . . . . . . . . . . . . . . . . . . 28

3.2. CleverPHL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3. Systeme zur quantitativen Analyse . . . . . . . . . . . . . . . . . . . . . 30

3.3.1. SPSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.2. Fathom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3.3. Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.4. Folgerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4. Formale Beschreibung 384.1. Qualitative Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

i

Page 5: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

4.1.1. Aufzeichnung und Aufzeichnungselemente . . . . . . . . . . . . . 384.1.2. Aufzeichnungssprache und Aufzeichnungsgrammatik . . . . . . . . 394.1.3. Strukturanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2. Quantitative Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2.1. Erstellung eines Datensatzes aus einer Aufzeichnung . . . . . . . . 454.2.2. Erstellung eines Datensatzes aus mehreren Aufzeichnungen . . . . 46

5. Implementierung 475.1. Qualitative Analyse der Aufzeichnung . . . . . . . . . . . . . . . . . . . . 47

5.1.1. Der Strukturbaum . . . . . . . . . . . . . . . . . . . . . . . . . . 475.1.2. Der Tokenizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.1.3. Erkennung und Bildung von Strukturelementen . . . . . . . . . . 515.1.4. Beispiele einiger Strukturelemente . . . . . . . . . . . . . . . . . . 545.1.5. Festlegung der Prioritäten . . . . . . . . . . . . . . . . . . . . . . 565.1.6. Spezielle Wurzelelemente . . . . . . . . . . . . . . . . . . . . . . . 565.1.7. Ergänzungen und Bemerkungen . . . . . . . . . . . . . . . . . . . 58

5.2. Quantitative Analyse der Aufzeichnung . . . . . . . . . . . . . . . . . . . 595.2.1. Datensätze und Datenfälle . . . . . . . . . . . . . . . . . . . . . . 595.2.2. Filterung von Strukturelementen . . . . . . . . . . . . . . . . . . 605.2.3. Konvertierung von Strukturelementen in Datenfälle . . . . . . . . 605.2.4. Integration in CleverPHL . . . . . . . . . . . . . . . . . . . . . . 61

5.3. Weitere Ergänzungen des Frameworks . . . . . . . . . . . . . . . . . . . . 625.3.1. Eine Queue für allgemeine Ereignisse . . . . . . . . . . . . . . . . 625.3.2. Wiedergabe von Strukturelementen . . . . . . . . . . . . . . . . . 635.3.3. Selektive Wiedergabe . . . . . . . . . . . . . . . . . . . . . . . . . 645.3.4. Editoren für Strukturelemente . . . . . . . . . . . . . . . . . . . . 64

6. Analysebeispiele 666.1. Analyse von Klickverhalten . . . . . . . . . . . . . . . . . . . . . . . . . 666.2. Nachvollziehen von Lernwegen in Hypertext-Systemen . . . . . . . . . . . 676.3. Ermitteln von Suchstrategien . . . . . . . . . . . . . . . . . . . . . . . . 716.4. Ergonomische Evaluation eines Editors . . . . . . . . . . . . . . . . . . . 74

7. Ethische Aspekte 76

8. Weiterführende Ideen 778.1. Einfaches Einbringen neuer Strukturelemente . . . . . . . . . . . . . . . . 778.2. Persistenz von Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . 778.3. Gruppierung von Elementen zu einem Strukturelement . . . . . . . . . . 788.4. Whitespace-Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788.5. Einbringen prozeduraler Elemente . . . . . . . . . . . . . . . . . . . . . . 788.6. Überprüfung der Struktur bei Änderungen . . . . . . . . . . . . . . . . . 798.7. Laden anwendungsspezifischer Module . . . . . . . . . . . . . . . . . . . 798.8. Kombination mit Videoaufzeichnungen . . . . . . . . . . . . . . . . . . . 80

ii

Page 6: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

8.9. Videokonfrontation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

9. Fazit 82

A. Packages im Jacareto-Framework 83

B. Quelltexte 84B.1. Quelltext der Klasse MouseClick . . . . . . . . . . . . . . . . . . . . . . 84B.2. Quelltext der parse-Methode der Klasse MultipleMouseClick . . . . . . 88B.3. Quelltext der parse-Methode der Klasse FocusChange . . . . . . . . . . 91B.4. Quelltext der Klasse DCMouseClickConverter . . . . . . . . . . . . . . . 94

Literatur 95

iii

Page 7: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildungsverzeichnis

1. Benutzeraktionen auf einem Druckdialog . . . . . . . . . . . . . . . . . . 52. Screenshot der Software des Projektes CEKA . . . . . . . . . . . . . . . 173. Screenshot des Editors von LUCS . . . . . . . . . . . . . . . . . . . . . . 194. Klassen des Capture-Prozesses . . . . . . . . . . . . . . . . . . . . . . . . 235. Der Gang eines Mausereignisses durch diverse Instanzen . . . . . . . . . 246. Die Klasse Record und assoziierte Klassen . . . . . . . . . . . . . . . . . 257. Die Klassen Replay und Replayer . . . . . . . . . . . . . . . . . . . . . 268. Die Klasse Components und assoziierte Klassen . . . . . . . . . . . . . . 299. Das Hauptfenster von CleverPHL . . . . . . . . . . . . . . . . . . . . . . 3110. Die Anzeige des Komponentenbaums in CleverPHL . . . . . . . . . . . . 3111. Screenshot von SPSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3212. Screenshot von Fathom . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3313. Screenshot von Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3414. Die Struktur einer Mausbewegung . . . . . . . . . . . . . . . . . . . . . . 3515. Mehrdeutigkeit der Strukturierung . . . . . . . . . . . . . . . . . . . . . 3616. Angestrebte Darstellung der Aufzeichnungsstruktur . . . . . . . . . . . . 3717. Syntaxbäume zu Beispiel 4.3 . . . . . . . . . . . . . . . . . . . . . . . . . 4218. Strukturbaum einer Aufzeichnung . . . . . . . . . . . . . . . . . . . . . . 4819. Die Klasse Structure und assoziierte Klassen . . . . . . . . . . . . . . . 4920. Der Tokenizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5121. Die Klassen RecordTokenizer und RecordTokenizerState . . . . . . . 5222. Die Klassen DataSet und DataCase . . . . . . . . . . . . . . . . . . . . . 5923. Die Klasse Filter und Erbenklassen . . . . . . . . . . . . . . . . . . . . 6024. Das Datensatz-Fenster von CleverPHL . . . . . . . . . . . . . . . . . . . 6125. Fenster zur Erstellung eines neuen Datensatzes . . . . . . . . . . . . . . . 6226. Fenster zum Speichern eines Datensatzes als CSV-Datei . . . . . . . . . . 6227. Ein Editor für MouseClick-Strukturelemente . . . . . . . . . . . . . . . . 6528. Ein Datensatz mit Mausklick-Werten . . . . . . . . . . . . . . . . . . . . 6729. Analyse von Mausklicks in Fathom . . . . . . . . . . . . . . . . . . . . . 6830. Aufzeichnung einer Browser-Verwendung . . . . . . . . . . . . . . . . . . 7031. Strukturierte Aufzeichnung beim Zahlenstrahl-Spiel . . . . . . . . . . . . 7232. Auswertung mehrerer Aufzeichnungen des Zahlenstrahl-Spiels . . . . . . 7333. Eine Aufzeichnung der Benutzung des LUCS-Editors . . . . . . . . . . . 7534. Auswertung von LUCS-Aufzeichnungen in Fathom . . . . . . . . . . . . . 75

iv

Page 8: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Tabellenverzeichnis

1. Beispiel für die symbolische Repräsentation einer Benutzer-Programm-Interaktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2. Ereignisse, die atomare Benutzeraktionen repräsentieren . . . . . . . . . 223. Ein Datensatz mit vier Datenfällen . . . . . . . . . . . . . . . . . . . . . 454. Ein Datensatz von Mausklicks . . . . . . . . . . . . . . . . . . . . . . . . 46

v

Page 9: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

1. Einleitung

Beobachten ist ein elementar dichterischerVorgang. Auch die Wirklichkeit muss geformtwerden, will man sie zum Sprechen bringen.

Friedrich Dürrenmatt

You can observe a lot by watching.Yogi Berra

1.1. Motivation

Menschen beobachten Verhalten. Sie interessieren sich dafür, wie in bestimmten Situa-tionen und unter bestimmten Voraussetzungen gehandelt wird und versuchen, diesesVerhalten zu analysieren, zu interpretieren und zu klassifizieren. Es gibt Arbeits- undFreizeitverhalten, Kommunikationsverhalten, Verbraucherverhalten, Lernverhalten undFehlverhalten. Es gibt Verhalten in Gruppen und in Isolation, Verhalten im Alltag undin künstlich geschaffenen Umgebungen. Es gibt zuvorkommendes, aggressives, nachläs-siges, zwanghaftes, rationales und soziales Verhalten. Ganze Forschungsrichtungen wiedie Psychologie, die Soziologie und die Verhaltensforschung gründen sich auf die Beob-achtung und Interpretation von Verhalten.

Seit der Computer Einzug in unser tägliches Leben gefunden hat, schlüpfen Menschen indie Rolle von Benutzern. Im Umgang mit Software wie beispielsweise Textverarbeitungs-programmen zeigen sie Formen von Verhalten, die es zuvor noch nicht gegeben hat (dassogenannte Benutzerverhalten1). Neben dem Tippen von Text, das sie bereits von derVerwendung einer Schreibmaschine her kennen, öffnen und schließen sie Dateien, konfi-gurieren ihren Ausdruck in einem Druckdialog oder bedienen die Rechtschreibkorrektur.Tätigkeiten wie Surfen und Chatten gibt es in großem Umfang erst seit den 90er Jah-ren, in denen das Internet einer größeren Benutzergruppe zugänglich wurde. Menschenarbeiten und lernen mit dem Computer und verbringen ihre Freizeit mit ihm.

Es ist in vielen Zusammenhängen von großem Interesse, wie Menschen sich in der Be-nutzung eines Computers verhalten. Sei es, um herauszufinden, ob ein Programm leichtbedienbar ist, um den Lernfortschritt eines Benutzers bei der Verwendung einer Lern-software zu überprüfen oder um auf kognitive Strukturen bei den Benutzern selbst zuschließen.

Damit das Verhalten untersucht werden kann, muss es zunächst in einer geeignetenForm festgehalten werden. Im Weiteren wird dies mit dem Begriff Verhaltenserfassungbezeichnet. Die einfachste Form der Verhaltenserfassung ist die Beobachtung, bei der

1Benutzerverhalten hat es auch schon früher gegeben. In dieser Arbeit wird mit diesem Begriff lediglichdas Verhalten bezeichnet, das Menschen zeigen, wenn sie einen Computer bedienen, und nicht dieBenutzung anderer Gegenstände und Maschinen.

1

Page 10: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

der Beobachter interessierende Verhaltensaspekte notiert. Bei einem solchen Vorgehenist das Verhalten nur einmal beobachtbar; erscheint der notierte Vehaltensablauf zueinem späteren Zeitpunkt als unzureichend, so kann man sich das Verhalten nicht nocheinmal ansehen. Dies ist anders, wenn das Verhalten zunächst mit einer Videokameraaufgezeichnet wird. Das einmal gezeigte Verhalten (zumindest der visuelle und auditiveTeil) ist nun persistent. Es kann immer wieder ganz oder teilweise betrachtet werden,und man kann den Ablauf des Verhaltens auch zu einem späteren Zeitpunkt notieren.

Am Ende der Datenerfassung besitzt man eine oder mehrere Repräsentationen des zuuntersuchenden Verhaltens (z.B. Videoaufnahmen, Mitschriften, ...). Diese bilden dieGrundlage für die Verhaltensanalyse. In der Verhaltensanalyse werden bestimmte Aspek-te des Verhaltens genauer fokussiert. Man untersucht zum Beispiel, ob ein bestimmtesVerhalten gezeigt worden ist, wie oft ein bestimmtes Verhalten vorkommt und wie langebestimmte Verhaltenselemente gedauert haben. Von besonderem Interesse ist das Auf-spüren bestimmter Verhaltensmuster. Hierbei wird versucht, ähnliche Verhaltensabfolgenzu entdecken und zu markieren.

Wird Benutzerverhalten untersucht, so liegt es nahe, den Computer auch zur Erfassungund Analyse des Verhaltens zu nutzen. Es können z.B. in regelmäßigen ZeitabständenScreenshots angefertigt werden und so das Benutzerverhalten in besserer Qualität si-chern, als dies vielleicht durch Videoaufnahmen des Bildschirms möglich ist2. Surfver-halten auf Webseiten wird durch den Webserver automatisch mitgeloggt; die Logdateienkönnen anschließend die Basis für Analysen bilden. Eine weitere Form der Verhaltens-erfassung mit dem Computer ist die Aufzeichnung der Interaktionen zwischen Benut-zer und Programm. Hierbei werden z.B. Mausbewegungen, Tastatureingaben und Pro-grammzustandsänderungen gespeichert und können zu einem späteren Zeitpunkt wieder-gegeben werden (ähnlich wie Makros in einer Anwendungssoftware). Die Interaktionsauf-zeichnungen bieten außerdem sehr detailliertes Datenmaterial für die Verhaltensanalyse.

In dieser Arbeit wird ein Ansatz zur Analyse von Interaktionsaufzeichnungen vorgestellt.Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativund quantitativ zu untersuchen, und welches Potenzial in dieser Art der Verhaltensauf-zeichnung steckt.

1.1.1. Beispiel 1: Analyse von Videoaufzeichnungen

In soziologischen Studien wird häufig das zu untersuchende Verhalten auf Video auf-gezeichnet (Verhaltenserfassung) und im nachhinein untersucht (Verhaltensanalyse). Sowird beispielsweise der Interaktionsprozess in einer Teambesprechung aufgenommen undspäter nach den Kriterien Machtverhältnisse und Hilfeverhalten analysiert [KZ02]. Hier-zu betrachtet sich der Forscher das aufgezeichnete Video und fügt in einem Videoanalyse-

2Dieses Vorgehen ersetzt nicht die Videoaufzeichnung des Benutzerverhaltens vollständig, da Verhaltenwie Mimik, Gestik und sprachliche Äußerungen der Benutzer nicht erfasst wird.

2

Page 11: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

System Bemerkungen hinzu3. Diese Annotationen können dann die Basis für weitere,zum Teil automatisch ablaufende Analysen bilden.

In [KZ02] wird beschrieben, wie die Videoanalyse-Software THEME zur Untersuchungvon Gruppenprozessen eingesetzt wird. Zunächst wird das zu analysierende Verhaltenaufgezeichnet. Bevor mit der eigentlichen Analyse begonnen wird, muss eine Kodierungder interessierenden Elemente entwickelt werden. Anschließend wird während einer Be-trachtung des Videos mit Hilfe des Codes das Verhalten annotiert. Diese Annotationenbilden die Grundlage für die automatische Mustererkennung, die immer wiederkehrendeCodemuster entdeckt.

In [HB92] werden Kriterien für Videoannotations- und Videoanalyse-Systeme aufgeführt.Neben Anforderungen an die Benutzungsoberfläche und an die Kodierung und Darstel-lung der Daten werden auch Kriterien für die Analyse und Interpretation der Daten ent-wickelt. Hierzu zählt die Möglichkeit für den Benutzer, Ereignisse zu gruppieren und gan-ze Gruppierungen wiederzugeben, die Ergebnisse einer automatischen Mustererkennungzu betrachten, die Daten zu exportieren und quantitative Analysen wie Durchschnitts-und Varianzberechnungen durchzuführen.

1.1.2. Beispiel 2: Untersuchung der Benutzung von Lernsoftware

Computer spielen eine immer größere Rolle in Lernszenarien. Klassische Unterrichtsme-thoden beispielsweise werden ergänzt durch interaktive Lernmodule, mit denen Schülerden Lerngegenstand erforschen und sich in konstruktiver Weise Wissen aneignen können.Interaktiv bedeutet nach Baumgartner [Bau99] in diesem Zusammenhang, dass „[...] Be-nutzer nicht bloß Rezipienten sind, sondern in den medial vermittelten Informations-,Kommunikations und Lernprozess gestaltend eingreifen“. Diese neue Form des Lernenshat weitreichende Folgen für die Evaluation von Lernprozessen: Herkömmliche Metho-den, mit denen der Lernerfolg gemessen wird wie z.B. Reproduktion und Anwendung,sind nicht mehr adäquat für die Beurteilung von Lernerfolgen durch den Umgang miteinem interaktiven Medium. Es „[...] müssen bei der Evaluation interaktiver Medien vorallem die durch die Interaktivität angestoßenen Lernprozesse evaluiert werden“.

Auch die Evaluation der Software selbst sollte nach Baumgartner nicht durch eine ab-strakte inhaltliche Analyse erfolgen, da es nicht um die „inhaltliche statische Qualität“geht, sondern „darum, wie weit es in der Lage ist, Lernprozesse durch Interaktionen zuinitiieren oder zu unterstützen“. Auch hier muss also das Benutzerverhalten bei der Be-dienung der Lernsoftware untersucht werden. Der Computer bietet bei der Untersuchungsolchen Verhaltens neue Möglichkeiten. Neben klassischen Methoden wie Beobachtungund Befragung kann mit Hilfe geeigneter Software der Lernprozess protokolliert werden.

3Eine Reihe solcher Analysesysteme wird in [HB92] aufgeführt.

3

Page 12: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

1.2. Überblick

Im letzten Teil des ersten Kapitels werden zunächst einige Begriffe geklärt, welche imweiteren Verlauf der Arbeit immer wieder verwendet werden. Im zweiten Kapitel werdenmögliche Anwendungsfelder aufgezeigt, in denen es von Nutzen sein kann, Interaktions-aufzeichnungen nach qualitativen und quantitativen Gesichtspunkten zu analysieren. Indiesem Zusammenhang werden auch drei konkrete Beispiele angeführt, die in den dar-auffolgenden Abschnitten immer wieder der Veranschaulichung dienen.

Die Analysemechanismen werden bestehende Systeme nutzen bzw. in diese integriertwerden; diese Basissysteme werden im dritten Kapitel vorgestellt. Eine formale Beschrei-bung des Problems, die die Grundlage für die Entwicklung der zentralen Algorithmenbildet, wird im vierten Kapitel formuliert. Die Implementierung und Einbindung derAnalysemechanismen werden im darauffolgenden Teil der Arbeit vorgestellt. Im sechs-ten Kapitel werden noch einmal die drei anfänglichen Beispiele aufgegriffen; hier wirddie Verwendung der Analysemechanismen in konkreten Anwendungskontexten beschrie-ben. Nach ethischen Fragestellungen im siebten Kapitel werden im letzten Teil dieserArbeit weiterführende Ideen im Rahmen der Analyse von Interaktionsaufzeichnungenvorgestellt.

1.3. Begriffsbestimmungen

1.3.1. Benutzer-Programm-Interaktion

Der Begriff Benutzer-Programm-Interaktion bezeichnet den Prozess wechselseitigen Han-dels von Benutzer und Programm. Die jeweiligen Handlungen werden auch Benutzerak-tionen und Programmaktionen genannt. Sowohl Benutzer als auch Programm könnenagieren und reagieren. So veranlassen beispielsweise die Aktionen des Benutzers auf ei-nem Druckdialog das Programm dazu, entsprechend zu reagieren und das Druckformatgraphisch anzuzeigen (siehe Abbildung 1). Ist der Drucker nach dem Abschicken desDruckauftrages ausgeschaltet, agiert das Programm und lässt einen Dialog mit einerWarnmeldung erscheinen, auf die der Benutzer reagieren muss.

Benutzeraktionen werden über Eingabegeräte wie Maus oder Tastatur ausgelöst. Schoneine minimale Mausbewegung ist eine solche Aktion. Programmaktionen sind alle Be-rechnungen, die ein Programm ausführt; dies können z.B. Programmzustandsänderungensein, zu denen auch die Änderung der graphischen Benutzungsschnittstelle zu zählen ist.

Benutzer- und Programmaktionen müssen für die andere Partei nicht sichtbar sein; Pro-grammberechnungen sind an der Benutzungsschnittstelle häufig transparent, und auchBenutzeraktionen müssen nicht zwangsläufig an das Programm weitergereicht werden; sowerden Mausbewegungen von dem Programm nicht analysiert, wenn dies von dem Pro-grammierer nicht vorgesehen worden ist. Als Benutzer-Programm-Interaktion wird imstrengeren Sinn nur die Menge aller Aktionen verstanden, die beiden Parteien zugänglich

4

Page 13: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 1: Benutzeraktionen auf einem Druckdialog

ist, denn nur diese Aktionen sind Teil der Interaktion.

Wenn es allerdings um die Analyse von Benutzer-Programm-Interaktionen geht, so sindmitunter auch die Aktionen von Interesse, die der anderen Partei nicht sichtbar, dieunter Umständen aber für die Interpretation des Interaktionsgeschehens von Bedeutungsind. Im weiteren Sinn werden also alle Benutzer- und Programmaktionen unter denBegriff Benutzer-Programm-Interaktion gefasst, auch die für die jeweils andere Parteinicht sichtbaren. Diese ausgedehnte Definition bildet auch die Grundlage für diese Arbeit.

Ein anschauliches Beispiel für eine Benutzer-Programm-Interaktion ist der Spielverlaufeines Schachspiels: Sowohl der Benutzer als auch das Programm (in Form des Com-putergegners) steuern ihre Schachfiguren. Wenn der Benutzer einen Zug eingibt (Be-nutzeraktion), setzt das Programm in der graphischen Darstellung des Schachbretts dieentsprechende Figur des menschlichen Spielers auf das Zielfeld (Programmreaktion). DasProgramm kann auch aktiv Handlungen ausführen: Der Zug des Computergegners wirddurch das Programm selbst initiiert. Die Strategieberechnungen des Schachprogrammssind Programmaktionen, die dem Benutzer verborgen bleiben.

Im Folgenden wird anstelle von Benutzer-Programm-Interaktion auch nur von Interak-tion gesprochen.

5

Page 14: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

1.3.2. Interaktionsaufzeichnung

Eine Interaktionsaufzeichnung ist die Erfassung und Speicherung einer Benutzer-Pro-gramm-Interaktion4. Sowohl Benutzer- als auch Programmaktionen werden festgehaltenund für spätere Zwecke bewahrt. Eine Interaktionsaufzeichnung soll sowohl sichtbare alsauch unsichtbare Aktionen enthalten können, muss aber nicht zwangsläufig alle Aktionenspeichern. So kann eine Interaktionsaufzeichnung auch lediglich die Benutzeraktionenenthalten.

Eine Interaktionsaufzeichnung ist die Speicherung eines Interaktionsprozesses. Die Auf-zeichnungselemente sind daher nach ihrem zeitlichen Auftreten sortiert. Wenn man ineiner solchen Aufzeichnung nur die Benutzeraktionen betrachtet, so erhält man die zeit-liche Abfolge der Operationen, die ein Benutzer mit einem Programm durchgeführt hat.Eine Interaktionsaufzeichnung ist somit gespeichertes Benutzerverhalten.

Interaktionsaufzeichnungen können die Aktionen in unterschiedlichen Repräsentationenspeichern. So ist z.B. denkbar, eine Programmaktion wie das Anzeigen eines Druck-dialoges in einer textuellen Form zu repräsentieren (z.B. Druckdialog angezeigt) oderin einer graphischen (z.B. durch einen Screenshot und die Speicherung des Bildes ineiner Datei). Interaktionsaufzeichnungen können somit in der videoartigen Speicherungder Benutzer-Programm-Interaktion erfolgen, in dem aus dem Bildschirminhalt währenddes Vorganges ein Video erzeugt wird. Sie können auch aus einer symbolischen Repräsen-tation bestehen, in dem jede einzelne Benutzer- und Programmaktion geeignet kodiertund abgelegt wird (siehe Tabelle 1). Die erste Form hat den Vorteil, dass die Interak-tion jederzeit einfach betrachtet werden kann; die Analyse gestaltet sich hier allerdingsähnlich schwierig wie die Analyse von Videoaufzeichnungen. Die zweite Form bietet bes-sere Ansatzpunkte zur Analyse, da das Verhalten bereits erkannt ist; zum Betrachtender Interaktion muss allerdings das Programm erneut gestartet werden, und es müs-sen Mechanismen bereitstehen, die die gespeicherten Aktionen zum richtigen Zeitpunktin der korrekten Weise erneut auslösen, insofern dies nicht automatisch geschieht (wiebeispielsweise bei Programmaktionen).

Ist ein erneutes Betrachten der aufgezeichneten Interaktion möglich, so handelt es sichum eine Form des Application Output Recording (AOR), welches zum Ziel hat, die Aus-gaben eines Programmes und die Interaktionen mit dem Programm derart aufzuzeich-nen, dass das resultierende Datenmaterial zu einem späteren Zeitpunkt zur originalge-treuen Wiedergabe verwendet werden kann [BFMW97]. Im allgemeinen werden beimAOR verschiedene Datenströme erfasst wie beispielsweise die Bildschirmausgaben, dieAudioausgaben des Programms und die Benutzeraktionen wie Mausbewegungen undTastatureingaben, um diese in einer Form zu speichern, die als eigenständiges Medium

4Der Begriff Aufzeichnung bezeichnet im Deutschen sowohl den Prozess als auch das Resultat des Pro-zesses. Dieser Begriff wird hier je nach Kontext in der einen oder der anderen Bedeutung verwendet.In der Regel meint er aber das Resultat des Aufzeichnungsprozesses, z.B. wenn von der Analyse ei-ner Interaktionsaufzeichnung gesprochen wird. Wenn die Bedeutung nicht eindeutig aus dem Kontexthervorgeht, dann wird explizit auf diese hingewiesen.

6

Page 15: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Tabelle 1: Beispiel für die symbolische Repräsentation einer Benutzer-Programm-Interaktion

Benutzer ProgrammMaus bewegt –Auf Drucker-Icon geklickt –– Druckdialog angezeigtMaus bewegt –Druckformat gewählt –– Druckformat angezeigtAuf OK-Button geklickt –– Druckdialog unsichtbar gemacht

mit Hilfe eines entsprechenden Wiedergabeprogramms abgespielt und betrachtet werdenkann [Sch99, S.8].

In dieser Arbeit wird von einer symbolischen Repräsentation der Benutzer-Programm-Interaktion ausgegangen, da diese geeigneter für automatische Analysen ist. Die Mög-lichkeit, sich die aufgezeichnete Interaktion zu betrachten, ist aber dennoch gegeben(siehe weiter unten).

1.3.3. Graphische Benutzungsschnittstelle

Eine Schnittstelle bezeichnet nach DIN 44300 den Übergang an der Grenze zwischenzwei Einheiten mit vereinbarten Regeln für die Übergabe von Daten und Signalen. DieBenutzungsschnittstelle ist die Schnittstelle zwischen den technischen Systemen (Hard-ware und Software) und dem menschlichen Benutzer. Hier wird bestimmt, wie Menschund Maschine miteinander kommunizieren [Sch99, S.19].5

In [Sta96] wird unter graphischen Benutzungsschnittstellen eine Generation von Benut-zungsschnittstellen verstanden, die mit der Idee der Visualisierung von Daten und Ma-nipulation verbunden ist. Auf der Hardwareseite handelt es sich hier meist um einenBildschirm, der nicht nur Zeichen ausgeben, sondern auch beliebige Symbole wie Kreiseund Polygone und Bilder darstellen kann, und um Eingabegeräte wie eine Maus undeine Tastatur. Alle Operationen, die der Benutzer mit den Eingabegeräten vornimmt,werden unmittelbar auf dem Bildschirm sichtbar; bewegt er die Maus, so bewegt sich inanaloger Weise der Mauszeiger über den Bildschirm.

Graphische Benutzungsschnittstellen werden heute meist aus Systemen gebildet, die5Schließer erwähnt in [Sch99, S.19], dass die Begriffe Benutzungsschnittstelle und Benutzerschnittstellesowie Benutzungsoberfläche und Benutzeroberfläche synonym verwendet werden. Im eigentlichen Sin-ne handelt es sich um die Schnittstelle und Oberfläche der Benutzung und nicht des Benutzers; imAlltagsgebrauch wird eher letzteres verwendet.

7

Page 16: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

mehrere Fenster und Icons gleichzeitig auf einer Arbeitsoberfläche (Desktop) anzei-gen. Dieses Oberflächenparadigma zeichnet sich aus durch die Vergegenständlichung vonProdukten und Vorgängen in Form von Symbolen auf dem Desktop und durch die Mög-lichkeit, diese Symbole räumlich anzuordnen und direkt zu manipulieren, beispielsweisedurch ein Kontext-Menü oder durch Drag&Drop-Mechanismen [Lip99, S.17].

Im Englischen wird die graphische Benutzungsoberfläche mit dem Begriff Graphical UserInterface bezeichnet und mit GUI abgekürzt. Diese Abkürzung hat auch in die deutsch-sprachige Literatur Einzug gehalten.

1.3.4. Capture&Replay-Programm

Ein Capture&Replay-Programm erkennt und speichert die Benutzeraktionen wie Maus-bewegungen und Tastatureingaben auf dem GUI der sogenannten Zielanwendung undkann diese auch wieder abspielen. Das Erkennen wird als Capture-Prozess, das Wieder-abspielen als Replay-Prozess oder auch Playback bezeichnet. Der Capture-Prozess mussnicht alle Benutzeraktionen aufzeichnen; hier kann durchaus eine Auswahl erfolgen. Beider Wiedergabe bewegt sich der Mauszeiger wie von Geisterhand über das GUI derZielanwendung, die Tastatureingaben werden simuliert. Auch hier kann eine Auswahlsinnvoll sein, wenn nicht alle gespeicherten Benutzeraktionen wiedergegeben werden sol-len.

Die Wiedergabe kann unterschiedlich erfolgen. Zum einen können die aufgenommenenZeitabstände zwischen aufeinanderfolgenden Aktionen bei der Wiedergabe bewahrt wer-den (Echtzeitwiedergabe). Zum anderen können die Aktionen mit zuvor festgelegtenZeitabständen abgespielt werden (Festzeitwiedergabe). Hierbei können auch Aktionenweggelassen und nur die zentralen Ereignisse wiedergegeben werden.

Weiterhin lässt sich die Wiedergabe dadurch charakterisieren, ob die Aktionen tatsäch-lich auf der Zielanwendung ausgeführt werden (z.B. nach einem erneuten Start derZielanwendung), oder ob das Erscheinungsbild der Zielanwendung nur simuliert wird.Der erste Fall wird in dieser Arbeit mit ausführender Wiedergabe bezeichnet, der zweitemit simulativer Wiedergabe. Zur simulativen Wiedergabe ist es notwendig, dass währenddes Capture-Prozesses neben den Benutzeraktionen auch das graphische Erscheinungs-bild der Anwendung gesichert wird (im Sinne des weiter oben beschriebenen ApplicationOutput Recording).

Darüber hinaus können noch weitere Wiedergabe-Merkmale unterschieden werden, z.B.ob der tatsächliche Mauszeiger bewegt wird oder ob ein Pseudo-Mauszeiger die Aktionenscheinbar ausführt und der richtige Mauszeiger zur Steuerung des Capture&Replay-Programms zur Verfügung steht.

Es gibt viele Einsatzmöglichkeiten für ein Capture&Replay-Programm: Mit Hilfe desCapture-Prozesses können Demonstrationen und Präsentationen von Programmen er-zeugt und diese potenziellen Kunden gezeigt werden. Aufzeichnungen kurzer Benut-

8

Page 17: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

zungssequenzen können auch Beschreibungen, Manuals und Hilfstexte zu Programmenanreichern. Es können Makros durch Aufzeichnen einer Benutzungssequenz gebildet undin anderen Programmkontexten abgespielt werden. Das Erstellen von Ablaufskripten, diehäufiger durchgeführt werden müssen, ist einfach über die Benutzung des Programmsmöglich.

Capture&Replay-Werkzeuge werden auch vielfach in der Softwareentwicklung eingesetzt,um in deren Verlauf die Zwischenprodukte zu testen: Hierbei wird zunächst die graphi-sche Benutzungsoberfläche für ein zu entwickelndes Programm geschrieben. Die Funktio-nen der einzelnen Bedienelemente sind dabei nur für ganz spezielle Testfälle konzipiert.Eine Benutzungssequenz, die genau diese Testfälle durchspielt, wird aufgezeichnet unddurch Testelemente, die den Zustand bestimmter Programmelemente während der Wie-dergabe überprüfen, angereichert. In dieser ursprünglichen Form bestehen alle in derAufzeichnung enthaltenen Tests. Jetzt wird im Entwicklungsprozess nach und nach dieintendierte Funktionalität in das Programm eingebaut. In nächtlichen Testläufen werdendie Aufzeichnungen abgespielt und überprüft, ob weiterhin keines der Testelemente einenFehler signalisiert. So kann mit einer gewissen Sicherheit angenommen werden, dass dasProgramm korrekt funktionert. Ein Beispiel für ein solches Vorgehen ist die Entwicklungeines Taschenrechners: Es wird zunächst die graphische Benutzungsoberfläche für denRechner geschrieben. Die einzelnen Knöpfe werden hierbei mit einer restriktiven Seman-tik belegt. Diese kann z.B. darin bestehen, dass der Taschenrechner die Zahl 12 ausgibt,wenn der Benutzer die Tasten 3, +, 9 und = in Folge betätigt. Im Capture-Prozess,mit dessen Hilfe das Testskript erstellt werden soll, wird genau diese Benutzungsse-quenz durchgespielt. Am Ende wird ein Testelement eingebracht, welches überprüft, obdie Anzeige des Taschenrechners tatsächlich die Zahl 12 anzeigt. Es wird eine Vielzahlderartiger Testsequenzen aufgezeichnet und in nächtlichen Tests durchlaufen. Währenddes Entwicklungsprozesses werden nun nach und nach die Tasten des Taschenrechnersmit den tatsächlichen arithmetischen Funktionen belegt. Läuft das Testskript weiterhinfehlerfrei, so kann angenommen werden, dass der Taschenrechner richtig rechnet.

Der Capture-Prozess erzeugt eine Interaktionsaufzeichnung im oben beschriebenen Sin-ne, die die Grundlage für die Wiedergabe bildet. Hierbei handelt es sich in der Regelnur um die Aufzeichnung der Benutzeraktionen (Mausaktionen, Tastatureingaben), diefür die Zielanwendung sowohl sichtbar als auch unsichtbar sein können. Es ist aber auchdurchaus denkbar, dass ein Capture&Replay-Programm Programmaktionen speichert.Ein solcher Ansatz wird in Abschnitt 3.1 näher ausgeführt.

1.3.5. Qualitative Analyse

Bei einer qualitativen Analyse eines Untersuchungsgegenstandes wird die Frage nach derBeschaffenheit des Gegenstandes gestellt. Untersuchungsgegenstände können Objekteoder Prozesse sein. Handelt es sich um einen Prozess, so sind die folgenden Fragestel-lungen bei qualitativen Analysen typisch:

9

Page 18: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

• Um welchen Prozess handelt es sich?

• Welcher Kategorie gehört der Prozess an?

• Welche Teilprozesse sind im Gesamtprozess enthalten?

Wichtiges Kennzeichen qualitativer Analysen ist die Interpretation der Daten. In derForschung werden qualitative Verfahren beispielsweise dazu eingesetzt, verbale Datenaus Fragebögen zu interpretieren [BD02, S.295ff.].

Die einfachste Form der qualitativen Analyse einer Interaktionsaufzeichnung ist das Be-trachten der Wiedergabe und die Interpretation durch den Beobachter. Dies ist unterUmständen jedoch sehr aufwändig, z.B. wenn sehr viele Aufzeichnungen nach denselbenKriterien analysiert werden sollen. Hier wäre es hilfreich, einen automatischen Interpre-tationsmechanismus zu besitzen. Diesem Mechanismus muss zuvor mitgeteilt werden,wie er interpretieren soll. Anschließend werden die Aufzeichnungsdaten in den Interpre-tationsautomatismus eingegeben, die Ausgabe liefert die Interpretationsergebnisse.

1.3.6. Quantitative Analyse

Quantitative Analysen eines Untersuchungsgegenstandes betrachten die messbaren Grö-ßen von Gegenstandsmerkmalen. Grundlegend für derartige Analysen sind Vorgänge wieZählen und Messen und die mathematische Weiterverarbeitung der gewonnenen Werte.

Folgende Fragen sind typisch für quantitative Analysen:

• Wie häufig tritt ein bestimmtes Merkmal auf?

• Welchen Wert hat die Merkmalsausprägung im Mittel?

• Wie stark variiert eine Merkmalsausprägung?

• Wie häufig treten zwei Merkmale gemeinsam auf?

Neben der Untersuchung von einfachen Messgrößen können auch zusammengesetzte Grö-ßen fokussiert werden. Dies wird als Indexbildung bezeichnet [BD02, S.143ff]. Hat manbeispielsweise drei Merkmale A, B und C, und hat das Merkmal A ein höheres Gewichtals die anderen beiden Merkmale, so kann ein Index q aus den drei Messwerten va, vb

und vc, der A höher bewertet, folgendermaßen berechnet werden:

q =2 ∗ va + vb + vc

4

Die quantitative Analyse von Interaktionsaufzeichnungen untersucht die messbaren Merk-malsausprägungen der Aufzeichung oder ihrer Elemente. So kann beispielweise gefragt

10

Page 19: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

werden, wie häufig mit dem Mauszeiger in einem bestimmten Bildauschnitt geklickt wor-den ist, wie oft ein bestimmter Hyperlink gewählt wurde und wieviel Zeit die Benutzerbei der Bedienung eines Druckdialogs im Mittel benötigen.

11

Page 20: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

2. Anwendungsfelder

Eine Interaktionsaufzeichnung von Benutzer- und Programmaktionen kann die Basis fürAnalysen in vielen Anwendungsbereichen bilden. Hierbei können die beiden Akteure,der Benutzer und das Programm, mit unterschiedlicher Gewichtung in den Fokus desInteresses rücken (Fokus Benutzer und Fokus Programm). Da es sich bei einer Benutzer-Programm-Interaktion um einen wechselseitigen Prozess handelt, sind durchaus auchkombinierte Fragestellungen denkbar. So kann man sich beispielsweise fragen, welchesProgramm für welche Benutzer geeignet ist. Der Fokus liegt in diesem Fall sowohl auf demProgramm und seinen Attributen als auch auf dem Benutzer und dessen Eigenschaften.

Zunächst werden die beiden Gesichtspunkte Fokus Benutzer und Fokus Programm nähererläutert. Im Anschluss werden exemplarisch drei Anwendungen mit unterschiedlichenAnalyseschwerpunkten vorgestellt.

2.1. Fokus Benutzer

Am naheliegendsten ist die Verwendung einer Interaktionsaufzeichung zur Analyse vonBenutzerverhalten. Ziel kann z.B. eine Typisierung des aufgezeichneten Verhaltens sein.Hierbei werden Verhaltenselemente erkannt und einer Kategorie zugeordnet.

Qualitative Fragestellungen bei der Untersuchung von Benutzerverhalten können sein:

• Welches Verhalten wurde gezeigt?

• In welcher Reihenfolge wurde das Verhalten gezeigt?

• Welches Verhalten dominiert?

• Welcher Typ von Verhalten liegt vor?

Unter quantitativen Gesichtspunkten könnte u.a. Folgendes untersucht werden:

• Wie oft wird ein bestimmtes Verhalten gezeigt?

• Wie häufig treten zwei Verhaltenselemente gemeinsam auf?

• Wie lange dauert ein Verhalten im Mittel?

Aufgrund einer Analyse des Benutzerverhaltens können manchmal auch Aussagen überkognitive Fähigkeiten oder emotionale bzw. motivationale Zustände einer Person getrof-fen werden. Wenn der Benutzer beispielsweise mehrere Möglichkeiten zur Wahl einesKapitels in einem hypertextbasierten Lehrsystem hat, so kann man, wenn er mit großerHäufigkeit immer wieder dieselben Themen wählt, auf Interesse schließen. Das Verhalten

12

Page 21: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

des Benutzers in Form von gespeicherten Benutzeraktionen kann also in vielen FällenAufschluss über den Benutzer selbst geben.

Die Frage nach Eigenschaften des Benutzers wird oft in psychologischen Untersuchun-gen gestellt, in denen immer häufiger Computer als Darbietungs- und Analysemediumeingesetzt werden. In psychologischen Experimenten beispielsweise ist die Präsentationvon Reizen mit Computerprogrammen sehr exakt möglich, und die Messung von Reak-tionszeiten ist sehr genau.

Eine Interaktionsaufzeichnung enthält gespeichertes Benutzerverhalten. Sind allgemei-ne Techniken zur Analyse von Interaktionsaufzeichnungen vorhanden, so können dieseTechniken auch zur Auswertung von experimentell gewonnenen Daten herangezogenwerden, insofern die Aufzeichnung die gewünschte Granularität hat. Wenn beispielswei-se die Zeit zwischen der Präsentation eines Reizes und dem anschließenden Mausklickdurch die Versuchsperson interessiert, so muss die zeitliche Auflösung der Aufzeichnungentsprechend groß sein.

2.2. Fokus Programm

Neben der Untersuchung von Benutzereigenschaften können auch Merkmale des Pro-gramms von Interesse sein. Zu diesen Merkmalen gehört unter anderem die Gebrauchs-tauglichkeit (Usability)6. Die Untersuchung der Gebrauchstauglichkeit kann in summa-tiven oder formativen Evaluationen erfolgen. Wird die Gebrauchstauglichkeit eines Pro-gramms am Ende seiner Entwicklung getestet (summativ), so geschieht dies lediglichzur Qualitätsbeurteilung. Dies gibt meist nur unzureichend Aufschluss über Verbesse-rungsmöglichkeiten und bietet kaum konstruktive Anhaltspunkte unter diesem Gesichts-punkt [GH, S.1]. Wird hingegen ein Programm während der Entwicklung immer wiederevaluiert (formativ), so können die Untersuchungsergebnisse die Grundlage für weitereVerbesserungen bilden. Voraussetzung hierfür ist, dass während des gesamten Entwick-lungsprozesses Prototypen der Benutzungsschnittstelle zur Verfügung stehen, so dasseine Evaluation überhaupt durchgeführt werden kann. Kunden können in der Verwen-dung der Prototypen frühzeitig sehen, ob das intendierte Produkt ihren Vorstellungenentspricht; der Kunde wird so in den Entwicklungsprozess mit eingebunden.

Neben klassischen Evaluationsmethoden wie beispielsweise Fragebögen kann auch dieUntersuchung von aufgezeichnetem Benutzerverhalten über die GebrauchstauglichkeitAuskunft geben. Aus den Schritten, die ein Benutzer auf der Benutzungsoberflächedurchführt, wird dabei auf Verwendbarkeit und Benutzungsfreundlichkeit geschlossen.Hierbei wird z.B. gefragt, welche Funktionen des Programms ein Benutzer häufig wählt,welche nie genutzt werden und auf welche Weise der Benutzer bestimmte Funktionenaufruft (beispielsweise über das Menü oder über ein Tastenkürzel). Dieses Vorgehen hatgegenüber Fragebögen neben der größeren Objektivität des Verfahrens vor allem auch

6Ein weiteres Kriterium ist, wie in Abschnitt 1.3.4 beschrieben wurde, die Korrektheit des Programms,die durch Testen zwar nicht bewiesen, aber zumindest angenommen werden kann.

13

Page 22: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Vorteile in Situationen, in denen der Benutzer nicht verbalisieren kann, was er gut oderschlecht an einem Programm findet [GH]7.

2.3. Beispiele

2.3.1. Beispiel 1: Nachvollziehen von Lernwegen in Hypertext-Systemen

In vielen Kontexten ist von Interesse, welches Verhalten Menschen beim Surfen im In-ternet äußern. Hierzu zählt das Nachvollziehen von Lernwegen in hypertextbasiertenLernumgebungen wie elektronischen Lehrbüchern. Häufig werden zu diesem Zweck dieLog-Dateien von Webservern analysiert. In solchen Dateien speichern Webserver dieDaten, die sie aus den Anfragen erhalten. Hierzu zählen unter anderem die folgendenInformationen8:

• die IP-Adresse des Client-Rechners

• der Benutzername

• das Datum und die Zeit der Anfrage

• die Request-Zeile (z.B. GET /text.html HTTP/1.0)

• die Größe der zurückgelieferten Information in Bytes

• der Herkunfts-URL (der sogenannte Referer)

• Informationen über den Browser und das Betriebssystem des Client-Rechners

Wenn man eine Log-Datei vorliegen hat, kann man daraus z.B. die folgenden Informa-tionen gewinnen:

• Wer eine Seite angefordert hat

• Wann er sie angefordert hat und

• Von welcher Seite er kommt7Die beiden genannten Methoden (Fragebogen und Analyse des Benutzerverhaltens) schließen sich nichtgegenseitig aus. Oft ist es sinnvoll, beide gemeinsam anzuwenden. Die Benutzerbefragung kann aucherfolgen, indem dem Benutzer sein aufgezeichnetes Verhalten vorgespielt und dieser um Kommentierungder Aufzeichnung gebeten wird. Es handelt sich hier um die Methode der Videokonfrontation und wirdin Abschnitt 8.9 aufgegriffen.

8siehe z.B. [Apa]

14

Page 23: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Will man die Lernwege in einem Hypertext-Lernsystem nachvollziehen, so kann manz.B. die Frage klären, welche Seiten, die auf dem eigenen Server liegen, der Benutzernacheinander aufgerufen hat, inklusive der Seiten, die der Benutzer von anderen Serverngeholt und von denen er aus den eigenen Server kontaktiert hat. Daneben kann manauf die Verweildauer auf den eigenen Seiten schließen, insofern die zuvor benutzte Seitenicht auf einem anderen Server liegt: Ruft ein Benutzer zunächst die Seite A zu demZeitpunkt tA auf und danach die Seite B zu dem Zeitpunkt tB, so kann man beim Aufrufvon B schließen, dass der Benutzer auf der Seite A die Zeitspanne tB − tA verweilt hat,da der Referer beim Aufruf von B auf A verweist.

Dennoch sind die Möglichkeiten, die eine Log-Datei für komplexere Analysen des Be-nutzerverhaltens bietet, sehr begrenzt. Folgende Informationen kann man nicht aus Log-Dateien gewinnen:

• Die Mausbewegungen und Tastatureingaben, z.B. in Formularen, sind auf der Ser-verseite nicht zugänglich. Interessiert bei der Lösung eines Aufgabenblattes überein HTML-Formular nicht nur die tatsächlich abgeschickte Information, sonderninteressieren auch die Eingaben, die der Benutzer unter Umständen wieder ver-wirft, bevor er die Lösung abschickt, so kann dies aus den tatsächlich versandtenInformationen nicht gewonnen werden.

• Die Verweildauer lässt nicht auf eine Beschäftigung mit der entsprechenden Seiteschließen. Es könnte beispielweise sein, dass der Benutzer in einem zweiten Brow-serfenster ganz andere Seiten auf anderen Servern betrachtet hat und somit dieVerweildauer auf der Seite im ersten Browserfenster nichts über die Beschäftigungmit dieser Seite aussagt, oder es ist möglich, dass der Benutzer einen kurzen Spa-ziergang eingelegt hat. Kennt man jedoch die Mausereignisse auf dem Browser, sokann man z.B. aus Scrollaktivitäten schließen, dass der Benutzer die Seite auchgelesen hat (zumindest mit größerer Sicherheit).

Diese Mängel kann man beheben, indem man webbasierte Systeme programmiert, diemehr Informationen als die oben beschriebenen an den Server übermitteln, z.B. auf JavaApplets basierend. Dies hat jedoch zum Nachteil, dass die Informationsweitergabe insolchen Systemen zusätzlich implementiert werden muss. Zudem kann die Belastung desNetzes stark ansteigen, wenn sehr detaillierte Informationen wie einzelne Mausbewegun-gen an den Server übermittelt werden müssen.

Dem serverseitigen Loggen steht das clientseitige Loggen gegenüber. Da der Benut-zer alle Aktionen auf dem Client-Rechner durchführt, können diese auch dort ermitteltwerden. Speichert man mit Hilfe eines Capture&Replay-Programms alle Benutzeraktio-nen auf einem Webbrowser, so kann die hierdurch gewonnene Interaktionsaufzeichnungals Basis für komplexere Analysen dienen. Nachteilhaft an dieser Lösung ist, dass dasCapture&Replay-Programm auf dem Client-Rechner vorhanden sein und vor dem Surf-vorgang gestartet werden muss. Die Interaktionsaufzeichnungen liegen zunächst nur auf

15

Page 24: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

dem Client-Rechner vor und müssen zur Auswertung auf einen zentralen Rechner über-tragen werden. Wenn man die Beobachtung allerdings in einem eigens für die Untersu-chung präparierten Computerraum durchführt, dürfte dies keine Probleme bereiten.

Will man das Benutzerverhalten in hypertextbasierten Lernsystemen untersuchen, sosind beispielsweise die folgenden Fragen denkbar:

• Welches Lernverhalten zeigt der Benutzer? Welche Wege wählt er durch das Hyper-text-System?

• Nutzt der Benutzer eher visuelle oder eher textuelle Angebote?

• Wie lange beschäftigt sich ein Benutzer mit einem bestimmten Angebot? Wie langeim Mittel?

• Wie oft korrigiert ein Benutzer Eingaben in einem Aufgabenformular? Welche Kor-rekturen nimmt er vor?

Aber auch das Hypertextsystem selbst kann Untersuchungsgegenstand sein (Dies ent-spricht dem Fokus Programm9). So lässt sich bei der Gestaltung von hypertextbasiertenLernsystemen fragen:

• Ist das System lernunterstützend strukturiert?

• Bietet das System die Information, die der Lernende benötigt?

2.3.2. Beispiel 2: Ermitteln von Suchstrategien

Im dem laufenden Projekt CEKA (Computerunterstützte Eigenkonstruktionen von Kin-dern im mathematischen Anfangsunterricht) der Pädagogischen Hochschule Ludwigs-burg [Kla] soll vom Verhalten von Grundschülern im Umgang mit dem Zahlenstrahl aufderen interne Zahlvorstellungen geschlossen werden, um beispielsweise frühzeitig Rechen-schwächen diagnostizieren zu können. In den empirischen Untersuchungen des Projektesarbeiten Kinder mit einem Programm, welches einen leeren Zahlenstrahl zeigt. Lediglichder Anfang und das Ende (manchmal auch die Mitte) des Zahlenstrahls sind mit denentsprechenden Zahlen gekennzeichnet. Die Schüler sollen nun an diesem Zahlenstrahleine weitere, vorgegebene Zahl finden, in dem sie auf die von ihnen vermutete Stelle kli-cken, und zwar mit möglichst wenigen Fehlern. Von Interesse sind die Mausbewegungenund -klicks, bis die geforderte Zahl gefunden worden ist (Abbildung 2).

9Der Begriff Programm soll hier für das Hypertext-System stehen und nicht für den Browser. Dieserkann natürlich auch Untersuchungsgegenstand sein, allerdings dann bei Fragestellungen, die Navigati-onssystem betreffen und nicht das System, durch das navigiert wird.

16

Page 25: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 2: Screenshot der Software des Projektes CEKA

Ein Ziel des Projektes besteht darin, Strategien zu ermitteln, mit denen Kinder ansolche Problemstellungen herangehen. Erste Analysen haben ergeben, dass die folgendenStrategien in hohem Maße verwendet werden:

Zählstrategie: Die Versuchsperson geht von einer ausgezeichneten Stelle aus (z.B. demlinken oder dem rechten Rand des Zahlenstrahls) und zählt in Einerschritten ineiner Richtung ab, bis sie glaubt, an der richtigen Stelle zu sein.

Operative Strategie: In dieser Strategie setzt die Versuchsperson Arithmetik ein. Istbeispielsweise die 19 gesucht und sind die 0 und die 5 am Zahlenstrahl eingezeich-net, so könnte eine Versuchsperson, die eine operative Strategie verwendet, in etwadie vierfache Länge des Zahlenstrahls abmessen und eine Einheit abziehen.

Die Mausbewegungen der Kinder während der Bedienung des Zahlenstrahl-Programmswurden in den Untersuchungen aufgezeichnet (Kinder benutzen sehr häufig die Maus, umsich selbst beim Anwenden ihrer Strategie zu unterstützen). Im Rahmen des Projekteswird nun versucht, die Aufzeichnungen nach verschiedenen Strategietypen zu kategori-sieren und einzelne Aufzeichnungen diesen Kategorien zuzuordnen. Dies erfordert einenhohen Aufwand, da sehr viele Aufzeichnungen angefertigt worden sind.

Die Analysen, die im Rahmen des CEKA-Projektes durchgeführt werden, sind qualita-tiver und quantitativer Art. Die erwähnte Kategorisierung des Verhaltens nach Strate-gietypen beispielsweise ist qualitativer Natur. Es werden aber auch Fragen quantitativerArt gestellt, z.B.:

17

Page 26: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

• Wie groß ist die Bearbeitungszeit für eine Aufgabe / für alle Aufgaben / im Mittelpro Aufgabe ?

• Wie viele Aufgaben wurden von einer bestimmten Versuchperson gelöst?

• Wie viele Aufgaben wurden im Mittel gelöst?

• Wie oft wurde bei einer Aufgabe geklickt?

• Wie oft wurde im Mittel pro Aufgabe geklickt?

2.3.3. Beispiel 3: Ergonomische Evaluation eines Editors

In Veranstaltungen zum Lernen einer funktionalen Programmiersprache an der Pädago-gischen Hochschule Ludwigsburg wird die javabasierte Programmierumgebung LUCSeingesetzt, mit deren Hilfe Scheme-Programme geschrieben und ausgeführt werden kön-nen [Ott]. In dieser Programmierumgebung ist ein Editor enthalten, in dem die Scheme-Programme von den Studierenden bearbeitet werden. Das Editor-Fenster besitzt dastypische Editor-Layout: Es besteht aus einer Menüleiste, einem Icon-Bereich und einemTextbereich (siehe Abbildung 3). Die meisten Funktionen in dem Editor können überdrei verschiedene Wege aufgerufen werden: Die Funktion kann über die Menüleiste aus-gewählt, sie kann über ein Icon angesprochen oder durch ein Tastenkürzel ausgelöstwerden. So kann z.B. der im Textbereich markierte Text über den Menüpunkt Bear-beiten/Text ausschneiden, über das Schere-Icon oder über das Tastaturkürzel Strg-Xausgeschnitten werden.

Anhand von Interaktionsaufzeichnungen auf dem Editor könnte beispielsweise unter demFokus Benutzer die Frage gestellt werden, ob die Versuchsperson eines der drei Funkti-onsauswahlangebote den anderen beiden vorzieht. Dies könnte zu einer Typisierung desBenutzerverhaltens führen mit den drei Typen Menübenutzer, Iconbenutzer und Kürzel-benutzer.

Im Gespräch mit dem Programmierer des Editors kam zur Sprache, dass die Vermutungbesteht, die vier Icons rechts in der Iconleiste würden selten bis nie verwendet werden.Diese Icons betreffen die Punkte Klammerausdruck auswählen, Schreibmarke zur Klam-mer versetzen, Klammerpaar löschen und Ausdruck gemäß Klammerung einrücken. DieIcons selbst sind zu detailliert und besitzen kaum Symbolcharakter, so dass vermutlichdiese Funktionen eher über die Menüleiste oder über ein Tastaturkürzel angesprochenwerden.

Als Indiz für die Untauglichkeit dieser vier Icons können die Interaktionsaufzeichnungender Iconbenutzer herangezogen werden: Wenn Benutzer, die in der Regel Funktionenüber Icons auswählen, selten oder nie die betreffenden vier Icons verwenden und hiereher auf Tastaturkürzel oder Menüpunkte zugreifen, so kann dies ein Hinweis dafür sein,

18

Page 27: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 3: Screenshot des Editors von LUCS

dass die Icons in dieser Form nicht geeignet sind10. Wird eine derartige Evaluation nunformativ während des Entwicklungsprozesses eingesetzt, so kann frühzeitig die graphischeBenutzungsschnittstelle optimiert werden11.

2.4. Folgerungen

2.4.1. Automatische Erkennung von Verhalten

Wenn man wissen will, ob in einer Interaktionsaufzeichnung ein bestimmtes Verhaltenvorkommt, so kann man sich die Aufzeichnung mit Hilfe des Wiedergabe-Prozesses ei-nes Capture&Replay-Programms unter diesem Gesichtspunkt ansehen. Dieses Vorgehenkann sehr zeitaufwendig sein. Liegen mehrere hundert Aufzeichnungen vor, ist dies unterUmständen gar nicht zu bewältigen. Es ist wünschenswert, dass ein System zur Analy-se von Interaktionsaufzeichnungen Verhalten selbst erkennt. Das in einer Aufzeichnungvorkommende Verhalten muss dabei übersichtlich präsentiert werden. So kann man ohneWiedergabe sehen, welche Schritte der Benutzer durchgeführt hat. Ergänzend hierzu isteine selektive Wiedergabe bestimmter Verhaltenselemente wünschenswert, so dass mansich nur die kritischen oder besonders interessanten Teile betrachten kann.

10Die Verhaltensaufzeichnungen der anderen beiden Benutzertypen können hier keinen Aufschluss geben,da diese ohnehin die Icons seltener gebrauchen.

11Diese Evaluationsfrage mag zu einfach erscheinen, so dass sich eine Durchführung kaum rentieren würde;dieses Beispiel wurde der Anschaulichkeit wegen gewählt.

19

Page 28: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Neben dieser qualitativen Analyse muss ein System auch quantitative Untersuchungs-möglichkeiten für das gefundene Verhalten bieten. Es muss ermittelt werden können, wieoft ein bestimmtes Verhalten vorkommt, und welche Werte statistische Größen bezüglichdieses Verhaltens haben.

2.4.2. Unterschiedliche Granularität

Verhalten kann auf unterschiedlichen Ebenen untersucht werden. Will man wissen, obein hypertextbasiertes Lernsystem lernfördernd strukturiert ist, so muss man u.a. denLernweg des Lerners nachvollziehen können. Hier ist von Interesse, welche Seiten einLerner besucht hat. Es kann aber auch das Verhalten auf einer einzelnen Seite Gegen-stand der Untersuchung sein; unter Umständen interessieren aber auch nur Teile desVerhaltens auf einer Seite. Untersucht man eine Aufzeichnung der Benutzung des Zah-lenstrahlprogramms, so kann man sich dafür interessieren, welche Aufgaben bearbeitetworden sind, oder wie eine einzelne Aufgabe bearbeitet worden ist, oder wie der Wegbis zu der Entscheidung für eine bestimmte Position war.

Systeme, die Techniken zur Analyse von Interaktionsaufzeichnungen anbieten, müssensomit die Untersuchung auf unterschiedlichen Granularitätsstufen zulassen. Der Untersu-chende muss entscheiden können, ob er eine makroskopische Sicht auf die Aufzeichnungwünscht oder eine mikroskopische.

2.4.3. Erweiterbarkeit

Welches Verhalten von Interesse ist, hängt in hohem Maße vom Problem ab. Ein Analyse-system kann nicht von sich aus wissen, welche Verhaltenstypen es gibt, welche Attributeein solches Verhalten bietet und welche quantitativen Größen interessieren. Es muss alsofür spezielle Untersuchungsfragen erweiterbar sein, und zwar mit möglichst geringemAufwand.

20

Page 29: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

3. Die Basissysteme

Die Mechanismen zur qualitativen und quantitativen Analyse von Interaktionsaufzeich-nungen, die in dieser Arbeit entworfen werden, werden in ein bereits bestehende Systemeintegriert. Hierbei handelt es sich zum einen um Jacareto und CleverPHL. Der BegriffJacareto steht für Java Capture&Replay Tool und ist ein Capture&Replay-Frameworkfür Anwendungen, die in der Programmiersprache Java geschrieben sind12. CleverPHList eine graphische Benutzungsoberfläche für Jacareto. Sowohl Jacareto als auch Clever-PHL werden in dieser Arbeit erweitert, so dass qualitative Analysen von Aufzeichnungendurchgeführt werden können und die Grundlagen für quantitative Untersuchungen gelegtwerden.

Zur quantitativen Analyse von Interaktionsaufzeichungen bietet es sich an, auf beste-hende Systeme, die Funktionen zur statistischen Auswertung anbieten, zurückzugreifen.Dies können Statistiksysteme wie SPSS und Fathom sein, aber auch Tabellenkalkula-tionen wie Microsoft Excel eignen sich für derartige Analysen. Die Hauptaufgabe wirddarin bestehen, interessierende Werte aus den Aufzeichnungen, die mit Jacareto und Cle-verPHL aufgenommen und qualitativ analysiert worden sind, zu extrahieren und diesenSystemen zugänglich zu machen.

3.1. Jacareto

Jacareto wurde im Rahmen eines Praktikums und einer Studienarbeit an der Techni-schen Universität Darmstadt und der Pädagogischen Hochschule Ludwigsburg entwickelt[Spa][Tec]. Mit diesem Werkzeug ist es möglich, Benutzer-Programm-Interaktionen auf-zuzeichnen, abzuspielen, zu speichern und zu editieren. Jacareto ist ein Framework, dasleicht erweiterbar ist und einfache Schnittstellen bietet, um Capture&Replay-Funktio-nalität in eigene Java-Anwendungen einbinden zu können.

Der Aufnahmeprozess von Jacareto erzeugt eine symbolische Interaktionsaufzeichnung(siehe Kapitel 1.3.2). Bei der Wiedergabe wird also die Zielanwendung gestartet, undder Replay-Mechnismus führt die Aktionen erneut aus (ausführende Wiedergabe).

Das Framework gliedert sich in verschiedene Funktionsbereiche: Es beinhaltet Modu-le, die der Aufnahme und Weiterverarbeitung von Ereignissen dienen, und Klassen, dieAufzeichnungen und Aufzeichnungselemente repräsentieren. Es gibt Einheiten, die beider Wiedergabe in Aktion treten, Module zum Starten von Anwendungen und App-lets und Klassen für die Komponentenverwaltung. Die einzelnen Bereiche sollen nun imFolgenden näher beschrieben werden13.

12Hierzu zählen auch Java Applets.13Die Packages, die im Jacareto-Framework enthalten sind, sind in Anhang A aufgeführt.

21

Page 30: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Tabelle 2: Ereignisse, die atomare Benutzeraktionen repräsentieren

MousePressed Ein Mausknopf wurde gedrücktMouseReleased Ein Mausknopf wurde losgelassenMouseMoved Der Mauszeiger wurde bewegtMouseDragged Der Mauszeiger wurde mit gedrücktem Mausknopf bewegtKeyPressed Eine Taste auf der Tastatur wurde gedrücktKeyReleased Eine Taste wurde losgelassen

3.1.1. Ereignisse

Während des Capture-Prozesses ermittelt Jacareto die Ereignisse (engl. Events), diewährend der Benutzung auftreten. Hierbei handelt es sich um die von Java selbst zur Ver-fügung gestellten Ereignisse. Ereignisse, die Benutzeraktionen repräsentieren, sind bei-spielsweise Maus- und Tastaturereignisse. Wenn der Benutzer einen Mausknopf drückt,dann speichert Jacareto ein sogenanntes MousePressed -Ereignis, wenn er ihn wieder los-lässt, ein MouseReleased -Ereignis (analog dazu die Tastaturereignisse KeyPressed undKeyReleased). Ebenso enthält eine Aufzeichnung atomare Mausbewegungen; wird derMauszeiger beispielsweise von einer Ecke des Fensters in eine andere gezogen, so erzeugtdiese Bewegung viele kleine MouseMoved -Ereignisse, die der Capture-Prozess ermitteltund speichert. Jacareto bietet die Möglichkeit, für die Ermittlung von Mausbewegungeneine zeitliche Auflösung zu bestimmen, so dass die Menge an aufgezeichneten Bewegun-gen nicht überhand nimmt.

Neben den Ereignissen, die atomare Benutzeraktionen repräsentieren, werden auch Er-eignisse erkannt, die komplexere Aktionen darstellen. Es wird beispielweise ein Mouse-Clicked -Ereignis erzeugt und von Jacareto gespeichert, wenn ein Mausknopf gedrücktund gleich darauf wieder losgelassen wird. Bei einem Mausklick werden also drei Er-eignisse aufgenommen: zwei atomare (MousePressed und MouseReleased) und eines,welches das gemeinsame Auftreten der beiden atomaren Ereignisse symbolisiert, einMouseClicked -Ereignis.

Neben Benutzeraktionen sind auch Programmaktionen in der Aufzeichnung repräsen-tiert. Ein Beispiel hierfür sind Fensterereignisse. Wenn ein Fenster geschlossen wird,dann wird ein WindowClosed -Ereignis erzeugt, wird es geöffnet, ein WindowOpened -Ereignis14.

Jacareto erhält alle systemweit auftretenden Ereignisse während des Capture-Prozesses14Das Öffnen eines Fensters ist eine Programmaktion und nicht, wie man vielleicht annehmen könnte,

eine Benutzeraktion. Fenster können auch ohne Zutun des Benutzers vom Programm geöffnet werden.Ein solches Ereignis symbolisiert eine Zustandsänderung der graphischen Benutzungsoberfläche. Wennder Benutzer das Öffnen eines Fensters z.B. durch die Auswahl eines Menüpunktes veranlasst, dann istdas darauffolgende Fensterereignis eine Programmreaktion auf diese Benutzeraktion.

22

Page 31: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 4: Klassen des Capture-Prozesses

von einer Warteschlange für Ereignisse, der AWTEventQueue. Bei dieser Warteschlangeregistriert Jacareto eine Instanz, einen sogenannten EventListener, der eingehende Er-eignisse intern an interessierte Instanzen verteilt. Diese Instanzen sind Objekte vom TypCatcher. Der wohl wichtigste Catcher ist der AWTEventRecorder, der auftretende Ereig-nisse in Aufzeichnungselemente konvertiert und in der Aufzeichnung speichert. AndereCatcher sind beispielsweise Instanzen der Klasse LastMousePosition, die die Koordi-naten des zuletzt aufgetretenen Mausereignisses speichern, damit nach eine Pause undanschließender Wiederaufnahme des Capture-Prozesses an der zuletzt aufgezeichnetenPosition fortgefahren wird. Catcher werden beim EventListener mit einer Priorität re-gistriert; Catcher mit einer höheren Priorität bekommen das Ereignis vor Catchern miteiner niedrigeren Priorität.

Jacareto bietet außerdem die Möglichkeit mit Hilfe von Ereignismasken festzulegen, anwelchen Ereignissen Catcher interessiert sind. Erhält der EventListener ein Ereignis, soverteilt er dieses lediglich an die Catcher, die die entsprechende Ereignismaske für diesesEreignis besitzen.

Bewegt beispielsweise der Benutzer die Maus, so wird ein Ereignis vom Typ Mouse-Moved erzeugt und an das Ende der Warteschlange gestellt. Wenn dieses Ereignis dieWarteschlange durchlaufen hat, wird es unter anderem dem EventListener von Jacaretoübergeben. Dieser prüft, welcher der registrierten Catcher in Mausbewegungen inter-essiert ist, und übergibt diesen Objekten das Mausereignis. Einer dieser Catcher istder AWTEventRecorder, der die Mausbewegung in ein Aufzeichnungselement vom TypMouseEventRecordable (siehe weiter unten) konvertiert und in der Aufzeichnung spei-

23

Page 32: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 5: Der Gang eines Mausereignisses durch diverse Instanzen

chert. Dieser Vorgang ist in Abbildung 5 illustriert.

3.1.2. Die Aufzeichnung

Eine Interaktionsaufzeichnung wird in Jacareto mit dem Begriff Record bezeichnet15.Ein Record besteht aus Aufzeichnungselementen, den sogenannten Recordables. Für je-des Ereignis wird ein eigenes Recordable gebildet und im Record abgelegt; so gibt esMouseEventRecordables, KeyEventRecordables und WindowEventRecordables. Ein sol-ches Recordable ist die symbolische Repräsentation eines Ereignisses.

Aufzeichnungselemente müssen nicht zwangsläufig Ereignisse sein; in einer Aufzeichungkann jegliche Information gespeichert werden, wenn diese in einem Objekt vom TypRecordable zusammengefasst wird; so gibt es Aufzeichnungselemente, die Wiedergabe-pausen, System- und Benutzerinformationen, Datumsangaben und Annotationen reprä-sentieren.

Es ist nicht festgelegt, in welcher Form die Aufzeichung gespeichert wird. Die Klas-se Record ist eine abstrakte Klasse. Eine Subklasse der Klasse Record ist die KlasseXMLRecord, die die Aufzeichnung in einer Datei in einem speziellen XML-Format ab-speichert. Die Klasse VectorRecord hält die Recordables selbst als Objekte in einerInstanz der Klasse java.util.Vector im Speicher.

Die Speicherung in einer persistenten Speicherform wie beispielsweise einer XML-Dateiermöglicht die Weitergabe von Aufzeichnungen. So kann beispielsweise ein Benutzer

15Hierbei handelt es sich um das Resultat des Aufzeichnungsprozesses (siehe Kapitel 1.3.2).

24

Page 33: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 6: Die Klasse Record und assoziierte Klassen

einer Software eine Benutzungssequenz aufzeichnen bis zu einem Punkt, an dem er nichtmehr weiter weiß, und diese Aufzeichnungen an den Supporter für diese Software senden.Dieser spielt die Benutzungssequenz ab, zeichnet die weiterführenden Benutzeraktionenauf und schickt die Aufzeichnung wieder an der Benutzer zurück. Dieser kann sich dieErgänzungen des Supporters betrachten.

3.1.3. Die Wiedergabe

Für die Wiedergabe ist in Jacareto eine Klasse namens Replay zuständig. Wenn eineAufzeichnung abgespielt wird, so geht eine Instanz dieser Klasse Element für Elementdurch die Aufzeichnung und versucht, eine zuvor definierte Wiedergabeaktion auszu-führen. Solche Aktionen werden in Subklassen der Klasse Replayer formuliert. Objektevom Typ Replayer werden bei der Replay-Instanz mit einer Priorität registriert. Wennein Aufzeichungselement wiedergegeben werden soll, so werden die registrierten Instan-zen gemäß ihrer Rangfolge gefragt, ob sie für das gegebene Element zuständig sind. Isteine Instanz zuständig, so darf sie die Wiedergabeaktion zu dem Aufzeichungselementausführen.

Zur Wiedergabe von Maus- und Tastaturereignissen verwendet das Replay-Modul dieKlasse java.awt.Robot. Instanzen dieser Klasse können den Mauszeiger bewegen oderTastatureingaben simulieren. Die Klasse Replay besitzt ein internes Robot-Objekt und

25

Page 34: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 7: Die Klassen Replay und Replayer

bietet Methoden zur Verwendung des Robots an, auf die Replayer zugreifen können.

Die Registrierung von Instanzen der Klasse Replayer kann über ein XML-Element ineiner der Jacareto-Konfigurationsdateien vorgenommen werden. In diesem Element wirdjeder Klasse eines zu registrierenden Replayers eine Priorität zugeordnet. Ein Beispielfür ein solches Element ist in Listing 3.1 angegeben.

Listing 3.1<map name="Replayers">

<mapelem key="jacareto.replay.MouseEventReplayer" value="1"/><mapelem key="jacareto.replay.MouseMotionEventReplayer" value="1"/><mapelem key="jacareto.replay.KeyEventReplayer" value="1"/><mapelem key="jacareto.replay.WindowEventReplayer" value="3"/><mapelem key="jacareto.replay.ItemEventReplayer" value="2"/><mapelem key="jacareto.replay.FocusEventReplayer" value="2"/>

</map>

3.1.4. Starten der Zielanwendung

Vor der Aufnahme und der Wiedergabe muss die Zielanwendung zunächst gestartet wer-den. Jacareto bietet Klassen, die das Starten übernehmen. Derartige Klassen sind Erben

26

Page 35: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

der Klasse Starter. Es gibt bereits zwei Typen von Startern: eine Klasse Application-Starter zum Starten einer Java-Applikation, und eine Klasse AppletStarter zum Star-ten eines Applets. Beim Start einer Applikation wird deren main-Methode aufgerufen.In dem Starter kann definiert werden, welche Argumente der main-Methode übergebenwerden sollen. Wenn ein Applet gestartet werden soll, so werden dessen Methoden initund start aufgerufen, nachdem es in ein Fenster geladen worden ist. Weiterhin könnenin einem Starter Pfade angegeben werden, um die Umgebungsvariable CLASSPATH fürdie Zielanwendung zu erweitern.

3.1.5. Komponentenverwaltung

Eine graphische Benutzungsoberfläche besteht in der Regel aus mehreren Elementen:aus Buttons, Textfeldern, Menüs, Auswahlkästchen, Schiebereglern usw. Solche Elemen-te werden in Java Komponenten genannt. Klassen, die Komponenten repräsentieren,sind Erben der Klasse java.awt.Component. Komponenten sind hierarchisch angeord-net: Elternkomponenten beinhalten Kindkomponenten. So ist ein Fenster eine Kompo-nente, und die Elemente in dem Fenster sind dessen Kindkomponenten. Die Menüleistebeispielsweise ist eine solche Kindkomponente, die wiederum Kindkomponenten besitzt,die einzelnen Menüs.

In Java gibt es zwei Systeme, die zur Beschreibung von graphischen Benutzungsober-flächen verwendet werden können: Das ältere AWT (Abstract Window Toolkit) und dasneuere SWING, welches teilweise auf dem AWT aufbaut, aber auch viele Neuerungenbringt wie beispielsweise den Verzicht auf systemspezifische Komponenten, wie es siebeim AWT gibt. Jacareto kann grundsätzlich beide Systeme bedienen16.

Es gibt in Jacareto Instanzen, die sich um die korrekte Verarbeitung spezieller Kompo-nenten kümmern, sogenannte ComponentHandler. Diese Instanzen wissen, welche Kin-der eine Komponente besitzt, welcher Elternkomponente diese untergeordnet ist undwie der interne Name der Komponente gebildet werden muss. So gibt es beispielswei-se einen JComponentHandler für alle Swing-Komponenten, einen JListHandler für dieVerwaltung von Listenkomponenten und einen JPopupMenuHandler für die Behandlungvon Popup-Menüs. Diese Instanzen werden mit einer bestimmten Priorität bei einemObjekt der Klasse Components, die die Verwaltung der Komponenten übernimmt, regis-triert; wenn eine Komponente behandelt werden muss, so werden zuerst die Handler mithöherer Priorität gefragt. Ist keiner dieser Objekte für die Komponente zuständig, sowerden die Handler mit niedriger Priorität beauftragt. Ein Handler für die KomponenteA muss daher mit einer niedrigeren Priorität versehen werden als ein Handler für dieKomponente B, die von A erbt. So hat beispielsweise ein JListHandler eine höherePriorität als ein JComponentHandler, da die Klasse JList von der Klasse JComponenterbt. Gibt es keinen speziellen Handler für eine Komponente, dann greift am Ende immer

16Bei manchen systemnahem Komponenten des AWT wie beispielsweise einem Dateiauswahldialog (KlasseFileChooser) können die Ereignisse nicht abgegriffen und somit auch nicht wiedergegeben werden.

27

Page 36: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

der mit der niedrigsten Priorität registrierte AWTComponentHandler, der alle Komponen-ten behandeln kann. Die Registrierung der Objekte vom Typ ComponentHandler kannanalog zu der Registrierung von Wiedergabemodulen (siehe Listing 3.1) in einer XML-Konfigurationsdatei vorgenommen werden.

Damit die Wiedergabe korrekt abläuft, muss bei der Aufzeichnung mit abgespeichertwerden, auf welcher Komponente ein Ereignis stattgefunden hat. Die Koordinaten einesMausereignisses beispielsweise werden relativ zum Komponentenursprung angegeben. Zudiesem Zweck erkennt Jacareto alle Komponenten der Zielanwendung und benennt diesevor dem Capture-Prozess. Zu jedem Ereignis wird dann der Name der Komponente ge-speichert. Beim Replay-Prozess wird die Zielanwendung zunächst gestartet und derselbeBenennungsmechanismus durchgeführt. Hierdurch kann ein Ereignis auf der korrektenKomponente ausgeführt werden.

Der Benennungsmechanismus bildet die Komponentenhierarchie ab: Komponenten aufder obersten Hierarchie-Ebene erhalten den Namen, den ihr ComponentHandler liefert(dies ist meist einfach der Klassenname) mit einer für jede Klasse separaten laufendenNummer, falls es auf derselben Ebene mehrere Komponenten der gleichen Klasse gibt.Kindkomponenten erhalten den Namen der Elternkomponente, einen Punkt und denNamen, der von ihrem ComponentHandler bestimmt wird, wieder mit einer laufendenNummer. Folgende Namen sind Beispiele für diesen Benennungsmechanismus:

• JFrame_(1)

• JFrame_(1).JRootPane_(1).JLayeredPane_(1).JPanel_(3).JButton_(2)

Jacareto erkennt automatisch neue Komponenten und fügt diese in den bestehendenKomponentenbaum ein. Wird beispielsweise ein neues Fenster geöffnet, so erkennt Ja-careto das Fenster mit all seinen Subkomponenten und integriert dessen Komponenten-struktur als Teilbaum in die oberste Ebene des bestehenden Hierarchiebaums.

3.1.6. Weitere Merkmale von Jacareto

• Jacareto bietet die Möglichkeit, Objekte vom Typ Recordable zu editieren. Hierzugibt es die Klasse Editor, die eine GUI-Komponente zur Bearbeitung der Aufzeich-nungselemente bereitstellt.

• Jacareto ist komplett über XML-Dateien konfigurierbar; so lassen sich Voreinstel-lungen genauso wie Sprachdefinitionen (Englisch, Deutsch, ...) über diesen Mecha-nismus vornehmen. Zur Laufzeit können Objekte die in diesen Dateien gespeicher-ten Werte über ein Umgebungsobjekt (Instanz der Klasse jacareto.system.En-vironment) abfragen.

28

Page 37: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 8: Die Klasse Components und assoziierte Klassen

29

Page 38: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

3.2. CleverPHL

CleverPHL ist ein Programm, welches auf Jacareto aufsetzt und eine graphische Be-nutzungsoberfläche zur Auswahl der unterschiedlichen Jacareto-Funktionen bietet (einsogenanntes Front End)17. Abbildung 9 zeigt das Hauptfenster von CleverPHL. DiesesProgramm ermöglicht es, gleichzeitig mehrere Capture&Replay-Prozesse geöffnet zu ha-ben; ein solcher Prozess heißt Session. Die Sessions beeinflussen sich nicht gegenseitig;so können in zwei Sessions zwei Instanzen des gleichen Programm gestartet worden sein,die sich aber in unterschiedlichen Zuständen befinden.

Zum Starten eines Capture-Prozesses sind im Wesentlichen die folgenden Schritte durch-zuführen: Zunächst ist eine Session zu öffnen, anschließend muss die Zielanwendung ge-startet werden. Hierzu wird ein Starter aus einer Liste von Startern ausgewählt. DurchDrücken der Taste F1 wird der Capture-Prozess gestartet; alle Benutzeraktionen undProgrammaktionen bezüglich der Zielanwendung werden dann in der Aufzeichnung ge-speichert. F2 beendet den Capture-Prozess.

Die Wiedergabe erfolgt durch Drücken der Taste F3. Die Zielanwendung wird hierbeierneut gestartet, und die Aufzeichnungselemente werden in ihrer Reihenfolge wiederge-geben. Es kann zuvor über ein Menü entschieden werden, ob eine Echtzeitwiedergabeoder eine Festzeitwiedergabe erwünscht ist (siehe Abschnitt 1.3.4).

Die Aufzeichnung wird im Hauptfenster von CleverPHL angezeigt; es handelt sich umeine lineare Auflistung aller Elemente. Klickt man auf eines der Elemente, so wird ineinem Bereich neben der Aufzeichnungsanzeige der Editor für das Element dargeboten.Hier können Attribute des Elementes geändert werden (siehe Abbildung 9).

Die Komponentenhierarchie der Zielanwendung kann in Form eines Baumes angezeigtwerden (siehe Abbildung 10). Aufzeichnungen können außerdem über das Menü in einerXML-Datei gespeichert und von dort wieder geladen werden.

3.3. Systeme zur quantitativen Analyse

3.3.1. SPSS

SPSS ist ein Statistikprogramm, das weite Verbreitung gefunden hat und von vielen Ex-perten zur quantitativen Analyse von z.B. experimentell gewonnenen Daten eingesetztwird. Die Daten sind in Form von sogenannten Datenfällen gegeben. Ein einzelner Daten-fall besteht aus einer eine Liste von Werten. Werden beispielsweise die Klausurergebnissedes ganzen Schuljahres von 30 Schülern zusammengestellt, so bilden die Ergebnisse eines

17Es gibt noch ein weiteres Programm, welches Jacareto verwendet und – genau wie CleverPHL – mitJacareto zusammen vertrieben wird. Picorder ist ein einfaches Capture&Replay-Programm, welches ne-ben Aufnahme und Wiedergabe auch das Einbringen von Testelementen in die Aufzeichnung ermöglicht.Hierdurch werden Testszenarien ermöglicht, wie sie in Kapitel 1.3.4 beschrieben werden.

30

Page 39: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 9: Das Hauptfenster von CleverPHL

Abbildung 10: Die Anzeige des Komponentenbaums in CleverPHL

31

Page 40: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 11: Screenshot von SPSS

einzelnen Schülers einen Datenfall. Es liegen dann insgesamt 30 Datenfälle vor.

In der Datenansicht von SPSS wird jeder Datenfall in einer eigene Zeile dargestellt(siehe Abbildung 11). Die Analyse der Daten kann menügesteuert vorgenommen werden(Menü Analysieren). Hier findet man u.a. Funktionen zur Berechnung von Häufigkeiten,Mittelwerten und Korrelationen. Eine anschauliche Darstellung der Daten in einer Grafikkann über das Menü Grafik erzeugt werden.

3.3.2. Fathom

Fathom ist ein Statistik-Programm, das im Wesentlichen für den Einsatz in der Lehreund weniger für tatsächliche Analysen im Rahmen von Forschungsarbeiten gedacht ist.Es ist intuitiv bedienbar und besitzt zahlreiche Möglichkeiten zur Veranschaulichung.

Fathom arbeitet mit Datensätzen18. Ein Datensatz ist eine Menge von Datenfällen, diebestimmte Attributwerte besitzen (analog zu SPSS). So erhält man beispielsweise beider Befragung von 150 Einwohnern in Beverly Hills einen Datensatz, der 150 Datenfällebeinhaltet. Jeder der Datenfälle besteht aus den Antworten einer der befragten Perso-nen. Abbildung 12 zeigt das beschriebene Szenario. Im linken Teil des Fensters siehtman die Ansicht eines Datenfalles. Mit Hilfe der Pfeile unter dem Datenfall kann mansich die verschiedenen Fälle betrachten. Im rechten Teil des Fensters sieht man ein Dia-gramm, welches den Zusammenhang zwischen Alter und Einkommen visualisiert. Dieses

18In Fathom heißt ein Datensatz Collection.

32

Page 41: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 12: Screenshot von Fathom

Diagramm wurde erzeugt, in dem zunächst in der Icon-Leiste auf das Diagramm-Icongeklickt worden ist und anschließend per Drag&Drop die Attribute aus dem Datenfall-bereich auf die Achsen in dem Diagramm-Bereich gezogen wurden.

Fathom besitzt auch die Möglichkeit, Attribute mit Formeln zu belegen. Hierzu bietetFathom zahlreiche statistische Funktionen an wie Standardfehler, Standardabweichungund Varianz.

3.3.3. Excel

Tabellenkalkulationen wie Microsoft Excel arbeiten im Gegensatz zu den oben beschrie-benen Statistikprogrammen nicht mit Datensätzen, sondern mit Tabellen. Diese Daten-formen sind prinzipiell äquivalent, wenn man den Inhalt einer Tabellenzeile als Datenfallinterpretiert und die Tabelle als Datensatz.

Excel bietet – genau wie die Statistikprogramme – eine Fülle an Funktionen, mit denendie Tabellenwerte weiterverarbeitet werden können. So finden sich in der Funktions-übersicht (Menüpunkt Funktion... im Menü Einfügen) neben mathematischen, trigo-nometrischen, logischen und Matrixfunktionen auch Statistikfunktionen wie Häufigkeit,Mittelwert, Median und Varianz.

Excel bietet auch die komfortable Generierung von Diagrammen aller Art: Balken-,Säulen-, Linien- und Kreisdiagramme lassen sich neben vielen anderen Diagrammarteneinfach erzeugen (Menüpunkt Diagramm... im Menü Einfügen). Ein Beispiel für eine Ta-

33

Page 42: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 13: Screenshot von Excel

belle in Excel mit der automatischen Berechnung von Häufigkeiten und der Darstellungdieser in einem Kreisdiagramm zeigt Abbildung 13.

3.4. Folgerungen

Die Ereignisse, die in Jacareto gespeichert werden, sind zum größten Teil Ereignisseauf höchster Granularitätsstufe; es werden einzelne, atomare Mausbewegungen und Ele-mentaraktionen wie das Drücken und Loslassen von Tasten ermittelt. Ein auf Jacaretoaufbauendes Analysesystem erhält somit die Verhaltenselemente auf unterster Stufe undmuss sich nun darum kümmern, gröbere Verhaltenselemente zu bilden.

Intuitiv gesehen besteht die Erkennung von Verhaltenselementen mit niedrigerer Granu-larität in der Erkennung von Mustern in den Verhaltenselementen höherer Granularität.Liegt eine Aufzeichnung, wie sie Jacareto bietet, vor, so könnte man darin bestimmteSequenzen erkennen und zu einem gröberen Verhaltenselement zusammen fassen. Die-ses Verhaltenselement kann selbst wieder Teil höheren Verhaltens sein, so dass es selbstTeil eines Musters bildet. So können beispielsweise Mausbewegungen, die auf einer Gera-den verlaufen, als lineare Mausbewegung zusammengefasst werden. Aufeinanderfolgende,lineare Mausbewegungen bilden dann eine polygonale Mausbewegung. Dies wird in Ab-bildung 14 veranschaulicht.

Aus Erkennung bestimmter Muster und Sequenzen folgt automatisch eine Strukturie-

34

Page 43: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 14: Die Struktur einer Mausbewegung

rung der Aufzeichnung. Bestimmte Teile der Aufzeichnung werden zusammengefasst.Diese Strukturelemente können selbst wieder Teil einer höheren Struktur sein. Es bildetsich somit eine baumartige Gliederung der Aufzeichnung heraus mit den ursprünglichenAufzeichnungselementen als Blätter. Das Wurzelelement ist ein Repräsentant für dieAufzeichnung selbst. Die qualitative Analyse einer Aufzeichnung besteht also aus derStrukturierung derselben.

Es kann durchaus mehrere Strukturierungsmöglichkeiten geben, da Teile aufeinanderfol-gender Muster z.B. selbst ein ganz anderes Muster bilden können. Es ist zum Beispielnicht eindeutig zu klären, ob die Mausbewegung, wie sie in Abbildung 15 skizziert ist,eine Mausbewegung vom Typ rechteckige Mausbewegung mit drei anschließenden linea-ren Mausbewegungen ist oder umgekehrt. Man kann nun zwei Vorgehensweisen wählen:Entweder man stellt alle möglichen Strukturierungsarten dar; dann muss von der Baum-darstellung abgewichen und eine Art Graph erzeugt werden. Oder man entscheidet sichfür eine Strukturierung und bietet die Möglichkeit, zu einer anderen Strukturierungsformzu wechseln. Dies könnte beispielsweise durch Priorisierung der einzelnen Strukturele-mente erfolgen mit der Möglichkeit, die Prioritäten zu bestimmen. In dieser Arbeit wurdedie letzte Variante gewählt, da die Veranschaulichung aller Strukturierungsmöglichkeitenzu einer recht unübersichtlichen Darstellung führen würde (Die Anzahl der möglichenStrukturierungsvarianten ist meist sehr groß). Der Anwender wird aber mit Hilfe vonPrioritäten Einfluss auf die Strukturierung nehmen können.

Neben den elementaren Aktionen enthält eine Jacareto-Aufzeichnung auch schon In-terpretationen von Aktionsgruppen; beispielsweise wird ein Mausklick erkannt, wenn

35

Page 44: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 15: Mehrdeutigkeit der Strukturierung

ein Mausknopf gedrückt und gleich wieder losgelassen worden ist. Derartige Elementewerden allerdings noch auf derselben Stufen wie die atomaren Ereignisse dargestellt.Sie können aber bei der Strukturierung der Aufzeichnung behilflich sein (siehe Kapitel5.1.4).

Ist die Struktur einer Aufzeichnung gefunden, so soll sie in CleverPHL als Baum an-gezeigt werden können; die ursprünglichen Aufzeichnungselemente werden hierbei alsBlätter angezeigt, die höheren Strukturelemente als auf- und zuklappbare Baumkno-ten. Somit können wahlweise die Details eines gröberen Strukturelementes betrachtenund versteckt werden. Abbildung 16 veranschaulicht, wie die Anzeige einer Struktur inCleverPHL erfolgen soll.

Hat man eine Aufzeichnung strukturiert und Werte von Attributen der Aufzeichnungoder ihrer Strukturelemente bestimmt, so müssen Verfahren gefunden werden, diese Wer-te in die oben beschriebenen Systeme zur quantitativen Analyse einbringen zu können.Hierzu müssen Datensätze bzw. Tabellen aus einer strukturierten Aufzeichnung erzeugtwerden. Die eigentliche quantitative Analyse kann man dann mit Hilfe eines gängigenStatistikprogramms vornehmen. Das hat unter anderem den Vorteil, dass Anwender sichnicht in neue Statistiksysteme einarbeiten müssen, sondern ihr bekanntes Programm zurAnalyse von Interaktionsaufzeichnungen verwenden können. Sie müssen nur lernen, wieman die Daten aus einer Aufzeichnung in das Programm einbringt. Es muss also eineSchnittstelle zwischen Jacareto und CleverPHL auf der einen und Systemen wie SPSS,

36

Page 45: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 16: Angestrebte Darstellung der Aufzeichnungsstruktur

Fathom und Excel auf der anderen Seite geschaffen werden.

37

Page 46: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

4. Formale Beschreibung

In diesem Kapitel sollen einige formale Grundlagen gelegt werden, um im AnschlussAlgorithmen zur qualitativen und quantitativen Analyse zu konzipieren.

Die qualitative Analyse erfolgt durch die Strukturierung der Aufzeichnung. Grundlagezur quantitativen Analyse soll die Erstellung eines Datensatzes aus einer gegebenen(strukturierten) Aufzeichnung bilden.

4.1. Qualitative Analyse

4.1.1. Aufzeichnung und Aufzeichnungselemente

Im Zentrum der Betrachtung steht die Aufzeichnung von Interaktionen. Eine Aufzeich-nung besteht aus einem oder mehreren Aufzeichnungselementen. Bevor der Begriff derAufzeichnung näher gefasst wird, wird zunächst auf den Begriff des Aufzeichnungsele-mentes eingegangen.

Die Grundlage aller Aufzeichnungen ist die Menge der Aufzeichnungselemente. Die-se Menge wird im Folgenden mit E bezeichnet, und es gelte E 6= ∅. Die Elementeaus E symbolisieren einzelne, konkrete Aufzeichnungselemente wie beispielsweise einMausereignis an einer bestimmten Position oder ein Tastaturereignis auf einer spe-ziellen Komponente. Formal gesehen sind Aufzeichnungselemente Wörter über einemendlichen Alphabet Σ = {a . . . z, A . . . Z, 0 . . . 9, (, ), . . .}. Ein Mausklick an der Bild-schirmkoordinate (10, 20) kann als Wort über Σ beispielsweise so formuliert werden:mouseevent(clicked,10,20).

Es gilt somit E ⊆ Σ∗. Weiterhin soll angenommen werden, dass die Mächtigkeit vonE endlich ist. Dies ist auch von der Anwendung her gesehen plausibel: Die Menge allerBildschirmkoordinaten ist begrenzt, die Anzahl der verschiedenen Ereignistypen ist end-lich, und Zeichenketten können nicht mehr Bytes belegen als der vorhandene Speicherbietet.

Beispiel 4.1 Sei Σ ein Alphabet, n ∈ N die Maximallänge einer Zeichenkette und E ∈Σ∗ folgendermaßen definiert:

E = {e ∈ Σ∗ | e = mouseevent(type,x,y)∧ type ∈ {clicked, pressed, released} ⊂ Σ∗

∧ x ∈ {0, . . . , 1023} ⊂ Σ∗

∧ y ∈ {0, . . . , 767} ⊂ Σ∗}∪ {e ∈ Σ∗ | e = keyevent(type,component)∧ type ∈ {typed, pressed, released} ⊂ Σ∗

∧ component ∈⋃

0<=i<=n Σi}

38

Page 47: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Dann ist E offensichtlich nicht leer und endlich.

Nun kann der Begriff der Aufzeichnung näher gefasst werden. Eine Aufzeichnung isteine Aneinanderreihung von Aufzeichnungselementen. Daher bildet eine Aufzeichnungein Tupel von Aufzeichnungselementen:

Definition 4.1 Sei E eine endliche, nicht leere Menge von Aufzeichnungselementen.Dann heißt En Menge aller n-elementigen Aufzeichnungen, r ∈ En mit r = (e1, . . . , en)n-elementige Aufzeichnung und E∗ =

⋃n∈NEn Menge aller Aufzeichnungen.

Im Folgenden wird für eine Aufzeichnung r vereinfachend r = e1 . . . en geschrieben. Dadie Menge E endlich ist, kann sie als Alphabet aufgefasst werden, und eine Aufzeichnungist ein Wort über dem Alphabet E. Die Menge aller Aufzeichnungen E∗ bildet somit eineSprache. Diese Sichtweise abstrahiert von den konreten Literalen aus Σ. Prinzipiell ist,wenn man jedes einzelne Aufzeichnungselement als Wort über Σ auffasst, eine Aufzeich-nung ebenfalls ein Wort über Σ. Diese Aufgliederung ist allerdings für die folgendenBetrachtungen nicht praktikabel.

Es ist noch anzumerken, dass alle Elemente aus E∗ gültige Aufzeichnungen sind19. Diesgilt nicht für jedes Wort aus Σ∗.

Beispiel 4.2 Seien r, s ∈ Σ∗ mit

r = mouseevent(pressed, 10, 20)mouseevent(released, 10, 20)

s = mouseevent(pressed, 10, 20)mouseevent(released, 10

Dann ist r ∈ E2 eine gültige Aufzeichnung. s hingegen ist keine gültige Aufzeichnung.

4.1.2. Aufzeichnungssprache und Aufzeichnungsgrammatik

Da die Menge aller Aufzeichnungen E∗ eine Sprache bildet und eine Aufzeichnung einWort aus dieser Sprache ist, bietet sich nun auch ein Verfahren zur Strukturierung an:Angenommen, es ist eine Grammatik G gegeben mit L(G) = E∗ 20. Dann ergibt sichdurch den Syntaxbaum eines konkreten Wortes r ∈ E∗ automatisch eine Strukturierungvon r. Die Menge aller Aufzeichnungen E∗ heisst im Folgenden auch Aufzeichnungsspra-che. Das leere Wort ε ∈ E∗ heisst leere Aufzeichnung.

19In der Praxis scheint dies nicht plausibel zu sein, wenn man allein die Aufzeichnungsresultate einesCapture-Prozesses betrachtet; hierbei können nicht alle Kombinationen von Aufzeichnungselementenentstehen. Ist aber die Möglichkeit gegeben, eine Aufzeichnung zu bearbeiten, wie es in Jacareto der Fallist, so ist eine beliebige Aneinanderreihung von Aufzeichnungselementen (den Recordables) durchausdenkbar.

20Notation zu Sprachen und Grammatiken entnommen aus [Sch97]

39

Page 48: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Um eine Aufzeichnung strukturieren zu können, muss man also zunächst eine Grammatikdefinieren, auf deren Grundlage ein Syntaxbaum für die Aufzeichnung konstruiert wird.Es sollen allerdings nicht beliebige Grammatiken zugelassen werden. In der folgendenDefinition wird festgelegt, welche Form derartige Grammatiken haben dürfen.

Definition 4.2 Sei E eine Menge von Aufzeichnungselementen, S eine Menge vonNichtterminalen, P eine Menge von Regeln und R das Startsymbol. Sei weiterhin S ′ ⊆ Seine Teilmenge der Nichtterminale. Sei außerdem D eine Menge von Regeln, die auf derlinken Seite ein Element aus S und auf der rechten Seite ein Element aus (S ∪ E)+

enthalten. Dann heisst G = (S ∪ {R}, E, P, R) Aufzeichnungsgrammatik für E∗, wennP genau aus den folgenden Regeln besteht:

P = {R → ε} (1)∪ {R → e | e ∈ E} (2)∪ {R → eR | e ∈ E} (3)∪ {R → T | T ∈ S ′} (4)∪ {R → TR | T ∈ S ′} (5)∪ D (6)

Die Nichtterminale heissen auch Struktursymbole. Die Menge D heisst Strukturdefiniti-onsmenge, da sie festlegt, auf welche Weise die Struktursymbole aufgelöst werden können.

Anhand dieser Definition kann folgendes festgestellt werden:

• Die leere Aufzeichnung ε ist durch eine Aufzeichnungsgrammatik herleitbar (1).

• Ein einzelnes Aufzeichnungselement e ∈ E ist herleitbar (2).

• Jede beliebige Aneinanderreihung von Elementen aus E ist herleitbar (z.B. durchmehrmaliges Anwenden einer Regel aus der Regelmenge (3) mit abschließendenAnwenden einer Regel aus Regelmenge (2)). Zusammen mit (1) ist also ganz E∗

herleitbar, wodurch gilt L(G) = E∗. Die ersten drei Regelmengen garantierensomit, dass die Aufzeichnungsgrammatik G tatsächlich eine Grammatik für dieAufzeichnungssprache E∗ ist.

• Durch das Anwenden einer Regel aus (3) wird die Aufzeichnung um ein Aufzeich-nungselement kürzer; der Rest der Aufzeichnung wird erneut als Aufzeichnungaufgefasst, so dass die Regelmengen (2) und (3) eine Art rekursive Definition vonAufzeichnungen bilden.

• Eine Regel aus (5) legt fest, dass der Anfang einer Aufzeichnung durch ein Struk-turelement aus S ′ gebildet werden soll. Der Rest wird rekursiv als Aufzeichnungaufgefasst. Eine Regel aus (4) ermöglicht, dass auch das Ende einer Aufzeichnungdurch ein Struktursymbol aus S ′ gebildet werden kann.

40

Page 49: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

• Mit Hilfe der ersten Regelmengen (2) - (5) entscheidet man also, ob der Anfangeiner Aufzeichnung einem Struktursymbol überlassen werden soll oder ob ein ein-zelnes Aufzeichnungselement übersprungen wird.

• Die Menge D bestimmt, wie Struktursymbole weiter aufgelöst werden können. Sieenthält die eigentlichen Informationen über nicht-triviale Herleitungen. Die rechtenSeiten der Regeln aus D sind beliebig konstruierbar21.

• Da lediglich gefordert ist, dass S ′ eine Teilmenge von S ist, kann es auch Struk-turelemente geben, die nicht aus dem Startsymbol R entstehen können. DieseStruktursymbole können zur Definition von Regeln für andere Struktursymboleverwendet werden, ohne dass sie eigenständige Top-Level-Strukturen bilden.

• Die Aufzeichnungssprache E∗ ist regulär, da sie aus den ersten drei Regelmengenvollständig hergeleitet werden kann22. Eine Aufzeichnungsgrammatik ist allerdingsin der Regel nicht regulär (Dies hängt von der Strukturdefinitionsmenge D ab).

Im Folgenden werden die Produktionsregeln der einfacheren Lesbarkeit wegen in derBackus-Naur-Form angegeben23.

Beispiel 4.3 Sei E = {a, b} die Menge der Aufzeichnungselemente, S = S ′ = {A, B}die Menge der Struktursymbole, P eine Menge von Regeln und R das Startsymbol. Sei Geine Grammatik mit G = (S ∪ {R}, E, P, R), wobei P aus den folgenden Regeln besteht:

R ::= AR|BR|A|B|aR|bR|a|b|εA ::= aA|aB ::= ab|b

Dann ist G eine Aufzeichnungsgrammatik für E∗, da die Produktionsregeln den Regel-mengen aus Definition 4.2 entsprechen. Die zweite und dritte Zeile bilden hierbei dieStrukturdefinitionsmenge D.

In Abbildung 17 sind drei mögliche Syntaxbäume des Wortes aab dargestellt. Jeder derdrei Syntaxbäume bildet eine Strukturierung der Aufzeichnung r = aab.

Eine Grammatik, die für ein Wort r verschiedenartig strukturierte Syntaxbäume liefert,heisst mehrdeutig [Sch97, S.25]. Die Grammatik G aus Beispiel 4.3 ist eine mehrdeutige

21Das stimmt nur bedingt; weiter unten wird eine Bedingung an die rechten Seiten der Regeln in derStrukturdefinitionsmenge D gestellt werden.

22Eine Grammatik, die nur die ersten drei Regelmengen enthält, ist eine reguläre Grammatik (mit ε-Sonderregel, siehe [Sch97, S.18]). Daher ist auch die Sprache E∗ regulär.

23siehe [Sch97, S.25f]

41

Page 50: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 17: Syntaxbäume zu Beispiel 4.3

Grammatik. Dies bedeutet aber auch für die Strukturierung von Aufzeichnungen, dasseine Aufzeichnung auf mehrere Arten strukturiert werden kann.

Eine Sprache A heißt inhärent mehrdeutig, wenn jede Grammatik G mit L(G) = Amehrdeutig ist. Die Sprache der Aufzeichnungen E∗ ist allerdings nicht inhärent mehr-deutig. Dies ergibt sich, wenn man S ′ = D = ∅ in Defintion 4.2 setzt. Das Ergebnis istdann eine reguläre Aufzeichnungsgrammatik G, die nicht mehrdeutig ist.

4.1.3. Strukturanalyse

Die qualitative Analyse einer Aufzeichnung besteht aus der Definition und dem Erkennenvon Strukturelementen. Hierzu muss zunächst eine Aufzeichnungsgrammatik formuliertwerden, deren wesentlicher Teil aus der Strukturdefinitionsmenge D besteht. Die Struk-tur einer Aufzeichnung ergibt sich schließlich aus dem Syntaxbaum einer Herleitungdieser Aufzeichnung auf der Basis der Aufzeichnungsgrammatik.

Die Aufgabe besteht also darin, einen Syntaxbaum einer Aufzeichnung zu einer gegebe-nen Aufzeichnungsgrammatik zu finden. Dieser Prozess ist analog zum dem Bau einesSyntaxbaums eines Programms, das in einer Programmiersprache geschrieben ist. DieMethoden, die das finden eines solchen Baums ermöglichen, können also aus dem Gebietdes Übersetzerbaus entliehen werden.

Das Berechnen eines Syntaxbaums ist Teil der sogenannten Mehrphasenkompilierung, diebeispielsweise in [ASU88, S.12f], [GE99, S.3ff] und [Wir96, S.1ff] näher beschrieben wird.Das gegebene Programm, das in der Form einer Zeichenfolge vorliegt, muss hierbei zu-nächst in der lexikalischen Analyse in eine Folge von Token transformiert werden, die dieatomaren Einheiten für die zweite Phase bilden. Diese zweite Phase, die Syntaxanalyse,berechnet für die Tokenfolge einen Syntaxbaum. Dieser Vorgang wird als Parsing be-zeichnet. Die weitere Schritte der Mehrphasen-Kompilierung (semantische Analyse, Co-

42

Page 51: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

deoptimierung, Codegenerierung) sind für die Strukturierung einer Aufzeichnung nichtnötig; sie endet mit der Erstellung des Syntaxbaums.

Die lexikalische Analyse bedeutet hier, dass ein Wort r ∈ Σ∗ in eine Folge r′ = e1, . . . , en ∈E∗ überführt wird. Die Rolle der Token übernehmen hier die Aufzeichnungselemente.Der zweite Schritt, die Syntaxanalyse, erstellt für die Folge r′ einen Syntaxbaum auf derBasis der Aufzeichnungsgrammatik.

Fü̈r die Syntaxanalyse gibt es zwei generelle Vorgehensweisen: Das Top-Down-Parsingund das Bottom-Up-Parsing.

• Beim Top-Down-Parsing wird zunächst vom Startsymbol ausgegangen und einegeeignete Regel gesucht. Durch die Anwendung dieser Regel wird das Startsymbolersetzt durch die rechte Seite der Regel. Nun wird das Nichtterminalsymbol, dasam weitesten links steht, durch die rechte Seite einer Regel ersetzt usw., bis daskomplette Wort hergeleitet ist. Diese Methode wird auch als Methode des rekursi-ven Abstiegs [Wir96, S.17ff] bezeichnet. Hierbei wird für jedes Nichtterminalsymbolein Erkennungsalgorithmus definiert [Wir96, S.18]. Dieser Erkennungsalgorithmusüberführt entweder den Teil eines Wortes in einen Teilbaum, oder liefert nichts,falls der Teil des Wortes nicht aus dem Nichtterminalsymbol herleitbar ist. Da dasWort von links nach rechts gelesen wird, und die Symbolfolge am linken Ende re-duziert wird, wir diese Methode nach D.E.Knuth auch als LL-Parsing bezeichnet.

• Beim Bottom-Up-Parsing wird der umgekehrte Weg gewählt: Es wird nicht vomStartsymbol aus vorgegangen, sondern vom Wort selbst. Hierbei wird Symbol fürSymbol gelesen und überprüft, ob die gelesene Symbolfolge einem Syntaxkonstruktentspricht. Wenn ja, wird sie durch ein Nichtterminalsymbol ersetzt. Wenn am En-de das Startsymbol herauskommt, so ist das Wort ein gültiges Wort der Sprache,und der Weg dorthin bildet den Syntaxbaum. Da die Zusammenfassung von Sym-bolen hierbei vom rechten Ende her vorgenommen wird, wird auch von LR-Parsinggesprochen.

In dieser Arbeit wurde zur Strukturierung von Aufzeichnungen das Top-Down-Parsinggewählt, und zwar im Wesentlichen aus Modellierungsgründen: Das System soll möglichsteinfach um weitere Strukturelemente erweiterbar sein, auch von nicht-professionellenProgrammierern. Das Top-Down-Parsing ist intuitiv, da für jedes Strukturelement ein-fach ein Erkennungsalgorithmus geschrieben werden muss, der die Inspektion der Auf-zeichnung selbst vornimmt24. Die Objektorientierung kommt diesem Modellierungsvor-gehen entgegen, da hier für jedes Strukturelement eine eigene Klasse definiert werdenkann (Dieser Punkt wird weiter unten noch genauer ausgeführt).

Allerdings gibt es zwei Nachteile des Top-Down-Parsings, die näher betrachtet werden24Bottom-Up Parsing wird in der Praxis eher bei automatisch erzeugten Parsern verwendet [ASU88,

S.237].

43

Page 52: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

müssen: Die Möglichkeit, unendliche Rekursionen zu formulieren, und das Laufen inSackgassen.

Unendliche Rekursionen können leicht entstehen, wenn es Regeln der folgenden Art gibt:

A ::= Ar

mit A ∈ S und r ∈ (S ∪ E)∗. Ein Erkennungsalgorithmus für A würde nämlich alserstes den Erkennungsalgorithmus für A aufrufen, der wiederum den Erkennungsalgo-rithmus für A aufruft usw. Diese Linksrekursionen dürfen nicht verwendet werden. Dasist eine Zusatzbedingung an die Strukturdefinitionsmenge D: Sie darf keine Regeln deroben beschriebenen Form enthalten. In [ASU88, S.214f] und [GE99, S.54ff] werden for-male Methoden beschrieben, wie man derartige Regeln äquivalent umformen kann. ImWesentlichen handelt es sich hierbei um die Aufteilung der Regel mit Einführung einesneuen Nichtterminal-Symbols.

Der Parsing-Algorithmus kann leicht ineffizient werden, wenn sehr oft in sehr langeSackgassen gelaufen wird. Hier wird erst sehr spät erkannt, dass ein Abschnitt der Auf-zeichnung doch nicht zu einer vermuteten Struktur gehört. Wenn beispielsweise beimParsen der Struktur A tausend Aufzeichnungselemente gelesen worden sind und dasdarauffolgende (Element 1001) auschlaggebend dafür ist, dass es sich nicht um Struk-tur A handelt, muss wieder beim ersten Aufzeichnungselement ein weiterer Versuch miteiner anderen Struktur begonnen werden. Beim Parsen von Programmiersprachen be-grenzt man daher die Möglichkeit, beliebig weit nach vorne zu schauen. Die zu parsendeGrammatik wird dann mit LL(k) oder LR(k) bezeichnet, um anzudeuten, dass die Vor-schau (der sogenannte Lookahead) [Wir96, S.27] genau k Elemente beträgt. In der Praxisgenügt sogar meist eine Vorschau von 1.

Einen Lookahead beim Parsen von Programmiersprachen festzulegen ist einfach, da dieSprachdefinition bereits vorliegt. Im Fall der Strukturierung von Aufzeichnungselemen-ten ist die Sache nicht so klar, da die Aufzeichnungsgrammatik durch Hinzufügen weite-rer Strukturelemente ständig erweitert werden kann. Es kann im Voraus nicht eindeutigbestimmt werden, welcher Lookahead ausreicht. Wenn beispielsweise eine Folge von 100Mausbewegungen auf die ein oder andere Art strukturiert werden kann, beim Parsen ei-ner der Möglichkeiten sich aber erst am Schluss herausstellt, dass es sich um eine andereStruktur handeln muss, dann muss wieder von vorne begonnen werden. Wollte man diesverhindern, dann würde das Strukturieren von Aufzeichungen sehr unhandlich werden.Aus Gründen der Benutzerfreundlichkeit und einfachen Erweiterbarkeit wird in dieserArbeit daher ein beliebiger Lookahead zugelassen und damit das Laufen in Sackgassenin Kauf genommen. Den Programmierern von Strukturelementen kann nur empfohlenwerden, so früh wie möglich festzustellen, dass es sich um eine bestimmte Struktur nichthandelt.

44

Page 53: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Tabelle 3: Ein Datensatz mit vier Datenfällen

Person Frage 1 Frage 2a Frage 2b Frage3A 1 4 3 2B 3 2 1 2C 2 2 3 2D 2 1 2 4

4.2. Quantitative Analyse

4.2.1. Erstellung eines Datensatzes aus einer Aufzeichnung

Wenn eine Aufzeichnung mit ihrer Struktur gegeben ist, so können quantitative Datenaus dieser extrahiert werden. Hierbei kann es sich im einfachsten Fall um Attributwerteder Aufzeichnungselemente (z.B. die x-Koordinaten von Mausereignissen), Attributwer-te von Strukturelementen (z.B. die Anzahl aller atomaren Aufzeichnungselemente, diedas Strukturelement umfasst) und Attributwerte der Aufzeichnung (z.B. Dauer der Auf-zeichnung). Es können aber auch Kombinationen von quantitativen Daten von Interessesein (z.B. Indexbildung, s.o.). Hierzu zählen auch Mittelwerte, Varianzen und Erwar-tungswerte. Prinzipiell ist die ganze Palette an statistischen Kennzahlen und Funktionenerforderlich. Daher ist es sinnvoll, zur quantitativen Analyse auf existierende Statistik-programme wie SPSS und Fathom zurückgreifen zu können.

Statistikprogramme arbeiten mit sogenannten Datenfällen (siehe Kapitel 3.3). Ein Da-tenfall ist eine Liste von Werten. Eine Menge von Datenfällen wird als Datensatz be-zeichnet. Man kann sich einen Datensatz als Tabelle vorstellen; die Zeilen werden vonden Datenfällen gebildet, in den Spalten stehen die einzelnen Werte der Datenfälle. Wennz.B. Antworten zu einem Fragebogen ausgewertet werden, so sind die Antworten jedereinzelnen Person, die den Bogen ausgefüllt hat, ein eigener Datenfall (siehe Tabelle 3).

Um also Aufzeichnungsdaten mittels eines Statistikprogramms analysieren zu können,muss man aus der Aufzeichnung mit ihrer Struktur einen Datensatz extrahieren können.Eine Funktion, die eine strukturierte Aufzeichnung in einen Datensatz überführt, wirdin dieser Arbeit als Datensatzerzeuger bezeichnet.

Eine einfache Möglichkeit, aus einer strukturierten Aufzeichnung einen Datensatz zuerzeugen, ist eine Filterung mit einer anschließenden Konvertierung. Die Filterung ex-trahiert aus der Aufzeichnung einen Satz von Strukturelementen, die Konvertierungüberführt die einzelnen Strukturelemente in je einen Datenfall. Der Datensatzerzeugerbesteht also aus der Verkettung zweier Funktionen.

Wenn z.B. die Koordinaten von Mausklicks einer quantitativen Analyse unterzogen wer-den sollen, so kann man in einem ersten Schritt alle Mausklicks aus der Aufzeichnungfiltern und diese anschließend in je einen Datenfall konvertieren. Ein möglicher Daten-

45

Page 54: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Tabelle 4: Ein Datensatz von Mausklicks

Fenster x-Koordinate y-KoordinateFenster1 103 45Fenster1 43 22Fenster1 2 110Fenster2 12 17Fenster2 42 23Fenster1 10 112Fenster2 15 10

satz, der hierbei entstehen kann, ist in Tabelle 4 gegeben.

4.2.2. Erstellung eines Datensatzes aus mehreren Aufzeichnungen

In vielen Fällen möchte man eine quantitative Erhebung über mehrere Aufzeichnungenmachen. Wenn beispielsweise die Benutzung des Zahlenstrahl-Spiels durch 100 Kinderaufgezeichnet wird, so kann von Interesse sein, wie die Verteilung der Bearbeitungszeitenaussieht.

Will man mehrere Aufzeichnungen gemeinsam analysieren, so bildet meist jede Auf-zeichnung einen einzelnen Datenfall25. Das Vorgehen ist prinzipiell das gleiche wie beider Erstellung eines Datensatzes aus einer einzelnen Aufzeichnung; im Falle mehrererAufzeichnungen muss nur das Wurzelelement der Struktur gefiltert und anschließendkonvertiert werden. Voraussetzung für dieses Vorgehen ist, dass die interessierenden In-formationen zuvor im Wurzelelement gesammelt worden sind. Dieses Vorgehen kanndurch zwei Punkte begründet werden: Zum einen besitzt jede Aufzeichnung nur eineinziges Wurzelelement; es entsteht bei der Filterung pro Aufzeichnung also nur einDatenfall. Zum anderen hat das Wurzelelement der Struktur leichten Zugriff auf al-le Kindelemente, so dass hier eine geeignete Stelle zur Sammlung von Attributen dergesamten Aufzeichnung ist.

25Das muss nicht immer so sein; das weiter unten beschriebene Framework lässt auch zu, dass mehrereDatenfälle pro Aufzeichnung erzeugt werden.

46

Page 55: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

5. Implementierung

5.1. Qualitative Analyse der Aufzeichnung

5.1.1. Der Strukturbaum

Ziel der qualitativen Analyse ist die Bildung eines Strukturbaums zu einer gegebenenAufzeichnung. Ein Strukturbaum besteht aus Knoten und Kanten. Die Knoten sind diesogenannten Strukturelemente, die Kanten bezeichnen die Relation ist Subelement von.Die Blätter des Baumes sind die Strukturelemente, die die Aufzeichnungselemente re-präsentieren. Da diese Strukturelemente keine Kindelemente besitzen, werden sie auchals atomar bezeichnet. Die nicht-atomaren Strukturelemente repräsentieren die Struk-tursymbole aus der Menge S in Definition 4.2. Das Wurzelelement ist ein Repräsentantfür R26.

Zur Bildung des Strukturbaums wurden in Jacareto einige neue Klassen eingeführt, diealle dem Package jacareto.struct zugeordnet sind: Die Klasse Structure repräsen-tiert die Struktur einer Aufzeichnung. Die Knoten des Baumes sind Objekte der KlasseStructureElement. Die Klasse Recordable wurde dahingehend geändert, dass sie nunErbenklasse der Klasse StructureElement ist; die Aufzeichnungselemente selbst könnennun Teil des Strukturbaums sein.

Die Klasse Structure stellt unter anderem die folgenden Methoden bereit: Die Metho-de Record getRecord() liefert die zur Struktur gehörende Aufzeichnung, die MethodeStructureTreeModel getTreeModel() ein Modell zur Darstellung des Strukturbaumesin einer Instanz der Klasse javax.swing.JTree. Die Klasse StructureElement besitztMethoden, die üblicherweise von Knoten eines Baumes angeboten werden: u.a. die Me-thoden StructureElement getParent() zur Rückgabe des Elternknotens im Baum,StructureElement[] getChildren() als Schnittstelle zu den Kindknoten eines Bau-mes und boolean hasChildren(), um zu erfragen, ob es sich um ein atomares Elementhandelt oder nicht. Der Konstruktor eines Strukturelements erwartet ein Umgebungs-objekt und ein Feld, welches die Kindelemente enthält.

Weiterhin besitzt jedes Strukturelement eine Dauer : Da eine Aufzeichnung eine zeit-basierte Speicherform ist und jedes Strukturelement einen bestimmten Bereich in derAufzeichnung überdeckt (nämlich gerade alle atomaren Strukturelemente, die unterhalbdes entsprechenden Strukturelementes liegen), so kann auch angegeben werden, welchezeitliche Spanne ein solches Strukturelement besitzt. Dieser Wert kann über die Methodelong getDuration() erfragt werden, die die Dauer in Millisekunden liefert. Handelt essich um ein atomares Strukturelement, so muss in jedem Einzelfall entschieden werden,welche Dauer dieses besitzt (ein Aufzeichnungselement, welches eine Pause repräsentiert,

26Der Begriff Strukturelement ist nicht synonym mit dem Begriff Struktursymbol aus Definition 4.2. Struk-turelemente sind alle Knoten eines Strukturbaums (also Terminale und Nichtterminale der Aufzeich-nungsgrammatik).

47

Page 56: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 18: Strukturbaum einer Aufzeichnung

hat z.B. eine Dauer, die der Pausenlänge entspricht). Handelt es sich hingegen um einStrukturelement, welches Kinder besitzt, so ist seine Dauer die Summe der Dauern seinerKinder.

Außerdem besitzt die Klasse StructureElement noch Methoden, die der Darstellungin einem GUI dienen: String getElementName(), String getElementDescription()und String toShortString().

Jetzt muss nur noch bestimmt werden, auf welche Weise der Strukturbaum gebildet wer-den soll. Wie in Abschnitt 4.1.3 beschrieben wird, soll hier ein Top-Down-Ansatz verfolgtwerden. Hierbei besitzen einzelne Einheiten spezielle Erkennungsalgorithmen, die fest-stellen, ob ein bestimmtes Strukturelement an einer gegebenen Stelle der Aufzeichnungvorliegt oder nicht. Derartige Algorithmen können natürlich auf Erkennungsalgorith-men anderer Einheiten zurückgreifen, wenn diese für Subelemente des zu erkennendenStrukturelementes verantwortlich sind.

Es liegt also nahe, die Erkennungsalgorithmen in den Subklassen der Klasse Struc-tureElement selbst anzusiedeln. Die Methoden zur Erkennung sind hierbei statisch:Die Klasse MouseMotion beispielsweise, die eine längere Mausbewegung repräsentiert,besitzt eine solche statische Methode, die einen gegebenen Bereich der Aufzeichnungnach zusammenhängenden, einzelnen Mausbewegungen absucht. Ist sie fündig, so liefertsie ein Objekt vom Typ MouseMotion zurück, welches die einzelnen Mausbewegungenals Kindelemente besitzt. Ist der Teil der Aufzeichnung nicht passend, so liefert sie denWert null zurück.

48

Page 57: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 19: Die Klasse Structure und assoziierte Klassen

Im Folgenden wird zunächst erläutert, in welcher Weise die Aufzeichnung systematischstrukturiert wird; anschließend wird auf die einzelnen Strukturierungsmechanismen bzw.Erkennungsalgorithmen näher eingegangen.

5.1.2. Der Tokenizer

Die Datenbasis zur Aufzeichnungsstrukturierung ist eine Aufzeichnung, die gelesen wer-den kann (ein sogenanntes ReadAccessRecord)27. Eine Subklasse von ReadAccessRecordist beispielsweise die Klasse VectorRecord, welche die aufgezeichneten Elemente in ihrerursprünglichen Objektform in einer Vector-Instanz speichert und keine Konvertierungin andere Formate vornimmt. Wird eine solche Aufzeichnung als Basis für die Struk-turierung genommen, so entfällt die lexikalische Analyse. Wählt man hingegen einenAufzeichnungstyp, der die Aufzeichung zunächst aus einer persistenten, zeichenbasier-ten Speicherform wie einer XML-Datei liest, so muss in dieser Klasse direkt die lexikali-sche Analyse vorgenommen werden; da diese Analyse je nach Aufzeichnungsform andersausfällt, soll sie hier nicht weiter betrachtet werden28.

Der nächste Schritt ist der Bau des Strukturbaums zu der gegebenen Aufzeichnung.Hierbei muss gewährleistet werden, dass die einzelnen Strukturierungsobjekte nicht un-geordnet Aufzeichnungselemente herausgreifen, und dass ein Aufzeichnungselement nicht

27Es gibt durchaus auch Aufzeichnungstypen, die zwar Aufzeichnungselemente aufnehmen, diese abernicht wieder liefern können; ein Beispiel hierfür wäre eine Aufzeichnung, die alle aufgezeichneten Ele-mente über ein Netz versendet und selbst nicht mehr bereithält.

28Formal gesehen ist eine Aufzeichnung vom Typ VectorRecord ein Element aus E∗, die XML-Dateieiner Aufzeichnung ein Element aus Σ∗ (siehe Kaptitel 4.1.1).

49

Page 58: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

mehrmals gelesen wird. Gemäß Definition 4.2 wird eine Aufzeichnung bei der Struktu-rierung auf der obersten Ebene von links nach rechts gelesen (siehe Regelmengen (2)-(5)in Definition 4.2). Hierbei wird entweder der vordere Teil der Aufzeichnung in ein Struk-turelement überführt, oder es wird ein einzelnen Element gelesen; anschließend wird derRest der Aufzeichnung analysiert, insofern noch Elemente übrig sind.

Die Überwachung des Zugriffs auf die Aufzeichnungselemente übernimmt ein sogenannterTokenizer 29. Dieser bildet die Schnittstelle zur Aufzeichnung und sorgt für den geordne-ten Ablauf der Strukturierung. Ein Tokenizer wandert von vorne nach hinten durch dieAufzeichnung und gewährleistet, dass nur Elemente gelesen werden können, die nochnicht Teil des bislang gebildeten Strukturbaums sind. In klassischen Übersetzerbau-Szenarien wacht er außerdem über den Lookahead, so dass nicht beliebig weit nachvorne geschaut werden kann; wie in Abschnitt 4.1.3 beschrieben wird, soll hier dieseBeschränkung entfallen. Es muss nur darauf geachtet werden, dass nicht über das Endeder Aufzeichnung hinaus gelesen werden kann.

Ist ein Strukturelement gebildet worden, so wird er Tokenizer auf das erste Aufzeich-nungselement hinter dem letzen Element der gerade gebildeten Struktur gesetzt. DerRest der Aufzeichnung darf dann geparst werden.

In der Regel besitzen Strukturelemente auch weitere Strukturelemente als Subknotenim Strukturbaum. So kann beispielsweise das Element Druckdialogbenutzung ein Subele-ment namens Formatauswahl besitzen, das seinerseits aus mehreren Mausbewegungenmit einem abschließenden Mausklick bestehen kann. Ein Strukturelement, welches dieUntersuchung der Dialogbenutzung vornimmt, wird also einen Teil der Strukturierungan ein Strukturelement, welches die Formatauswahl untersucht, delegieren. Das überge-ordnete Element soll hier als rufendes Element bezeichnet werden, das untergeordneteals gerufenes Element. Ist das gerufene Element erfolgreich gewesen, so wird das ru-fende den folgenden Teil der Aufzeichnung weiter strukturieren und evtl. an weitereSubelemente delegieren. Führt jedoch der weitere Teil der Aufzeichnung zu einer Ver-werfung des Strukturelementes (beispielsweise weil erforderliche Aufzeichnungselementefehlen), so muss das rufende Element seinerseits den kompletten Parsing-Vorgang ab-brechen und einem anderen Strukturelement die Untersuchung des Aufzeichnungsteilsüberlassen. Allerdings hat das gerufene Element, welches seinen Teil der Aufzeichnungerfolgreich geparst hat, bereits den Parser fortgeschaltet. Das rufende Element muss al-so die Möglichkeit erhalten, den Tokenizer wieder in den Zustand zu versetzen, den erhatte, bevor das rufende Element mit der Strukturierung beauftragt worden ist. DerTokenizer soll also Methoden bieten, den aktuellen Zustand zu sichern und einen bereits

29Der Tokenizer ist beim Parsen von Programmen auch für die lexikalische Analyse zuständig. Hier scannter den Quelltext und führt u.a. Bereinigungen wie die Entfernung von Kommentaren, Leerzeichenund Zeilenwechseln durch. Daher heißt der Tokenizer auch häufig Scanner [ASU88, S.102f]. Hier wirddie Bezeichnung Tokenizer verwendet, da der Scan-Vorgang von den jeweiligen Aufzeichnungsklassenwie beispielsweise der Klasse XMLRecord übernommen wird. Außerdem ist diese Bezeichnung analogzu ähnlichen Klassen, die in der Java-Distribution enthalten sind; hier ist beispielsweise die KlasseStringTokenizer zu nennen, die eine Zeichenkette in Teilketten zerlegt.

50

Page 59: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 20: Der Tokenizer

gesicherten Zustand wiederherzustellen.

In Jacareto wurde für die Tokenizer-Klassen ein neues Package names jacareto.parseeingeführt. Die Klasse jacareto.parse.RecordTokenizer bildet den Tokenizer, der diefolgenden Methoden anbietet: Die Methode Recordable next() liefert das nächste Auf-zeichnungselement, die Methode Recordable next(int) liefert das Aufzeichnungsele-ment, das eine bestimmte Schrittzahl entfernt liegt. Analog hierzu liefern die Methodenboolean hasMore() und boolean hasMore(int) als Ergebnis, ob noch weitere Auf-zeichnungselemente vorhanden sind. Mit Hilfe der Methoden void forward() und voidforward(int) wird der Parser weitergeschaltet. Die Methoden RecordTokenizerStatesaveState() und void restoreState(RecordTokenizerState) ermöglichen das Spei-chern und Wiederherstellen des Tokenizerzustandes.

5.1.3. Erkennung und Bildung von Strukturelementen

Die Methode, die den Erkennungsalgorithmus und die Bildung des Strukturelementesbeinhaltet, ist die Methode public static StructureElement parse (Environmentenv, RecordTokenizer tokenizer) der Klasse StructureElement. Sie erhält als Ar-gumente die aktuelle Umgebung30 und den Tokenizer, der auf die zu untersuchende Stellein der Aufzeichnung zeigt. Aufgabe der Methode ist es nun, die weiteren Elemente der

30Üblicherweise erhalten Instanzen im Jacareto-Framework die Umgebungsinstanz bereits im Konstruktor.Da es sich bei der Methode parse aber um eine statische Methode handelt, muss die Umgebung hierexplizit mit übergegeben werden.

51

Page 60: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 21: Die Klassen RecordTokenizer und RecordTokenizerState

Aufzeichnung zu untersuchen und festzustellen, ob es sich um ein gewünschtes Struk-turelement handelt. Hierbei darf beliebig weit nach vorne geblickt werden. Wenn nötig,kann auch wie oben beschrieben der Zustand des Tokenizers gesichert und im Falle einesFehlers wieder hergestellt werden. Als Rückgabewert liefert die Methode das Struktur-element mit den Kindern und Kindeskindern, falls der aktuelle Teil der Aufzeichnungpasst. Der Tokenizer muss hierbei von der Methode bereits weitergeschaltet worden sein.Andernfalls liefert sie den Wert null, und der Zustand des Tokenizers muss derselbe wievor Aufruf der Methode sein.

In einer Aufzeichnungsgrammatik (siehe Definition 4.2) nimmt das Element R eine Son-derstellung ein: Es handelt sich hier um das Wurzelelement des Strukturbaumes. Wirdein neuer Teil der Aufzeichnung untersucht, so entscheidet das Wurzelelement, welchesStrukturelement die Analyse übernehmen soll oder ob einfach das nächste Aufzeich-nungselement gelesen und der Rest der Aufzeichnung strukturiert wird. Da Aufzeich-nungsgrammatiken meist mehrdeutig sind, muss vor allem an dieser Stelle die Eindeu-tigkeit durch zusätzliche Entscheidungsmechanismen erzwungen werden.

Gegeben sei die Stelle, ab der die Aufzeichnung noch unstrukturiert ist. Das Wurzelele-ment soll nun in der folgenden Weise vorgehen: Zunächst werden alle Strukturelementezu Struktursymbolen der Menge S ′ aus Definition 4.2 nacheinander beauftragt, den ak-tuellen Teil der Aufzeichnung zu parsen, bis eines der Elemente fündig ist (Regelmengen(4) und (5) in Definition 4.2). Ist keines der Strukturelemente erfolgreich, so wird nur eineinzelnes Aufzeichnungselement gelesen (Regelmengen (2) und (3) in Definition 4.2) undmit dem nächsten wieder von vorne begonnen, falls es sich nicht bereits um das letzteAufzeichnungselement gehandelt hat. Die Eindeutigkeit an dieser Stelle wird durch einefeste Priorisierung der Strukturelemente zu Struktursymbolen aus S ′ erzwungen: EinStrukturelement mit einer höheren Priorität darf die Aufzeichnung vor einem Struktur-element mit einer niedrigeren Priorität parsen.

Der Parsing-Algorithmus des Wurzelelementes soll hier kurz skizziert werden (Listing

52

Page 61: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

5.1). Der Algorithmus ist von einer Schleife umgeben; er wird ausgeführt, so lange nochElemente in der Aufzeichnung ungeparst sind. Wenn die Aufzeichnung leer ist, so wird dieSchleife sofort übersprungen und eine Struktur erstellt, die nur aus dem Wurzelelementbesteht (Regelmenge (1) in Definition 4.2).

Listing 5.1...while (recordTokenizer.hasMore()) {

StructureElement element = null;if (isStructureBuilding) {

Iterator i = parseMethods.iterator();

// parse the record at the current positionwhile (i.hasNext() && element == null) {

Method parseMethod = (Method) i.next();try {

element = (StructureElement)parseMethod.invoke (null, parameters);

} catch (Throwable t) {logger.error (...);

}}

}

// add the structure element or the recordable to the// children vectorif (element != null) {

childrenVector.add (element);} else {

childrenVector.add (recordTokenizer.get());recordTokenizer.forward();

}}...

Die zweite, innere Schleife geht alle parse-Methoden der Strukturelemente zu Struktur-symbolen aus S ′ durch und beauftragt diese, die Aufzeichnung an gegebener Stelle zuparsen. Ist eine von ihnen erfolgreich, so ist die Variable element nicht null, und dieinnere Schleife wird abgebrochen; andernfalls wird mit dem nächsten Strukturelementfortgefahren. Nach der inneren Schleife werden zwei Fälle unterschieden: Wenn die Va-riable element nicht null ist, so wurde ein Strukturelement gefunden, und es wird den

53

Page 62: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Kindelementen angefügt. In diesem Fall hat auch der erfolgreiche Erkennungsalgorith-mus den Tokenizer an die als nächstes zu parsende Stelle gesetzt. Andernfalls wird dasaktuelle Aufzeichnungselement den Kindelementen angefügt31. In diesem Fall muss auchder Tokenizer um eins fortgeschaltet werden.

Die Strukturdefinitionsmenge D aus Definition 4.2 wird durch die parse-Methoden dereinzelnen Strukturelementklassen gebildet. Eine Priorisierung möglicher Kindelementemuss dort im Speziellen vorgenommen werden, hierfür werden keine Mechanismen be-reitgestellt.

Die Strukturierung einer Aufzeichnung wird in CleverPHL automatisch nach Beendigungeines Capture-Prozesses durchgeführt. Wird der Aufnahmeprozess später fortgesetzt, sowird anschließend die gesamte Aufzeichnung restrukturiert, da sich durch die hinzu-gekommenen Aufzeichnungselemente eine völlig andere Struktur ergeben könnte. EineRestrukturierung kann von dem Benutzer auch über das Menü vorgenommen werden,z.B. nachdem er Elemente aus der Aufzeichnung gelöscht hat.

5.1.4. Beispiele einiger Strukturelemente

Die Aufzeichnung selbst beinhaltet Ereignisse höchster Granularität. Zur Bildung hohersemantischer Einheiten wie beispielsweise Druckdialogbenutzung ist die Auflösungsstufeder unstrukturierten Aufzeichnung noch zu unhandlich. Daher ist es sinnvoll, die hoch-granularen Elemente zunächst zu kompakteren Einheiten, die beispielsweise das Drückeneines Knopfes, die Auswahl in einer Liste oder das Betätigen eines Schiebers repräsen-tieren, zusammenzufassen. Im Folgenden werden einige Beispiele für solche Strukturele-mente aufgeführt und verdeutlicht, dass hier bereits komplexe Erkennungsalgorithmennotwendig sind. Die Quelltexte einiger der hier genannten Klassen bzw. deren parse-Methoden befinden sich in Anhang B.

Strukturelemente können auch spezielle Attribute besitzen, deren Werte sich aus denKindkomponenten herleiten lassen. Diese Attribute können in den Konstruktoren derStrukturelemente mit Werten belegt werden.

MouseClick: Ein Mausklick besteht aus drei Aufzeichnungselementen vom Typ Mouse-EventRecordable: ein Element vom Typ MOUSE_PRESSED, eins vom Typ MOUSE_RE-LEASED und eins vom Typ MOUSE_CLICKED32. Die drei Elemente müssen aber nochweitere Bedingungen erfüllen: Sie müssen auf derselben Komponente ausgelöst wor-den sein, und die x- und y-Koordinaten müssen ebenfalls übereinstimmen. Sind alle

31Gemäß Regelmenge (3) aus Definition 4.2 müssten eigentlich Zwischenelemente, die das Symbol Rrepräsentieren, mit eingebaut werden. Dies ist jedoch eine Eigenschaft der formalen Spezifikation undeignet sich nicht in der Praxis, da so bedeutungslose, aber sehr tiefe Teilbäume entstehen würden. Daherwerden die entsprechenden Teilbäume in der Implementierung abgeflacht und alle einzeln hinzugefügtenAufzeichnungselemente als Kinder des Wurzelelementes eingebracht.

32Letzteres wird bereits als höherwertiges Ereignis vom System selbst bereitgestellt und dient hier alsIndikator für einen Mausklick.

54

Page 63: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Bedingungen erfüllt, so liefert die Erkennungsmethode ein Strukturelement vomTyp MouseClicked zurück, welches die drei Mausereigniselemente als Kindknotenbesitzt, andernfalls null. Dieses Strukturelement übernimmt einige Attribute wiebeispielsweise die x- und y-Koordinaten von seinen Kindelementen.

MultipleMouseClick: Bei diesem Strukturelement handelt es sich um eine Weiterfüh-rung des einfachen Mausklicks, nämlich um Doppelklicks, Dreifachklicks usw. Esist intuitiv, dass ein Strukturelement vom Typ MultipleMouseClick Kinder vomTyp MouseClick besitzt. Die parse-Routine dieser Klasse ruft also die parse-Routine der Klasse MouseClick auf, so lange diese erfolgreich Strukturelementeliefert, die Teil des Mehrfachklicks sind (Dies kann über das Attribut clickCountder Mausklicks erfragt werden). Die zugehörigen Mausklicks werden dann als Kind-komponenten hinzugefügt. Erschwert wird dieser Erkennungsalgorithmus durch dieTatsache, dass sich kleine Mausbewegungen zwischen den einzelnen Mausklicks be-finden können. Diese werden ebenfalls als Kindkomponenten mit aufgenommen.DieKlasse MultipleMouseClick bietet außerdem die Methode int getClickCount()an, die die Anzahl der Klicks liefert.

FocusChange: Die Klasse FocusChange beschreibt den Fokuswechsel von einer Kom-ponente auf eine andere. Sie besteht mindestens aus zwei Aufzeichnungselemen-ten: einem FocusEventRecordable vom Typ FOCUS_LOST und einem vom TypFOCUS_GAINED. Ein solcher Fokuswechsel kann u.a. durch einen Mausklick hervor-gerufen werden. Dieser sollte auch als Kindknoten in den Fokuswechsel mit auf-genommen werden. An dieser Stelle tritt eine weitere Schwierigkeit auf, die in derReihenfolge der aufgezeichneten Ereignisse liegt. Diese ist in der Regel die folgen-de: mouse pressed, focus lost, focus gained, mouse released und mouse clicked. DasStrukturelement MouseClicked konnte also den Mausklick nicht erkennen, da zweiFokusereignisse zwischen den Mausereignissen liegen. Das Element FocusChangesollte also alle fünf Aufzeichnungselemente prüfen und dann folgendermaßen vorge-hen: Es bildet aus den drei Mausereignissen ein MouseClicked Element, das ersteKindelement. Die beiden Fokuselemente werden schließlich als zweites und drit-tes Element zu den Kindelementen hinzugefügt. Hierbei wurde allerdings in derGruppierung von der ursprünglichen Aufzeichnungsreihenfolge abgewichen. Diessoll zulässig sein, insofern die Reihenfolge der Aufzeichnungselemente in der Auf-zeichnung selbst nicht angetastet wird.

ButtonActivated: Ein Strukturelement vom Typ ButtonActivated soll die Betätigungeines Buttons repräsentieren. Dieses Element kann auf verschiedene Arten zusam-mengesetzt sein; hier wird zum ersten Mal die Komplexität der Aufzeichnungs-strukturierung deutlich. Es kann aus folgendermaßen gereihten Elementen gebildetwerden:

• einem einfachen Action-Ereignis (action event)• einem Strukturelement vom Typ FocusChange (inklusive einem evtl. Maus-

klick) und einem anschließenden Action-Ereignis

55

Page 64: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

• den Ereignissen mouse pressed, mouse released, action event und mouse clicked(in diesem Fall wird wie bei der Bildung eines Fokuswechsels verfahren)

• den Ereignissen mouse pressed, focus lost, focus gained, mouse released, acti-on event und mouse clicked (dieser Fall schließt eine komplexe Bildung vonKindelementen mit ein)

• einem Mausklick mit einem anschließenden Action-Ereignis

• einem Strukturelement vom Typ MouseDrag33 mit einem Action-Ereignis

Bei allen Varianten muss getestet werden, ob das Action-Ereignis auf einer Instanzder Klasse javax.swing.JButton oder java.awt.Button ausgelöst worden ist. Inder parse-Methode der Klasse werden die Fälle nacheinander getestet (manchewerden auch zusammengefasst überprüft). Zu diesem Zweck wird am Anfang derZustand des Tokenizers gesichert. Ist ein Fall erfolgreich, so wird ein entsprechendesStrukturelement gebildet und zurückgeliefert. Schlägt ein Fall fehl, so wird derAnfangszustand des Tokenizers hergestellt und der nächste Fall getestet.

Im Rahmen dieser Arbeit wurden noch weitere, zahlreiche Elemente definiert. Hierzuzählen beispielsweise der Wechsel der Auswahl in einer Liste (ListSelectionChange),das Ziehen einer Bildlaufleiste (ScrollBarDrag), die Zusammenfassung von Tastaturein-gaben (KeySequence) und der Wechsel eines Reiters (TabChange).

5.1.5. Festlegung der Prioritäten

Die Prioritäten der Strukturelemente zu den Symbolen aus S ′ sollen einfach bestimmtund geändert werden können. Hierzu soll das System nicht neu übersetzt werden müs-sen. An dieser Stelle bietet sich die Konfiguration über ein XML-Element in der Dateifür die Jacareto-Umgebung an, die jederzeit vom Benutzer geändert werden kann. Einsolches Element ist in Listing 5.2 dargestellt. Es handelt sich hierbei um eine Abbildungvon Strukturelement-Klassen auf Prioritäten. Eine größere Zahl steht für eine höherePriorität.

5.1.6. Spezielle Wurzelelemente

In den meisten Anwendungskontexten werden unterschiedliche Mengen von Strukturele-menten S ′ mit unterschiedlichen Prioritäten von Interesse sein. Daher liegt es nahe, auchverschiedene Wurzelelemente anzubieten. Spezielle Wurzelelemente sind Subklassen derKlasse RootElement, die eigene Prioritätenlisten besitzen.

33Strukturelemente vom Typ MouseDrag repräsentieren eine Mausbewegung mit gedrücktem Knopf.

56

Page 65: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Listing 5.2<map name="Structures">

<mapelem key="jacareto.struct.KeySequence" value="20"/><mapelem key="jacareto.struct.KeyTyped" value="10"/>

<mapelem key="jacareto.struct.ButtonActivated" value="30"/><mapelem key="jacareto.struct.TabChange" value="30"/>

<mapelem key="jacareto.struct.MultipleMouseClick" value="20"/><mapelem key="jacareto.struct.MouseClick" value="19"/>

<mapelem key="jacareto.struct.MouseMotion" value="10"/><mapelem key="jacareto.struct.MouseDrag" value="10"/>

<mapelem key="jacareto.struct.FocusChange" value="9"/></map>

Ein weiterer Vorteil unterschiedlicher Wurzelelemente liegt darin, dass Eigenschaftenspezieller Aufzeichnungstypen gesammelt werden und somit quantitativen Analysen zu-gänglich gemacht werden können. Im Falle des Zahlenstrahl-Spiels ist z.B. die Anzahlder bearbeiteten Aufgaben in einer Aufzeichnung von Interesse, was in einer ergonomi-schen Evaluation eines Editors keinen Sinn macht. Derartige Attributwerte können imKonstruktor des Wurzelelementes ermittelt werden, da dieser als Argument das Arrayder bereits gefundenen Kindelemente übergeben bekommt.

Ein äquivalentes Konzept zu dem der speziellen Wurzelelemente ist der Begriff des Auf-zeichnungstyps. Beispiele hierfür sind die Typen Benutzung des Zahlenstrahl-Spiels, Be-nutzung eines Browsers und Benutzung eines Editors. Jeder Aufzeichnungstyp besitztein spezielles Wurzelelement. Dieses Prinzip wurde in CleverPHL integriert. Über dasMenü kann der Benutzer einen Aufzeichnungstyp wählen. Mit der Wahl eines solchenTyps wird das dazugehörige Wurzelelement aktiviert, welches seinen eigenen Strukturie-rungsmechanismus auf die Aufzeichnung anwenden kann. Der allgemeine Aufzeichnungs-typ ist dort unter dem Begriff Default anwählbar. Außerdem kann der Benutzer denAufzeichnungstyp Unstructured wählen, wenn er die Aufzeichnung nicht strukturierenwill. In diesem Fall wird ein Wurzelelement ausgewählt, bei dem die Menge S ′ leer ist.Dies wurde erreicht, in dem das zu diesem Aufzeichnungstyp gehörende XML-Elementmit der Zuordnung von Strukturelementklassen zu deren Prioritäten leer gelassen wurde(vgl. Listing 5.2).

57

Page 66: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

5.1.7. Ergänzungen und Bemerkungen

• Am Beispiel von FocusChange ist deutlich geworden, dass es sinnvoll sein kann,bei der Strukturierung von der ursprünglichen Reihenfolge der Aufzeichnungsele-mente abzuweichen und diese in der Gruppierung zu vertauschen. In Abbildung18 kann dies dadurch verdeutlich werden, dass sich Kanten des Strukturbaumsüberkreuzen. Die Aufzeichnung selbst muss aber unangetastet bleiben, damit sieunter Umständen auch anders strukturiert werden kann.

• Die Komplexität der Strukturierung mancher Elemente wie beispielsweise demButtonActivated-Element mag zunächst abschrecken; ist aber ein solches Ele-ment einmal gebildet, so kann es als eigenständige Strukturbildungskomponentein anderen Kontexten einfach verwendet werden. So kann ein Element, welchesdie Benutzung eines bestimmten Dialogs repräsentiert, durch Delegation an dieparse-Methode der Klasse ButtonActivated einfach testen, ob ein Button betä-tigt worden ist. Die Details übernimmt die Klasse ButtonActivated.

• In parse-Routinen kommen im Wesentlichen vier Klassen von Aktionen vor: Eswerden Elemente der Aufzeichnung gelesen, in dem auf den Tokenizer zugegriffenwird (Lesen). Es werden Teile des Parsens an Subelemente delegiert, indem derenparse-Methode aufgerufen wird (Delegieren). Es werden Attribute der Subelemen-te überprüft (Testen). Und es werden Strukturelemente mit ihren Kindelementengebildet (Erstellen).

Die Aktionen Lesen und Delegieren kommen meist im Wechsel vor. Das Testenkann entweder im Anschluss an diese beiden Aktionen erfolgen oder bereits teil-weise darin eingeflochten sein, um frühzeitig das Laufen in Sackgassen auszuschlie-ßen. Die Aktion Erstellen wird immer dann vorgenommen, wenn die anderen dreiAktionen erfolgreich abgeschlossen worden sind.

Wenn es mehrere Regeln zu einem Strukturelement gibt, so wird man in der Regelmehrere solcher Abläufe (Lesen, Delegieren, Testen und Erstellen) hintereinander-schalten. Diese Vorgänge werden dann so lange nacheinander ausgeführt, bis eineder Regeln greift. Ein Beispiel hierfür ist der Quelltext der parse-Methode derKlasse FocusChange (siehe Anhang B.3).

• Wenn der Tokenizer während einer Überprüfung fortgeschaltet wird, so muss zu-nächst am Anfang dessen Zustand gesichert werden. Schlägt eine Überprüfung fehl,so muss der gesicherte Zustand wieder hergestellt werden (z.B. in dem catch-Teileiner try-catch-Anweisung).

• Bei der Priorisierung von Strukturelementen muss darauf geachtet werden, dassbei Regeln der Form

S ::= AB

das Strukturelement S eine höhere Priorität besitzt als das Strukturelement A, dabeim Vorziehen von A gegenüber S diese Regel nie zur Anwendung kommen würde.

58

Page 67: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 22: Die Klassen DataSet und DataCase

Die Umkehr dieser Prioritätensetzung sollte nur dann vorgenommen werden, wennman absichtlich diese Regel des Strukturelementes S ausklammern möchte.

5.2. Quantitative Analyse der Aufzeichnung

Zur Bildung eines Datensatzes ist es erforderlich, die interessierenden Strukturelementein gleich formatierte Datenfälle zu überführen. Es handelt sich hier um einen Konver-tierungsvorgang. Im Jacareto Framework gab es bereits Klassen, die Aufzeichnungsele-mente (Klasse Recordable) in andere Repräsentationsformen wie beispielsweise XML-Elemente überführt haben. Diese Klassen wurden erweitert, um auch die Konvertierungin Datenfälle vornehmen zu können.

5.2.1. Datensätze und Datenfälle

Zunächst wurde ein Package namens jacareto.dataset eingeführt, welches u.a. dieKlassen DataSet zur Repräsentation eines Datensatzes und DataCase zur Repräsenta-tion eines einzelnen Datenfalles enthält (siehe Abbildung 22).

Ein Datensatz hat einen Namen, welcher von der Methode String getName() geliefertwird. Er beinhaltet außerdem mehrere Datenfälle, welche in einem Array gespeichert sindund auf die über die Methoden DataCase[] getCases() und DataCase getCase (int)zugegriffen werden kann. Ein Datenfall selbst besteht aus einem Array von Objekten undeinem Array von Zeichenketten, welche die Objekte bezeichnen (in Tabelle 3 stehen dieZeichenketten für die Spaltenbeschriftung34).

Wie weiter oben beschrieben worden ist, besteht die Überführung einer strukturiertenAufzeichnung in einen Datensatz auf zwei Schritten: Zunächst werden die interessieren-den Strukturelemente gefiltert, um sie anschließend in Datenfälle zu konvertieren. Beide

34Es kann zu Recht argumentiert werden, dass die Spaltenbeschriftung eine Eigenschaft des Datensatzesund nicht eines einzelnen Datenfalles ist. In der Tat können diese Werte auch über den Datensatzabgefragt werden. Die Einordnung in die Datenfälle rührt aus dem Konvertierungsmechanismus her,der nicht nur die Werte der einzelnen Strukturelemente überführt, sondern auch die Attributnamen.

59

Page 68: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 23: Die Klasse Filter und Erbenklassen

Schritte werden im Folgenden beschrieben.

5.2.2. Filterung von Strukturelementen

Zur Filterung von Strukturelementen wurde die abstrakte Klasse Filter in das Frame-work integriert (siehe Abbildung 23). Diese Klassen besitzt eine Methode Structure-Element[] getElements (Structure, boolean), welche aus einer gegebenen Strukturein Array von Strukturelementen extrahiert. Der als Argument mit übergebene Wahr-heitswert bestimmt, ob auch die Kindelemente eines Strukturelementes durchsucht wer-den sollen, wenn dieses selbst mit zurückgegeben wird. Die Methode getElements durch-sucht die Struktur einer Aufzeichung mittels einer Tiefensuche. Die zeitliche Relation dergefundenen Strukturelemente bleibt so erhalten35.

Das Filterkriterium bildet die abstrakte Methode boolean matches (StructureEle-ment), die in Subklassen der Klasse Filter entsprechend implementiert werden muss.

Es wurden bereits einige Erbenklassen der Klasse Filter implementiert. Die wichtigstedavon ist die Klasse ClassFilter, welche Strukturelemente aufgrund ihrer Klassenzuge-hörigkeit filtert. Bei der Erstellung eines solchen Objekts übergibt man dem Konstruktorden zu filternden Klassennamen. Dies dürfte ohnehin die gebräuchlichste Art der Filte-rung sein, so dass diese Klasse häufig benutzt werden kann.

5.2.3. Konvertierung von Strukturelementen in Datenfälle

Die bestehenden Konvertierungsklassen waren für die Konvertierung von Aufzeichnungs-elementen in andere Repräsentationsformen gedacht. Die entsprechenden Methoden wur-den nun auf Strukturelemente ausgeweitet (wie weiter oben bereits beschrieben worden

35Genauer gesagt besteht zwischen zwei Strukturelementen in dem zurückgegebenen Array die folgendeBeziehung: Wenn die Position des Elementes A in dem Array vor der Position des Elementes B liegt,so ist entweder A ein übergeordnetes Element von B, oder A liegt zeitlich vor B.

60

Page 69: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 24: Das Datensatz-Fenster von CleverPHL

ist, wurde die Klasse Recordable zur Erbenklasse der Klasse StructureElement ge-macht). Zentrale Klasse hierbei ist die Klasse Converter, die die Hin- und Rückkonver-tierung übernimmt. Von dieser Klasse wurden nun weitere Klassen abgeleitet, die dieKonvertierung eines Strukturelementes in einen Datenfall übernehmen. So wurden Klas-sen wie beispielsweise DCButtonActivatedConverter, DCMouseClickConverter und DC-KeyEventConverter eingeführt. Der Quelltext der Klasse DCMouseClickConverter be-findet sich in Anhang B.4.

5.2.4. Integration in CleverPHL

Um Datensätze aus Aufzeichnungen komfortabel extrahieren zu können, wurden die ent-sprechenden Mechanismen in CleverPHL eingebaut. Zu diesem Zweck wurde ein weiteresFenster zu den CleverPHL-Fenstern, das Datensatz-Fenster, hinzugefügt (siehe Abbil-dung 24). Dieses kann bei Belieben geöffnet werden. Einen neuen Datensatz kann mandort über das Menü hinzufügen (siehe Abbildung 25). Hierbei kann man sich für einenFilter entscheiden. Außerdem kann man angeben, ob die aktuelle Aufzeichnung die Da-tenbasis bilden soll oder mehrere Aufzeichnungen, die als XML-Dateien vorliegen. Hatman sich für einen Filter und eine oder mehrere Aufzeichnungen entschieden, so wirdder Datensatz gebildet. Er wird hierbei in der gebräuchlichen Form als Tabelle unterBenutzung der Klasse javax.swing.JTable dargestellt.

Bevor man den Datensatz speichert, kann man ihn noch modifizieren: Es können Zeilenoder Spalten aus dem Datensatz entfernt werden. Die Speicherung kann in einem For-mat erfolgen, in dem jeder Datenfall in einer Zeile gespeichert wird. Die einzelnen Wertedes Datensatzes werden hierbei beispielsweise durch ein Komma getrennt (CSV, com-ma separated values). Zur Speicherung des Datensatzes bietet CleverPHL einen eigenenDialog an (siehe Abbildung 26). Hier kann man neben dem Dateinamen festlegen, obein Komma, ein Semikolon oder ein anderer Trenner verwendet werden soll, und ob dieNamen der Werte in der ersten Zeile mit ausgegeben werden dürfen (Kopfzeile der Ta-belle). Der im CSV-Format gespeicherte Datensatz kann nun in ein Programm, welches

61

Page 70: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 25: Fenster zur Erstellung eines neuen Datensatzes

Abbildung 26: Fenster zum Speichern eines Datensatzes als CSV-Datei

sich für quantitative Analysen eignet, eingelesen und weiterverarbeitet werden.

Für den Fall, dass nur numerische Werte erwünscht sind, kann CleverPHL die automati-sche Konvertierung der nicht-numerischen Werte in numerische übernehmen; neben derCSV-Datei wird dann zusätzlich in einer XML-Datei die Konversionstabelle gespeichert.

5.3. Weitere Ergänzungen des Frameworks

5.3.1. Eine Queue für allgemeine Ereignisse

In vielen Fällen sind die Informationen, die die Benutzer- bzw. Programmaktionen de-finieren, aus den Komponenten des GUI und den Ereignissen auf den Komponentenherleitbar. In anderen Fällen ist dies nicht möglich. Wenn beispielsweise die Zustands-änderung einer Instanz innerhalb des Programms von Interesse ist, dieser Zustand abernicht an der Benutzungsoberfläche hervortritt, so kann diese Zustandsänderung auchvon dem Capture&Replay-Mechanismus nicht erfasst werden. Beim Zahlenstrahl-Spielwerden bei einem Mausklick nur die x- und y-Koordinaten innerhalb des Fensters gelie-fert, aber nicht, welche Bedeutung dieser Klick in Bezug auf den Zahlenstrahl hat, d.h.,

62

Page 71: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

welche Zahl geklickt worden ist36.

Das Capture&Replay-Programm muss also an semantische Ereignisse, die im Programmausgelöst werden, gelangen. Hierzu muss die Zielanwendung geändert werden. Dies sollteallerdings so geschehen, dass die eingebrachten Mechanismen nicht speziell auf Cap-ture&Replay-Belange ausgelegt, sondern allgemein verwendbar sind.

Im Rahmen dieser Arbeit wurde ein Ansatz zur Erweiterung des Capture&Replay-Frameworks gewählt, der sich am Prinzip der AWTEventQueue orientiert: Es wurde eineWarteschlange für allgemeine Ereignisse (Objekte vom Typ EventObject) eingebracht.Ereignisse, die diese Warteschlange verlassen, werden (genau wie die AWTEvents beider AWTEventQueue) an EventListener weitergegeben. Die eigentlichen Aktionen, diedurch die Ereignisse hervorgerufen werden, übernehmen wiederum Instanzen der KlasseCatcher. Der kritische Teil ist allerdings das Verfahren, mit dem die Ereignisse aus derZielanwendung in die EventObjectQueue gelangen. Die Zielanwendung sollte hier Me-thoden anbieten, mit deren Hilfe Listener für semantische Ereignisse registriert werdenkönnen37. Das Capture&Replay-Framework kann dann eine Listener-Instanz dort regis-trieren, die ankommende Ereignisse an die EventObjectQueue weiterreicht. Die Zielan-wendung weiss so nicht, dass ein Capture&Replay-Programm die Ereignisse verwertet;es können auch Listener zu anderen Zwecken registriert werden38.

Damit beim Starten der Zielanwendung auch die Listener entsprechend registriert werdenkönnen, wurde der Start-Mechanismus um eine Klasse Initializer erweitert, die vorund nach dem Starten der Zielanwendung entsprechende Schritte durchführen kann. Dieauf eine Anwendung zugeschnittene Subklasse der Klasse Initializer kann als Attributdes entsprechenden Starters angegeben werden.

5.3.2. Wiedergabe von Strukturelementen

Bislang ist der Replay-Mechanismus bei der Wiedergabe die Folge der Aufzeichnungsele-mente durchgegangen und hat die registierten Replayer nacheinander gefragt, welchervon ihnen für die Wiedergabe des aktuellen Elementes zuständig ist. Mit der Hinzu-fügung von Strukturelementen in das Framework bietet es sich an, auch Replayer fürganze Strukturelemente einbringen zu können. Der Replay-Mechanimus traversiert nunnicht mehr die Aufzeichnung an sich, sondern den Strukturbaum39. Ist für ein Struk-turelement ein Replayer zuständig, so wird dessen Wiedergabemethode ausgeführt undzum nächsten Strukturelement auf derselben Ebene gesprungen. Ist kein Replayer fürdas Strukturelement verantwortlich, so werden die Kindelemente des Strukturelementes

36Der Zahlenstrahl wird beim Zahlenstrahl-Spiel lediglich auf der Zeichenfläche eines JPanels gezeichnetund hat für sich genommen keine sensitiven Flächen o.ä.

37Wenn die Zielanwendung über die main-Methode gestartet wird, so werden derartige Mechanismenstatic sein müssen.

38In vielen Fällen erzeugen Zielanwendungen sogar schon Ereignisse, die von dem Capture&Replay-Listener entgegengenommen werden können.

39Der Baum wird mittels einer Tiefensuche durchlaufen.

63

Page 72: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

durchlaufen.

Durch diese Änderung konnten auch Fehler bei der Festzeitwiedergabe in der bisherigenUmsetzung behoben werden. In der Festzeitwiedergabe werden nur zentrale Ereignis-se wie Mausklicks und Tastatureingaben, aber beispielsweise keine Mausbewegungenwiedergegeben. Die Zeit zwischen diesen Ereignissen ist frei festlegbar. Das hat abermitunter dazu geführt, dass Mehrfachklicks nicht korrekt wiedergegeben wurden, da dieZeit zwischen den einzelnen Klicks unter Umständen zu gross war. Mit der Wiedergabevon Strukturelementen kann nun der Mehrfachklick als Einheit korrekt wiedergegebenwerden, indem ein Replayer für Strukturelemente vom Typ MultipleMouseClick beider Replay-Instanz registriert wird.

5.3.3. Selektive Wiedergabe

CleverPHL unterstützt bislang nur die Wiedergabe der gesamten Aufzeichnung. DerBenutzer kann lediglich die Wiedergabe anhalten bzw. nach einer Pause fortsetzen. Inbestimmten Situationen möchte man sich vielleicht aber nur die Wiedergabe eines ein-zelnen Strukturelementes betrachten, beispielsweise die Wiedergabe einer einzelnen Auf-gabenbearbeitung im Zahlenstrahl-Spiel. Zu diesem Zweck wurden die Funktionalitätenschnelle Wiedergabe bis zum ersten markierten Element und Replay-Schritt eingeführt.Mit Hilfe der ersten Funktion kann der Benutzer die Wiedergabe im Schnelldurchlaufausführen, bis sie auf das erste in der Aufzeichnungsdarstellung markierte Element trifft.Der Replay-Mechanimsus hält dann vor der Wiedergabe dieses Elements an. Wählt derBenutzer nun die Funktion Replay-Schritt, so wird das nächste Strukturelement wieder-gegeben (das ist gerade das markierte). So kann man beispielsweise in einer Aufzeichnungzum Zahlenstrahl-Spiel das Strukturelement einer Aufgabenbearbeitung markieren, dieWiedergabe im Schnelldurchlauf bis zu diesem Element durchführen und anschließendnur dieses eine Element in Echtzeit wiedergeben.

5.3.4. Editoren für Strukturelemente

Bei der bisherigen Darstellung von Aufzeichnungen in CleverPHL konnte man das aus-gewählte Aufzeichnungselement mit einem Editor bearbeiten. Jetzt werden neben denAufzeichnungselementen auch Strukturelemente dargestellt. Es bietet sich also an, auchfür diese Elemente Editoren einzubringen. Die Klasse Editor wurde derartig erweitert,dass ihre Methoden anstelle von Aufzeichnungselementen nunmehr Strukturelementeakzeptieren.

Die Bearbeitung eines Strukturelementes hat häufig zur Folge, dass auch die Kindele-mente geändert werden müssen. Wird beispielweise bei einem Strukturelement vom TypMouseClick eine Koordinate geändert, so muss diese auch in den Kindelementen (vomTyp MouseEventRecordable) geändert werden, damit das Strukturelement in sich stim-mig bleibt (siehe Abbildung 27). Unter Umständen kann es sogar erforderlich werden,

64

Page 73: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 27: Ein Editor für MouseClick-Strukturelemente

Kindelemente zu löschen oder hinzuzufügen, z.B. wenn die Anzahl der Klicks in einemStrukturelement vom Typ MultipleMouseClick geändert wird. Wenn man diesen Auf-wand nicht auf sich nehmen möchte, so kann man doch zumindest die Attribute derStrukturelemente in dem Editor anzeigen, ohne diese editierbar zu machen.

65

Page 74: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

6. Analysebeispiele

In diesem Kapitel werden einige anschauliche Beispiele für den Einsatz der oben be-schriebenen qualitativen und quantitativen Analysetechniken angeführt. Zunächst wirdeine einfache Analyse von Klickverhalten vorgestellt. Anschließend werden nochmals dieBeispiele aus Kapitel 2 aufgegriffen.40

6.1. Analyse von Klickverhalten

In diesem Abschnitt soll gezeigt werden, wie man mit Hilfe der oben beschriebenenAnalyseverfahren untersuchen kann, in welchen Bereichen eines Fensters ein Benutzerbesonders häufig geklickt hat. Die Zielanwendung ist dabei beliebig.

Zunächst wird die Benutzung der Zielanwendung mit CleverPHL aufgezeichnet undanschließend automatisch strukturiert. Dabei werden unter anderem auch Strukturele-mente vom Typ MouseClick (siehe Abschnitt 5.1.4) gebildet. Die Attributwerte dieserElemente sind hier von Interesse. Daher müssen sie im nächsten Schritt aus der struk-turierten Aufzeichnung extrahiert werden. Dies geschieht über die Datensatzerzeugungin CleverPHL. Bei der Erzeugung wird der Filter namens Mouse Clicks gewählt. DieKonvertierung der gefilterten Elemente übernimmt automatisch eine Instanz der KlasseDCMouseClickConverter. Der resultierende Datensatz ist in Abbildung 28 dargestellt.Die einzelnen Datenfälle haben unter anderem die Attribute x und y mit den Koordinatenrelativ zum Komponentenursprung, das Attribut Window mit dem Namen des Fensters,in dem die Komponente enthalten ist, und die Attribute WindowX und WindowY mitden Koordinaten des Mausklicks relativ zum Fensterursprung.

Der erzeugte Datensatz kann nun im CSV-Format abgespeichert und in Fathom geladenwerden (siehe Abbildung 29). Wenn nun die Mausklicks auf einem bestimmten Fensterinteressieren, dann müssen zunächst die entsprechenden Datenfälle mit Hilfe eines Filtersin Fathom extrahiert werden. Ein solcher Filter hat beispielsweise die folgende Form:

beginsWith(Window, ”Fenstername”).

Die gefilterten Datenfälle kann man sich nun in einem Diagramm anzeigen lassen undso einen visuellen Eindruck davon bekommen, an welchen Stellen geklickt worden ist.Da der Koordinatenursprung eines Java-Fensters in der linken oberen Ecke liegt, musszuvor die y-Koordinate umgedreht werden. Dies kann man am einfachsten erreichen,indem man in der Datenfallansicht ein weiteres Attribut negy hinzufügt mit negy = −y.Die Attribute x und negy können dann anschließend per Drag&Drop auf die Achsen desDiagramms gezogen werden. In diesem Beispiel sieht man, dass häufig in der Ecke linksoben geklickt worden ist (siehe Abbildung 29).

40Alle in diesem Kapitel verwendeten Daten sind konstruiert. Im Rahmen dieser Arbeit wurden keineempirischen Untersuchungen durchgeführt.

66

Page 75: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 28: Ein Datensatz mit Mausklick-Werten

Jetzt können noch diverse statistische Funktionen auf die Daten angewendet werden.Wenn beispielsweise die x-Koordinate mit x = 50 von besonderem Interesse ist, dannkann man die Häufigkeit aller Mausklicks berechnen lassen, die links und rechts vondieser Grenze liegen. Auch statistische Werte wie der Mittelwert und der Median derx-Koordinaten kann einfach durch das Hinzufügen einer Formel berechnet werden. Diesist ebenfalls in Abbildung 29 dargestellt.

6.2. Nachvollziehen von Lernwegen in Hypertext-Systemen

Da das Jacareto-Framework nur Zielanwendungen, die in Java geschrieben sind, behan-deln kann, wird für die Analyse von Lernwegen in Hypertextsystemen ein javabasierterBrowser benötigt. Die einfachste Lösung ist hier die Verwendung einer Komponente vomTyp javax.swing.JEditorPane, die HTML-Seiten anzeigen kann und auch Hyperlink-Mechanismen unterstützt41.

Eine Aufzeichnung in diesem Kontext sollte auf der obersten Ebene nach den nachein-ander angezeigten Hypertexten strukturiert sein, so dass man auf den ersten Blick denLernweg nachvollziehen kann (im Folgenden werden diese Strukturelemente Hypertext-Aktionselemente genannt). Alle anderen Aktionen, die auf den einzelnen Seiten aus-geführt werden wie beispielsweise Mausbewegungen und Tastatureingaben, sollten alsKindelemente den Hypertext-Aktionselementen untergeordnet sein. Durch Aufblätternder Hypertext-Aktionselemente lässt sich so übersichtlich anzeigen, welche Aktionen

41Leider bringt die JEditorPane sehr häufig nicht die gewünschten Resultate; sie unterstützt beispielsweisenicht die Navigation auf Frames. Sie eignet sich dann, wenn man selbst die anzuzeigenden HTML-Seitengeschrieben und für die JEditorPane optimiert hat. Andernfalls kann man auf andere, javabasierteWebbrowser zurückgreifen, die allerdings häufig kommerziell sind.

67

Page 76: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 29: Analyse von Mausklicks in Fathom

68

Page 77: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

auf den einzelnen Seiten durchgeführt worden sind. Außerdem können den Hypertext-Aktionselementen Attribute beigefügt werden, die interessierende Informationen aus denKindelementen extrahieren und so quantitativen Analysen zugänglich machen.

Zur Strukturierung auf der obersten Ebene muss zunächst in Erfahrung gebracht werden,wann ein Benutzer eine neue Seite durch Klick auf einen Hyperlink aufruft. Komponentenvom Typ JEditorPane erzeugen hierzu Ereignisse vom Typ HyperlinkEvent. Wenn derBenutzer den Mauszeiger auf einen Hyperlink bewegt, so wird ein solches Ereignis vomTyp ENTERED erzeugt; der Browser wandelt dann den Mauszeiger in eine Hand um. BeimVerlassen wird ein Hyperlink-Ereignis vom Typ EXITED erzeugt, beim Klick auf einenHyperlink ein Ereignis vom Typ ACTIVATED.

Die Auswahl eines Hyperlinks besteht somit aus mehreren Ereignissen, die in einem ei-genen Strukturelement zusammengefasst werden sollten: Einem Hyperlink-Ereignis vomTyp ENTERED, evtl. einer anschließenden Mausbewegung auf dem Hyperlink und einemMausklick mit dem dazugehörigen Hyperlink-Ereignis vom Typ ACTIVATED. In der Regelschließt sich daran eine weitere Mausbewegung mit einem Hyperlink-Ereignis vom TypEXITED an. Der Mausklick ist unter Umständen in einen Fokuswechsel integriert, fallszuvor eine andere Komponente den Fokus besaß. Die gesamte Sequenz wurde in einemStrukturelement namens HyperlinkChosen zusammengefasst.

Wird der Mauszeiger über einen Hyperlink bewegt, ohne dass dieser angeklickt wird,so werden die zu diesem Ereignis gehörenden Elememte zu einem Strukturelement vomTyp MouseMotionOverHyperlink zusammengefasst. Mehrere dieser Strukturelementewerden, wenn sie aufeinanderfolgen bzw. lediglich durch MouseMotion-Elemente getrenntsind, in einem Element vom Typ MouseMotionOverHyperlinks verbunden.

Die komplette Aufzeichnung sollte nun mit Hilfe der Strukturelemente vom Typ Hy-perlinkChosen untergliedert werden. Ein Hypertext-Aktionselement (Klasse Hyper-textActions) hat als Kindelemente ein Element vom Typ HyperlinkChosen und alledarauffolgenden Elemente, bis entweder ein weiteres Element vom Typ HyperlinkCho-sen auftaucht oder die Aufzeichnung zu Ende ist. Die Gesamtstrukturierung übernimmtein Wurzelelement vom Typ BrowserRootElement.

Im Folgenden soll beispielhaft das Benutzerverhalten beim Lesen eines Skriptes zu ei-ner Einführungsveranstaltung in Informatik [Kre97] analysiert werden. Hat man einesolche Aufzeichnung vorliegen, so kann man in CleverPHL zunächst den Aufzeichnungs-typ BrowserRecord wählen. Die Aufzeichnung wird dann auf der obersten Ebene nachden oben beschriebenen Hypertext-Aktionselementen strukturiert. Durch Aufblätternder einzelnen Aktionselemente kann man sich ansehen, welche Aktionen auf jeder Seitedurchgeführt worden sind. In Abbildung 30 beispielsweise sieht man die einzelnen Ak-tionen, die auf der Seite zum Thema Vor- und Nachbedingungen durchgeführt wordensind (Der Benutzer hat z.B. die Bildlaufleiste mehrmals betätigt, was durch das ElementScroll Bar Drag angezeigt wird). Mit Hilfe der selektiven Wiedergabe (siehe Abschnitt5.3.3) kann man sich die Wiedergabe aller Aktionen auf einer einzelnen Seite betrachten.

69

Page 78: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 30: Aufzeichnung einer Browser-Verwendung

Im Datensatzfenster kann man nun zu der gegebenen Aufzeichnung einen Datensatz ex-trahieren, der die Attribute aller Hypertext-Aktionselemente beinhaltet. Hierzu wurdenein Filter und ein Konverter für die Klasse HypertextActions in das Framework ein-gebracht. Der erzeugte Datensatz enthält die aufgerufenen Seiten mit der Verweildauer.Er kann nun als Datei im CSV-Format abgespeichert und in SPSS geladen werden, umz.B. die durchschnittliche Verweildauer auf allen Seiten zu berechnen. Werden zur Da-tensatzerzeugung mehrere Aufzeichnungen als Datenbasis herangezogen, so kann anhandder einzelnen Häufigkeiten der Seitenaufrufe in SPSS überprüft werden, welche Seitenvon allen Teilnehmern besonders häufig oder eher selten betrachtet worden sind.

Wenn man sich nur für bestimmte Aufrufsequenzen interessiert, so könnte man einweiteres Strukturelement einbringen, welches das Parsen an die entsprechende Anzahlvon HypertextActions-Strukturelementen delegiert und prüft, ob die Sequenz vorliegt(Nach jedem erfolgreichen Strukturierungsvorgang durch ein Hypertext-Aktionselementsollte diese Prüfung vorgenommen werden, um das Laufen in lange Sackgassen zu ver-meiden). Man würde dann solche Aufrufsequenzen leicht in der Aufzeichnungsdarstel-lung von CleverPHL entdecken. Außerdem könnte man in dem Wurzelelement vom TypBrowserRootElement die Anzahl dieser Sequenzen in der Aufzeichnung ermitteln. Mitentsprechend angepasstem Datenfall-Konverter könnte man dann auf Basis aller Auf-zeichnungen beim Erstellen eines Datensatzes über die Wurzelelemente feststellen, wieoft die interessierende Aufrufsequenz vorgekommen ist.

70

Page 79: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

6.3. Ermitteln von Suchstrategien

Wenn eine Aufzeichnung der Benutzung des Zahlenstrahl-Spiels strukturiert werden soll,dann ist es sinnvoll, diese zunächst nach der Bearbeitung einzelner Aufgaben zu unter-gliedern. Eine Aufgabe beginnt mit der Darstellung eines neuen Zahlenstrahls und dergesuchten Zielzahl, und sie endet mit dem Mausklick an der korrekten Stelle. Währendder Bearbeitung einer Aufgabe wird an verschiedenen Stellen geklickt oder mit der Mausinnegehalten. Bei diesen Aktionen ist von Interesse, an welchen Stellen des Zahlenstrahlsdies passiert.

Viele der benötigten Informationen sind nicht aus den Komponenten des GUI herleit-bar, wie weiter oben bereits beschrieben worden ist. Daher wurde das Zahlenstrahlspielum semantische Ereignisse erweitert, die neben den Mausereignissen in der Aufzeich-nung abgelegt werden. Die folgenden Ereignisse wurden hinzugefügt (alle aufgeführtenEreignisse sind Subklassen der Klasse NumberGameEvent):

NumberGameTaskEvent: Eine neue Aufgabe wurde präsentiert. Hierzu gehört dieDarstellung eines neuen Zahlenstrahls mit der gesuchten Zielzahl. Das Ereignisbietet Methoden an, mit denen die Grenzen des Zahlenstrahls, die Zielzahl und dieSkalierung des Strahls erfragt werden können.

NumberGameClick: Der Benutzer hat an einer Stelle im Zahlenstrahlspiel geklickt.Dieses Ereignis hält neben den x- und y-Koordinaten des Mausklicks auch die Zahlam Zahlenstrahl, die diesen Koordinaten entspricht, bereit. Außerdem enthält esdie Zielzahl und deren Koordinaten.

NumberGameMotionPause: Der Benutzer hat an einer Stelle im Zahlenstrahlspielinnegehalten. Die Attribute dieses Ereignisses sind analog zu denen des Number-GameClick-Ereignisses.

Die Strukturierung der Aufzeichnung erfolgt auf der obersten Ebene nach den ein-zelnen Aufgabenbearbeitungen. Ein Strukturelement für die Bearbeitung einer Auf-gabe ist ein sogenanntes NumberGameTask-Element. Dieses Strukturelement erwartetin seiner parse-Methode zunächst ein NumberGameTaskEvent (Dieses Ereignis signa-lisiert eine neue Aufgabe). Anschließend werden so lange Strukturelemente vom TypNumberGameMotionAndClick und NumberGameMotionAndPause gelesen, bis an der kor-rekten Stelle geklickt worden ist. Diese beiden Strukturelement-Typen signalisieren je-weils eine Mausbewegung mit einem anschließenden Klick bzw. Innehalten.

Nachdem eine Aufgabe korrekt gelöst worden ist, so muss vom Benutzer durch einenKlick auf die rechte Maustaste eine neue Aufgabe angefordert werden. In der Zeit von dererfolgreichen Bearbeitung einer Aufgabe und der Anforderung der nächsten werden aller-dings noch häufig diverse andere Aktionen vom Benutzer ausgeführt (wie beispielsweiseMausbewegungen). Diese zwischen zwei Aufgaben befindlichen Benutzeraktionen wer-den in einem Strukturelement namens NumberGameIntermezzo zusammengefasst. Auf

71

Page 80: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 31: Strukturierte Aufzeichnung beim Zahlenstrahl-Spiel

der obersten Ebene einer solchen Aufzeichnung wechseln sich also Strukturelemente derTypen NumberGameTask und NumberGameIntermezzo ab (siehe Abbildung 31).

Elemente vom Typ NumberGameTask besitzen verschiedene Attribute: Zum einen kanndie Dauer einer Aufgabenbearbeitung betrachtet werden. Dieser Wert ist bereits au-tomatisch ohne jedes Zutun vorhanden, da er Attribut aller Strukturelemente ist. Ausden Kindelementen vom Typ NumberGameMotionAndClick und NumberGameMotionAnd-Pause kann die Sequenz an Zahlen herausgenommen werden, die zur Lösung der Aufgabegeführt hat: Hat der Benutzer beispielsweise bei den Zahlen 3 und 4 eine Pause gemacht,bei 5 geklickt, bei 7 eine Pause gemacht und mit dem Klick auf die Zahl 10 die Auf-gabe gelöst, so enthält das Strukturelement für die Aufgabenbearbeitung die Sequenz3 → 4 → 5 → 7 → 10.

Diese Sequenz kann nun im Sinne einer Strategieanalyse kategorisiert werden. Die obenaufgeführte Senquenz ist ein Beispiel für eine sogenannte lineare Suche. Weitere Kate-gorien sind beispielsweise sofort gelöst und ungelöst, falls eine Aufgabe nicht zu Endegeführt worden ist42. Die gefundene Strategie wird ebenfalls als Attribut bei der Aufga-benbearbeitung gespeichert.

Eine Übersicht über alle Aufgabenbearbeitungen erhält man, wenn man sich im Da-tensatzfenster von diesen einen Datensatz erzeugen lässt. Zu diesem Zweck wurden einKonvertierer für Strukturelemente vom Typ NumberGameTask in einen Datenfall undeinen Klassenfilter, der diese Strukturelemente aus der Gesamtstruktur filtert, integriert.Wählt man nun bei der Erzeugung eines Datensatzes den entsprechenden Filter aus, so

42Komplizierte Strategieanalysen wie die Entdeckung der weiter oben erwähnten operativen Strategiesind aktuelle Forschungsfragen im Rahmen des CEKA-Projektes und konnten im Rahmen dieser Arbeitnicht implementiert werden.

72

Page 81: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 32: Auswertung mehrerer Aufzeichnungen des Zahlenstrahl-Spiels

erhält man eine Datentabelle über alle Aufzeichnungen, die die Bearbeitungsdauer unddie gefundene Strategie zu jeder Aufgabenbearbeitung auflistet.

Von Interesse sind nun aber nicht nur einzelne Aufzeichnungen für sich genommen, son-dern auch die Untersuchung aller Aufzeichnungen. Hier kann beispielsweise gefragt wer-den, welche Strategien von allen Benutzern in welcher Häufigkeit angewendet wordensind, wie viele Aufgaben im Schnitt bearbeitet worden sind und wie groß die durch-schnittliche Bearbeitungszeit aller Aufgaben war. Hierzu wurde eine Subklasse der Klas-se RootElement eingeführt, die die Attribute einer einzelnen Aufzeichnung ermittelt:Die Anzahl der bearbeiteten Aufgaben ergibt sich aus der Anzahl der Kindelementevom Typ NumberGameTask. Die durchschnittliche Bearbeitungszeit ergibt sich aus denBearbeitungszeiten derselben Elemente. Außerdem wird für jeden Strategietyp die An-zahl seines Vorkommens in der Aufzeichnung ermittelt. Ein Datenfallkonverter wurdefür dieses Wurzelelement ebenso hinzugefügt. Wählt man nun im Datensatzfenster beider Filterwahl den Filter für das Wurzelelement aus und gibt als Datenbasis die XML-Dateien der Aufzeichnungen an, so wird ein Datensatz mit den Informationen über alleAufzeichnungen erzeugt. Dieser kann nun beispielsweise in Excel geladen werden, wenner vorher im CSV-Format abgespeichert worden ist.

Abbildung 32 zeigt eine solche Auswertung in Excel. Der Datensatz enthält neben derGesamtbearbeitungszeit (Duration), der Anzahl der bearbeiteten Aufgaben (Number ofTasks) und der durchschnittlichen Bearbeitungszeit pro Aufgabe (Mean Duration) auchdie Häufigkeiten der vier Strategietypen. In einer weiteren Tabelle wurde der prozentualeAnteil aller Typen bei jeder Versuchsperson ermittelt. Die blau gefärbte Zeile enthältdie Mittelwerte aller Spalten (Funktion MITTELWERT in Excel).

73

Page 82: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Wollte man den Lernfortschritt bei der Bearbeitung der Aufgaben messen, so könnte manzunächst im Strukturelement vom Typ NumberGameTask die Bearbeitung aller Aufgabenin zwei Hälften teilen und die Häufigkeiten der Strategietypen in jedem der Teile getrenntberechnen. Wenn die Versuchspersonen in der ersten Hälfte eher unstrukturiert vorgehenund die der zweiten Hälfte eher linear suchen, so kann man davon ausgehen, dass einLernprozess stattgefunden hat.

6.4. Ergonomische Evaluation eines Editors

Bei der in Kapitel 2.3.3 beschriebenen ergonomischen Evaluation des Editors von LUCSmuss anhand einer Aufgabenbearbeitung zunächst der Typ des Benutzers (Menübenut-zer, Iconbenutzer und Kürzelbenutzer) bestimmt werden. Grundlage hierfür ist die An-zahl der Menüaufrufe, der Icon-Zugriffe und der Funktionsaufrufe unter Benutzung ei-nes Tastaturkürzels. Diese Benutzungseinheiten müssen zunächst in der Aufzeichnunggefunden werden. Daher wurden Strukturelemente vom Typ MenuItemChosen, Button-Activated (wie in Abschnitt 5.1.4 beschrieben) und ModifiedKeySequence eingebracht.43Im Konstruktor eines neu eingebrachten Wurzelelements vom Typ LUCSRootElementwerden diese Strukturelemente mit Hilfe eines Klassenfilters aus der Aufzeichnung ex-trahiert und gezählt. Außerdem wird dort die Anzahl der Zugriffe auf die vier Funktio-nen Klammerausdruck auswählen, Schreibmarke zur Klammer versetzen, Klammerpaarlöschen und Ausdruck gemäß Klammerung einrücken über das Menü, ein Icon oder einTastaturkürzel berechnet.

Mit Hilfe des neu eingebrachten Konverters vom Typ DCLUCSRootElementConverterkönnen die Daten der Wurzelelemente aus mehreren Aufzeichnungen extrahiert und ineinem einzigen Datensatz zusammengefasst werden. Die Analyse dieses Datensatzes inFathom ist in Abbildung 34 dargestellt. Zunächst werden die Icon-Benutzer anhand einesKriteriums extrahiert (Das Kriterium lautet hier, dass die Funktionsaufrufe zu über 50%mit Icons vorgenommen worden sind). Anschließend wird der durchschnittliche Anteilder vier Funktionsaufrufe über das Menü, ein Icon und ein Tastaturkürzel bei diesemBenutzertyp berechnet. Dies ist rechts im Bild dargestellt. Anhand der Mittelwerte kannman sehen, dass Benutzer, die sonst hauptsächlich Icons verwenden, bei den vier inter-essierenden Funktionen im Wesentlichen das Menü verwendet haben.

Dieses Analysebeispiel zeigt auch, dass qualitative und quantitative Analyse nicht immerscharf zu trennen sind. Zur Bestimmung des Benutzertyps werden die Funktionsaufrufe inden drei Klassen gezählt. Die quantitative Analyse ist hier maßgeblich bei der Typisierungbeteiligt und damit Teil der qualitativen Analyse.

43Diese Strukturelemente sind nicht auf LUCS beschränkt und können auch in anderen Kontexten vonNutzen sein.

74

Page 83: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Abbildung 33: Eine Aufzeichnung der Benutzung des LUCS-Editors

Abbildung 34: Auswertung von LUCS-Aufzeichnungen in Fathom

75

Page 84: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

7. Ethische Aspekte

Werkzeuge zur Verhaltensanalyse geben immer Anlass zu Bedenken. Sie können leicht zurÜberwachung anderer Personen eingesetzt werden. Man denke zum Beispiel an den Ein-satz eines Aufzeichnungs- und Analysewerkzeuges am Arbeitsplatz, um die Aktivitätender Mitarbeiter zu überwachen und Leistungsmessungen durchzuführen. Capture&Re-play-Werkzeuge können außerdem eingesetzt werden, um Passwörter zu ermitteln, da siedie Tastaturereignisse direkt abgreifen.

Der Einsatz eines solchen Programms muss immer mit Bedacht gewählt werden. Bevorman sich für dafür entscheidet, ein derartiges Werkzeug einzusetzen, muss man in je-dem Fall prüfen, ob die Verwendung auch ethisch legitimierbar ist. Die Benutzer, derenVerhalten aufgezeichnet und analysiert werden soll, müssen zuvor darüber informiertwerden, und sie müssen ihr Einverständnis dazu geben. Falls die Benutzer noch minder-jährig sind, so müssen die Eltern im Vorfeld den Einsatz erlauben.

76

Page 85: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

8. Weiterführende Ideen

8.1. Einfaches Einbringen neuer Strukturelemente

Neue Strukturelemente müssen im gegenwärtigen System programmiert werden. EineErbenklasse der Klasse StructurElement muss erzeugt und ihre parse-Methode mussimplementiert werden. Somit können nur Anwender neue Strukturelemente einbringen,die auch in der Programmiersprache Java programmieren können. Lehrer beispielswei-se, die im Rahmen des Unterrichts ein Lernprogramm hinsichtlich der Benutzbarkeitdurch die Schüler evaluieren möchten, können dies in der Regel nicht leisten. Sie müs-sen sich in Java einarbeiten, insofern sie dies noch nicht können, sie müssen sich in dieStrukturen von Jacareto einarbeiten, und sie müssen die Zeit aufbringen können, eigeneStrukturelemente zu schreiben und zu testen.

Es ist wünschenswert, eine menügesteuerte Konstruktion neuer Strukturelemente zuzu-lassen (z.B. über einen Wizard). Denkbar wäre hier folgendes Szenario: Die Anwendersehen einer Liste aller bekannten Struktur- und Aufzeichnungselemente. Sie stellen nunaus diesen Elementen Regeln zusammen, die für ein bestimmtes Strukturelement zutref-fen. Hierbei kann z.B. eine Folge aus Elementen angegeben werden, die auch Kontroll-mechanismen wie kommt genau einmal vor, kommt einmal oder mehrmals vor, darf andieser Stelle nicht vorkommen und Klammerung von Elementsequenzen beinhaltet. Aus-serdem sollten Bedingungen an die Elementattribute gestellt werden können, z.B. sollenalle Elemente auf derselben Komponenten ausgelöst worden sein oder eine bestimmteDauer nicht überschreiten. Neue Strukturelemente sollen auch eigene Attribute erhal-ten können, die sich beispielsweise aus den Attributen der Unterelemente bilden. Hierist auch eine automatische Generierung einer Editor-Komponente für auf diese Weisekonstruierte Strukturelemente denkbar.

Es wird sehr schnell deutlich, dass ein solcher Mechanismus äußerst komplex werdenkann, und dass man in bestimmten Situationen unter Umständen wieder auf die Pro-grammierung zurückgreifen muss. Dennoch kann man sich durch die Verfeinerung der-artiger Mechanismen langsam an komplexere Definitionen heranarbeiten.

8.2. Persistenz von Strukturen

Strukturen von Interaktionsaufzeichnungen sind dynamisch; beim Speichern wird nurdie Aufzeichnung selbst gesichert. Wenn eine gespeicherte Aufzeichnung in CleverPHLgeladen wird, so wird diese zuerst strukturiert, bevor sie angezeigt wird. Manchmal istes vielleicht von Nutzen, auch die gefundene Struktur zu speichern. Hier würde sich einXML-Format anbieten, da dieses Format menschenlesbar ist und Baumstrukturen unter-stützt. Zuvor muss für die entsprechenden Strukturelemente ein Konverter geschriebenwerden, der die Objektrepräsentationen in XML-Elemente konvertiert oder umgekehrt.Eine andere Möglichkeit wäre die Konzeption eines Konvertierungsverfahrens, das belie-

77

Page 86: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

bige Strukturelemente in XML-Elemente transformieren kann.

8.3. Gruppierung von Elementen zu einem Strukturelement

Ist eine Aufzeichnung mit einer Strukturierung gegeben, so sind durchaus Kontextedenkbar, in denen der Anwender eine Folge von Strukturelementen, die er in dem Auf-zeichnungsbaum sieht, zu einem neuen, einzigartigen Strukturelement zusammenfassenmöchte. Da die Strukturierung momentan in Jacareto dynamisch ist, d.h. bei diversenAktionen restrukturiert wird, würde ein solches statisches Element wieder verloren ge-hen. Hier könnte eine Markierung an Strukturelementen hilfreich sein, die besagt, dassein Strukturelement bei einer Restrukturierung nicht angetastet werden darf.

8.4. Whitespace-Elemente

Bei der Erstellung eines Syntaxbaumes von Programmen werden Füllzeichen (Leerzei-chen oder auch Whitespace) übersprungen. In Analogie könnten auch beim Parsen einerInteraktionsaufzeichnung bestimmte Aufzeichnungselemente übersprungen werden. Hier-zu zählen z.B. Annotationen, die durchaus ein Hindernis sein können, eine bestimmteStruktur zu finden. Es muss an dieser Stelle geklärt werden, in welcher Weise solcheWhitespace-Elemente definiert werden (Ein Whitespace-Element kann in einem anderenKontext ein reguläres Element sein). Hier ist wieder die Spezifikation über den XML-Konfigurationsmechanismus denkbar. Außerdem muss ein Mechanismus eingebracht wer-den, der Whitespace-Elemente in die gebildete Struktur sinnvoll einbaut (Kommt eineAnnotation z.B. am Anfang oder am Ende eines Strukturelementes vor, so muss geklärtwerden, ob sie eine Annotation zu dem gegebenen Strukturelement ist, oder ob sie zudem Strukturelement eine Ebene höher gehört).

8.5. Einbringen prozeduraler Elemente

In eine bestehende Aufzeichnung können momentan nur Aufzeichnungselemente wie An-notationen und Pausen eingefügt werden. Sinnvoll wäre auch das Einbringen von para-metrisierten Strukturelementen, also ganzer Teilbäume, in die Aufzeichnung. So könnteman die Eingabe eines Datensatzes in einem Eingabefenster einer Datenbankanwendungals Strukturelement mit Platzhalter für die einzelnen Datensatzfelder einbringen unddieses mit unterschiedlichen Parametern belegen. Während des Abspielens werden sounterschiedliche Datensätze in die Datenbank eingetragen, ohne dass dies im Vorhineinhätte aufgezeichnet werden müssen. Dies kann bei der Spezifikation von Aufzeichnungenzum Testen von Anwendungen hilfreich sein, wenn man bestimmte Verhaltenssequenzennicht immer von neuem Aufzeichnen möchte.

In diesem Zusammenhang wären auch Strukturelemente, die Schleifen und Bedingun-

78

Page 87: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

gen repräsentieren, denkbar. So könnte in einer Schleife ein Strukturelement zur Daten-satzeingabe mit Zufallswerten stehen. Bei der Wiedergabe können so zahlreiche, zufälligeDatensätze in eine Datenbank eingegeben werden.

Derartige prozedurale Elemente sollten bei einer Restrukturierung ebenfalls unangetastetbleiben.

8.6. Überprüfung der Struktur bei Änderungen

Wenn eine strukturierte Aufzeichnung vorliegt und beispielsweise ein Aufzeichnungs-element geändert wird, so wird dies momentan noch nicht zu den Strukturelementen,in denen das Aufzeichnungselement enthalten ist, durchgereicht. Es kann so passieren,dass eine nachträgliche Änderung eines Aufzeichnungselementes zu einer ganz anderenStruktur geführt hätte und die aktuelle Struktur ungültig ist. In der momentanen Im-plementierung sollte daher nach umfangreichen Änderungen vor der Wiedergabe eineRestrukturierung der Aufzeichnung vorgenommen werden, damit der Replay-Prozessimmer eine gültige Struktur erhält.

Es wäre auch denkbar, dass eine Änderung eines Strukturelementes zu den übergeordne-ten Elementen weitergereicht wird und diese ihre Gültigkeit überprüfen. Stellt eines derElemente seine Ungültigkeit fest, so könnte der davon betroffene Teilbaum in der Dar-stellung als ungültig markiert werden und so den Anwender darauf aufmerksam machen,eine Restrukturierung zu veranlassen oder die Änderung zurückzunehmen.

8.7. Laden anwendungsspezifischer Module

In den meisten Fällen kommt man nicht darum herum, Klassen zu schreiben, die an-wendungsspezifisch sind und die in Jacareto eingeklinkt werden müssen. Hierzu zählenbeispielsweise:

• Listener, die semantische Ereignisse in der Zielanwendung abgreifen und der Event-ObjectQueue zuführen

• Event-Recorder, die derartige Ereignisse vom Event-Listener erhalten und in derAufzeichnung ablegen

• Strukturelemente, die auf die Zielanwendung zugeschnittete semantische Einheitenrepräsentieren

• Wurzelelemente, die die Aufzeichnung der speziellen Zielanwendung gemäß parsen

• Editoren für die anwendungsabhängigen Aufzeichnungs- und Strukturelemente

• Replayer, die anwendungsspezifische Strukturelemente wiedergeben

79

Page 88: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

• Konverter, die spezielle Strukturelemente in XML-Elemente oder in Datenfällekonvertieren

• Filter, die solche Elemente aus einer Aufzeichnung herausfiltern, um daraus bei-spielsweise einen Datensatz erzeugen zu können

Momentan muss man, wenn man anwendungsabhängige Mechanismen nur in bestimm-ten Kontexten verwenden will, spezielle XML-Konfigurationsdateien erzeugen. Jacaretosollte aber die Möglichkeit bieten, Module mit allen anwendungsspezifischen Klassen in-klusive der entsprechenden XML-Konfigurations- und Sprachdefinitionsdateien zur Lauf-zeit nachzuladen. Hierzu bietet es sich an, alle zusammengehörigen Dateien in einerjar-Datei komprimiert in ein bestimmtes Verzeichnis zu stellen; Jacareto könnte dannzur Laufzeit in diesem Verzeichnis gewünschte Module integrieren. In CleverPHL bei-spielsweise könnte dies einfach durch einen Auswahldialog, der alle bekannten Moduleanbietet, erfolgen.

8.8. Kombination mit Videoaufzeichnungen

Der Aufzeichungsprozess von Benutzer-Programm-Interaktionen mit Jacareto ermitteltnicht die Benutzeraktionen vor dem Computer. Mimik, Gestik und sonstiges Verhalten,welches sich nicht an der graphischen Benutzungsschnittstelle bemerkbar macht, werdennicht erfasst. Dieses Manko könnte durch eine Videoaufzeichnung (z.B. per Webcam)ausgeglichen werden, die parallel zur Interaktionsaufzeichnung vorgenommen wird. Beider Wiedergabe der Interaktionsaufzeichnung könnte so in einem weiteren Fenster dieVideoaufzeichnung zeitgleich abgespielt werden.

Die qualitative Analyse der Interaktionsaufzeichnung kann dann auch Hilfe bei der Aus-wertung der Videoaufzeichnung sein: Es ist dann durchaus denkbar, sich nur den Aus-schnitt der Videoaufzeichnung zu betrachten, der einem bestimmten Strukturelement inder Interaktionsaufzeichnung entspricht. So könnte man beispielsweise feststellen, warumdie Ansicht eines Hypertextes so lange gedauert hat (nämlich weil der Benutzer in die-ser Zeit den Computer verlassen oder sich mit einem Nachbarn unterhalten hat). Manerhält so durch die qualitative Analyse der Interaktionsaufzeichnung Hinweise, welcheAbschnitte der Videoaufzeichung noch einmal selektiv betrachtet werden sollten. Diestrukturierte Interaktionsaufzeichnung kann also als eine Art automatische Videoanno-tation betrachtet werden (siehe Abschnitt 1.1.1).

Voraussetzung für ein Funktionieren des Zusammenspiels zwischen Interaktions- undVideoaufzeichnung ist die zeitgetreue Aufzeichung und die Bereitstellung von Synchro-nisierungsmechanismen während der Aufzeichnung und der Wiedergabe.

80

Page 89: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

8.9. Videokonfrontation

In empirischen Untersuchungen wird häufig die Technik der Videokonfrontation einge-setzt [GH, S.8]. Hierbei wird das Verhalten des Versuchspersonen aufgenommen unddiesen nach dem Versuch vorgespielt. Die Versuchspersonen werden dabei gebeten zuäußern, was sie während bestimmter Sequenzen gedacht oder gefühlt haben44.

Jacareto könnte auch hier Mechanismen bieten, die analog zur Videokonfrontation sind:Bei der Betrachtung der Interaktionsaufzeichnung (evtl. kombiniert mit einer Videoauf-zeichnung, siehe Abschnitt 8.8) könnte ein Audio-Datenstrom der Benutzerkommentaremit aufgenommen werden, wenn diese ihre Gedanken und Gefühle beim Abspielen derAufzeichnung nach dem Versuch benennen. Ähnlich zur kombinierten Analyse mit Vi-deoaufzeichnungen können dann selektiv die Kommentare zu bestimmten Strukturele-menten der Interaktionsaufzeichung abgespielt werden.

44Die Technik der Videokonfrontation hat gegenüber dem sofortigen Äußern der Gedanken und Gefühlewährend des Versuches den Vorteil, dass die Versuchspersonen sich ganz auf die eigentliche Tätigkeit,z.B. die Bedienung des Programms, konzentrieren können und keine Kapazitäten für die Äußerungenaufbringen müssen.

81

Page 90: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

9. Fazit

In dieser Arbeit wurde ein Framework zur qualitativen und quantitativen Analyse vonInteraktionsaufzeichnungen entwickelt. Dieses Werkzeug kann in empirischen Untersu-chungen verwendet und zur Erkennung und Analyse von Benutzerverhalten eingesetztwerden.

Die Zielanwendungen müssen nicht verändert werden, um das Benutzerverhalten auf ih-nen aufzuzeichnen45. Bereits implementierte Strukturelemente wie Mausklicks, Button-aktivierungen, Listen- und Menüauswahlen werden sofort ohne weiteres Zutun erkannt.Auf dieser Basis können dann neue Strukturelemente, die höheres Verhalten repräsen-tieren, definiert werden. Dies erfordert aufgrund der modularen Konzeption keine Än-derungen am Framework selbst. Im Laufe der Zeit wird durch das Hinzukommen neuerStrukturelemente ein reicher Fundus an Erkennungs- und Strukturierungsalgorithmenzur Verfügung stehen. Auf diesen Fundus kann dann in konkreten Anwendungskontex-ten zugegriffen werden, um auf einfache Weise neue Strukturelemente zu bilden.

Zur quantitativen Analyse können gebräuchliche Systeme wie SPSS und Excel einge-setzt werden. Auf diese Weise wird der Zugriff auf eine große Menge von statistischenFunktionen ermöglicht.

Neben der Analyse von Fragebögen, Videoaufzeichnungen und Tagebüchern kann dieAnalyse von Interaktionsaufzeichnungen mit den vorgestellten Mechanismen so eine hilf-reiche Ergänzung empirischer Untersuchungen sein.

45Es sei denn, es sollen semantische Ereignisse erkannt werden, die nicht aus dem Zustand der graphischenBenutzungsoberfläche erschlossen werden können (siehe Abschnitt 5.3.1).

82

Page 91: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

A. Packages im Jacareto-Framework

Packages, die in dieser Arbeit hinzugefügt worden sind, sind kursiv dargestellt. Sub-packages sind nicht explizit aufgeführt.

Package Beschreibungjacareto.catching Klassen zum Abgreifen und Weiterverarbeiten von Ereignissenjacareto.cleverphl CleverPHL inkl. GUI-Klassenjacareto.comp Komponentenverwaltungjacareto.convert Module zur Konvertierung von Strukturelementenjacareto.dataset Datensatz- und Datenfallklassenjacareto.editor Editoren für Strukturelementejacareto.eventmask Masken für Ereignissejacareto.parse Hilfsklassen zum Parsen einer Aufzeichnung (Tokenizer etc.)jacareto.picorder Picorderjacareto.record Aufzeichnungen und Aufzeichnungselementejacareto.replay Module zur Wiedergabe von Strukturelementenjacareto.starter Klassen zum Starten von Applikationen und Appletsjacareto.struct Aufzeichnungsstrukturen und Strukturelementejacareto.system Basisklassen für Jacareto-Umgebungselementejacareto.test Aufzeichnungselemente für GUI-Tests

83

Page 92: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

B. Quelltexte

B.1. Quelltext der Klasse MouseClick

public class MouseClick extends StructureElement {

// Erstellung eines neuen Mausklick-Strukturelements.// Die Attributwerte werden von einem der Kindelemente übernommen.// Der Konstruktor wird von der parse-Methode aufgerufen, wenn diese// erfolgreich war.public MouseClick (Environment env, StructureElement[] children) {

super (env,children);MouseEventRecordable recordable = (MouseEventRecordable) children[2];x = recordable.getX();y = recordable.getY();sourceName = recordable.getSourceName();clickCount = recordable.getClickCount();modifiers = recordable.getModifiers();

}

// Parst die Aufzeichnung an der Stelle, auf die der RecordTokenizer zeigtpublic static StructureElement parse (Environment env, RecordTokenizer

recordTokenizer) {StructureElement result = null;StructureElement[] children = null;boolean cond;

try {// Ein Mausklick besteht aus drei Mausereignissen:// einem MousePressed-, MouseReleased- und MouseClicked-Ereignis.// Sollte eines der nächsten drei Elemente kein Mausereignis sein,// so wird eine ClassCastException ausgelöst und an das Ende// der Methode gesprungen.MouseEventRecordable first =

(MouseEventRecordable) recordTokenizer.get();MouseEventRecordable second =

(MouseEventRecordable) recordTokenizer.get(1);MouseEventRecordable third =

(MouseEventRecordable) recordTokenizer.get(2);

// Überprüfung, ob die drei gelesenen Mausereignisse die

84

Page 93: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

// richtigen Attributwerte besitzen.cond = true;cond = cond && first.getID() == MouseEvent.MOUSE_PRESSED;cond = cond && second.getID() == MouseEvent.MOUSE_RELEASED;cond = cond && third.getID() == MouseEvent.MOUSE_CLICKED;

cond = cond && first.getX() == second.getX()&& first.getX() == third.getX();

cond = cond && first.getY() == second.getY()&& first.getY() == third.getY();

cond = cond && first.getSourceName().equals(second.getSourceName());

cond = cond && first.getSourceName().equals(third.getSourceName());

if (cond) {// Die drei gelesenen Ereignisse bilden ein Mausklick-// Strukturelement. Sie werden in einem Array// dem Konstruktor des Strukturelementes übergeben.// Außerdem wird der Tokenizer um drei fortgeschaltet.children = new StructureElement[3];children[0] = first;children[1] = second;children[2] = third;result = new MouseClick (env, children);recordTokenizer.forward (3);

}} catch (Throwable t) {}

// Wenn ein Strukturelement erfolgreich gebildet werden konnte,// so wird dies zurückgeliefert. In allen anderen Fällen// (Es wurde eine ClassCastException ausgelöst oder die// boolesche Variable cond hatte den Wert false) wird// null zurückgeliefert.return result;

}

// Liefert die x-Koordinate des Mausklicks.public int getX () {

return x;}

85

Page 94: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

// Liefert die y-Koordinate des Mausklicks.public int getY () {

return y;}

// Liefert den Namen der Komponente, auf der der Mausklick// ausgelöst wurde.public String getSourceName() {

return sourceName;}

// Liefert die Anzahl der Klicks.public int getClickCount() {

return clickCount;}

// Liefert den Modifikationswert. Dieser Wert enthält u.a.// die Information, welcher Mausknopf gedrückt wurde.public int getModifiers() {

return modifiers;}

// Liefert den Namen des Strukturelements. Dieser// wird dem aus dem Language-Objekt gelesen, das// jedem Strukturelement automatisch zur Verfügung steht// (Das Language-Objekt ist Teil des Environment-Objektes).public String getElementName () {

return language.getString ("MouseClick.Name");}

// Liefert die Beschreibung zu dem Strukturelementpublic String getElementDescription (){

return language.getString ("MouseClick.Description");}

// Liefert einen kurzen String, der das Strukturelement beschreiben soll.// Dieser String wird beispielsweise in der Aufzeichnungsanzeige von// CleverPHL verwendet.public String toShortString () {

return getElementName() + " (" + getX() + "," + getY() + ")";}

// Die x-Koordinate des Mausklicks

86

Page 95: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

private int x;// Die y-Koordinate des Mausklicksprivate int y;// Der Name der Komponenteprivate String sourceName;// Die Anzahl der Klicksprivate int clickCount;// Der Modifikationswertprivate int modifiers;

}

87

Page 96: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

B.2. Quelltext der parse-Methode der Klasse MultipleMouseClick

public static StructureElement parse (Environment env,RecordTokenizer recordTokenizer) {

StructureElement result = null;Vector addedChildren = null;Vector addedMouseClicks = null;StructureElement firstElement = null;MouseClick mouseClick = null;int clickCount = 0;

// Sicherung des RecordTokenizer-ZustandsRecordTokenizerState rtState = recordTokenizer.saveState();

RecordTokenizerState stateAfterLastClick = null;

// Das erste Kindelement eines Mehrfachklicks ist entweder// ein Mausklick oder ein Fokuswechsel, der einen Mausklick// enthält.firstElement = MouseClick.parse(env, recordTokenizer);if (firstElement != null) {

mouseClick = (MouseClick) firstElement;} else {

firstElement = FocusChange.parse (env, recordTokenizer);if (firstElement != null) {

mouseClick = ((FocusChange) firstElement).getMouseClick();}

}

// Nur, wenn bereits ein Element gefunden wurde, kann es sich um// einen Mehrfachklick handeln.if (firstElement != null) {

try {clickCount = mouseClick.getClickCount();if (clickCount != 1) {

// Der erste gefundene Mausklick muss den// clickCount-Wert 1 habenthrow new Exception();

}

// Der Vektor addedChildren sammelt alle// gefundenen Kindelemente während des// Parse-Vorganges.

88

Page 97: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

addedChildren = new Vector (5,5);addedChildren.add (firstElement);

// Der Vektor addedMouseClicks sammelt alle// gefundenen Mausklicks (Ein Mehrfachklick// hat auch Kindelemente, die keine// Mausklicks sind).addedMouseClicks = new Vector (3,3);addedMouseClicks.add (mouseClick);

while (recordTokenizer.hasMore()) {mouseClick = (MouseClick) MouseClick.parse (env,

recordTokenizer);if (mouseClick != null) {

// Die clickCount-Werte aufeinanderfolgender Mausklicks// müssen ebenfalls aufeinanderfolgend sein.if (mouseClick.getClickCount() == clickCount + 1) {

clickCount++;addedChildren.add (mouseClick);addedMouseClicks.add (mouseClick);stateAfterLastClick = new RecordTokenizerState (env,

recordTokenizer);} else {

// Der gefundene Mausklick kann nicht zu dem Mehrfach-// Klick gehören.break;

}} else {

// Es können noch kleine Mausbewegungen zwischen den// einzelnen Mausklicks liegen.StructureElement inbetween = null;inbetween = MouseMotion.parse (env, recordTokenizer);if (inbetween == null) {

inbetween = MouseDrag.parse (env, recordTokenizer);}if (inbetween != null) {

addedChildren.add (inbetween);} else {

break;}

}}

} catch (Throwable t) {

89

Page 98: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

// Im Fehlerfall wird der alte Zustand des RecordTokenizers// wieder hergestellt.recordTokenizer.restoreState (rtState);clickCount = 0;

}}

// Es handelt sich nur um einen Mehrfachklick, wenn mindestens zwei// aufeinanderfolgende Mausklicks gefunden worden sind.// Wenn das der Fall ist, dann werden die Felder erstellt,// die dem Mehrfachklick im Konstruktor übergeben werden müssen.// Ansonsten wird der Zustand des Tokenizers vor dem Aufruf// dieser Methode wieder hergestellt.if (clickCount > 1) {

MouseClick[] mouseClicks = new MouseClick [addedMouseClicks.size()];for (int i=0; i <mouseClicks.length; i++) {

mouseClicks[i] = (MouseClick) addedMouseClicks.get(i);}int lastClickIndex = addedChildren.indexOf

(mouseClicks[mouseClicks.length-1]);StructureElement[] children = new StructureElement[lastClickIndex+1];for (int i=0; i <= lastClickIndex; i++) {

children[i] = (StructureElement) addedChildren.get(i);}recordTokenizer.restoreState (stateAfterLastClick);result = new MultipleMouseClick (env, children, mouseClicks);

} else {recordTokenizer.restoreState (rtState);

}

return result;}

90

Page 99: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

B.3. Quelltext der parse-Methode der Klasse FocusChange

public static StructureElement parse (Environment env, RecordTokenizerrecordTokenizer) {

// Ein Fokuswechsel kann unterschiedlich aufgebaut sein.// Daher gibt es mehrere, voneinander unabhängige Erkennungsalgorithmen,// die nacheinander aufgerufen werden, solange keiner der Algorithmen// erfolgreich war.

// focus lost, focus gainedtry {

FocusEventRecordable foLost =(FocusEventRecordable) recordTokenizer.get();

FocusEventRecordable foGained =(FocusEventRecordable) recordTokenizer.get(1);

boolean cond = true;cond = cond && foLost.getID() == FocusEvent.FOCUS_LOST;cond = cond && foGained.getID() == FocusEvent.FOCUS_GAINED;if (cond) {

StructureElement[] children = new StructureElement[2];children[0] = foLost;children[1] = foGained;recordTokenizer.forward (2);return new FocusChange (env, children, foLost.getComponentName(),

foGained.getComponentName());} else {

throw new Exception();}

} catch (Throwable t) {}

// mouse pressed, focus lost, focus gained,// (mouse released, mouse clicked | mouse dragged, mouse released)try {

MouseEventRecordable meFirst =(MouseEventRecordable) recordTokenizer.get();

FocusEventRecordable foLost =(FocusEventRecordable) recordTokenizer.get(1);

FocusEventRecordable foGained =(FocusEventRecordable) recordTokenizer.get(2);

MouseEventRecordable meSecond =

91

Page 100: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

(MouseEventRecordable) recordTokenizer.get(3);MouseEventRecordable meThird =

(MouseEventRecordable) recordTokenizer.get(4);boolean cond = true;cond = cond && foLost.getID() == FocusEvent.FOCUS_LOST;cond = cond && foGained.getID() == FocusEvent.FOCUS_GAINED;cond = cond && meFirst.getID() == MouseEvent.MOUSE_PRESSED;cond = cond && ( meSecond.getID() == MouseEvent.MOUSE_RELEASED

&& meThird.getID() == MouseEvent.MOUSE_CLICKED|| meSecond.getID() == MouseEvent.MOUSE_DRAGGED&& meThird.getID() == MouseEvent.MOUSE_RELEASED);

if (meThird.getID() == MouseEvent.MOUSE_CLICKED) {cond = cond && meFirst.getX() == meSecond.getX()

&& meFirst.getX() == meThird.getX();cond = cond && meFirst.getY() == meSecond.getY()

&& meFirst.getY() == meThird.getY();}if (cond) {

StructureElement[] mouseChildren = new StructureElement[3];mouseChildren[0] = meFirst;mouseChildren[1] = meSecond;mouseChildren[2] = meThird;StructureElement[] children = new StructureElement[3];children[0] = new MouseClick (env, mouseChildren);children[1] = foLost;children[2] = foGained;recordTokenizer.forward (5);return new FocusChange (env, children, foLost.getComponentName(),

foGained.getComponentName());} else {

throw new Exception();}

} catch (Throwable t) {}

// focus lost, mouse pressed, focus gained, mouse releasedtry {

FocusEventRecordable foLost =(FocusEventRecordable) recordTokenizer.get(0);

MouseEventRecordable meFirst =(MouseEventRecordable) recordTokenizer.get(1);

FocusEventRecordable foGained =(FocusEventRecordable) recordTokenizer.get(2);

MouseEventRecordable meSecond =

92

Page 101: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

(MouseEventRecordable) recordTokenizer.get(3);boolean cond = true;cond = cond && foLost.getID() == FocusEvent.FOCUS_LOST;cond = cond && foGained.getID() == FocusEvent.FOCUS_GAINED;cond = cond && meFirst.getID() == MouseEvent.MOUSE_PRESSED;cond = cond && meSecond.getID() == MouseEvent.MOUSE_RELEASED;

if (cond) {StructureElement[] children = new StructureElement[4];children[0] = foLost;children[1] = meFirst;children[2] = foGained;children[3] = meSecond;recordTokenizer.forward (4);return new FocusChange (env, children, foLost.getComponentName(),

foGained.getComponentName());} else {

throw new Exception();}

} catch (Throwable t) {}

// Keiner der Erkennungsalgorithmen war erfolgreichreturn null;

}

93

Page 102: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

B.4. Quelltext der Klasse DCMouseClickConverter

public class DCMouseClickConverter extends Converter {

// Erstellt ein neues Objektpublic DCMouseClickConverter(Environment env) {

super (env);}

// Mit Hilfe dieser Methode kann erfragt werden, ob// der Konverter für das gegebene Strukturelement zuständig ist.// Dieser Konverter ist für Strukturelemente vom Typ// MouseClick zuständig.public boolean handlesElement (StructureElement element) {

return element != null && (element instanceof MouseClick);}

// Konvertiert das gegebene Strukturelement in einen Datenfall.// Vorbedingung für diese Methode ist, dass die Methode// handlesElement (StructureElement) für das// Element den Wert true liefertpublic Object convertElement (StructureElement element) {

MouseClick click = (MouseClick) element;

// Erstellung des Feldes mit den WertenObject[] values = new Object[8];values[0] = new Integer(click.getX());values[1] = new Integer(click.getY());values[2] = new Integer(click.getRootX());values[3] = new Integer(click.getRootY());values[4] = new Integer (click.getClickCount());values[5] = click.getSourceName();values[6] = click.getRootName();values[7] = new Integer (click.getModifiers());

// Erstellung des Feldes mit den WertbezeichnungenString[] valueNames = new String[8];valueNames[0] = language.getString ("MouseEvent.XPosition");valueNames[1] = language.getString ("MouseEvent.YPosition");valueNames[2] = language.getString ("MouseEvent.RootXPosition");valueNames[3] = language.getString ("MouseEvent.RootYPosition");

94

Page 103: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

valueNames[4] = language.getString ("MouseEvent.ClickCount");valueNames[5] = language.getString ("Event.Source");valueNames[6] = language.getString ("ComponentEvent.Root");valueNames[7] = language.getString ("InputEvent.Modifiers");

return new DataCase (env, values, valueNames);}

// Liefert false, da dieser Konverter nur in eine Richtung// konvertiert.public boolean handlesOther (Object other) {

return false;}

// Liefert false, da dieser Konverter nur in eine Richtung// konvertiert.public StructureElement convertOther (Object other) {

return null;}

}

95

Page 104: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Literatur

[Apa] Apache HTTP Server Project. Apache HTTP Server Version 1.3: Logfiles.http://httpd.apache.org/docs/logs.html (Abruf am 15.12.2002).

[ASU88] Alfred V. Aho, Ravi Sethi und Jeffrey D. Ullman. Compilerbau. Addison-Wesley, Bonn, 1988.

[Bau99] Peter Baumgartner. Evaluation mediengestützten Lernens. In: M. Kindt(Hrsg.), Projektevaluation in der Lehre - Multimedia an Hochschulen zeigtProfil(e), S. 61–97. Waxmann, Münster, 1999.

[BD02] Jürgen Bortz und Nicola Döring. Forschungsmethoden und Evaluation.Springer Verlag, Berlin Heidelberg, 3. Ausgabe, 2002.

[BFMW97] Hartmut Benz, Steffen Fischer, Rolf Mecklenburg und Andreas Wenger. Ap-plication Output Recording for Instant Authoring in a Distributed Mul-timedia Annotation Environment. In: Ralf Steinmetz und Larc C. Wolf(Hrsg.), Interactive Distributed Multimedia Systems and Telecommunicati-on Services, 4th International Workshop, IDMS’97, Darmstadt, Deutsch-land, Nr. 1309 in Lecture Notes in Computer Science, S. 220–230. SpringerVerlag, Berlin, September 1997.

[GE99] Ralf Hartmut Güting und Martin Erwig. Übersetzerbau. Springer-Verlag,Heidelberg, 1999.

[GH] Günther Gediga und Kai-Christoph Hamborg. Ergonomische Evaluationvon Software: Methoden und Modelle im Software-Entwicklungsprozess.http://people.freenet.de/gediga/zpsyeval.pdf (Abruf am17.12.2002).

[HB92] Beverly L. Harrison und Ronald M. Baecker. Designing Video Annotationand Analysis Systems. Proceedings Graphics Interface ’92, S. 157–166, 1992.

[Kla] Dieter Klaudt. CEKA - Computerunterstützte Eigenkonstruktionen vonKindern im mathematischen Anfangsunterricht. Pädagogische HochschuleLudwigsburg. http://www.ph-ludwigsburg.de/mathematik/personal/klaudt/ (Stand 10.4.2001).

[Kre97] Christoph Kreitz. Grundlagen der Informatik 1 (Online Skript).Technische Universität Darmstadt, 1997. http://www.pi.informatik.tu-darmstadt.de/inf1/Skript/ (Stand 24.10.1997).

[KZ02] Sabine C. Koch und Jörg Zumbach. The Use of Video Analysis Software inBehavior Observation Research: Interaction Patterns in Task-oriented Small

96

Page 105: Qualitative und quantitative Analyse von ... · Hierbei wird geklärt, welche Methoden eingesetzt werden können, um diese qualitativ und quantitativ zu untersuchen, und welches Potenzial

Groups. Forum Qualitative Sozialforschung / Forum: Qualitative Social Re-search, 3(2), 2002. http://www.qualitative-research.net/fqs-texte/2-02/2-02kochzumbach-e.pd%f (Abruf am 4.12.2002).

[Lip99] Martin Lippert. Die Desktop-Metapher in Systemen nach demWerkzeug- und Material-Ansatz. Diplomarbeit, Universität Hamburg,1999. http://swt-www.informatik.uni-hamburg.de/publications/files/Dipl/Diplom%arbeitLippert.pdf (Abruf am 9.1.2003).

[Ott] Markus Otto. LUCS - eine Lernumgebung am Computer. PädagogischeHochschule Ludwigsburg. http://www.ph-ludwigsburg.de/mathematik/forschung/schemel/lucs/uebers.h%tml (Stand 29.11.1999).

[Sch97] Uwe Schöning. Theoretische Informatik - kurzgefasst. Spektrum Akademi-scher Verlag, Heidelberg, 3. Ausgabe, 1997.

[Sch99] Jörg Schließer. Design und Implementation eines Recorder/Viewersfür Java-AWT. Diplomarbeit, Universität Stuttgart, 1999. Nr.1695. http://elib.uni-stuttgart.de/opus/volltexte/1999/439/pdf/439_1.pdf (Abruf am 20.11.2002).

[Spa] Christian Spannagel. Jacareto. Pädagogische Hochschule Ludwigsburg.http://www.ph-ludwigsburg.de/mathematik/personal/spannagel/jacareto/ind%ex.html (Abruf am 1.10.2002).

[Sta96] Christian Stary. Interaktive Systeme, Software-Entwicklung und Software-Ergonomie. Vieweg Verlag, Braunschweig, Wiesbaden, 2. Ausgabe, 1996.

[Tec] Technische Hochschule Darmstadt. Projekt CKTest. http://www.pi.informatik.tu-darmstadt.de/cktest/ (Abruf am 1.10.2002).

[Wir96] Nikolaus Wirth. Grundlagen und Techniken des Compilerbaus. AddisonWesley (Deutschland), Bonn, 1996.

97