Entwicklung einer Applikation zur Durchführung von Card-Sorting ...

Entwicklung einer Applikation zur Durchführung von Card-Sorting ... Entwicklung einer Applikation zur Durchführung von Card-Sorting ...

cs.uni.paderborn.de
von cs.uni.paderborn.de Mehr von diesem Publisher
30.12.2013 Aufrufe

Fakultät für Elektrotechnik, Informatik und Mathematik Institut für Informatik Fachgebiet Mensch-Computer-Interaktion Fürstenallee 11 33102 Paderborn Entwicklung einer Applikation zur Durchführung von Card-Sorting Experimenten auf einem Multi-Touch-Tisch Bachelor-Arbeit im Rahmen des Studiengangs Informatik zur Erlangung des Grades Bachelor of Science von Markus Rose Hüfferweg 26 33100 Paderborn betreut durch M.Sc. Adrian Hülsmann vorgelegt bei Prof. Dr. Gerd Szwillus und Jun-Prof. Dr. Christoph Sorge Paderborn, Januar 2013

Fakultät für Elektrotechnik, Informatik und Mathematik<br />

Institut für Informatik<br />

Fachgebiet Mensch-Computer-Interaktion<br />

Fürstenallee 11<br />

33102 Paderborn<br />

<strong>Entwicklung</strong> <strong>einer</strong> <strong>Applikation</strong><br />

<strong>zur</strong> <strong>Durchführung</strong> <strong>von</strong><br />

<strong>Card</strong>-<strong>Sorting</strong> Experimenten auf<br />

einem Multi-Touch-Tisch<br />

Bachelor-Arbeit<br />

im Rahmen des Studiengangs Informatik<br />

<strong>zur</strong> Erlangung des Grades<br />

Bachelor of Science<br />

<strong>von</strong><br />

Markus Rose<br />

Hüfferweg 26<br />

33100 Paderborn<br />

betreut durch<br />

M.Sc. Adrian Hülsmann<br />

vorgelegt bei<br />

Prof. Dr. Gerd Szwillus<br />

und<br />

Jun-Prof. Dr. Christoph Sorge<br />

Paderborn, Januar 2013


Erklärung<br />

Ich versichere, dass ich die Arbeit ohne fremde Hilfe und ohne Benutzung anderer<br />

als der angegebenen Quellen angefertigt habe und dass die Arbeit in gleicher oder<br />

ähnlicher Form noch k<strong>einer</strong> anderen Prüfungsbehörde vorgelegen hat und <strong>von</strong> dieser<br />

als Teil <strong>einer</strong> Prüfungsleistung angenommen worden ist. Alle Ausführungen, die<br />

wörtlich oder sinngemäß übernommen worden sind, sind als solche gekennzeichnet.<br />

Ort, Datum<br />

Unterschrift<br />

iii


Inhalt<br />

1 Einleitung 1<br />

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />

1.2 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.3 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

2 <strong>Card</strong>-<strong>Sorting</strong> 7<br />

2.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2 Funktionsweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2.1 Offenes <strong>Card</strong>-<strong>Sorting</strong> . . . . . . . . . . . . . . . . . . . . . 8<br />

2.2.2 Geschlossenes <strong>Card</strong>-<strong>Sorting</strong> . . . . . . . . . . . . . . . . . 9<br />

2.2.3 Mehrfache Zuordnung . . . . . . . . . . . . . . . . . . . . 9<br />

2.2.4 Hierarchisches <strong>Card</strong>-<strong>Sorting</strong> . . . . . . . . . . . . . . . . . 10<br />

2.2.5 Reverse <strong>Card</strong>-<strong>Sorting</strong> . . . . . . . . . . . . . . . . . . . . . 10<br />

2.2.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2.3 Bisherige Implementierungen . . . . . . . . . . . . . . . . . . . . . 11<br />

3 Technische Grundlagen 13<br />

3.1 WeCaSo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.1.1 Projekt erstellen . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.1.2 Aufbau der WeCaSo Datenbank . . . . . . . . . . . . . . . 16<br />

3.2 Multitouch-Tisch . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

3.2.1 Geschichte der Multitouch-Geräte . . . . . . . . . . . . . . 18<br />

3.2.2 Technik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

3.2.3 Mr. T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

3.3 <strong>Entwicklung</strong>sumgebung . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

4 Multitouch-Gesten 25<br />

4.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

v


Inhalt<br />

4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong> . . . . . . . . . . . . . . . . . 27<br />

4.2.1 Karte verschieben . . . . . . . . . . . . . . . . . . . . . . . 30<br />

4.2.2 Karte kopieren . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

4.2.3 Karte löschen . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

4.2.4 Beschreibung eines Begriffs . . . . . . . . . . . . . . . . . . 35<br />

4.2.5 Hierarchisches Einfügen . . . . . . . . . . . . . . . . . . . 35<br />

4.2.6 Gruppieren <strong>von</strong> Karten . . . . . . . . . . . . . . . . . . . . 36<br />

4.2.7 Experiment beenden . . . . . . . . . . . . . . . . . . . . . 43<br />

5 Architektur der <strong>Applikation</strong> 45<br />

5.1 Geschäftslogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

5.1.1 Datenanbindung an WeCaSo . . . . . . . . . . . . . . . . . 45<br />

5.1.2 Projekt laden . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

5.1.3 Karten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

5.1.4 Kategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

5.1.5 Interaktionen . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

5.2 Präsentationslogik . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6 Bedienung der <strong>Applikation</strong> 55<br />

6.1 Projekt laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

6.2 <strong>Durchführung</strong> <strong>von</strong> Experimenten . . . . . . . . . . . . . . . . . . 57<br />

6.2.1 Elemente verschieben . . . . . . . . . . . . . . . . . . . . . 58<br />

6.2.2 Karten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

6.2.3 Karten gruppieren . . . . . . . . . . . . . . . . . . . . . . 60<br />

6.2.4 Kategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

6.3 Experiment beenden . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

7 Zusammenfassung und Ausblick 69<br />

7.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

7.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

Anhang 71<br />

A.1 Inhalt der CD-Rom . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

A.2 Voraussetzungen zum Ausführen der <strong>Applikation</strong> . . . . . . . . . 71<br />

Literatur 75<br />

vi


Abbildungsverzeichnis<br />

3.1 Projekt in WeCaSo anlegen . . . . . . . . . . . . . . . . . . . . . 15<br />

(a) Fragebogen anlegen . . . . . . . . . . . . . . . . . . . . . . . 15<br />

(b) Begriffe und Kategorien definieren . . . . . . . . . . . . . . 15<br />

3.2 Unterbrechung der Totalreflexion . . . . . . . . . . . . . . . . . . 20<br />

3.3 Darstellung eines projektiv-kapazitiven Multitouch-Screens . . . . 21<br />

3.4 Multitouch-Tisch MisterT . . . . . . . . . . . . . . . . . . . . . . 23<br />

4.1 Aufbau des Benutzertests <strong>von</strong> North u.a. . . . . . . . . . . . . . . 28<br />

(a) Physische Variante . . . . . . . . . . . . . . . . . . . . . . . 28<br />

(b) Desktop-Variante . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

(c) Multitouch-Tisch-Variante . . . . . . . . . . . . . . . . . . . 28<br />

4.2 Verschieben <strong>von</strong> Karten . . . . . . . . . . . . . . . . . . . . . . . 31<br />

4.3 Kopieren <strong>von</strong> Karten . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

(a) Kopieren durch Ziehen . . . . . . . . . . . . . . . . . . . . . 31<br />

(b) Kopieren durch Tab-Geste . . . . . . . . . . . . . . . . . . . 31<br />

4.4 Löschen <strong>von</strong> Karten . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

(a) Löschen durch Wischen . . . . . . . . . . . . . . . . . . . . 34<br />

(b) Löschen durch Verschieben nach außen . . . . . . . . . . . . 34<br />

4.5 Hierarchisch Einfügen . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

4.7 Gruppieren <strong>von</strong> Karten mit allgemeinen Gesten . . . . . . . . . . 38<br />

(a) Gruppieren durch sequenzielles Berühren . . . . . . . . . . . 38<br />

(b) Gruppieren durch Lasso-Selektion . . . . . . . . . . . . . . . 38<br />

4.6 Gruppieren mit Pile-n-Browse . . . . . . . . . . . . . . . . . . . . 38<br />

4.8 Gruppieren <strong>von</strong> Karten mit Blasen . . . . . . . . . . . . . . . . . 39<br />

4.9 Gruppieren teilen . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

5.1 Klassendiagramme <strong>Card</strong>-<strong>Sorting</strong>-MTT . . . . . . . . . . . . . . . 46<br />

5.2 Oberfläche <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-MTT . . . . . . . . . . . . . . . . . 52<br />

vii


Abbildungsverzeichnis<br />

6.1 Wizard zum Laden eines Projekts . . . . . . . . . . . . . . . . . . 56<br />

(a) Projektnamen eingeben . . . . . . . . . . . . . . . . . . . . 56<br />

(b) Falscher Projektname eingegeben . . . . . . . . . . . . . . . 56<br />

(c) Willkommensnachricht . . . . . . . . . . . . . . . . . . . . . 56<br />

(d) Anleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

(e) Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />

6.2 Verschieben <strong>von</strong> Karten und Kategorien . . . . . . . . . . . . . . 58<br />

(a) Karte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

(b) Kategorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58<br />

6.3 Karte kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />

6.4 Karte löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59<br />

6.5 Einblenden der Beschreibung . . . . . . . . . . . . . . . . . . . . . 60<br />

6.6 Gruppierung erstellen . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

6.7 Kategorie erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

6.8 Kategorie benennen . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

6.9 Einzelne Karte zu <strong>einer</strong> Kategorie hinzufügen . . . . . . . . . . . 64<br />

6.10 Gruppierung zu <strong>einer</strong> Kategorie hinzufügen . . . . . . . . . . . . . 65<br />

6.11 Karten durch Lasso-Selektion <strong>einer</strong> Kategorie hinzufügen . . . . . 65<br />

6.12 Experiment beenden . . . . . . . . . . . . . . . . . . . . . . . . . 66<br />

viii


1 Einleitung<br />

1.1 Motivation<br />

Bei der <strong>Entwicklung</strong> <strong>einer</strong> <strong>Applikation</strong> oder Webseite ist für den Entwickler wegen<br />

des Pflichtenheftes unmittelbar klar, was die <strong>Applikation</strong> oder Webseite leisten<br />

soll. Bei der Gestaltung der Oberfläche machen Entwickler jedoch oft einen entscheidenden<br />

Fehler. Sie gestalten die Oberfläche bzw. die Navigationsstruktur der<br />

Oberfläche nach persönlichem Maßstab bezüglich der Benutzung und Gestaltung.<br />

Sie vernachlässigen dabei gerne, dass ihre kognitiven Fähigkeiten in diesem Bereich<br />

oft ausgeprägter sind als bei den späteren Benutzern.<br />

In diesem Zusammenhang spricht man <strong>von</strong> der Usability <strong>einer</strong> Software oder<br />

Webseite. Usability steht im Englischen für Benutzbarkeit oder Gebrauchstauglichkeit.<br />

Sie ist ein entscheidender Aspekt, der über den Erfolg oder Misserfolg<br />

<strong>einer</strong> Anwendung entscheidet.<br />

Die Usability <strong>einer</strong> Anwendung oder Webseite wird mit Hilfe <strong>von</strong> Usability-Tests<br />

untersucht. Zum einen gibt es Usability-Tests, die <strong>von</strong> Usability-Experten durchgeführt<br />

werden, welche die Aufgabe haben, sich in die späteren Benutzer hineinzuversetzen<br />

und typische Arbeitsabläufe mit dem Programm durchführen. Durch<br />

langjährige Erfahrung stellen sie schnell mögliche Usability Probleme fest. Auch<br />

stellen Usability-Experten Probleme in Anwendungen fest, die dem Benutzer nicht<br />

direkt auffallen, aber zu <strong>einer</strong> Verschlechterung der Benutzbarkeit führen können.<br />

Es besteht jedoch die Gefahr, dass Usability-Experten die technischen Fähigkeiten<br />

der späteren Benutzer über- oder unterschätzen. Aus diesem Grund gibt es<br />

auch Usability-Tests, die mit späteren Benutzern der Anwendung durchgeführt<br />

werden. So wird festgestellt, wie Benutzer die Anwendung bedienen und welche<br />

Erwartungen sie in diese haben.<br />

Usability-Tests sollten so früh wie möglich im <strong>Entwicklung</strong>sprozess durchgeführt<br />

werden. Wenn die <strong>Applikation</strong> schon fertiggestellt ist, wird eine solche Überprü-<br />

1


1. Einleitung<br />

fung mit Sicherheit dazu führen, dass an der <strong>Applikation</strong> noch Änderungen vollzogen<br />

werden müssen bzw. der Aufbau komplett überarbeitet werden muss, was<br />

mit enormen Kosten verbunden sein kann.<br />

Einer dieser Usability-Tests, der am Anfang <strong>einer</strong> <strong>Entwicklung</strong> <strong>von</strong> späteren<br />

Benutzern durchgeführt wird, ist das <strong>Card</strong>-<strong>Sorting</strong>. Bei einem <strong>Card</strong>-<strong>Sorting</strong> bekommen<br />

die Testteilnehmer, die sich aus der Gruppe der späteren Benutzer zusammensetzt,<br />

vom Testleiter, in der Regel <strong>einer</strong> der Entwickler, Karten mit den geplanten<br />

Navigationspunkten oder Menüeinträgen. Die Testteilnehmer haben dann<br />

die Aufgabe, diese Begriffe in vordefinierte oder vom Testteilnehmer selbst erstellte<br />

Kategorien einzuordnen. Aus den Zuordnungen kann der Testleiter dann eine<br />

geeignete Navigationsstruktur extrahieren. Im Detail werde ich <strong>Card</strong>-<strong>Sorting</strong> im<br />

Kapitel 2 beschreiben.<br />

Das ursprüngliche <strong>Card</strong>-<strong>Sorting</strong> 1 wird mit Papierkarten auf einem normalen Tisch<br />

durchgeführt. Dies hat jedoch einige Nachteile. Der Testleiter und die Testpersonen<br />

müssen an einem Ort sein. Die Ergebnisse müssen durch einen Protokollanten<br />

zwecks Auswertung erfasst werden. Um dies zu verhindern, sind im Laufe der Zeit<br />

verschiedene <strong>Card</strong>-<strong>Sorting</strong> <strong>Applikation</strong>en, zumeist webbasiert, entwickelt worden.<br />

Dadurch brauchen Testleiter und Testteilnehmer nicht mehr an einem Ort sein.<br />

Auch der administrative Aufwand wird dadurch verringert. Ein <strong>Card</strong>-<strong>Sorting</strong> Experiment<br />

kann einmalig definiert werden und <strong>von</strong> beliebig vielen Testteilnehmern<br />

durchgeführt werden. Auch die Auswertung kann durch solche <strong>Applikation</strong>en automatisiert<br />

werden.<br />

Der Nachteil ist jedoch, dass ein webbasiertes <strong>Card</strong>-<strong>Sorting</strong> gewisse technische Fähigkeiten<br />

der Testteilnehmer voraussetzt. Abhängig <strong>von</strong> der Fähigkeit der Testteilnehmer<br />

müssen diese erst mehr oder weniger aufwändig in das System eingeführt<br />

werden.<br />

Die Nachteile, die sich für die Testteilnehmer ergeben, könnten durch ein Multitouch<br />

basiertes <strong>Card</strong>-<strong>Sorting</strong> verringert oder gar ganz vermieden werden. Geräte<br />

mit Multitouch Bedienung erhalten immer mehr Einzug in unseren Alltag. Dies<br />

hat nicht zuletzt mit dem Boom <strong>von</strong> Smartphones und Tablets zu tun. Aber auch<br />

wer noch nie mit einem Multitouch-Gerät gearbeitet hat, wird sich schnell in die<br />

Bedienung einarbeiten können. Bei der Umsetzung <strong>einer</strong> <strong>Card</strong>-<strong>Sorting</strong> Anwendung<br />

1 Im späteren Verlauf der Arbeit als klassisches <strong>Card</strong>-<strong>Sorting</strong> beschrieben.<br />

2


1.2 Zielsetzung<br />

auf einem Multitouch-Tisch wird sich der Benutzer schnell in die Bedienung der<br />

Anwendung einarbeiten können.<br />

Dies unterstreicht auch die Studie Touch it, move it, scale it - Multitouch <strong>von</strong><br />

Christine Höflacher u.a. [BKH09], die im Jahr 2009 die Usability des Microsoft<br />

Surface Tisches untersucht haben und unter anderem zu folgendem Ergebnis kamen:<br />

„[D]ie Bedienung des MS Surface ist intuitiv. Sie baut auf Vorwissen auf,<br />

das der Nutzer bereits besitzt und unbewusst anwendet. Die Bedienung ist so für<br />

neue Nutzer leicht zu verstehen.“<br />

Gerade das Zurückgreifen auf Vorwissen kann bei der Umsetzung <strong>einer</strong> <strong>Card</strong>-<br />

<strong>Sorting</strong> Anwendung auf einem Multitouch-Tisch <strong>von</strong> entscheidender Bedeutung<br />

sein. Die Benutzer werden beim Anordnen bzw. Verschieben der Karten schnell<br />

eine Beziehung zum klassischen <strong>Card</strong>-<strong>Sorting</strong> herstellen können.<br />

Während es mit Maus und Tastatur nur möglich ist, Interaktionen sequenziell<br />

auszuführen, können diese auf einem Multitouch-Tisch auch parallel ausgeführt<br />

werden. So können zum Beispiel gleichzeitig mehrere Karten <strong>einer</strong> Kategorie zugeordnet<br />

werden.<br />

1.2 Zielsetzung<br />

Ziel dieser Arbeit ist es, eine <strong>Applikation</strong> <strong>zur</strong> <strong>Durchführung</strong> <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong><br />

Experimenten auf einem Multitouch-Tisch zu entwickeln. Die Anwendung soll<br />

innerhalb des Microsoft .NET 4.0 Frameworks ausführbar sein. Näheres <strong>zur</strong> <strong>Entwicklung</strong>sumgebung<br />

ist im Kapitel 3.3 beschrieben.<br />

Zur <strong>Durchführung</strong> <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-Experimenten müssen diese der <strong>zur</strong> entwickelnden<br />

<strong>Applikation</strong> zu Verfügung stehen. Dazu sollen Experimente aus der Datenbank<br />

der Online-<strong>Card</strong>-<strong>Sorting</strong>-<strong>Applikation</strong> WeCaSo geladen werden. WeCaSo<br />

ist ein im Fachgebiet Mensch-Computer-Interaktion der Universität Paderborn<br />

entwickeltes Online-<strong>Card</strong>-<strong>Sorting</strong>, mit dem der Testleiter <strong>Card</strong>-<strong>Sorting</strong>-Projekte<br />

erstellen kann. Die Testteilnehmer können diese über einen Webbrowser aufrufen<br />

und durchführen. WeCaSo wird in Kapitel 3.1 näher beschrieben.<br />

Der Fokus dieser Arbeit liegt somit auf der reinen <strong>Durchführung</strong> <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-<br />

Experimenten auf einem Multitouch-Tisch. Das heißt es wird eine Oberfläche für<br />

das <strong>Card</strong>-<strong>Sorting</strong> erstellt und entsprechende Gesten für die <strong>Durchführung</strong> entwickelt.<br />

3


1. Einleitung<br />

Die technischen Fähigkeiten der späteren Benutzer sind sehr unterschiedlich. Die<br />

Gesten sollten deshalb so gewählt werden, dass auch unerfahrene Benutzer sich<br />

schnell in die Interaktionen der Anwendung einarbeiten können. Dies soll vor allem<br />

dadurch geschehen, dass die Gesten mit der durchzuführenden Aktion in Verbindung<br />

gebracht werden können. Ein klassisches Beispiel dafür ist das Zoomen in<br />

Multitouch-Anwendungen. Typischerweise wird dies durch das Bewegen <strong>von</strong> zwei<br />

Fingern in entgegengesetzter Richtung bzw. aufeinander Zubewegen <strong>von</strong> zwei Fingern<br />

auf dem zu zoomenden Objekt durchgeführt.<br />

Erfahrene Benutzer erwarten durch neue Anwendungen aber auch Vereinfachungen.<br />

Sie wollen die Karten zum Beispiel erst einmal grob vorsortieren, alle markieren<br />

bzw. gruppieren und mit <strong>einer</strong> Geste der entsprechenden Kategorie hinzufügen.<br />

1.3 Vorgehensweise<br />

Die <strong>Entwicklung</strong> <strong>von</strong> Multitouch-Gesten findet in der Forschung immer mehr Zuspruch.<br />

So wurden im Laufe der letzten Jahre immer mehr wissenschaftliche Arbeiten<br />

veröffentlicht, die sich mit diesem Thema beschäftigen.<br />

Im Rahmen dieser Arbeit werden diverse wissenschaftliche Arbeiten dahingehend<br />

untersucht, ob sie Gesten beinhalten, die für ein <strong>Card</strong>-<strong>Sorting</strong> nützlich sind. Daraus<br />

werden sich für jede benötigte Aktion jeweils mehrere Gesten als nützlich<br />

herausstellen. Diese sollen anschließend miteinander verglichen und gegeneinander<br />

abgewogen werden, welche Geste für die <strong>Durchführung</strong> <strong>einer</strong> Aktion am sinnvollsten<br />

ist. Ausschlaggebend dafür werden auch die Benutzerstudien sein, die in<br />

den meisten der untersuchten Arbeiten durchgeführt werden. Diese Untersuchung<br />

wird in Kapitel 4 vorgenommen.<br />

Im weiteren Verlauf muss eine Anbindung an WeCaSo entwickelt werden. Die<br />

Daten der Experimente müssen aus <strong>einer</strong> Datenbank ausgelesen und die Ergebnisse<br />

anschließend wieder in die Datenbank übertragen werden.<br />

WeCaSo arbeitet mit <strong>einer</strong> MySQL Datenbank. Eine Schnittstelle zum Zugriff<br />

auf die Daten <strong>von</strong> außen ist in WeCaSo nicht vorhanden. Die Daten müssen somit<br />

direkt aus der Datenbank ausgelesen werden. Das Übertragen der Ergebnisse<br />

geschieht ebenfalls über entsprechende Datenbankaufrufe. Der Zugriff auf die Datenbank<br />

wird in Kapitel 5.1.1 beschrieben.<br />

Außerdem muss eine Multitouch-Oberfläche entwickelt werden, auf der die Benut-<br />

4


1.3 Vorgehensweise<br />

zer die <strong>Card</strong>-<strong>Sorting</strong> Experimente durchführen. Darauf aufbauend werden dann<br />

die in Kapitel 4.2 festgelegten Gesten implementiert. Die Architektur der <strong>Applikation</strong><br />

ist in Kapitel 5 erläutert und die Bedienung der <strong>Applikation</strong> in Kapitel 6<br />

beschrieben.<br />

5


2 <strong>Card</strong>-<strong>Sorting</strong><br />

2.1 Grundlagen<br />

Das <strong>Card</strong>-<strong>Sorting</strong> zählt zu den <strong>von</strong> späteren Benutzern durchgeführten Usability-<br />

Tests. In <strong>einer</strong> empirischen Untersuchung mit mindestens 15 Teilnehmern wird die<br />

Navigationsstruktur <strong>einer</strong> Webseite oder <strong>Applikation</strong> durch die jeweiligen Testteilnehmer<br />

ermittelt bzw. in <strong>einer</strong> Variante des <strong>Card</strong>-<strong>Sorting</strong>s auf Gebrauchstauglichkeit<br />

überprüft.<br />

Wie in der Einleitung beschrieben, sollte das <strong>Card</strong>-<strong>Sorting</strong> so früh wie möglich im<br />

<strong>Entwicklung</strong>sprozess durchgeführt werden, da sonst im schlimmsten Fall die Navigationsstruktur<br />

neu erstellt werden muss. Mit Erhalt des Pflichtenheftes steht für<br />

die Entwickler schnell fest, welche Navigationspunkte oder Menüeinträge die spätere<br />

<strong>Applikation</strong> oder Webseite benötigt. Zu diesem Zeitpunkt sollte <strong>Card</strong>-<strong>Sorting</strong><br />

zum Einsatz kommen.<br />

Donna Spencer und Todd Warfel [SW04] schreiben über die umfangreichen Möglichkeiten<br />

<strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>: „<strong>Card</strong> <strong>Sorting</strong> is a great, reliable, inexpensive method<br />

for finding patterns in how users would expect to find content or functionality.“<br />

Dieses Zitat spiegelt die Mächtigkeit <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong> gut wieder. Mit wenig Aufwand<br />

und geringen Kosten können Entwickler schon vor dem eigentlichen <strong>Entwicklung</strong>sprozess<br />

feststellen, was die späteren Benutzer <strong>von</strong> der Anwendung erwarten<br />

bzw. wie und wo sie erwarten die Navigationspunkte zu finden.<br />

2.2 Funktionsweise<br />

Innerhalb eines <strong>Card</strong>-<strong>Sorting</strong>s gibt es drei Aufgabenbereiche. Zum ersten der Testleiter,<br />

der in der Regel aus der Gruppe der Entwickler stammt. Der Testleiter erstellt<br />

für jeden Testteilnehmer einen Satz <strong>von</strong> Karten, auf denen er jeweils den Na-<br />

7


2. <strong>Card</strong>-<strong>Sorting</strong><br />

men des Navigationspunktes schreibt. Für das geschlossene <strong>Card</strong>-<strong>Sorting</strong> muss er<br />

zusätzlich noch Karten für die Namen der Kategorien erstellen, denen die Karten<br />

zugeordnet werden sollen. Bevor das Experiment beginnt, erklärt der Testleiter<br />

den Testteilnehmern, was ihre Aufgaben sind und welches Ziel mit dem Experiment<br />

verfolgt werden soll. Am Ende des Experiments muss der Testleiter die<br />

Ergebnisse des <strong>Card</strong>-<strong>Sorting</strong> Experiments auswerten und daraus eine geeignete<br />

Navigationsstruktur entwickeln.<br />

Als nächstes sind die Testteilnehmer zu nennen. Sie repräsentieren die Gruppe der<br />

späteren Benutzer und haben die Aufgabe, die Karten entweder selbst gewählten<br />

oder vorgegebenen Kategorien zuzuordnen 1 . Während der Testdurchführung sollen<br />

die Testteilnehmer laut denken. Dadurch kann festgestellt werden, ob es für<br />

die Testteilnehmer leicht war, die Begriffe zuzuordnen bzw. ob es Probleme bei<br />

der Zuordnung gibt. Diese Erkenntnis ist für den Testleiter sehr wichtig, da er<br />

ansonsten nur das Ergebnis sieht und nicht feststellen kann, ob es eventuell doch<br />

keine gute Navigationsstruktur ist.<br />

Die lauten Gedanken der Testteilnehmer werden während der Testdurchführung<br />

<strong>von</strong> Protokollanten notiert. Die Protokollanten haben drüber hinaus die Aufgabe,<br />

nach <strong>Durchführung</strong> des Experiments die Zuordnungen der Karten zu protokollieren.<br />

Wie bereits erwähnt, gibt es unterschiedliche Varianten, ein <strong>Card</strong>-<strong>Sorting</strong> Experiment<br />

durchzuführen. Bei der Benutzung <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong> sollte nicht nur<br />

eine Variante benutzt werden. Die Varianten bauen vielmehr aufeinander auf und<br />

helfen dem Testleiter eine immer weiter verbesserte Navigationsstruktur zu entwickeln.<br />

Im Folgenden werden die gebräuchlichsten Varianten vorgestellt, die auch<br />

<strong>von</strong> WeCaSo unterstützt werden.<br />

2.2.1 Offenes <strong>Card</strong>-<strong>Sorting</strong><br />

Eines der Varianten ist das offene <strong>Card</strong>-<strong>Sorting</strong>. Hier überlässt der Testleiter den<br />

Testteilnehmern, geeignete Namen für die Kategorien zu definieren und die Karten<br />

entsprechend zuzuordnen. Der Vorteil dabei ist, dass der Testteilnehmer hier<br />

einen breiten Spielraum hat, die Begriffe zuzuordnen. Für den Testleiter kann<br />

hier jedoch das Problem entstehen, dass er sehr viele verschiedene Kategorien be-<br />

1 Dies ist <strong>von</strong> der Variante des <strong>Card</strong>-<strong>Sorting</strong>s abhängig und wird im weiteren Verlauf des Kapitels<br />

erläutert.<br />

8


2.2 Funktionsweise<br />

kommt und daraus nicht unbedingt eine geeignete Navigationsstruktur erstellen<br />

kann. Das kann vor allem dann passieren, wenn sich die gewählten Oberbegriffe<br />

nicht adäquat zusammenfassen lassen.<br />

Das offene <strong>Card</strong>-<strong>Sorting</strong> sollte benutzt werden, um zu Anfang eine Idee zu bekommen,<br />

was die Testteilnehmer <strong>von</strong> der späteren Navigationsstruktur erwarten.<br />

Aus den Ergebnissen sollten entsprechende Kategorien extrahiert werden und anschließend<br />

mit dem geschlossenem <strong>Card</strong>-<strong>Sorting</strong> verifiziert werden.<br />

2.2.2 Geschlossenes <strong>Card</strong>-<strong>Sorting</strong><br />

Bei einem geschlossenem <strong>Card</strong>-<strong>Sorting</strong> bekommt der Testteilnehmer zusätzlich zu<br />

den Karten auch die Namen der Kategorien. Er darf während des Experiments<br />

keine neue Kategorie anlegen. Außerdem muss er versuchen, jede Karte <strong>einer</strong> Kategorie<br />

zuzuordnen. Das geschlossene <strong>Card</strong>-<strong>Sorting</strong> kann dazu benutzt werden, die<br />

aus den Ergebnissen eines offenen <strong>Card</strong>-<strong>Sorting</strong>-Experiments extrahierten Kategorien<br />

zu verifizieren. Es kann aber auch benutzt werden, um zu prüfen, ob <strong>von</strong><br />

Entwicklern ausgedachte Kategorien <strong>von</strong> den Testteilnehmern angenommen werden.<br />

Es ist jedoch vorteilhafter diese Kategorien aus einen offenen <strong>Card</strong>-<strong>Sorting</strong><br />

zu gewinnen.<br />

Durch die Ergebnisse kann der Testleiter dann überprüfen, ob die <strong>von</strong> ihm gewählten<br />

Kategorien den Testteilnehmern Schwierigkeiten bei der Zuordnung bereiten<br />

oder es den Testteilnehmern leicht fällt die Begriffe zuzuordnen. Hier ist vor allem<br />

das laut Gedachte der Testteilnehmer und die Zeit wichtig, die für das Zuordnen<br />

eines Begriffs gebraucht wird. Haben die Testteilnehmer Schwierigkeiten bestimmte<br />

Begriffe zuzuordnen, so sollte die Benennung der Kategorien erneut überdacht<br />

bzw. zusätzliche Kategorien erstellt werden.<br />

2.2.3 Mehrfache Zuordnung<br />

Testteilnehmer stehen öfter vor dem Problem, dass sie einen Begriff nicht nur <strong>einer</strong><br />

Kategorie zuordnen könnten, sondern mehreren. Um dies zu verhindern, kann<br />

das mehrfache Zuordnen eines Begriffs erlaubt werden. Dies gibt dem Testleiter<br />

ein Feedback darüber, ob die Namen für die Kategorien unter Umständen noch<br />

präziser definiert werden müssen bzw. Kategorien zusammengefasst oder anders<br />

benannt werden sollten.<br />

9


2. <strong>Card</strong>-<strong>Sorting</strong><br />

2.2.4 Hierarchisches <strong>Card</strong>-<strong>Sorting</strong><br />

Ein Problem an den bisher vorgestellte <strong>Card</strong>-<strong>Sorting</strong>-Varianten ist, dass nur sehr<br />

flache Navigationsstrukturen erstellt werden können. Es gibt nur eine Ebene <strong>von</strong><br />

Kategorien, in denen alle Navigationspunkte einsortiert werden. Gerade bei komplexen<br />

Webseiten ist dies jedoch realitätsfern. Hier kann das hierarchische <strong>Card</strong>-<br />

<strong>Sorting</strong> eingesetzt werden. Hierbei können innerhalb der Kategorien noch Unterkategorien<br />

definiert werden, denen dann wieder Begriffe zugeordnet werden.<br />

2.2.5 Reverse <strong>Card</strong>-<strong>Sorting</strong><br />

Alle vorgestellten <strong>Card</strong>-<strong>Sorting</strong> Methoden haben eine gemeinsame Schwäche. Es<br />

kann nicht ermittelt werden, ob die Namen der Navigationspunkte wirklich vorteilhaft<br />

gewählt sind. Auch kann es sein, dass die Navigationsstruktur, die aus<br />

einem offenen oder geschlossenen <strong>Card</strong>-<strong>Sorting</strong> ermittelt wird, in der späteren Navigationsstruktur<br />

den Nutzervorstellungen nicht entsprechen.<br />

Damit eine fertige Navigationsstruktur überprüft werden kann, kommt das Reverse-<br />

<strong>Card</strong>-<strong>Sorting</strong> zum Einsatz. Es wird eingesetzt, wenn schon eine fertige Navigationsstruktur<br />

besteht, z.B. als Ergebnis <strong>einer</strong> der vorgestellten <strong>Card</strong>-<strong>Sorting</strong> Varianten.<br />

Die Testteilnehmer bekommen Aufgabenkarten, auf denen ein Navigationspunkt<br />

steht, den sie in der Navigationsstruktur suchen sollen. Der Testleiter zeigt den<br />

Testteilnehmern dann die Kategorien der ersten Navigationsebene. Der Testteilnehmer<br />

muss auswählen in welcher Kategorie er den Begriff, der auf der Aufgabenkarte<br />

steht, vermutet. Ist der Begriff innerhalb der gewählten Kategorie, so ist<br />

er fertig. Gibt es in dieser Kategorie noch weitere Unterkategorien, so muss der<br />

Testteilnehmer erneut eine Kategorie auswählen, in der er den gesuchten Begriff<br />

vermutet. Dies wird solange fortgeführt bis der Begriff gefunden ist oder es keine<br />

weiteren Unterkategorien in der Navigationsstruktur gibt. In diesem Fall kann der<br />

Testteilnehmer die Aufgabe überspringen oder aus der Navigationsstruktur einen<br />

anderen Weg wählen.<br />

Während des Tests notiert der Protokollant, welchen Pfad durch die Navigationsstruktur<br />

der Testteilnehmer gewählt hat, inklusive der falschen Pfade. Der<br />

Testleiter kann daraus folgern, ob seine gewählte Navigationsstruktur geeignet ist<br />

oder noch angepasst werden muss.<br />

10


2.3 Bisherige Implementierungen<br />

2.2.6 Zusammenfassung<br />

Eine <strong>Card</strong>-<strong>Sorting</strong>-Variante sollte möglichst nicht autonom durchgeführt werden.<br />

Damit eine gute Navigationsstruktur erzielt wird, ist es empfehlenswert alle vorgestellten<br />

Varianten durchzuführen. Um das Ergebnis nicht zu verfälschen, sollte<br />

auch immer etwas Zeit zwischen den Tests liegen.<br />

Auch wenn alle <strong>Card</strong>-<strong>Sorting</strong>-Varianten durchgeführt wurden, erhält man höchstens<br />

eine gute Navigationsstruktur. Eine optimale Navigationsstruktur wird es<br />

wohl niemals geben und kann auch mit einem <strong>Card</strong>-<strong>Sorting</strong> nicht ermittelt werden.<br />

Dafür sind die Menschen zu unterschiedlich in ihren Erwartungen.<br />

2.3 Bisherige Implementierungen<br />

Die Vorbereitungen für ein <strong>Card</strong>-<strong>Sorting</strong> Experiment sind beim klassischen <strong>Card</strong>-<br />

<strong>Sorting</strong> relativ aufwendig. Es müssen für jeden Testteilnehmer Karten mit Begriffen<br />

erstellt werden. Auch müssen Testleiter und Testteilnehmer am gleichen<br />

Ort sein. Das mag für Anwendungen, die in einem bestimmten Firmenumfeld<br />

zum Einsatz kommen, noch praktikabel sein. Allerdings ist dies bei Anwendungen<br />

oder Webseiten für ein breites Benutzerspektrum schwieriger. Deswegen macht es<br />

Sinn, dass Testleiter und Testteilnehmer nicht am gleichen Ort sein müssen. Hierfür<br />

gibt es bereits diverse Webanwendungen für <strong>Card</strong>-<strong>Sorting</strong>.<br />

Ein bekannter Vertreter ist das kostenpflichtige WebsortSort 2 . Hier können Experimente<br />

definiert, durchgeführt und ausgewertet werden.<br />

Eine Alternative dazu ist, die in der Arbeitsgruppe Mensch-Computer-Interaktion<br />

<strong>von</strong> Andreas Vdovkin [Vdo08] entwickelte Webapplikation WeCaSo 3 . Mit WeCa-<br />

So können ebenfalls <strong>Card</strong>-<strong>Sorting</strong>-Experimente erstellt und durchgeführt werden.<br />

Eine direkte Auswertung ist mit WeCaSo nicht möglich, die Ergebnisse können<br />

aber als XML oder CSV Datei exportiert werden.<br />

In Kapitel 3.1 wird WeCaSo näher beschrieben, da die dort erstellten Experimente<br />

als Grundlage für die hier entwickelte <strong>Card</strong>-<strong>Sorting</strong> Anwendung dienen.<br />

Diese Ergebnisse können mit dem ebenfalls in der Arbeitsgruppe <strong>von</strong> Sebastian<br />

Emmrich [Emm08] entwickelten casolysis importiert und ausgewertet werden.<br />

2 WebSort: http://uxpunk.com/websort/index.php, aufgerufen am 08.01.2013.<br />

3 http://cardsort.cs.upb.de/, aufgerufen am 08.01.2013<br />

11


3 Technische Grundlagen<br />

3.1 WeCaSo<br />

Die <strong>Card</strong>-<strong>Sorting</strong> Experimente, die mit der hier entwickelten Multitouch Anwendung<br />

durchgeführt werden sollen, werden in dem <strong>von</strong> Andreas Vdovkin [Vdo08]<br />

im Rahmen s<strong>einer</strong> Bachelorarbeit entwickelten webbasierten <strong>Card</strong>-<strong>Sorting</strong> Anwendung<br />

WeCaSo erstellt.<br />

Damit in WeCaSo ein <strong>Card</strong>-<strong>Sorting</strong> Experiment angelegt werden kann, ist es<br />

erforderlich, dass sich der Benutzer (Testleiter) auf der WeCaSo Homepage 1 registriert.<br />

Nach der anschließenden Anmeldung bekommt der Benutzer eine Übersicht<br />

über seine existierenden Projekte. Außerdem kann er neue Projekte anlegen.<br />

Verwirrend dürfte hier die Bezeichnung Projekt sein, weil zuvor <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong><br />

Experimenten gesprochen wird. Ein Projekt in WeCaSo ist eine Art Container,<br />

in dem neben dem Experiment noch ein Begrüßungstext, eine Anleitung für das<br />

Experiment, ein Fragebogen und eine Danksagung definiert werden.<br />

3.1.1 Projekt erstellen<br />

Beim Erstellen eines neuen Projekts muss der Benutzer folgende Angaben machen:<br />

Name des Projekts, der beliebig vergeben kann. Er kann außerdem im Nachhinein<br />

verändert werden.<br />

Art des Experiments:<br />

• offenes <strong>Card</strong>-<strong>Sorting</strong><br />

• geschlossenes <strong>Card</strong>-<strong>Sorting</strong><br />

• Reverse-<strong>Card</strong>-<strong>Sorting</strong><br />

1 http://cardsort.cs.upb.de, aufgerufen am 08.01.2013.<br />

13


3. Technische Grundlagen<br />

Multiple-Insert erlauben legt fest, dass Begriffe in mehrere Kategorien eingeordnet<br />

werden dürfen.<br />

Hierarchisches Sortieren legt fest, dass Karten in beliebig tiefe Ebenen eingeordnet<br />

werden dürfen.<br />

Sprache des Projekts ist wichtig, wenn ein Projekt in mehreren Sprachen erstellt<br />

werden soll, damit dem Benutzer die gewünschte Sprache angezeigt wird.<br />

Wunschadresse des Projekts ist Bestandteil der URL, die aufgerufen wird, um<br />

das Projekt im Browser zu öffnen. Dieser Name darf nach dem Erstellen des<br />

Projekts nicht mehr verändert werden. Außerdem ist der Name innerhalb<br />

der Datenbank eindeutig.<br />

Enddatum des Projekts legt fest, bis zu welchem Datum dieses Projekt <strong>von</strong> Testteilnehmern<br />

durchgeführt werden darf.<br />

Hat der Benutzer das Projekt angelegt, kann er dieses über die Projektübersicht<br />

öffnen und die Projektdetails definieren. Diese Details sind in folgende Kategorien<br />

unterteilt.<br />

Willkommens-Nachricht wird der Testperson zu Beginn des Projekts angezeigt.<br />

Die Willkommensnachricht enthält allgemeine Informationen über das Projekt<br />

und soll die Testteilnehmer <strong>zur</strong> <strong>Durchführung</strong> motivieren.<br />

Fragebogen der <strong>von</strong> der Testperson ausgefüllt werden soll. Es können freie Fragen<br />

formuliert werden, die der Benutzer über ein Textfeld beantwortet. Es<br />

können auch Fragen mit vordefinierten Antworten erstellt werden. Entweder<br />

ist eine Antwort oder mehrere Antworten möglich. Die Beantwortung <strong>einer</strong><br />

Frage kann als notwendig oder optional definiert werden (vgl. Abbildung<br />

3.1(a)).<br />

Anleitung erklärt der Testperson die <strong>Durchführung</strong> des Projekts. Die Anleitung<br />

kann während der <strong>Durchführung</strong> jederzeit wieder aufgerufen werden.<br />

Begriffe und Kategorien werden beim offenen oder geschlossenen <strong>Card</strong>-<strong>Sorting</strong>-<br />

Experimenten angezeigt. Hier definiert der Testleiter die Begriffe mit <strong>einer</strong><br />

optionalen Beschreibung. Bei geschlossenen <strong>Card</strong>-<strong>Sorting</strong>-Experimenten<br />

werden zusätzlich die Namen der Kategorien angegeben (vgl. Abbildung<br />

3.1(b)).<br />

14


3.1 WeCaSo<br />

(a) Fragebogen anlegen<br />

(b) Begriffe und Kategorien definieren<br />

Abbildung 3.1: Projekt in WeCaSo anlegen<br />

15


3. Technische Grundlagen<br />

Navigationsstruktur für Reverse-<strong>Card</strong>-<strong>Sorting</strong>-Projekte. Hier legt der Benutzer<br />

die Navigationsstruktur fest und welche Begriffe in dieser Struktur gefunden<br />

werden sollen.<br />

Danksagung wird nach dem Beenden des Projekts angezeigt.<br />

Bei einem geschlossenem Experiment hat der Benutzer zusätzlich die Möglichkeit,<br />

das Experiment in mehreren Sprachen <strong>zur</strong> Verfügung zu stellen. Hierbei wird<br />

neben dem vorhandenen Projekt ein neues Projekt angelegt. Der Benutzer muss<br />

hierbei die Willkommensnachricht, Anleitung und Danksagung in die entsprechende<br />

Sprache übersetzen. Bei den Punkten Fragebogen und Begriffe und Kategorien<br />

werden die in der Ursprungssprache definierten Felder angezeigt und es muss der<br />

jeweilige Begriff in die neue Sprache übersetzt werden.<br />

Die genaue <strong>Durchführung</strong> des Projekts wird hier nicht beschrieben, da diese<br />

durch die hier entwickelte <strong>Applikation</strong> ersetzt wird.<br />

Jedes durchgeführte Projekt wird anonym in der Datenbank gespeichert. Eine<br />

Auswertung erfolgt nicht direkt in WeCaSo. Die Ergebnisse können als CSV oder<br />

XML Datei exportiert werden. Zur Auswertung kann das <strong>von</strong> Sebastian Emmrich<br />

[Emm08] entwickelte Casolysis 2 verwendet werden.<br />

3.1.2 Aufbau der WeCaSo Datenbank<br />

Für die <strong>Durchführung</strong> eines in WeCaSo angelegten Projekts muss auf die Datenbank<br />

zugegriffen werden. Im folgenden werden die in dieser Anwendung benötigten<br />

Tabellen beschrieben. Es wird lediglich auf die Spalten <strong>einer</strong> Tabelle eingegangen,<br />

die <strong>von</strong> der hier zu entwickelnden Anwendung benötigt werden.<br />

project__base enthält pro Experiment genau eine Zeile und stellt grundlegende<br />

Werte für das Projekt bereit <strong>von</strong> denen in dieser Anwendungen die folgenden<br />

Werte benötigt werden:<br />

project_id ist die eindeutige Id des Projekts.<br />

2 Download unter http://cardsort.cs.upb.de/_files/downloads/casolysis26-10-2008.<br />

jar, aufgerufen am 08.01.2013<br />

Handbuch unter http://cardsort.cs.upb.de/_files/downloads/handbuch.pdf, aufgerufen<br />

am 08.01.2013<br />

16


3.1 WeCaSo<br />

type gibt an, ob es sich um ein offenes, geschlossenes oder ein reverse <strong>Card</strong>-<br />

<strong>Sorting</strong>-Experiment handelt.<br />

url_name ist der eindeutige Name des Projekts, der für das Laden des Projekts<br />

benötigt wird.<br />

multiple_insert ist ein boolescher Wert der angibt, ob mehrfaches Verwenden<br />

eines Begriffs erlaubt ist.<br />

hierarchy ist ein boolescher Wert der festlegt, ob hierarchisches Einfügen<br />

erlaubt ist.<br />

project__meta dient als generischer Speicher und kann pro Experiment beliebig<br />

viele Zeilen enthalten. In dieser Tabelle sind neben Log-Einträgen auch die<br />

in der Anwendung benötigten Daten für die Willkommensnachricht, die Anleitung<br />

und die Danksagung enthalten. Die Zuordnung der Daten zu einem<br />

Projekt wird über die project_id als Fremdschlüssel vollzogen.<br />

project__questions enthält die Fragen für ein Projekt. Jede Zeile dieser Tabelle<br />

repräsentiert eine Frage. Für die Anwendung werden folgende Spalten<br />

benötigt:<br />

question_id ist die eindeutige Id der Frage.<br />

project_id legt über einen Fremdschlüssel fest, zu welchem Projekt die<br />

Frage gehört.<br />

question_text ist die eigentliche Frage als String.<br />

question_type legt den Typ der Frage fest. Freie Fragen kann der Testteilnehmer<br />

durch Eingabe eines Textes beantworten. Dagegen bekommt er<br />

bei den anderen beiden Fragetypen Antworten vorgegeben. Von diesen<br />

entweder nur eine (Single Choise) oder mehrere (Multiple Choise)<br />

ausgewählt werden dürfen.<br />

is_required gibt an, ob die Beantwortung der Frage optional ist oder beantwortet<br />

werden muss.<br />

project__questions_answers enthält die Antwortmöglichkeiten für geschlossene<br />

Fragen. Jede Zeile stellt eine Antwortmöglichkeit dar. Aus dieser Tabelle<br />

werden die Spalten question_id, die den Fremdschlüssel zu der entsprechenden<br />

Frage enthält und text, in der die Antwortmöglichkeit als String<br />

hinterlegt ist.<br />

17


3. Technische Grundlagen<br />

experiment__data enthält die Begriffe und Kategorien mit denen das Experiment<br />

durchgeführt werden soll. Aus dieser Tabelle werden die nachfolgenden<br />

Spalten benötigt:<br />

data_id ist die eindeutige Id des Begriffs oder der Karte.<br />

data_type legt fest, ob es sich um eine Karte (item) oder Kategorie (pile)<br />

handelt.<br />

project_id ist der Fremdschlüssel <strong>zur</strong> Verbindung mit einem Projekt.<br />

value gibt den Namen des Begriffs oder der Kategorie an.<br />

description wird mit einem Wert belegt, wenn beim Anlegen des Projekts<br />

zu einem Begriff eine Beschreibung angegeben ist.<br />

3.2 Multitouch-Tisch<br />

Unter Touch-Systemen versteht man berührungssensitive Eingabegeräte, die in<br />

der Regel direkt auf einem Bildschirm angebracht sind. Bekannt sind solche Eingabegeräte<br />

schon länger bei sogenannten Sensorbildschirmen. Zu finden sind diese<br />

z.B. an Schaufenstern <strong>von</strong> Apotheken, Informationsterminals auf Messen oder an<br />

Sehenswürdigkeiten und Industrieanlagen. Die Sensorbildschirme haben den Vorteil,<br />

dass sie leicht zu reinigen und geringer anfällig gegenüber Vandalismus sind,<br />

als dies bei <strong>einer</strong> Tastatur oder Maus der Fall ist. Bei diesen Geräten liegt der<br />

Fokus darauf, Maus und Tastatur äquivalent zu ersetzen. Sie akzeptieren daher<br />

in der Regel nur ein Eingabegerät, also einen Finger. Bei dieser Technik liegt ein<br />

Netz aus feinen elektrischen Adern über dem Bildschirm, woraus die Position der<br />

Eingabe errechnet werden kann.<br />

Im Gegensatz dazu sind berührungssensitive Eingabegeräte, die mehrere Eingaben<br />

gleichzeitig verarbeiten können, sogenannte Multitouch-Geräte, bis zum Jahr<br />

2007 der breiten Öffentlichkeit nahezu unbekannt.<br />

3.2.1 Geschichte der Multitouch-Geräte<br />

Durch das Erscheinen des iPhones <strong>von</strong> Apple sind berührungssensitive Eingabegeräte<br />

mit Multitouch-Unterstützung über Nacht berühmt geworden. Aber auch<br />

Microsoft bringt im Jahr 2007 ein Multitouch System auf den Markt, das Microsoft<br />

Surface, später unter dem Namen Microsoft PixelSense vertrieben. Das Microsoft<br />

18


3.2 Multitouch-Tisch<br />

Surface ist ein 30 Zoll großer Multitouch-Tisch, der vor allem für kollaborative<br />

Aufgaben im Bereich Freizeit und Arbeit konzipiert ist.<br />

Multitouch-Systeme entstehen im Jahr 2007 jedoch nicht aus dem Nichts. Die<br />

<strong>Entwicklung</strong> dieser Systeme lässt sich bis in das Jahr 1982 <strong>zur</strong>ückverfolgen, wie<br />

Bill Bution, Forschungsleiter bei Microsoft Research, auf s<strong>einer</strong> Webseite [Bux07]<br />

<strong>zur</strong> Geschichte <strong>von</strong> Multitouch-Systemen beschreibt.<br />

In diesem Jahr entwickelt Nimish Mehta ein System, dass auf <strong>einer</strong> gefrorenen<br />

Glasplatte beruht. Auf dieser können Bilder gezeichnet werden und <strong>von</strong> <strong>einer</strong><br />

unter der Scheibe platzierten Kamera erfasst werden. Da die Glasplatte durch den<br />

Frost weiß ist und an den Stellen, an denen die Finger das Bild zeichnet, schwarze<br />

Flecken entstehen, kann die Kamera auf diese Farbunterschiede reagieren und der<br />

Computer das Bild auswerten.<br />

Die heute weit verbreiteten kapazitiven Displays zum Erkennen <strong>von</strong> Multitouch-<br />

Eingabegeräten gehen sogar bis in das Jahr 1965 <strong>zur</strong>ück. E.A. Johnson beschreibt<br />

in diesem Jahr ein funktionierendes Verfahren für Touch-Screens.<br />

Ebenfalls keine völlige Neuentdeckung sind Greifgesten (Pinch), wie sie in nahezu<br />

allen neuen Multitouch Systemen vorkommen. Diese lassen sich bis in das Jahr<br />

1983 <strong>zur</strong>ückdatieren.<br />

In diesem Zusammenhang ist Bill Buxton [Bux07] voll zuzustimmen, wenn er<br />

kritisiert, dass im Marketing gerne <strong>von</strong> der großen Erfindung gesprochen wird,<br />

obwohl es das nicht ist, sondern das Ergebnis <strong>von</strong> jahrzehntelanger Forschung.<br />

3.2.2 Technik<br />

Durch die jahrzehntelange Forschung kann auch nicht <strong>von</strong> dem Multitouch-System<br />

gesprochen werden. Vergleicht man den Microsoft Surface mit Apples iPhone, sieht<br />

man, dass der Benutzer mit beiden Geräten fast das gleiche machen kann, die Entwickler<br />

jedoch auf zwei völlig unterschiedliche Techniken setzen.<br />

Während bei dem Microsoft Surface die Erkennung <strong>von</strong> Gesten durch eine, im unteren<br />

Bereich des Tisches installierte, Kamera erfolgt, kommen bei Smartphones<br />

und Tablets größtenteils kapazitive Displays zum Einsatz.<br />

Einen guten Überblick über die unterschiedlichen Techniken bietet die Studie<br />

Multi-Touch - Technologie, Hard-/Software und deren Anwendungsszenarien <strong>von</strong><br />

Dieter Spath u.a. [SHL + 12]. Aus dieser Studie werden die gängigsten Techniken<br />

im folgenden vorgestellt.<br />

19


3. Technische Grundlagen<br />

Diffused Illumination<br />

Beim Diffused Illumination wird das Bild mit einem Beamer auf eine matte Acrylplatte<br />

projiziert. Eine Kamera, die mit einem Filter ausgestattet ist, der sichtbares<br />

Licht filtert und nur infrarotes List durchlässt, observiert die Acrylplatte aus Sicht<br />

des Beamers. Außerdem wird der Tisch mit Infrarotstrahler ausgestattet, die die<br />

Platte möglichst gleichmäßig bestrahlen.<br />

Je mehr sich ein Finger der Acrylplatte nähert, desto mehr infrarotes Licht wird<br />

<strong>von</strong> dem Finger reflektiert und <strong>von</strong> der Kamera als weißer Punkt erfasst. Da in Sonnenstrahlen<br />

viel infrarotes Licht enthalten ist, kann diese Technik nicht im Freien<br />

oder in <strong>von</strong> Sonnenstrahlen beleuchteten Räumen eingesetzt werden. Optimal ist<br />

bei dieser Technik ein abgedunkelter oder mit künstlichem Licht ausgestrahlter<br />

Raum.<br />

Die Vorteile dieses Systems sind, dass der Bildschirm für eine Geste nicht berührt<br />

werden muss, sondern auch schon eine Annäherung erkannt wird. Außerdem gibt<br />

es bei diesem System keine Einschränkung bei der gleichzeitigen Berührung mit<br />

mehreren Finger. Nachteilig ist jedoch die große Bauweise dieses Systems, dafür<br />

ist es aber für große und überdimensionale Anzeigen geeignet.<br />

Des Weiteren kann das System die Umrisse <strong>von</strong> Objekten erkennen, die sich auf<br />

der Platte befinden.<br />

Frustrated Total Internal Reflection<br />

Abbildung 3.2: Unterbrechung der Totalreflexion<br />

Quelle: Spath u.a.[SHL + 12]<br />

Der Aufbau des Frustrated Total Internal Reflection (FTIR) Systems ist dem<br />

des Diffused Illumination (DI) sehr ähnlich. Im Gegensatz zum DI erfolgt die Infrarotbestrahlung<br />

nicht aus der Projektionssicht. Die Lichtquellen werden bei diesem<br />

20


3.2 Multitouch-Tisch<br />

System am Rand platziert und beleuchten dabei eine klare Acrylglasplatte. Das<br />

System basiert auf dem Effekt der Totalreflektion, der dafür sorgt, dass die Platte<br />

durch die Lichtquellen gleichmäßig bestrahlt wird. Durch den Einsatz der klaren<br />

Acrylglasplatte muss darüber oder darunter eine zusätzliche Projektionsfläche angebracht<br />

werden, da sonst das Bild vom Beamer nicht auf der Platte dargestellt<br />

werden kann.<br />

Berührt ein Finger die Scheibe, so wird die Totalreflektion unterbrochen und das<br />

Licht trifft auf den Finger. Dieser reflektiert das Licht senkrecht durch die Scheibe<br />

<strong>zur</strong> Kamera (vgl. Abbildung 3.2).<br />

Bei diesem System können ebenfalls beliebig viele Berührungspunkte erkannt werden.<br />

Es hat jedoch auch den gleichen Nachteil im Hinblick auf externe Infraroteinstrahlung.<br />

Im Gegensatz zum DI muss ein tatsächlicher Kontakt <strong>zur</strong> Platte<br />

bestehen. Es reicht keine Annäherung, wie beim DI. Objekte, die auf der Platte<br />

platziert werden, können nur teilweise erkannt werden. Die Objekte müssen<br />

bestimmte Materialeigenschaften und ein Mindestgewicht vorweisen. Das System<br />

ist, wie das DI, für große und überdimensionale Displays geeignet, benötigt jedoch<br />

ebenfalls einen großen Unterbau<br />

Projektiv-Kapazitive Verfahren<br />

Abbildung 3.3: Darstellung eines projektiv-kapazitiven Multitouch-Screens<br />

Quelle: Spath u.a.[SHL + 12]<br />

Das wohl bekannteste Multitouch System ist das Projektiv-Kapazitive Verfahren.<br />

Dieses Verfahren kommt bei Geräten zum Einsatz, die sehr kompakt konzi-<br />

21


3. Technische Grundlagen<br />

piert sein müssen, wie Smartphones oder Tablets.<br />

Bei diesem System werden über das Display verschiedene transparente Schichten<br />

mit Sende- und Empfangsantennen gelegt (vgl. Abbildung 3.3). Das Erkennen<br />

<strong>einer</strong> Berührung wird durch Messen der Spannungen in den Empfangsantennen<br />

berechnet. Dadurch das ein Finger die Oberfläche berührt, lässt die kapazitive<br />

Kopplung in den umgebenden Bereichen des Bildschirms nach. Durch diesen Spannungsabfall<br />

werden die Berührungspunkte relativ exakt ermittelt.<br />

Die Anzahl der Finger, die das System gleichzeitig berühren, ist wie in den beiden<br />

vorherigen Systemen, beliebig. Der Nachteil dieses Systems ist, dass es keine Umrisse<br />

<strong>von</strong> Objekten erkennen kann, die auf dem Display abgelegt sind. Das System<br />

kann sehr flach konzipiert werden, eignet sich allerdings nur für kleine Displays.<br />

Infrarot-Lichtvorhang<br />

Bei dem System des Infrarot-Lichtvorhangs werden an zwei sich nicht gegenüberliegenden<br />

Kanten infrarote Lichtquellen montiert, die dadurch auf <strong>einer</strong> Glasplatte<br />

ein Gitter bilden. An den jeweils gegenüberliegenden Seiten werden Infrarot-<br />

Empfangseinheiten angebracht. Bei diesem System ist keine Kamera oder Projektor<br />

nötig. Unter der Glasscheibe wird lediglich ein Display verbaut. Der Glasscheibe<br />

kommt in diesem System keine funktionale Bedeutung zu. Sie dient lediglich<br />

dem Schutz des Displays.<br />

Wird die Glasplatte berührt, so wird die Lichtverbindung zwischen den dazwischenliegenden<br />

Sende- und Empfangseinheiten in x- und y-Richtung unterbrochen.<br />

Daraus kann die Position der Berührung errechnet werden. Berühren mehrere Finger<br />

gleichzeitig die Glasplatte, so kommt es zu Verdeckungseffekten. Das heißt, es<br />

werden Berührungen erkannt, die gar keine sind. Beispielsweise wenn Finger 1 den<br />

Punkt (a,b) berührt und Finger 2 den Punkt (c,d), so wird auch Punkt (c,b) als<br />

Eingabe erkannt.<br />

Laser Light Plane<br />

Die Laser Light Plane ist, abgesehen da<strong>von</strong>, wie die Finger <strong>von</strong> den Infrarotstrahlen<br />

beleuchtet werden, <strong>von</strong> der Funktionsweise und dem Aufbau mit dem FTIR<br />

und DI identisch. Bei dieser Technologie werden jedoch ein oder mehrere Lasermodule<br />

verwendet, die auf dem Display eine Oberfläche aus Infrarotlicht aufspannen.<br />

Wird diese Fläche <strong>von</strong> etwas durchbrochen, so erkennt dies die Infrarotkamera.<br />

22


3.2 Multitouch-Tisch<br />

Die Vor- und Nachteile dieses Systems sind ebenfalls mit denen der FTIR und DI<br />

in allen wichtigen Punkten identisch.<br />

Infra Red Light Plane<br />

Das Infra Red Light Plane System ist technisch und in der Funktionsweise ähnlich<br />

dem IR Light Plane. Die Unterbrechung der Lichtquellen wird <strong>von</strong> den eingebauten<br />

Sensoren erkannt und durch Algorithmen in Bewegungsdaten umgerechnet.<br />

Das System kann lediglich zwei Punkte gleichzeitig erkennen. Dafür kann die<br />

Eingabe berührungsfrei erfolgen und es werden auch Umrisse, wie z.B. eine Hand<br />

erkannt. Das System ist für kleine und große Displays geeignet und ermöglicht<br />

eine flache Bauweise.<br />

3.2.3 Mr. T<br />

Abbildung 3.4: Multitouch-Tisch MisterT<br />

Der in der Arbeitsgruppe Mensch-Computer-Interaktion vorhandene Multitouch-<br />

Tisch ist im Rahmen <strong>einer</strong> Masterarbeit geplant und gebaut worden. Sein Name<br />

ist Mr. T (vgl. Abbildung 3.4).<br />

Die Oberfläche des Tisches besteht aus <strong>einer</strong> 8mm dicken Glasscheibe mit Projektionsfolie.<br />

Die Projektionsfolie ist <strong>von</strong> oben auf der Glasplatte angebracht, damit<br />

23


3. Technische Grundlagen<br />

neben Multitouch-Eingaben auch Objekte, die auf dem Tisch liegen, als solche<br />

durch die Kamera erkannt werden können.<br />

Im Inneren des Tisches befindet sich ein Full-HD Projektor, der das Bild <strong>von</strong> unten<br />

auf die Glasscheibe projiziert.<br />

In jeder Ecke des Tisches sind Laser angebracht, die auf der Oberfläche einen Laserteppich<br />

bilden. Wird die Glasoberfläche berührt, so werden die Laserstrahlen<br />

gebrochen und nach unten geleitet. Durch zwei PS3 Kameras werden diese umgeleiteten<br />

Laserstrahlen erfasst und die Position auf der Glasplatte berechnet.<br />

Durch die hohe Bilddatenverarbeitung ist der Multitouch-Tisch an eine leistungsstarken<br />

Desktop-PC mit Intel i7 Prozessor und <strong>einer</strong> ATI Radeon HD 5970 angeschlossen.<br />

3.3 <strong>Entwicklung</strong>sumgebung<br />

Diese <strong>Applikation</strong> wird mit der <strong>Entwicklung</strong>sumgebung Microsoft Visual Studio<br />

2010 als Microsoft .NET 4.0 Anwendung erstellt. Für die Erstellung der Oberfläche<br />

kommt das Microsoft Framework Windows Presentation Foundation (WPF)<br />

zum Einsatz.<br />

WPF zeichnet sich vor allem dadurch aus, dass Präsentation und Geschäftslogik<br />

getrennt sind. Das wird vor allem dadurch deutlich, dass beim Erstellen der Oberfläche<br />

die Auszeichnungssprache XAML (Extensible Application Markup Language)<br />

zum Einsatz kommt. XAML beschreibt den Aufbau der Oberfläche bzw. noch<br />

wichtiger die Hierarchie innerhalb der Oberfläche in einem XML-basiertem Stil.<br />

Eine weitere Stärke <strong>von</strong> WPF ist ein auflösungsunabhängiges und vektorbasiertes<br />

Renderingmodul. Dieses Renderingmodul nutzt <strong>zur</strong> Berechnung nicht, wie früher<br />

üblich, die CPU, sondern den Prozessor der Grafikkarte (GPU) [Mica].<br />

Zur <strong>Entwicklung</strong> <strong>von</strong> Multitouch Anwendungen wird ferner das Microsoft Surface<br />

2.0 SDK benötigt. Dies ist eine Erweiterung <strong>von</strong> WPF und Microsoft XNA. Das<br />

SDK stellt die Unterstützung <strong>zur</strong> Erkennung <strong>von</strong> Fingereingaben <strong>zur</strong> Verfügung.<br />

Außerdem stellt es spezielle Oberflächenelemente <strong>zur</strong> Verfügung, die direkt Fingereingaben<br />

erkennen und spezielle Operationen, wie das Drehen oder Vergrößern<br />

des Elements unterstützen.<br />

Für die <strong>Entwicklung</strong> der Geschäftslogik kommt die <strong>von</strong> Microsoft entwickelte Programmiersprache<br />

C# zum Einsatz.<br />

24


4 Multitouch-Gesten<br />

4.1 Einführung<br />

Trotz der unterschiedlichen Systeme <strong>zur</strong> Erkennung <strong>von</strong> Gesten, können die gleichen<br />

Gesten auf nahezu allen Multitouch Systemen durchgeführt werden. Ausnahmen<br />

sind hier die Systeme, die nur eine begrenzte Anzahl <strong>von</strong> gleichzeitigen<br />

Eingaben verarbeiten können.<br />

Die <strong>Entwicklung</strong> <strong>von</strong> Interaktionsgesten ist in den vergangenen Jahren immer<br />

mehr in den Fokus der Forschung gerückt. Mike Wu u.a. [WSR + 06] kritisieren an<br />

den bisherigen Arbeiten allerdings:<br />

While many interesting gestural interaction techniques have been proposed,<br />

their design has been mostly ad-hoc and has not been presented<br />

within a contructive design framework<br />

Der Fokus liegt somit zu Anfang darauf, was funktioniert und nicht wie es funktioniert,<br />

was auch durchaus adäquat ist. Sollen allerdings Interaktionsgesten für<br />

die breite Öffentlichkeit bereitgestellt werden, sollten grundlegende Funktionen<br />

durch einheitliche Gesten durchgeführt werden können. Bei der <strong>Entwicklung</strong> eines<br />

neuen Dateiexplorers für ein Desktop-Computer, würde kein Entwickler auf die<br />

Idee kommen, den Doppelklick für etwas anderes zu benutzen, als das Öffnen eines<br />

Ordners oder <strong>einer</strong> Datei.<br />

Das Ziel <strong>von</strong> Wu u.a. [WSR + 06] ist ein Designkonzept für neue Multitouch Gesten<br />

zu erstellen, die durch den Benutzer leicht zu verstehen und auszuführen sind. Sie<br />

haben dafür die folgenden drei Design-Prinzipien entwickelt:<br />

Gesture Registration wird durch eine ausgeprägte Haltung am Anfang festgelegt.<br />

Diese legt den Rahmen für den dynamischen und abschließenden Teil fest.<br />

25


4. Multitouch-Gesten<br />

Gesture Relaxation sorgt für den dynamischen Teil. Das heißt, das Ausführen<br />

der Geste soll den Benutzer nicht anstrengen, wie es für kurze Zeit während<br />

der Registrierungsphase der Fall ist.<br />

Gesture and Tool reuse bezieht sich auf den Einsatz der gleichen Geste, einschließlich<br />

der Haltung der Hand und der Finger, die die Oberfläche berühren,<br />

um verschiedenen Aufgaben zu erfüllen.<br />

Nach diesen Design-Prinzipien entwickeln Wu u.a. [WSR + 06] mehrere grundlegende<br />

Gesten und haben diese durch Benutzertests verifizieren lassen. Eine dieser<br />

Gesten ist die Cut/Copy and Paste Geste. Ziel dieser Geste ist es, einen Bereich<br />

der Oberfläche auszuwählen und zu kopieren oder auszuschneiden und an anderer<br />

Stelle wieder einzufügen. Dies soll mit <strong>einer</strong> ununterbrochenen Geste geschehen.<br />

In der Gesture Registration Phase wird mit der Hand der zu kopierende oder auszuschneidende<br />

Bereich ausgewählt. Während der Gesture Relaxation Phase wird<br />

der Bereich f<strong>einer</strong> gewählt. Anschließend wird der gewählte Bereich verschoben.<br />

In der anderen Hand hat der Benutzer einen Stylus Stift. Befindet sich der Stift<br />

auf dem Element, auf dem die Aktion gestartet wird, so wird der selektierte Bereich<br />

kopiert. Ist der Stylus Stift auf einem anderen Bereich des Tisches wird der<br />

verschobene Bereich ausgeschnitten.<br />

Hier ist ein weiterer Vorteil <strong>von</strong> Multitouch-Gesten zu erkennen. Mit einem Desktop-<br />

Computer ist der zu kopierende Bereich auszuwählen. Daran anschließend muss<br />

über das Menü gewählt werden, ob dieser kopiert oder ausgeschnitten werden soll.<br />

Im Anschluss daran muss über das Menü die Aktion Einfügen gewählt werden. Da<br />

das Programm nicht weiß, an welcher Stelle der Ausschnitt wieder eingefügt werden<br />

soll, wird dieser an <strong>einer</strong> beliebigen Stelle eingefügt. Der Benutzer muss das<br />

kopierte oder ausgeschnittene Bild danach an die gewünschte Stelle bewegen. Diese<br />

Einzelschritte werden bei Wu u.a. [WSR + 06] in <strong>einer</strong> Geste vereint. Auch werden<br />

zwei Aktionen mit dieser Geste bewältigt, abhängig <strong>von</strong> der Position des Stiftes.<br />

Beim Kopieren hält der Benutzer das ursprüngliche Element fest. Es wird also<br />

nur kopiert. Beim Ausschneiden wird das Element nicht festgehalten und deshalb<br />

ausgeschnitten. In dieser Arbeit wird zwar zwischen Finger und Stift unterschieden,<br />

es ist aber keine Schwierigkeit diese Geste auch mit zwei Fingern umzusetzen.<br />

Somit steht ein erstes Designkonzept <strong>zur</strong> Verfügung. Es ist jedoch kritisch zu<br />

betrachten, dass Wu u.a. [WSR + 06] die Gesten als Experten selber entwickeln.<br />

26


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

Die Benutzer werden nicht in die <strong>Entwicklung</strong> miteinbezogen, ihnen werden die<br />

Gesten nur erklärt und sie müssen sie ausführen.<br />

Wie in der Einleitung dieser Arbeit ausgeführt, ist es erforderlich spätere Benutzer<br />

an der <strong>Entwicklung</strong> teilhaben zu lassen (vgl. Kapitel 1.1). Dieses Problem<br />

erkennen auch Jacob O. Wobbrock u.a. [WMW09]. Sie lassen in <strong>einer</strong> Studie Testteilnehmer,<br />

die bisher keine Erfahrung mit Multitouch-Geräten haben, Gesten für<br />

27 grundlegende Aktionen durchführen. Dazu gehören u.a. das Verschieben <strong>von</strong><br />

Elementen, Löschen, Zoomen, Vervielfältigen usw. Jede dieser Aufgaben sollten<br />

die Benutzer mit <strong>einer</strong> und mit zwei Händen ausführen.<br />

Insgesamt werden im Rahmen dieses Experiments 1080 Gesten protokolliert und<br />

zusammen mit dem laut Gedachten der Testteilnehmer analysiert. Die jeweils am<br />

meisten benutzte Geste wird in die Sammlung <strong>von</strong> Gesten übernommen. Diese<br />

Sammlung ist konfliktfrei und beinhaltet immerhin 57% aller benutzten Gesten.<br />

Zusammengefasst kommen Wobbrock u.a. [WMW09] zu folgendem Ergebnis:<br />

Our findings indicate that users rarely care about the number of fingers<br />

they employ, that one hand is preferred to two, that desktop idioms<br />

strongly influence users’ mental models, and that some commands elicit<br />

little gestural agreement, suggesting the need for on-screen widgets.<br />

Somit folgt für die <strong>Entwicklung</strong> <strong>von</strong> Gesten, dass diese möglichst so erstellt werden<br />

sollten, dass sie mit <strong>einer</strong> Hand auszuführen sind. Dagegen kümmern sich die<br />

Benutzer selten um die Anzahl der eingesetzten Finger. Das bedeutet, dass völlig<br />

unterschiedliche Funktionen nicht mit <strong>einer</strong> Geste ausgeführt werden sollten, die<br />

sich nur über die Anzahl der eingesetzten Finger unterscheidet.<br />

Einen weiteres Problem ist, dass die Testpersonen den Multitouch-Tisch stark<br />

mit einem Computer in Verbindung bringen, der durch die Maus nur ein Zeiger<br />

hat und der Benutzer auch nicht direkt mit der Oberfläche in Kontakt kommt.<br />

Es ist somit für die Benutzer zu Anfang schwierig, die Bedienmöglichkeiten eines<br />

Multitouch-Systems voll auszuschöpfen.<br />

4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

Es gib bereits diverse desktopbasierte <strong>Applikation</strong>en, mit denen <strong>Card</strong>-<strong>Sorting</strong><br />

Experimente durchgeführt werden können (vgl. Kapitel 2.3). Einen Ansatz <strong>zur</strong><br />

<strong>Durchführung</strong> <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong> Experimenten auf einem Multitouch-Tisch gibt<br />

27


4. Multitouch-Gesten<br />

es bislang noch nicht. Man könnte jetzt natürlich die Frage stellen, ob es effektiv<br />

ist, solch eine Multitouch Anwendung umzusetzen.<br />

Genau mit dieser Frage beschäftigen sich Chris North u.a. [NDL + 09]. In ihrer<br />

Arbeit haben Testpersonen die Aufgabe, Objekte auf einem physischen Tisch (vgl.<br />

Abbildung 4.1(a)), einem Multitouch Tisch (vgl. Abbildung 4.1(b)) und an einem<br />

Desktop-PC mit der Maus (vgl. Abbildung 4.1(c)) zu sortieren. Das Szenario des<br />

Sortierens ist auch Hauptbestandteil in <strong>Card</strong>-<strong>Sorting</strong>-Experimenten.<br />

(a) Physische Variante<br />

(b) Desktop-Variante<br />

(c) Multitouch-Tisch-Variante<br />

Abbildung 4.1: Aufbau des Benutzertests <strong>von</strong> North u.a.<br />

Quelle: North u.a.[NDL + 09]<br />

Vor dem Experiment sind <strong>von</strong> North u.a. [NDL + 09] Gesten für den Multitouch-<br />

Tisch definiert worden, <strong>von</strong> denen man annimmt, dass die Testpersonen diese aus<br />

der physischen Welt übernehmen werden. Diese vergleichen sie mit den tatsächlich<br />

<strong>von</strong> den Testpersonen gewählten Gesten. Des Weiteren wird untersucht, wie<br />

schnell die Testpersonen die Aufgaben erledigen. Außerdem wird untersucht, wie<br />

sehr sich die Testpersonen <strong>von</strong> der physischen oder computergestützten <strong>Durchführung</strong><br />

beeinflussen lassen.<br />

Die Aufgabe ist, viele verschieden farbige Elemente nach ihrer Farbe zu sortieren.<br />

28


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

Es soll dabei auch untersucht werden, wie die Testpersonen diese Elemente gruppieren<br />

und verschieben.<br />

An der Untersuchung nehmen 32 Personen teil, die hauptsächlich Forscher und<br />

Softwareentwickler sind, jedoch keine Erfahrung mit Multitouch-Systemen haben.<br />

Jeder Benutzer führt nur zwei der drei Aufgaben durch, wobei der Multitouch-<br />

Tisch in jeder Aufgabe vorkommt. Die Testteilnehmer werden in die folgenden<br />

vier Gruppen aufgeteilt:<br />

1. Gruppe fängt mit dem Sortieren am physischem Tisch an und wechselt anschließend<br />

an den Multitouch-Tisch.<br />

2. Gruppe hat die gleiche Aufgabe wie die erste Gruppe, allerdings in umgekehrter<br />

Reihenfolge.<br />

3. Gruppe sortiert die Elemente erst am Desktop Computer und anschließend am<br />

Multitouch-Tisch.<br />

4. Gruppe hat die gleiche Aufgabe wie die dritte Gruppe, allerdings in umgekehrter<br />

Reihenfolge.<br />

Aus den Ergebnissen der Sortierungsaufgaben lassen sich einige interessante<br />

Aspekte für die <strong>Entwicklung</strong> <strong>einer</strong> <strong>Card</strong>-<strong>Sorting</strong>-<strong>Applikation</strong> für den Multitouch-<br />

Tisch extrahieren. Wie die vorherigen Studien schon feststellen, nehmen die Testpersonen<br />

einen Multitouch-Tisch oft als Computer wahr. Bei diesem Experiment<br />

versuchen immerhin 56% den Finger als Maus zu benutzen. Für Multiselektion<br />

wird jedoch auch versucht einen weiteren Finger zu benutzen. Noch interessanter<br />

ist die Tatsache, dass 50% der Testteilnehmer, die mit der Aufgabe am Desktop-<br />

Computer beginnen, konsequent damit weiter machen, den Finger als Maus zu<br />

benutzen. Im Gegensatz dazu benutzen nur bei 25% der Teilnehmer den Finger<br />

als Maus, die mit dem Sortieren am physischen Tisch starten.<br />

Wird bei diesen Zahlen bedacht, dass es sich bei den Testpersonen um Leute handelt,<br />

die tagtäglich am Computer sitzen, sind 25% schon relativ niedrig. Beim<br />

<strong>Card</strong>-<strong>Sorting</strong> kann unterstellt werden, dass es häufig nicht solche Experten sind.<br />

Haben diese Personen das <strong>Card</strong>-<strong>Sorting</strong> bisher nur an einem normalen Tisch ausgeführt,<br />

bestehen gute Chancen, dass sie sich auf <strong>einer</strong> Multitouch-Anwendung<br />

für <strong>Card</strong>-<strong>Sorting</strong> gut <strong>zur</strong>echtfinden werden.<br />

Die Testteilnehmer die das physische und Multitouch-Tisch Experiment durchführen,<br />

erkennen auch schnell die Grenzen eines Multitouch-Tisches. Aktionen, wie<br />

29


4. Multitouch-Gesten<br />

Objekte außerhalb des Arbeitsbereichs zu platzieren, Objekte aufnehmen oder auf<br />

dem Tisch zu verschieben, ohne ein anderes Objekt zu berühren, werden auf dem<br />

physischen Tisch sehr oft gemacht, während das auf dem Multitouch-Tisch kaum<br />

festzustellen ist.<br />

Allerdings muss auch ein anderer Umstand beleuchtet werden. Sinnvolle Gesten,<br />

die aus der physischen Welt übernommen werden könnten, werden teilweise nicht<br />

übernommen. So haben z.B. auf dem physischen Tisch 38% der Teilnehmer beim<br />

Verschieben eines Objekts über eine längere Distanz die Hand gewechselt, auf dem<br />

Multitouch-Tisch kein einziger.<br />

Im Ergebnis lässt sich feststellen, dass Benutzer in einem Multitouch-Tisch eine<br />

Mischung aus physischem Tisch und Desktop-Computer sehen. Sie nutzen jedoch<br />

nicht immer die Vorteile der beiden Systeme, sondern machen es sich teilweise<br />

schwerer als es nötig wäre.<br />

Wichtig ist auch das Ergebnis der letzten Aufgabe. In dieser wird die Zeit gemessen,<br />

die für die Sortierungen benötigt wird. Hier stellen North u.a. [NDL + 09]<br />

fest, dass das Sortieren mit der Maus immer langsamer ist, als auf einem physischen<br />

Tisch oder Multitouch-Tisch. Das Sortieren auf dem physischen Tisch geht<br />

in allen Kombinationen schneller. Die Teilnehmer, die erst an dem physischen<br />

Tisch sitzen und anschließend an den Multitouch-Tisch wechseln, sind auf dem<br />

Multitouch-Tisch signifikant schneller als bei allen anderen Kombinationen. Auch<br />

dies ist ein weiteres Argument für eine Multitouch Anwendung für die <strong>Durchführung</strong><br />

<strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-Experimenten.<br />

Im Folgenden werden mögliche Gesten für alle Aktionen, die <strong>zur</strong> <strong>Durchführung</strong><br />

<strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-Experimenten benötigt werden, vorgestellt und entsprechende<br />

Vor- und Nachteile gegeneinander abgewägt.<br />

4.2.1 Karte verschieben<br />

Eine der unumstrittenste Geste auf einem Multitouch-Tisch ist die zum Verschieben<br />

<strong>von</strong> Elementen. Unabhängig da<strong>von</strong>, ob Wu u.a [WSR + 06] mit den selbst<br />

definierten Gesten, Wobbrock u.a. [WMW09] mit den <strong>von</strong> Benutzern erstellten<br />

Gesten oder andere wissenschaftliche Ausarbeitungen zu diesem Thema herangezogen<br />

werden, wird immer die gleiche Geste beschrieben.<br />

Mit einem Finger wird das zu verschiebende Element festgehalten, so dass es sich<br />

30


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

Abbildung 4.2: Verschieben <strong>von</strong> Karten<br />

Quelle: Wobbrock u.a.[WMW09]<br />

unter dem Finger befindet. Mit diesem Finger wird die Karte anschließend an die<br />

Stelle verschoben, an der der Benutzer diese platzieren möchte. Zum endgültigen<br />

Platzieren lässt der Benutzer die Karte wieder los.<br />

Diese Geste sollte auf jeden Fall auch für das <strong>Card</strong>-<strong>Sorting</strong> gewählt werden. Sie ist<br />

für die Aktion praktisch Standard und gibt dem Benutzer während der gesamten<br />

Ausführung ein visuelles Feedback.<br />

4.2.2 Karte kopieren<br />

Zum Kopieren <strong>von</strong> Elementen auf einem Multitouch-Tisch gibt es diverse Ansätze.<br />

(a) Kopieren durch Ziehen<br />

(b) Kopieren durch Tab-Geste<br />

Abbildung 4.3: Kopieren <strong>von</strong> Karten<br />

Quellen: 4.3(a) Frisch u.a.[FHD09] 4.3(b) Wobbrock u.a.[WMW09]<br />

Salvator Fuentes u.a. [FSHC11], die das Multitouch-Framework InnovaTouch<br />

entwickeln, arbeiten vor allem über die Anzahl der Finger. So wird das kopieren<br />

gestartet, indem der Benutzer mit vier Fingern das zu kopierende Element berührt.<br />

Zum Einfügen der Kopie wird ebenfalls mit vier Fingern die Stelle berührt,<br />

an der die Kopie eingefügt werden soll.<br />

Diese Geste ist sehr an einen Desktop Computer angelehnt, trotz der Tatsache,<br />

31


4. Multitouch-Gesten<br />

dass vier Berührungspunkte nötig sind. Im Ergebnis der Arbeit <strong>von</strong> Wu u.a.<br />

[WSR + 06] wird ausgeführt, dass „die Studie ebenfalls die Wichtigkeit <strong>von</strong> visuellem<br />

Feedback während der Gesteninteraktion herausstellte“ 1 Ziel <strong>einer</strong> Geste<br />

sollte es also sein, eine komplette Aktion 2 in <strong>einer</strong> ununterbrochenen Geste durchzuführen,<br />

was hier nicht der Fall ist.<br />

Des Weiteren ist diese Geste auch schwer zu merken. Mit vier Fingern, die für<br />

diese Aktion nötig sind, kann niemand das Kopieren in Verbindung bringen. Zu<br />

dieser Einschätzung kommen Fuentes u.a. [FSHC11] allerdings im Ergebnis ihrer<br />

Arbeit selber, indem sie ausführen, dass „[...] die Lernkurve für die copy/paste<br />

Gesten nicht so glatt war wie wir erwartet haben.“ 3<br />

Ein weiterer Kritikpunkt ist die Fläche, die benötigt wird, um vier Finger auf dem<br />

Multitouch-Tisch zu platzieren. Die Karten müssten eine entsprechende Größe haben,<br />

was jedoch, aufgrund der nicht allzu langen Namen der Begriffe, in der Regel<br />

nicht nötig ist.<br />

Die benutzerdefinierte Geste <strong>von</strong> Wobbrock u.a [WMW09] zum Duplizieren eines<br />

Elements (vgl. Abbildung 4.3(b)) geht in die gleiche Richtung, wie bei Fuentes<br />

u.a. [FSHC11]. Hier ist jedoch nur ein Finger nötig, um das entsprechende Element<br />

zu duplizieren. Es gibt hier allerdings auch ein, wenn auch wenig aussagekräftiges,<br />

visuelles Feedback, welches Element kopiert wird. Das Element wird während des<br />

Kopiervorgangs mit <strong>einer</strong> Markierung versehen.<br />

Nachdem die Gesten <strong>von</strong> Fuentes u.a. [FSHC11] und Wobbrock u.a. [WMW09]<br />

nicht überzeugen können, soll die Geste <strong>von</strong> Wu u.a. [WSR + 06] zum Duplizieren<br />

<strong>von</strong> Elementen betrachtet werden. Dort wird zwar ein Bildausschnitt kopiert, es<br />

ist jedoch kein Problem, dies auf das <strong>Card</strong>-<strong>Sorting</strong> zu übertragen. Der Benutzer<br />

hält mit einem Finger den zu kopierenden Bildausschnitt fest und zieht mit dem<br />

anderen Finger eine Kopie an das Ziel.<br />

Das visuelle Feedback ist während der gesamten Ausführung gegeben. Der Benutzer<br />

verschiebt den Bildausschnitt, hält diesen jedoch an der ursprünglichen Stelle<br />

1 Übersetzt aus dem Englischen. Original: The study also highlighted the importance of visual<br />

feedback throughout a gesture interaction.<br />

2 Hier: Kopieren <strong>einer</strong> Karte und an anderer Stelle wieder einfügen<br />

3 Übersetzt aus dem Englischen. Original: [...] the learning curve for the copy/paste gestures<br />

was not as smooth as we expected.<br />

32


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

fest, so dass dieser im übertragenen Sinn nicht weggezogen werden kann.<br />

Eine weitere interessante Arbeit ist in diesem Zusammenhang die Arbeit <strong>von</strong><br />

Matthias Frisch u.a. [FHD09]. Sie entwickeln ein Konzept zum Erstellen <strong>von</strong> Graphen<br />

auf einem Multitouch-Tisch. In dieser Arbeit wird das Kopieren ebenfalls so<br />

gehandhabt, wie bei Wu u.a. [WSR + 06].<br />

Im Ergebnis sollte die <strong>von</strong> Wu u.a. [WSR + 06] und Frisch u.a. [FHD09] vorgestellte<br />

Geste zum Kopieren benutzt werden (vgl. Abbildung 4.3(a)). Die Gesten<br />

der beiden erst genannten Arbeiten lehnen sich zu sehr an Desktop Systeme an,<br />

ohne ein vernünftiges visuelles Feedback zu bieten. In der jetzt gewählten Geste<br />

hat der Benutzer ein ständiges visuelles Feedback und kann schnell eine Verknüpfung<br />

zwischen Kopieren und der Geste herstellen. Der Ablauf der Geste sollte<br />

somit wie folgt sein.<br />

1. Der Benutzer berührt mit zwei Fingern die zu kopierende Karte.<br />

2. Ein Finger bleibt auf der Karte, während der andere Finger eine Kopie der<br />

Karte bewegt.<br />

3. Am Ziel wird die Kopie der Karte losgelassen. Anschließend auch die festgehaltene<br />

Karte.<br />

4.2.3 Karte löschen<br />

Es soll möglich sein, duplizierte Karten wieder zu löschen. Initial vorhandene Karten<br />

dürfen nicht gelöscht werden. Auch hierfür gibt es verschiedene Wege, diese<br />

Funktion in <strong>einer</strong> Multitouch-Geste umzusetzen.<br />

Bei der Arbeit <strong>von</strong> Wu u.a. [WSR + 06] kann der Anwender auf den Multitouch-<br />

Tisch schreiben. Das Geschriebene konnte dann gelöscht werden.<br />

In der Registrierungsphase muss der Benutzer die Faust auf den zu löschenden<br />

Bereich legen und während der <strong>Durchführung</strong>sphase mit <strong>einer</strong> flachen Hand den<br />

Text wegwischen. Diese Geste ist relativ aufwendig umzusetzen, da es sich um<br />

einen Kontaktpunkt handelt und anhand der Größe der berührten Fläche berechnet<br />

werden muss, ob es sich um einen Finger oder eine Faust handelt. Vor allem<br />

ist hier die Unterscheidung bei Extremen relativ schwierig. Es wird fast unmöglich<br />

33


4. Multitouch-Gesten<br />

(a) Löschen durch Wischen<br />

(b) Löschen durch Verschieben<br />

nach außen<br />

Abbildung 4.4: Löschen <strong>von</strong> Karten<br />

Quellen: 4.4(a) Frisch u.a.[FHD09] 4.4(b) Wobbrock u.a.[WMW09]<br />

sein zwischen <strong>einer</strong> Kinderfaust und einem dicken Finger eines Erwachsenen zu<br />

unterscheiden. Außerdem werden die Karten wahrscheinlich kl<strong>einer</strong> sein als die<br />

Faust oder die Hand, so dass es bei eng aneinanderliegenden Karten zu Seiteneffekten<br />

kommen kann. Es könnten Karten gelöscht werden, die ursprünglich nicht<br />

gelöscht werden sollten. Außerdem ist diese Geste wegen der zu geringen Größe<br />

der Karten nicht praktikabel.<br />

Die gleiche Kritik, die im vorherigen Kapitel an der Arbeit <strong>von</strong> Fuentes u.a.<br />

[FSHC11] angebracht wird, kann in diesem Kapitel wiederholt werden (vgl. Kapitel<br />

4.2.2). In der Arbeit soll das Löschen mit doppeltem Berühren <strong>von</strong> drei Fingern<br />

auf dem zu löschenden Element durchgeführt werden. Die Geste ist schwer merkbar<br />

und kann auch nicht mit physischen Gegebenheiten oder Computeraktionen<br />

verknüpft werden. Sie sollte aus diesen Gründen ebenfalls ausscheiden.<br />

Frisch u.a. [FHD09] haben in ihrer Arbeit zwei Gesten zum Löschen festgelegt.<br />

Bei der einen wird, wie bei Wu u.a. [WSR + 06] eine Wischgeste verwendet, allerdings<br />

mit einem Finger und nicht mit der ganzen Faust/Hand (vgl. Abbildung<br />

4.4(a)). Hier würde der Effekt nicht mehr auftreten, dass versehentlich andere<br />

Karten mitgelöscht werden.<br />

Die andere <strong>von</strong> Frisch u.a. [FHD09] vorgestellte Geste löscht ein Element, indem es<br />

nach außerhalb des Bildschirms gezogen wird (vgl. Abbildung 4.4(b)). Diese Geste<br />

scheint am praktikabelsten zu sein. Der Benutzer bekommt immer ein visuelles<br />

Feedback und man kann es mit der wirklichen Welt in Verbindung setzen, indem<br />

34


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

man sagt, die Karte wird vom Tisch geworfen bzw. außerhalb des Sichtbereichs<br />

verschoben.<br />

Ein weiteres Argument für diese Geste ist, dass Wobbrock u.a. [WMW09] diese<br />

als die <strong>von</strong> den Testpersonen favorisierte Geste beschreiben.<br />

Zusammengefasst sollte die Geste zum Löschen <strong>von</strong> duplizierten Karten so entwickelt<br />

werden, dass der Anwender die Karte berührt und diese an einen beliebigen<br />

Rand des Multitouch-Tisches verschiebt (vgl. Abbildung 4.4(b)). Wird der Finger<br />

außerhalb des für Eingaben überwachten Bereichs gezogen, so soll die duplizierte<br />

Karte gelöscht werden. Wird dieses mit <strong>einer</strong> nicht duplizierten Karten durchgeführt,<br />

so soll diese neben dem äußeren Rand abgelegt werden.<br />

4.2.4 Beschreibung eines Begriffs<br />

In WeCaSo können zu jedem Begriff Beschreibungen hinzugefügt werden. Zur Anzeige<br />

dieser Beschreibungen sollte ein so genannter Tooltip dienen. Zum Aktivieren<br />

dieses Tooltips sollte die entsprechende Karte einmal berührt werden und wieder<br />

losgelassen werden. Der Tooltip verschwindet nach <strong>einer</strong> gewissen Zeit oder wenn<br />

die Karte verschoben wird.<br />

Dies ist eine Standard-Aktion, um einen Tooltip anzuzeigen und sollte demnach<br />

auch so verwendet werden.<br />

4.2.5 Hierarchisches Einfügen<br />

Für das hierarchische Einfügen <strong>von</strong> Karten muss zunächst eine Unterkategorie<br />

innerhalb <strong>einer</strong> bestehenden Kategorie erstellt werden. Dies geschieht dadurch,<br />

dass eine Karte innerhalb <strong>einer</strong> Kategorie zu <strong>einer</strong> Unterkategorie wird. In wissenschaftlichen<br />

Arbeiten konnte keine Lösung zu so <strong>einer</strong> Anforderung gefunden<br />

werden. Es stehen verschiedene Optionen <strong>zur</strong> Verfügung.<br />

Wird eine Karte auf eine Karte geschoben, die sich in <strong>einer</strong> Kategorie befindet,<br />

könnte die Karte in der Kategorie zu <strong>einer</strong> Unterkategorie werden und die geschobene<br />

Karte in diese neue Unterkategorie eingefügt werden. Dies ist allerdings sehr<br />

fehleranfällig, da eine Karte auch versehentlich auf eine andere geschoben werden<br />

kann und der Benutzer diese in die Kategorie einfügen wollte. Eine andere Option<br />

wäre eine Karte eine gewisse Zeit über eine Karte in <strong>einer</strong> Kategorie zu halten.<br />

Durch visuelles Feedback soll angezeigt werden, dass aus dieser Karte eine Un-<br />

35


4. Multitouch-Gesten<br />

terkategorie erstellt wird, wenn der Benutzer die Karte an dieser Stelle loslassen<br />

würde. Diese Option ist weniger fehleranfällig und könnte durchaus so umgesetzt<br />

werden.<br />

Eine dritte Alternative wäre den Vorgang des Verschiebens zu beginnen und mit<br />

Name<br />

Abbildung 4.5: Hierarchisch Einfügen<br />

einen Finger der anderen Hand die Karte in <strong>einer</strong> Kategorie zu berühren, die zu<br />

<strong>einer</strong> Unterkategorie werden soll (vgl. Abbildung 4.5). Sobald der Finger die Karte<br />

in der Kategorie berührt, wird diese zu <strong>einer</strong> Unterkategorie und als solche dargestellt.<br />

Wird der Vorgang abgebrochen, wird die Karte, die <strong>zur</strong> Unterkategorie<br />

werden sollte, wieder zu <strong>einer</strong> normalen Karte.<br />

Die dritte Option scheint für diese Aktion am geeignetsten zu sein. Man suggeriert<br />

mit dem Finger der zweiten Hand, dass die Karte nicht auf der anderen Karte<br />

platziert werden soll, sondern hier, wo der Finger drauf zeigt, eingefügt werden<br />

soll.<br />

4.2.6 Gruppieren <strong>von</strong> Karten<br />

Gruppieren <strong>von</strong> Karten zu <strong>einer</strong> Kategorie ist essentieller Bestandteil bei der<br />

<strong>Durchführung</strong> <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-Experimenten. Bei der Gruppierung sollte die<br />

Testperson nicht <strong>von</strong> vorgeschriebenen Faktoren der Anwendung beeinflusst werden.<br />

Dies unterstreicht Jasmin Kuhn [Kuh12] in ihrer Bachelorarbeit:<br />

Anders als bei klassischen <strong>Card</strong> <strong>Sorting</strong> setzt WeCaSo voraus, dass zuerst<br />

die Gruppennamen gebildet werden. Eine Möglichkeit diese Reihenfolge<br />

zu umgehen besteht darin zwar Felder für Gruppennamen zu<br />

erzeugen, diese jedoch vorerst nicht auszufüllen. Diese Vorgehensweise<br />

36


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

ermöglicht es den Testpersonen Begriffe erst zusammen zu gruppieren<br />

und jeder Gruppe anschließend einen Namen zu geben. Werden die<br />

Gruppennamen zu Beginn festgelegt, so besteht die Gefahr, dass sich<br />

der Proband zu früh auf eine bestimmte Kategorie fixiert und Zusammenhänge<br />

zwischen Begriffen nicht mehr unvoreingenommen wahrnehmen<br />

kann.<br />

Der Benutzer sollte somit erst die Möglichkeit bekommen, Elemente in Gruppen<br />

vorzusortieren. Dies ist auf dem Multitouch-Tisch kein Problem, da die Karten<br />

beliebig positioniert werden können. Das Überführen dieser Gruppen sollte mit<br />

einfachen Gesten umsetzbar sein.<br />

Gruppieren <strong>von</strong> Elementen ist auch zumeist Bestandteil der Arbeiten die in den<br />

vorangegangenen Kapiteln dieses Abschnittes untersucht werden. Daneben gibt<br />

es auch Arbeiten, die sich ausschließlich mit dem Gruppieren <strong>von</strong> Elementen auf<br />

dem Multitouch-Tisch beschäftigt haben.<br />

Wu u.a. [WSR + 06] haben dafür die Pile-n-Browse Geste entwickelt (vgl. Abbildung<br />

4.6). Bei dieser werden beide Hände aufrecht auf die Oberfläche des Tisches<br />

gelegt. Alle sich dazwischen befindlichen Karten werden durch aufeinanderzubewegen<br />

der Hände auf einen Stapel geschoben.<br />

Ähnlich geht Dzmitry Aliakseyeu [ASLG06] in s<strong>einer</strong> Arbeit vor. Er beschäftigte<br />

sich mit dem Navigieren, Reorganisieren und Umpositionieren <strong>von</strong> Stapeln. Neben<br />

dieser Arbeit gibt es noch diverse andere Arbeiten, die in diese Richtung gehen.<br />

Das hat auch den Grund, dass der Multitouch-Tisch Microsoft Surface vor allem<br />

dem kollaborativen Arbeiten dient. Hier macht es durchaus Sinn, Gruppen <strong>von</strong><br />

Elementen auf einen Stapel zu legen und diese anschließend beiseite zu legen oder<br />

einem anderen Mitarbeiter zu übergeben.<br />

Für das <strong>Card</strong>-<strong>Sorting</strong> ist dieses Prinzip jedoch nur bedingt geeignet. Es wäre in<br />

diesem Fall immer nur die obere Karte sichtbar. Der Benutzer sollte in der Lage<br />

sein, zu überblicken, welche Begriffe sich bereits in der Gruppe befinden, um entscheiden<br />

zu können, ob eine neu der Gruppe hinzugefügte Karte dort hinein passt<br />

oder durch die neu hinzugefügte Karte die Gruppierung eventuell geteilt werden<br />

muss.<br />

Ein weiteres Argument, die gegen ein Gruppieren mittels Stapel spricht, ist die<br />

Größe der Karten. Während in den zitierten Arbeiten Fotos oder ganze Dokumente<br />

37


4. Multitouch-Gesten<br />

gruppiert werden, müssen beim <strong>Card</strong>-<strong>Sorting</strong> lediglich relativ kleine Karten gruppiert<br />

werden. Des Weiteren ist ein <strong>Card</strong>-<strong>Sorting</strong> fast nie so groß, dass man bei der<br />

Anzahl der Karten den Überblick verlieren könnte oder der Platz für die Karten<br />

nicht ausreicht und diese sich überdecken.<br />

(a) Gruppieren durch sequenzielles Berühren<br />

(b) Gruppieren durch Lasso-<br />

Selektion<br />

Abbildung 4.7: Gruppieren <strong>von</strong> Karten mit allgemeinen Gesten<br />

Quelle: Wobbrock u.a.[WMW09]<br />

Abbildung 4.6: Gruppieren mit<br />

Pile-n-Browse<br />

Quelle: Wu u.a.[WSR + 06]<br />

Zum Selektieren <strong>von</strong> Elementen, was im all-<br />

gemeinen <strong>einer</strong> Gruppierung entspricht, auf dem<br />

Multitouch-Tisch haben Frisch u.a. [FHD09]<br />

und Wobbrock u.a. [WMW09] jeweils zwei Gesten<br />

definiert. Zum einen, indem eine Karte<br />

festgehalten wird und nach und nach durch<br />

Berühren weiterer Karten diese der Gruppe<br />

hinzugefügt werden (vgl. Abbildung 4.7(a)).<br />

Dieses Verfahren scheidet für das <strong>Card</strong>-<strong>Sorting</strong><br />

generell aus, da es für mehrere Gruppen <strong>zur</strong><br />

gleichen Zeit nicht praktikabel ist. Es könnte<br />

höchstens für jede Gruppe die jeweiligen Karten<br />

verschieden eingefärbt werden. Wichtig ist<br />

bei mehreren Gruppen aber auch das Gesetz<br />

der Nähe. Dies wäre in diesem Fall leicht verletzbar.<br />

Die zweite Geste, die beide Arbeiten definieren,<br />

ist die sogenannte Lasso-Selektion (vgl.<br />

Abbildung 4.7(b)). Mit einem Finger werden<br />

alle Karten <strong>einer</strong> Gruppe umrandet. Nachdem<br />

eine Umrandung fertig ist, könnte anschließend ein Algorithmus dafür sorgen, dass<br />

die Karten sinnvoll ausgerichtet werden und somit direkt eine übersichtliche Grup-<br />

38


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

pe für die Kategorie entsteht. Außerdem ist es bei dieser Methode möglich mehrere<br />

unterscheidbare Gruppen darzustellen, die leicht auseinander gehalten werden können.<br />

Es können hier auch Karten hinzugefügt werden, die automatisch durch das<br />

Programm eingeordnet werden und unter Umständen die Umrandung vergrößern.<br />

Des Weiteren ist es damit auch kein Problem zwei Gruppen zusammenzufügen.<br />

Auch hier müsste das Programm dafür sorgen, dass die Elemente vernünftig angeordnet<br />

werden und die Umrandung an die Größe der Gruppe angepasst wird.<br />

Das Gruppieren bzw. Selektieren mit einem Lasso ist bereits aus klassischen<br />

Desktop-Umgebungen bekannt, lässt sich jedoch auch gut in <strong>einer</strong> Multitouch<br />

Anwendung realisieren und wird <strong>von</strong> den Benutzern intuitiv genutzt. Dies zeigt<br />

die Tatsache, dass es bei Wobbrock u.a. [WMW09] als favorisierte Geste verwendet<br />

wird.<br />

(a) (b) (c) (d) (e)<br />

Abbildung 4.8: Gruppieren <strong>von</strong> Karten mit Blasen<br />

Quelle: Watanabe u.a.[WWI07]<br />

Einen ganz anderen Ansatz verfolgten dagegen Nayuko Watanabe u.a. [WWI07].<br />

Sie gruppieren Elemente mit Hilfe <strong>von</strong> Blasen (vgl. Abbildung 4.8). Dazu wird<br />

jedes einzelne Element <strong>von</strong> einem Kreis (der Blase) umrandet. Wenn sich zwei<br />

Elemente berühren, so verschmelzen die jeweiligen Blasen zu <strong>einer</strong> einzigen Blase<br />

(vgl. Abbildung 4.8 (a)-(c)). Dies ist natürlich mit allen Blasen möglich, unabhängig<br />

da<strong>von</strong> wie viel Elemente diese enthalten. Es sind auch Operationen innerhalb<br />

<strong>einer</strong> Blase möglich. So kann die gesamte Blase verschoben werden, es können<br />

auch einzelne Elemente aus der Blase gezogen werden. Wird ein Element aus der<br />

Blase gezogen, wird die Blase an der austretenden Stelle vergrößert. Irgendwann<br />

ist der Abstand so groß, dass die Blasen in zwei Teile auseinandergerissen werden.<br />

Es bleibt die ursprünglich Blase, die unter Umständen etwas verkl<strong>einer</strong>t wird und<br />

eine kleine Blase mit nur dem heraus gezogenen Element übrig (vgl. Abbildung<br />

4.8 (c)-(e)). Dieser Effekt lässt sich ebenfalls bei Seifenblasen beobachten und ist<br />

39


4. Multitouch-Gesten<br />

somit der physischen Welt ähnlich und gut merkbar.<br />

Abbildung 4.9: Gruppieren teilen<br />

Quelle: Watanabe u.a.[WWI07]<br />

Eine Blase kann auch geteilt werden, indem ein Finger durch die Blase gezogen<br />

wird und die Elemente rechts und links der gezogenen Linie in zwei Blasen aufgeteilt<br />

werden. (vgl. Abbildung 4.9)<br />

Die Umsetzung dieses Gruppierungsprinzips wird schwer zu realisieren sein, da<br />

hier viele Berechnungen im Bezug auf die Positionierung während des Verschiebens<br />

notwendig sind. Allerdings ist das Konzept aus dem Desktop-Bereich gänzlich<br />

unbekannt und aus diesem Grund für eine Multitouch Anwendung sehr gut geeignet,<br />

auch weil die visuellen Rückgaben sehr intuitiv sind. Das Verhalten der Blasen<br />

lässt sich, wie schon beschrieben, sehr gut aus der physischen Welt übertragen.<br />

Es stellt sich trotz des guten Designs die Frage, ob eine solche Gruppierung<br />

sinnvoll ist bzw. <strong>von</strong> Benutzern positiv angenommen wird. Dieser Frage haben<br />

sich Florian Geyer u.a. [GHR12] in ihrer Benutzerstudie gewidmet. In dieser vergleichen<br />

sie ob es effektiver ist, eine Gruppe zu erstellen und anschließend die<br />

Elemente dort hineinzuziehen bzw. Elemente grob vorzusortieren und um diese<br />

eine Gruppe zu zeichnen, wie dies bei der Lasso-Selektion der Fall ist oder das<br />

<strong>von</strong> Watanabe u.a. [WWI07] entwickelte Prinzip der Gruppierung mit Blasen zu<br />

verwenden.<br />

Die Benutzerstudie ist <strong>von</strong> Geyer u.a. [GHR12] folgendermaßen durchgeführt:<br />

Users were given the task to group and regroup 30 colored rectangles<br />

into clusters according to five different colors. In order to avoid carryover<br />

effects, six participants started with the Bin and the other six<br />

started with the Bubble condition. Each task covered a grouping and a<br />

regrouping phase: First, the rectangles appeared distributed randomly<br />

on the display. Then, users were asked to group shapes freely according<br />

40


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

to their colors. After a five second break, the colors of the shapes were<br />

shuffled and participants had to regroup the objects again. Compared<br />

to the grouping phase, the rectangles were now already clustered, forcing<br />

a regrouping. The whole task procedure consisted of 16 trials (4<br />

runs x 2 interface conditions x 2 phases), whereby the first run was<br />

practice and was excluded from data analysis.<br />

Für das <strong>Card</strong>-<strong>Sorting</strong> ist hier vor allem die Phase interessant, in der die Benutzer<br />

die über die gesamte Fläche verteilten Elemente gruppieren. Das Gruppieren aus<br />

den Blasen heraus, nachdem die Farben innerhalb der jeweiligen Gruppen ausgetauscht<br />

werden, sind ebenso interessant, werden aber im Bereich des <strong>Card</strong>-<strong>Sorting</strong>s<br />

nicht stark in Anspruch genommen werden.<br />

Aus den Ergebnissen der Studie ergibt sich, dass die Testteilnehmer im Durchschnitt,<br />

über alle Aufgaben gesehen, für das Gruppieren mit Blasen 54 Sekunden<br />

benötigten. Dagegen benötigten die Testteilnehmer für das andere Verfahren im<br />

Durchschnitt 87 Sekunden. Das Gruppieren mit Blasen ist also signifikant schneller.<br />

Das Umgruppieren ist in beiden Fällen ungefähr gleich schnell. Hier ergibt sich zumindest<br />

kein Nachteil für das Gruppieren mit Blasen. Zusammenfassend kommen<br />

Geyer u.a. [GHR12] zu folgendem Ergebnis:<br />

The findings of our study showed that the proximity concept is more<br />

beneficial for grouping tasks on a digital surface than the traditional<br />

container concept. Participants interacted more often with multiple fingers<br />

and both hands, which depicts that grouping based on proximity<br />

is capable of harnessing more advantages of bimanual and multi-touch<br />

interaction than grouping based on containment.<br />

Maßgeblich für dieses Ergebnis ist sicherlich auch, dass Gruppieren mit Blasen<br />

in einem Desktop-System nicht zum Einsatz kommt. Die Anwender werden somit<br />

nicht auf Computerinteraktionen <strong>zur</strong>ückgreifen, was in den allgemeinen Gesten<br />

fast immer der Fall ist, sondern mehr eine Beziehung <strong>zur</strong> physischen Welt aufbauen.<br />

Diese Methode ist zudem intuitiv und muss nicht aufwendig erklärt oder<br />

erlernt werden.<br />

41


4. Multitouch-Gesten<br />

Zusammengefasst lässt sich feststellen, dass das Prinzip der Blasen sowohl mit<br />

Blick auf die Zeit, die zum Sortieren benötigt wird, als auch im Hinblick auf die<br />

Nutzerakzeptanz die favorisierte Geste für das Gruppieren <strong>von</strong> Karten sein sollte.<br />

Gruppierung verschieben<br />

Wie Wu u.a. [WSR + 06] beschreiben, sollten gleiche Aufgaben auch mit gleichen<br />

Gesten durchgeführt werden. Somit sollte das Verschieben <strong>von</strong> Gruppen genauso<br />

geschehen, wie das Verschieben der Karten (vgl. Kapitel 4.2.1). Wegen des<br />

Fat-Finger Problems sollte die Initialisierungsphase <strong>von</strong> der des Verschiebens <strong>von</strong><br />

Karten allerdings unterschiedlich sein. Karten werden mit einem Finger über die<br />

Oberfläche verschoben. Gruppen sollten mit zwei Fingern verschoben werden. Damit<br />

wäre es immer noch die gleiche Geste, aber ohne die Gefahr, dass der Anwender<br />

versehentlich eine Karte verschiebt. Bei vollen Gruppen ist es, gerade mit dicken<br />

Fingern, schwierig eine noch nicht mit Karten bedeckte Fläche zu finden.<br />

Ein Problem, sich diese Unterscheidung zu merken, sollten die Anwender in der<br />

Regel nicht haben. Ein Finger für ein kleines Element (die Karten) und zwei Finger<br />

für ein großes Element (die Gruppierung).<br />

Gruppierung löschen<br />

Von dem im vorherigen Abschnitt gesprochenen Wiederverwendbarkeit <strong>von</strong> Gesten<br />

sollte beim Löschen <strong>von</strong> Gruppierungen verzichtet werden. Die Geste zum<br />

Löschen <strong>einer</strong> Karte (vgl. Kapitel 4.2.3) ist bei <strong>einer</strong> Gruppierung nicht sinnvoll.<br />

Es soll schließlich nur die Gruppierung und nicht die Elemente innerhalb dieser<br />

Gruppe gelöscht werden. Es würde sich zwangsläufig die Frage stellen, an welche<br />

Position die Karten der Gruppe platziert werden, wenn die Gruppe an den Rand<br />

des Multitouch-Tisch verschoben wird. Soll die ursprüngliche Position der Karten<br />

gespeichert werden und an dieser wieder eingefügt werden oder an der Stelle platziert<br />

werden, an der die Gruppe gelöscht wurde?<br />

Für diesen Fall käme die <strong>von</strong> Frisch u.a. [FHD09] alternativ beschriebene Geste<br />

in Frage (vgl. Abbildung 4.4(a)). Dort wird durch mehrmaliges Wischen nach<br />

rechts und links über ein Element dieses gelöscht. Für diese Geste spricht, dass<br />

die Elemente, die sich in dieser Gruppierung befinden an der Stelle bleiben und<br />

lediglich die visuelle Umrandung wegfällt. Für die Karten wird eine solche Geste<br />

nicht Praktikabel sein. Mit einem Finger, der über die Karte wischt, wird diese<br />

verschoben. Das soll auch nicht geändert werden. Eine zweite Möglichkeit wäre,<br />

42


4.2 Multitouch-Gesten für <strong>Card</strong>-<strong>Sorting</strong><br />

diese Aktion mit zwei Fingern durchzuführen. Dann würde aber, sofern sich eine<br />

Karte in <strong>einer</strong> Gruppe befindet, die Gruppe verschoben. Die Aktion mit noch mehr<br />

Fingern auszuführen macht noch weniger Sinn, da die Karten nicht groß genug<br />

sind.<br />

In Abwägung aller Vor- und Nachteile muss für diesen Fall leider <strong>von</strong> dem<br />

Grundsatz abgewichen werden, gleiche Funktionen mit gleichen Gesten auszuführen.<br />

4.2.7 Experiment beenden<br />

Eine Geste zum Beenden <strong>einer</strong> Multitouch-Anwendung konnte in wissenschaftlichen<br />

Ausarbeitungen nicht gefunden werden. Diese wird in der Anwendung allerdings<br />

benötigt, da nach Beendigung des Experiments Daten in die Datenbank<br />

geschrieben werden müssen. Das Schließen über den Standard-Schließen-Button<br />

in der oberen rechten Ecke des <strong>Applikation</strong>sfensters ist auf Grund der Größe des<br />

Tisches keine optimale Lösung. Der Benutzer müsste einmal quer über den Tisch<br />

greifen, um den Button zu erreichen. Außerdem ist dieser nicht für Fingereingaben<br />

konzipiert, so dass sich wieder das Fat-Finger Problem stellt.<br />

Eine zweite Alternative wäre das Einfügen eines Menüs. Da bislang nicht zu erkennen<br />

ist, dass mehrere Menüeinträge nötig sind, macht ein Menü für eine Aktion,<br />

die einmalig ausgeführt wird, wenig Sinn. Ein Button zum Beenden des Experiments<br />

sollte aus diesen Gründen ebenfalls ausscheiden.<br />

Da Windows 8 auf die Bedienung mit Multitouch Gesten ausgelegt ist, gibt es<br />

für diese Anforderung eine Geste zum Beenden <strong>von</strong> Metro Apps. Diese ist auf der<br />

Homepage zu Windows 8 [Micb] wie folgt beschrieben:<br />

Ziehen Sie die App über die Touch-Bedienung oder mit der Maus vom<br />

oberen Bereich des Bildschirms zum unteren Bildschirmrand.<br />

Je weiter sich Windows 8 verbreitet, umso mehr rechnen die Benutzer damit, dass<br />

sich Anwendungen auf diese Weise schließen lassen. Das spricht für die Verwendung<br />

der Geste in dieser <strong>Applikation</strong>.<br />

43


5 Architektur der <strong>Applikation</strong><br />

Durch die Benutzung <strong>von</strong> Windows Presentation Foundation (WPF) ist die Implementierung<br />

in zwei Teile aufgeteilt. Zum einen in die Präsentationslogik, die<br />

die Gestaltung der Oberfläche mit der Markup Language XAML beschreibt (vgl.<br />

Kapitel 5.2). Zum anderen in die Geschäftslogik, in der die Funktionen der Anwendung<br />

in der Programmiersprache C# geschrieben sind (vgl. Kapitel 5.1).<br />

5.1 Geschäftslogik<br />

In diesem Kapitel werden die wichtigsten Funktionen und Klassen der Anwendung<br />

beschrieben. Eine vollständige Übersicht der Softwarearchitektur bietet das<br />

Klassendiagramm (vgl. Abbildung 5.1).<br />

5.1.1 Datenanbindung an WeCaSo<br />

Die mittels WeCaSo erstellten <strong>Card</strong>-<strong>Sorting</strong>-Projekte (vgl. Kapitel 3.1) werden in<br />

<strong>einer</strong> MySQL Datenbank gespeichert. Es besteht in WeCaSo keine Schnittstelle<br />

für den Zugriff auf die Projekte, so dass ein direkter Datenbankzugriff nötig ist.<br />

Eine direkte Programmierschnittstelle für den Zugriff auf MySQL Datenbanken<br />

ist in Visual Studio 2010 nicht vorhanden. Aus diesem Grund muss der MySQL<br />

Connector/Net 1 installiert sein. Dieser Client wird in das <strong>Entwicklung</strong>sprojekt als<br />

Referenz eingebunden und in den entsprechenden Klassen importiert.<br />

Experimente laden<br />

Für das Laden der Experimente werden Datenbankzugriffe auf die in Kapitel 3.1.2<br />

vorgestellten Tabellen durchgeführt. Es sind insgesamt drei Datenbankabfragen<br />

1 Download unter http://www.mysql.com/downloads/connector/net/, aufgerufen am<br />

11.01.2013<br />

45


5. Architektur der <strong>Applikation</strong><br />

=QuestionY}<br />

mQuestionYin>questionId>1>intM>in>type>1>stringM>in>idRequired>1>boolM>in>questionText>1>stringM>in>answers>1>List*string>}<br />

=answers>1>List*string><br />

=counter>1>int<br />

=id>1>int<br />

=isRequired>1>bool<br />

=questionId>1>int<br />

=questionText>1>string<br />

=type>1>string<br />

mAnswers>1>List*string>{READONLY}<br />

mId>1>int{READONLY}<br />

mIsRequired>1>bool{READONLY}<br />

mQuestionId>1>int{READONLY}<br />

mQuestionText>1>string{READONLY}<br />

mType>1>string{READONLY}<br />

Question<br />

m<strong>Card</strong>ItemYin>dataId>1>intM>in>text>1>stringM>in>description>1>stringM>in>isMultiple<strong>Card</strong>>1>bool>0>false}<br />

=<strong>Card</strong>ItemY}<br />

mDeepCopyY}>1><strong>Card</strong>Item<br />

mSet<strong>Card</strong>PositionYin>center>1>PointM>in>orientation>1>double}<br />

=counter>1>int<br />

=canSetPosition>1>bool<br />

=center>1>Point<br />

=dataId>1>int<br />

=description>1>string<br />

=id>1>int<br />

=isMultiple<strong>Card</strong>>1>bool<br />

=orientation>1>double<br />

=pileId>1>int<br />

=text>1>string<br />

mCanSetPosition>1>bool{READONLY}<br />

mCenter>1>Point{READONLY}<br />

mDataId>1>int{READONLY}<br />

mDescription>1>string{READONLY}<br />

mDragged<strong>Card</strong>>1>Object<br />

mId>1>int{READONLY}<br />

mIsMultiple<strong>Card</strong>>1>bool<br />

mOrientation>1>double{READONLY}<br />

mPileId>1>int<br />

mText>1>string{READONLY}<br />

<strong>Card</strong>Item<br />

=PileItemY}<br />

mPileItemYin>text>1>stringM>in>isWritable>1>bool}<br />

mPileItemYin>dataId>1>intM>in>text>1>stringM>in>isWritable>1>bool}<br />

mSetPilePositionYin>center>1>Point}<br />

=canSetPosition>1>bool<br />

=center>1>Point<br />

=counter>1>int<br />

=dataId>1>int<br />

=id>1>int<br />

=isWritable>1>bool<br />

=pile<strong>Card</strong>s>1>Observablecollection*<strong>Card</strong>Item><br />

=text>1>string<br />

mCanSetPosition>1>bool<br />

mCenter>1>Point{READONLY}<br />

mDataId>1>int{READONLY}<br />

mDraggedPile>1>Object<br />

mId>1>int{READONLY}<br />

mIsWritable>1>bool{READONLY}<br />

mPile<strong>Card</strong>s>1>Observablecollection*<strong>Card</strong>Item><br />

mText>1>string<br />

PileItem<br />

mLoadExperimentItemsY}<br />

mLoadInitialDataYin>projectName>1>string}>1>bool<br />

mProjectYin>position>1>Point}<br />

mConvertHTMLToPlaneTextYin>textToConvert>1>string}>1>string<br />

=cardItemList>1>ObserverableCollection*<strong>Card</strong>Item><br />

=connectionString>1>string<br />

=instructions>1>string<br />

=multipleInsert>1>bool<br />

=pileItemList>1>ObserverableCollection*PileItem><br />

=position>1>Point<br />

=projectId>1>int<br />

=projectName>1>string<br />

=questions>1>List*Question><br />

=thanks>1>string<br />

=type>1>string<br />

=welcome>1>string<br />

=wizardPage>1>string<br />

m<strong>Card</strong>ItemList>1>ObserverableCollection*<strong>Card</strong>Item><br />

mInstructions>1>string{READONLY}<br />

mMultipleInsert>1>bool{READONLY}<br />

mPileItemList>1>ObserverableCollection*PileItem><br />

mPosition>1>Point<br />

mProjectName>1>string<br />

mQuestions>1>List*Question>{READONLY}<br />

mThanks>1>string{READONLY}<br />

mType>1>string{READONLY}<br />

mWelcome>1>string{READONLY}<br />

mWizardPage>1>string<br />

Project<br />

mOn<strong>Card</strong>CollectionDragCompletedY}<br />

mOn<strong>Card</strong>ItemCollectionDropY}<br />

mOn<strong>Card</strong>MoveY}<br />

mOn<strong>Card</strong>TouchDownY}<br />

mOnDragCanceledY}<br />

mOnDropTargetDragEnterY}<br />

mOnDropTargetDragLeaveY}<br />

mOnListBoxItemAddedY}<br />

mOnPile<strong>Card</strong>DragCompletedY}<br />

mOnPile<strong>Card</strong>PreviewTouchDownY}<br />

mOnPileCollectionTouchDownY}<br />

mOnPileCollectionTouchMoveY}<br />

mOnPileCollectionTouchUpY}<br />

mOnPileDragCanceledY}<br />

mOnPileDragCompletedY}<br />

mOnPileDropY}<br />

mOnPilePreviewTouchDownY}<br />

mOnPileTouchUpY}<br />

mOnPolygonTouchDownY}<br />

mOnPolygonTouchMoveY}<br />

mOnPolygonTouchUpY}<br />

=cardItemList>1>ObserverableCollection*<strong>Card</strong>Item><br />

=currentProject>1>ObserverableCollection*Project><br />

=doubleTouchHasTimeAndPos>1>bool<br />

=doubleTouchPoint>1>Point<br />

=doubleTouchTime>1>TimeSpan<br />

=pileItemList>1>ObserverableCollection*PileItem><br />

m<strong>Card</strong>ItemList>1>ObserverableCollection*<strong>Card</strong>Item><br />

m<strong>Card</strong>ItemSelectorList>1>ObserverableCollection*<strong>Card</strong>ItemSelector><br />

mPileItemList>1>ObserverableCollection*PileItem><br />

MainWindow<br />

mQuestionDataTemplateSelectorY}<br />

mSelectTemplateYin>item>1>ObjectM>in>container>1>DependencyObject}>1>DataTemplate<br />

=QuestionCheckBoxTemplate>1>DataTemplate<br />

=QuestionRadioButtonTemplate>1>DataTemplate<br />

=QuestoinTextBoxTemplate>1>DataTemplate<br />

QuestionDataTemplateSelector<br />

mInitProjectDataTemplateSelectorY}<br />

mSelectTemplateYin>item>1>ObjectM>in>container>1>DependencyObject}>1>DataTemplate<br />

=InitInstructions>1>DataTemplate<br />

=InitLoadProject>1>DataTemplate<br />

=InitQuestions>1>DataTemplate<br />

=InitWelcomeMessage>1>DataTemplate<br />

=Thanks>1>DataTemplate<br />

InitProjectDataTemplateSelector<br />

j<br />

jffC<br />

Pffj<br />

jffC<br />

j<br />

PffC<br />

PffC<br />

j<br />

j<br />

j<br />

Abbildung 5.1: Klassendiagramme <strong>Card</strong>-<strong>Sorting</strong>-MTT<br />

46


5.1 Geschäftslogik<br />

nötig. Zuerst werden die grundlegenden Projektdaten, wie die Willkommensnachricht,<br />

Anleitung und Danksagung geladen (vgl. Listing 5.1). Im Anschluss daran<br />

werden die Fragen mit ihren jeweiligen Antworten aus der Datenbank geladen (vgl.<br />

Listing 5.2). Zu guter Letzt werden die für die <strong>Durchführung</strong> des Experiments benötigten<br />

Begriffe und Kategorien aus der Datenbank geladen (vgl. Listing 5.3).<br />

Der Begriff %PROJECT_NAME% in den Listings ist ein Keyword und soll den<br />

url-Namen des Projekts darstellen, den der Benutzer eingibt. Diese kleinschrittigen<br />

Datenbankabfragen haben den Vorteil, dass die gewonnen Daten direkt in die<br />

entsprechenden Datenstrukturen eingefügt werden können. Bei Kombination der<br />

Abfragen wären unnötig viele Datenverarbeitungen nötig gewesen.<br />

1 mysql > SELECT pb. project_id , pb.type , pb. multiple_insert<br />

, pm.name , pm. text<br />

2 FROM project__base AS pb LEFT JOIN project__meta AS pm<br />

ON pb. project_id = pm. project_id<br />

3 WHERE pb. url_name = ’% PROJECT_NAME %’<br />

Listing 5.1: Experiment-Daten laden<br />

1 mysql > SELECT pq. question_id , pq. question_type , pq.<br />

is_required , pq. question_text , pqa . text<br />

2 FROM project__questions AS pq LEFT JOIN<br />

project__questions_answers AS pqa ON pq. question_id =<br />

pqa . question_id<br />

3 WHERE pq. project_id = currentProject . ProjectId<br />

Listing 5.2: Fragebogen des Experiments laden<br />

1 mysql > SELECT ed.data_id , ed. data_type , ed.value , ed.<br />

description<br />

2 FROM experiment__data AS ed LEFT JOIN project__base AS<br />

pb ON ed. project_id = pb. project_id<br />

3 WHERE pb. url_name = ’% PROJECT_NAME %’<br />

Listing 5.3: Begriffe und Kategorien laden<br />

47


5. Architektur der <strong>Applikation</strong><br />

Ergebnisse übertragen<br />

Aufgrund der zu knappen Zeit und dem Fokus auf der <strong>Durchführung</strong> <strong>von</strong> <strong>Card</strong>-<br />

<strong>Sorting</strong> Experimenten auf dem Multitouch-Tisch ist diese Funktion noch nicht<br />

umgesetzt. Die Vorbereitungen für das Übertragen der Ergebnisse ist in der <strong>Applikation</strong><br />

berücksichtigt. Somit wird es keine große Schwierigkeit sein, diese Funktion<br />

zu einem späteren Zeitpunkt in die <strong>Applikation</strong> einzufügen.<br />

5.1.2 Projekt laden<br />

Beim Starten der <strong>Applikation</strong> wird ein Objekt der Klasse Project angelegt. Dieses<br />

Objekt enthält alle Daten, die für die <strong>Durchführung</strong> eines Projekts benötigt<br />

werden.<br />

Nach Eingabe eines gültigen Projektnamens im Wizard wird das <strong>Card</strong>-<strong>Sorting</strong>-<br />

Projekt mit den Datenbankabfragen (vgl. Kapitel 5.1.1) durch die Methode Load-<br />

InitialData() geladen. Innerhalb dieser Methode werden private Klassenvariablen<br />

bedatet, die entweder Aussagen über die Projekteigenschaften machen 2 oder<br />

Daten die der Benutzer für die <strong>Durchführung</strong> des Projekts benötigt 3 . Für alle<br />

Variablen stehen schreibgeschützte Eigenschaftsfelder <strong>zur</strong> Verfügung, da diese im<br />

späteren Verlauf entweder <strong>zur</strong> Darstellung oder innerhalb der Programmlogik benötigt<br />

werden, aber nicht verändert werden dürfen.<br />

Des Weiteren werden Listen für die Begriffe (cardItemList), Kategorien (pile-<br />

ItemList) und Fragen (questions) erstellt. Während für die Fragen eine Liste<br />

vom Datentyp List verwendet wird, kommen für Begriffe und Kategorien Listen<br />

vom Datentyp ObservableCollection zum Einsatz. Der Grund ist, dass sich die<br />

beiden Listen während der Laufzeit der <strong>Applikation</strong> verändern und diese Veränderungen<br />

direkt auf der Oberfläche abgebildet werden müssen. Bei offenen <strong>Card</strong>-<br />

<strong>Sorting</strong>-Experimenten werden z.B. die Kategorien erst <strong>zur</strong> Laufzeit erstellt und<br />

die Karten diesen Kategorien zugeordnet. Die zugeordneten Karten müssen anschließend<br />

aus der Liste der Begriffe entfernt werden. Im Gegensatz zu Listen vom<br />

Typ List stellt eine ObservableCollection Benachrichtigungen bereit, die aus-<br />

2 projectId für die Id des Projekts, type legt fest um welche Art <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-Experiment<br />

es sich handelt und multipleInsert zum Bestimmen, ob Begriffe vervielfältigt werden dürfen.<br />

3 welcome ist der String der die Willkommensnachricht enthält, instruction beinhaltet die<br />

Anleitung für das Experiment und thanks repräsentiert die Danksagung am Ende des Experiments.<br />

48


5.1 Geschäftslogik<br />

gelöst werden sobald Elemente hinzugefügt oder entfernt werden. Die Oberfläche<br />

reagiert auf diese Benachrichtigungen und passt diese entsprechend an.<br />

5.1.3 Karten<br />

Karten (Begriffe) werden durch die Klasse <strong>Card</strong>Item repräsentiert. Beim Auslesen<br />

aus der Datenbank wird für jede Karte ein Objekt dieser Klasse erstellt. Das<br />

Objekt erhält eine eindeutige Id, die für die programminterne Datenverarbeitung<br />

genutzt wird. Des Weiteren werden aus der Datenbank neben dem Namen des<br />

Begriffs auch die Beschreibung des Begriffs und die Id, die der Begriff in der Datenbank<br />

besitzt, dem Objekt als Eigenschaft hinzugefügt. Als eindeutige Id für<br />

eine Karte kann die Id aus der Datenbank nicht benutzt werden, da bei duplizierten<br />

Karten diese nicht mehr eindeutig wäre. Das erstellte Objekt wird der<br />

ObservableCollection cardItemList hinzugefügt.<br />

Die Klasse stellt außerdem Variablen <strong>zur</strong> Verfügung, die für die Programmlogik<br />

notwendig sind. Mit der Methode setPosition(Point center, double orientation)<br />

kann die Position und Drehung der Karte auf der Oberfläche festgelegt<br />

werden. Bei Karten die während der <strong>Durchführung</strong> dupliziert werden, wird die<br />

Variable isMultiple<strong>Card</strong> = true gesetzt. Damit wird festgelegt, dass dieses Objekt<br />

bzw. diese Karte gelöscht werden darf.<br />

Auf jede der beschriebenen Variablen lässt sich über ein Eigenschaftsfeld <strong>von</strong> außen<br />

zugreifen. Bis auf das Eigenschaftsfeld IsMultiple<strong>Card</strong> sind diese schreibgeschützt.<br />

5.1.4 Kategorien<br />

Wird ein geschlossenes <strong>Card</strong>-<strong>Sorting</strong>-Experiment geladen, wird nach dem Laden<br />

des Projekts für jede Kategorie ein Objekt der Klasse PileItem erstellt. Dieses<br />

Objekt bekommt beim Erstellen über eine statische Klassenvariable eine eindeutige<br />

Id zugewiesen. Außerdem wird über die Variable text der Name der Kategorie<br />

festgelegt. Wird ein offenes <strong>Card</strong>-<strong>Sorting</strong>-Experiment ausgeführt, werden die Kategorien<br />

erst <strong>zur</strong> Laufzeit angelegt. Bei diesen Kategorien wird der Text auf Bitte<br />

geben Sie einen Namen ein... festgelegt. Damit wird dem Benutzer signalisiert,<br />

dass er die Kategorie benennen muss. Es besteht zwischen offenen und geschlossenen<br />

Experimenten ein weiterer Unterschied. Während in geschlossenen Experimenten<br />

der Name der Kategorie vorgegeben ist und nicht verändert werden darf,<br />

49


5. Architektur der <strong>Applikation</strong><br />

ist dies bei offenen Experimenten erforderlich. Damit innerhalb der Programmlogik<br />

dieser Umstand berücksichtigt wird, muss zusätzlich die Variable isWritable<br />

gesetzt werden. Diese gibt an, ob die Benennung der Kategorie vom Benutzer<br />

verändert werden darf. Jedes Objekt der Klasse PileItem wird der Observable-<br />

Collection pileItemList hinzugefügt.<br />

Optional können Kategorien über die Methode setPilePosition(Point center)<br />

auf der Oberfläche positioniert werden. Dieses ist nötig, wenn z.B. zwei Kategorien<br />

übereinander liegen. In diesem Fall soll eine Kategorie automatisch zu Seite<br />

verschoben werden.<br />

Zum Speichern <strong>von</strong> Karten in <strong>einer</strong> Kategorie besitzt jedes PileItem-Objekt eine<br />

ObservableCollection pile<strong>Card</strong>s. Beim Hinzufügen <strong>einer</strong> Karte in eine Kategorie<br />

wird das Objekt der Karte der Sammlung hinzugefügt.<br />

5.1.5 Interaktionen<br />

In diesem Kapitel wird neben dem Verschieben <strong>von</strong> Elementen auf einem Multitouch-Tisch<br />

das Zeichnen eines Polygons aus Sicht der Programmlogik vorgestellt.<br />

Weitere Interaktionen werden nicht vorgestellt, da es den Rahmen der Arbeit<br />

sprengen würde.<br />

Die Bedienung der Oberflächen-Elemente, die im folgenden Kapitel 5.2 vorgestellt<br />

werden, erfolgt größtenteils durch die Behandlung <strong>von</strong> Events, die <strong>von</strong> diesen<br />

ausgelöst werden. Die Karten müssen zum Teil zwischen verschiedenen Steuerelementen<br />

verschoben werden. Zur Realisierung ist Drag and Drop nötig.<br />

Das Surface SDK 2.0 bietet mit der SurfaceDragDrop Klasse ein eigenständiges<br />

Interface für diese Operationen. Diese Drag and Drop Klasse sorgt im wesentlichen<br />

dafür, dass der Benutzer während der Drag and Drop Phase den Eindruck<br />

bekommt, er würde das Element tatsächlich verschieben. Innerhalb der Anwendung<br />

wird beim Berühren <strong>einer</strong> Karte ein visueller Cursor erstellt, der das Aussehen<br />

des zu verschiebenden Elements einnimmt. Gleichzeitig wird das berührte<br />

Element ausgeblendet. Für den Benutzer sieht es jetzt so aus, als ob er die Karte<br />

unter seinem Finger habe. Die Karte kann jetzt beliebig verschoben werden. Wird<br />

die Karte wieder abgelegt, muss zwischen zwei Fällen unterschieden werden. Wird<br />

die Karte auf dem ursprünglichen Elternelement wieder abgelegt, wird die Position<br />

der ausgeblendeten Karte auf die des Cursors gesetzt und anschließend sichtbar<br />

gemacht. Im zweiten Fall wird das Element auf einem anderen Steuerelement ab-<br />

50


5.2 Präsentationslogik<br />

gelegt. Hier muss dafür gesorgt werden, dass die Daten der Karten dem anderen<br />

Steuerelement hinzugefügt werden und im anderen Steuerelement gelöscht werden.<br />

Eine weitere interessante Funktion ist das Zeichnen <strong>einer</strong> Gruppierung. Durch<br />

Berühren eines beliebigen freien Bereichs auf der Oberfläche, wird ein Grafikobjekt<br />

vom Type Polygon angelegt. Polygone bestehen aus <strong>einer</strong> Sammlung <strong>von</strong> Punkten,<br />

die jeweils durch Linien zwischen den Punkten zu <strong>einer</strong> geschlossenen Form<br />

verbunden werden. Der erste Punkt eines neuen Polygons ist der, der gerade vom<br />

Finger berührt wird. Während der Finger über die Oberfläche wischt, wird durch<br />

ein Event immer wieder die aktuelle Position des Fingers als Punkt der Sammlung<br />

<strong>von</strong> Punkten hinzugefügt. So entsteht ein immer größer werdendes Polygon.<br />

Während des Zeichnen kann es passieren, dass Steuerelemente, die eine höhere<br />

Position in z-Richtung besitzen, die Zeichnung abbrechen lassen. Um dies zu verhindern,<br />

wird während eines Zeichenvorgangs die Möglichkeit des Interagieren mit<br />

diesen Elementen deaktiviert und erst wieder aktiviert, wenn durch Anheben des<br />

Fingers das Zeichnen beendet wird.<br />

5.2 Präsentationslogik<br />

Nachdem im vorherigen Kapitel die Geschäftslogik grob beschrieben wurden, wird<br />

in diesem Kapitel die Präsentationslogik, also der Aufbau der Oberfläche beschrieben.<br />

Die Oberfläche der <strong>Applikation</strong> (vgl. Abbildung 5.2) besteht aus zwei übereinander<br />

liegenden Steuerelementen vom Typ ScatterView, die über die gesamte<br />

Größe der Anwendung gezogen sind. Dieses Steuerelement besitzt ein Container<br />

in dem sich Steuerelemente vom Typ ScatterViewItem befinden. ScatterViewItems<br />

sind auf Multitouch-Interaktionen ausgelegte Steuerelemente. Diese können z.B.<br />

auf der Oberfläche beliebig verschoben oder gedreht werden.<br />

Jede Karte und Kategorie wird jeweils <strong>von</strong> einem ScatterViewItem dargestellt. Das<br />

Anlegen <strong>von</strong> ScatterViewItems wird durch die ObservableCollections cardItem-<br />

List und pileItemList beeinflusst, die über Datenbindung als ItemsSource an<br />

die ScatterViews gebunden werden. Das ist auch der Grund für die Verwendung<br />

<strong>von</strong> zwei übereinander liegenden ScatterViews, da ein ScatterView jeweils nur eine<br />

Liste als Quelle binden kann. Da in beiden Listen unterschiedliche Objekttypen<br />

51


5. Architektur der <strong>Applikation</strong><br />

Abbildung 5.2: Oberfläche <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-MTT<br />

gespeichert werden, ist ein Zusammenlegen nicht möglich.<br />

Außerdem haben Karten und Kategorien ein anderes Design. Dieses Design wird<br />

als DataTemplate über Datenbindung an die ScatterView-Eigenschaft ItemTemplate<br />

gebunden. Das DataTemplate für die Karten besteht aus einem Rechteck<br />

auf dem ein Label platziert ist. Dieses Label stellt den Begriff der Karte dar.<br />

Dagegen ist das DataTemplate für die Kategorien komplexer. Im oberen Bereich<br />

befindet sich eine SurfaceTextBox mit dem Namen der Kategorie. Abhängig vom<br />

Typ des ausgeführten <strong>Card</strong>-<strong>Sorting</strong>-Experiments ist diese Textbox beschreibbar<br />

oder schreibgeschützt. Im unteren Bereich befindet sich eine SurfaceListBox, die<br />

alle Karten enthält, die dieser Kategorie zugeordnet sind.<br />

Das Übereinanderlegen <strong>von</strong> ScatterView Steuerelementen stellt für die Programmlogik<br />

kein Problem dar. Solange Steuerelementen kein Hintergrund zugewiesen<br />

ist, sind diese für die Programmlogik praktisch nicht sichtbar. Das obere<br />

ScatterView dient lediglich dazu, die ScatterViewItems für die Karten darzustellen.<br />

Das untere ScatterView ist neben der Darstellung der Kategorien auch für die<br />

Auswertung <strong>von</strong> Benutzerinteraktionen zuständig. Bei dieser Auswertung können<br />

auch Elemente beeinflusst werden, die durch das obere ScatterView verwaltet werden.<br />

Da die jeweiligen ScatterViewItems einen Hintergrund besitzen, kann auf diese<br />

durch den Anwender auch zugegriffen werden. Der Anwender sieht <strong>von</strong> der Übereinanderlagerung<br />

der Steuerelemente nichts. Für ihn liegen auf der Oberfläche<br />

52


5.2 Präsentationslogik<br />

lediglich Elemente mit Karten und Kategorien, mit denen er interagieren kann.<br />

Zum Bilden <strong>von</strong> Gruppen ist es nötig auf der Oberfläche ein Polygon zu zeichnen.<br />

Das Starten der Zeichnung kann durch ein Event, dass <strong>von</strong> dem unteren<br />

ScatterView ausgelöst wird, gestartet werden. Es ist jedoch nicht möglich, das gezeichnete<br />

Polygon dem ScatterView als Element hinzuzufügen. Hierzu ist ein Steuerelement<br />

vom Type Canvas nötig. Auf Canvas können als Kindelemente beliebige<br />

Grafikobjekte dargestellt werden. Das Canvas wird über den beiden ScatterViews<br />

platziert und besitzt ebenfalls keinen Hintergrund, da keine direkten Interaktionen<br />

mit diesem Steuerelement stattfinden.<br />

53


6 Bedienung der <strong>Applikation</strong><br />

In diesem Kapitel wird die <strong>Durchführung</strong> <strong>von</strong> den aus WeCaSo geladenen <strong>Card</strong>-<br />

<strong>Sorting</strong>-Projekten mit der entwickelten <strong>Applikation</strong> vorgestellt. Es wird erläutert,<br />

wie ein Projekt geladen wird und mit welchen Gesten die einzelnen Aktionen<br />

ausgeführt werden. Die Gesten werden jeweils mit Bildern aus der Anwendung<br />

verdeutlicht. Die roten oder weißen Ovale, die sich auf den Bildern befinden, sind<br />

durch den Microsoft Surface Input Simulator 1 simulierte Finger. Ist der simulierte<br />

Finger rot eingefärbt bedeutet das, dass sich der Finger im direkten Kontakt mit<br />

der Oberfläche befindet. Ist kein direkter Kontakt vorhanden, wird der simulierte<br />

Finger weiß dargestellt.<br />

6.1 Projekt laden<br />

Nach dem Laden des Projekts muss sich der Benutzer die Willkommensnachricht<br />

und Anleitung ansehen und einen Fragebogen ausfüllen. Diese Anforderung ist in<br />

einem Wizard realisiert (vgl. Abbildung 6.1), durch den sich der Benutzer navigieren<br />

muss, um am Ende mit dem <strong>Card</strong>-<strong>Sorting</strong>-Experiment beginnen zu können.<br />

Aufgrund der Verwendung und Kombination <strong>von</strong> unterschiedlichen Steuerelementen<br />

ist die farbliche Kombination <strong>von</strong> Schriftfarbe und Hintergrund teilweise mangelhaft.<br />

Dies sollte im weiteren Verlauf der <strong>Entwicklung</strong> angepasst werden.<br />

Nach dem Starten der <strong>Applikation</strong> wird der Benutzer aufgefordert einen Projektnamen<br />

einzugeben (vgl. Abbildung 6.1(a)). Wie in Kapitel 3.1.2 beschrieben<br />

ist dies der url_name, da dieser das Projekt eindeutig identifiziert. Den Namen<br />

bekommt der Benutzer vom Testleiter genannt. Da an einem Multitouch-Gerät<br />

keine physische Tastatur vorhanden ist, bekommt der Benutzer, sobald der Fokus<br />

in das Textfeld gesetzt ist, eine virtuelle Tastatur angezeigt, über die der Projekt-<br />

1 Online unter http://msdn.microsoft.com/en-us/library/ff727737.aspx, aufgerufen am<br />

12.01.2013<br />

55


6. Bedienung der <strong>Applikation</strong><br />

(a) Projektnamen eingeben<br />

(b) Falscher Projektname eingegeben<br />

(c) Willkommensnachricht<br />

(d) Anleitung<br />

(e) Fragebogen<br />

Abbildung 6.1: Wizard zum Laden eines Projekts<br />

56


6.2 <strong>Durchführung</strong> <strong>von</strong> Experimenten<br />

name eingegeben werden kann.<br />

Nach der Eingabe muss der Benutzer den Button Weiter berühren. Im Hintergrund<br />

werden die Datenbankabfragen ausgeführt (vgl. Listings 5.1 und 5.2). Ist<br />

der Projektname falsch geschrieben bzw. nicht in der Datenbank vorhanden, wird<br />

dem Benutzer eine Fehlermeldung angezeigt (vgl. Abbildung 6.1(b)), dass das<br />

Projekt nicht gefunden werden konnte. Ist der Name korrekt, wird die Willkommensnachricht<br />

des geladenen Projekts angezeigt. Alternativ kann der Benutzer<br />

mit Berühren des Buttons Schließen die Anwendung beenden.<br />

Mit Anzeige der Willkommensnachricht (vgl. Abbildung 6.1(b)) befindet sich<br />

der Benutzer in der eigentlichen Projektumgebung. Ab diesem Punkt wird der<br />

Button Schließen durch den Button Abbrechen ersetzt. Beim Berühren <strong>von</strong> Abbrechen<br />

wird die Ausführung des Projekts abgebrochen. Die Anwendung wird jedoch<br />

nicht geschlossen, sondern der Dialog <strong>zur</strong> Eingabe des Projektnamens wird wieder<br />

angezeigt. Damit kann der Benutzer wählen, ob ein neues Projekt geladen oder<br />

die <strong>Applikation</strong> endgültig geschlossen werden soll.<br />

Mit Berühren des Button Weiter wird die Anleitung angezeigt (vgl. Abbildung<br />

6.1(c)). Ab dieser Seite wird der Button Zurück aktiviert, so dass der Benutzer<br />

sich frei durch die Seiten des Wizards bewegen kann.<br />

Nach Berühren des Buttons Weiter wird der Fragebogen angezeigt (vgl. Abbildung<br />

6.1(d)). Einige der Fragen sind optional, die anderen müssen beantwortet<br />

werden (vgl. Kapitel 3.1.1). Diese Prüfung ist noch nicht implementiert worden,<br />

so dass der Fragebogen praktisch übersprungen werden kann, obwohl Pflichtfragen<br />

vom Anwender nicht beantwortet worden sind. Der Button Weiter wird auf<br />

dieser Seite durch den Button Fertig ersetzt. Nach Berühren des Buttons wird der<br />

Wizard geschlossen und die Karten und Kategorien werden auf der Oberfläche<br />

angezeigt.<br />

6.2 <strong>Durchführung</strong> <strong>von</strong> Experimenten<br />

Die zu einem Projekt gehörenden Karten und im Fall <strong>von</strong> geschlossenen Experimenten<br />

zusätzlich die Kategorien werden zufällig über der Oberfläche verteilt<br />

(vgl. Abbildung 5.2).<br />

57


6. Bedienung der <strong>Applikation</strong><br />

6.2.1 Elemente verschieben<br />

(a) Karte<br />

(b) Kategorie<br />

Abbildung 6.2: Verschieben <strong>von</strong> Karten und Kategorien<br />

Die in Kapitel 4.2.1 und 4.2.6 beschriebenen Gesten zum Verschieben <strong>von</strong> Elementen<br />

sind in dieser Anwendung identisch umgesetzt. Wie in Abbildung 6.2 zu<br />

sehen ist, wird für das Verschieben <strong>einer</strong> Karte ein Finger benötigt und für das<br />

Verschieben eines Stapels zwei Finger. Das ist notwendig, um zu unterscheiden<br />

ob eine Karte in der Kategorie, die <strong>von</strong> einem Finger berührt wird, verschoben<br />

werden soll oder die gesamte Kategorie.<br />

Karten und Kategorien können beliebig auf der Oberfläche verschoben werden.<br />

Wird eine Karten auf <strong>einer</strong> Kategorie abgelegt, so wird diese dort eingefügt. Das<br />

Einfügen <strong>von</strong> Elementen ist in Kapitel 6.2.4 detailliert beschrieben.<br />

6.2.2 Karten<br />

Kopieren<br />

Zum Kopieren <strong>einer</strong> Karte muss der Benutzer diese mit zwei Fingern berühren<br />

(vgl. Abbildung 6.3(a)). Zum Erstellen der Kopie bleibt ein Finger auf der Karte<br />

und mit dem anderen Finger wird die Kopie an die gewünschte Stelle gezogen<br />

(vgl. Abbildung 6.3(b)). Ist die kopierte Karte an der gewünschten Position, können<br />

die Finger die Berührung <strong>von</strong> den Karten lösen und der Kopiervorgang ist<br />

abgeschlossen (vgl. Abbildung 6.3(c)).<br />

Wie in den Abbildungen zu sehen ist, hat die kopierte Karte einen grünen Hintergrund,<br />

während die anderen Karten einen roten Hintergrund haben. Kopierte<br />

58


6.2 <strong>Durchführung</strong> <strong>von</strong> Experimenten<br />

(a) (b) (c)<br />

Abbildung 6.3: Karte kopieren<br />

Karten dürfen im Gegensatz zu den vorhandenen Karten wieder gelöscht werden.<br />

Damit der Benutzer ein direktes visuelles Feedback bekommt, welche Karten gelöscht<br />

werden dürfen, haben die duplizierten Karten einen grünen Hintergrund.<br />

Der rote Hintergrund der übrigen Karten soll dem Benutzer signalisieren, dass<br />

diese nicht gelöscht werden dürfen.<br />

Löschen<br />

Abbildung 6.4: Karte löschen<br />

Zum Löschen <strong>einer</strong> Karte muss diese an einen beliebigen Rand verschoben werden<br />

(vgl. Abbildung 6.4). Verlässt der Finger mit <strong>einer</strong> duplizierten Karte den<br />

äußeren Bereich der Anwendung, wird diese gelöscht. Handelt es sich nicht um<br />

eine duplizierte Karte, wird die Karte am äußeren Rand eingefügt.<br />

Beschreibung eines Begriffs<br />

In WeCoSo-Projekten gibt es die Möglichkeit zu Begriffen eine Beschreibung anzugeben.<br />

Diese Beschreibung ist in dieser <strong>Applikation</strong> mit Hilfe eines Tooltips<br />

realisiert (vgl. Abbildung 6.5).<br />

Tooltips sind aus Desktop-Anwendungen bekannt und werden angezeigt, sobald<br />

59


6. Bedienung der <strong>Applikation</strong><br />

Abbildung 6.5: Einblenden der Beschreibung<br />

der Mauszeiger ein Element berührt. Diese Möglichkeit besteht in <strong>einer</strong> Multitouch-<br />

Anwendung naturgemäß nicht. In dieser <strong>Applikation</strong> wird der Tooltip angezeigt,<br />

wenn die Karte kurz mit einem Finger berührt wird und bleibt anschließend ein<br />

paar Sekunden geöffnet. Dieses Verhalten wird so <strong>von</strong> der <strong>Entwicklung</strong>sumgebung<br />

angeboten und ist aus diesem Grund nicht verändert. Es werden nur Tooltips<br />

angezeigt, wenn die Karte tatsächlich eine Beschreibung hat. Alternativ wäre zu<br />

überlegen, ob bei diesen Karten ein Tooltip angezeigt wird, der dem Benutzer<br />

sagt, dass keine Beschreibung vorhanden ist.<br />

6.2.3 Karten gruppieren<br />

Gruppierung erstellen<br />

Testteilnehmer sortieren die Karten bei einem physischen <strong>Card</strong>-<strong>Sorting</strong> in der Regel<br />

erst grob vor, bevor sie diese den Kategorien zuordnen. Außerdem beeinflusst<br />

ein zu frühes Anlegen <strong>von</strong> benannten Kategorien die Entscheidungsfindung der<br />

Testteilnehmer (vgl. Kapitel 4.2.6).<br />

Diese Punkte sind bei der <strong>Entwicklung</strong> dadurch gelöst, dass der Benutzer, eine<br />

benannte Kategorie nur anlegen kann, wenn er vorher eine Gruppierung gebildet<br />

hat. Optimal wäre die Gruppierung <strong>von</strong> Karten durch das Prinzip der Blasen zu<br />

realisieren (vgl. Kapitel 4.2.6). Wie bereits geschrieben ist der Implementierungsaufwand<br />

sehr hoch und kann im Rahmen dieser Arbeit nicht realisiert werden.<br />

Zum Erstellen <strong>einer</strong> Gruppierung ist die ebenfalls vorgestellte Lasso-Selektion<br />

umgesetzt worden. Zum Starten <strong>einer</strong> Lasso-Selektion berührt der Benutzer einen<br />

nicht durch Karten oder Kategorien verdeckten Bereich der Oberfläche (vgl. Abbildung<br />

6.6(a)). Zum Ziehen des Lassos muss der Finger um die zu gruppierenden<br />

Elemente gezogen werden. Während des Ziehens wird direkt ein Polygon erstellt,<br />

60


6.2 <strong>Durchführung</strong> <strong>von</strong> Experimenten<br />

(a) (b) (c)<br />

Abbildung 6.6: Gruppierung erstellen<br />

dass auf dem Weg, den der Finger <strong>zur</strong>ücklegt, gezeichnet wird (vgl. Abbildung<br />

6.6(b)). Sind alle zu gruppierenden Elemente innerhalb des Polygons kann der<br />

Finger die Oberfläche verlassen. Die Benutzung eines Polygons <strong>zur</strong> Bildung eines<br />

Lassos ist abweichend <strong>von</strong> Wobbrock u.a. [WMW09], die eine Linie um die Elemente<br />

ziehen. Der Vorteil eines Polygons ist jedoch, dass eine direkte Umrandung<br />

gezeichnet wird. Bei der Benutzung <strong>einer</strong> Linie müssen zusätzliche Fehlerbehandlungen<br />

implementiert werden. So muss bedacht werden, was passiert wenn der<br />

Benutzer keinen geschlossenen Kreis zeichnet. Soll die Linie automatisch zu einem<br />

Kreis geschlossen werden oder die Erstellung abgebrochen werden?<br />

Es können beliebig viele Gruppierungen <strong>zur</strong> gleichen Zeit auf der Oberfläche existieren.<br />

Gruppierung verschieben<br />

Das Verschieben <strong>einer</strong> Gruppierung wird nicht, wie am Anfang des Kapitels beschrieben<br />

(vgl. Kapitel 6.2.1), mit zwei Fingern, sondern mit einem Finger durchgeführt.<br />

Dazu muss ein nicht <strong>von</strong> <strong>einer</strong> Karte verdeckter Bereich innerhalb des<br />

Polygons berührt werden. Danach wird das Polygon samt Inhalt an die gewünschte<br />

Position verschoben.<br />

Eine Umsetzung mit zwei Fingern wäre wünschenswert, aber mit der gewählten<br />

Methode nicht möglich, da <strong>zur</strong> Positionsberechnung beide Finger berücksichtigt<br />

werden. Dadurch kommt es zu dem Effekt, dass die Karten wahllos auf der Oberfläche<br />

verstreut werden. Im Zuge der weiteren <strong>Entwicklung</strong> kann hierfür ein anderer<br />

Weg eingeschlagen werden, der jedoch aufgrund der Zeitknappheit nicht mehr<br />

realisiert ist.<br />

61


6. Bedienung der <strong>Applikation</strong><br />

Gruppierung löschen<br />

Durch das veränderte Verhalten beim Verschieben <strong>einer</strong> Gruppierung kann die<br />

geplante Wischgeste nicht wie beschrieben umgesetzt werden (vgl. Kapitel 4.2.6).<br />

Wischt man mit einem Finger über die Gruppierung, wird diese verschoben.<br />

Die Geste zum Löschen <strong>einer</strong> Gruppierung ist daraufhin in eine Schüttelgeste<br />

umgewandelt worden. Der Anwender muss die Gruppierung innerhalb <strong>einer</strong> kurzen<br />

Zeitspanne je zweimal nach links und rechts bewegen. Ist das geschehen, wird das<br />

Polygon, das die Gruppierung darstellt, gelöscht. Diese Geste ist für den Anwender<br />

aufgrund des visuellen Feedbacks verständlich und leicht zu merken.<br />

6.2.4 Kategorien<br />

Sofern es sich um ein offenes <strong>Card</strong>-<strong>Sorting</strong>-Experiment handelt, werden aus den<br />

gezeichneten Gruppierungen Kategorien erstellt. Im Gegensatz dazu werden bei einem<br />

geschlossenem Experiment die Kategorien direkt angezeigt und müssen nicht<br />

erstellt werden. Es stellt sich natürlich unweigerlich die Frage, wieso hier dieses<br />

zweistufige Verfahren gewählt ist.<br />

Der Benutzer soll sich beim offenen <strong>Card</strong>-<strong>Sorting</strong> nur darauf konzentrieren, die<br />

Karten sinnvoll zu gruppieren und sich nicht durch voreiliges Benennen selbst<br />

irritieren lassen. Ein weiterer Grund ist, dass es möglich sein soll, die Gruppierungen<br />

zusammenzufügen. Wären beide Gruppen benannt, wäre nicht klar, welche<br />

Benennung übernommen werden soll.<br />

Im Fall des geschlossenen <strong>Card</strong>-<strong>Sorting</strong>s kommt hinzu, dass zu Anfang Begriffe<br />

nicht <strong>einer</strong> Kategorie direkt zugeordnet werden brauchen und als Gruppe zwischengelagert<br />

werden können.<br />

Kategorie erstellen<br />

Das hier vorgestellte Szenario ist nur in offenen <strong>Card</strong>-<strong>Sorting</strong>-Experimenten durchführbar.<br />

In geschlossenen <strong>Card</strong>-<strong>Sorting</strong>s ist das Erstellen <strong>einer</strong> Kategorie aus <strong>einer</strong><br />

Gruppe gesperrt.<br />

Abbildung 6.7 zeigt das Erstellen <strong>einer</strong> Kategorie. Der Benutzer führt auf der<br />

Gruppierung zwei Berührungen kurz hintereinander aus 2 . Die graphische Gruppierung<br />

wird daraufhin gelöscht und die Karten in eine unbenannte Kategorie<br />

2 Analog zum Doppelklick in Desktop-Systemen.<br />

62


6.2 <strong>Durchführung</strong> <strong>von</strong> Experimenten<br />

(a)<br />

(b)<br />

Abbildung 6.7: Kategorie erstellen<br />

Abbildung 6.8: Kategorie benennen<br />

überführt. Der Benutzer hat nach dem Erstellen der Kategorie über die virtuelle<br />

Tastatur einen Namen einzugeben (vgl. Abbildung 6.8). Im Moment ist noch<br />

keine Fehlerbehandlung implementiert, die überprüft, ob eine Kategorie am Ende<br />

<strong>einer</strong> <strong>Durchführung</strong> wirklich benannt wurde. Dies wäre im weiteren Verlauf der<br />

<strong>Entwicklung</strong> wünschenswert.<br />

Der Benutzer hat in offenen <strong>Card</strong>-<strong>Sorting</strong>-Experimenten jederzeit die Möglichkeit<br />

den Namen der Kategorie zu ändern.<br />

Karten hinzufügen<br />

Gerade bei geschlossenen <strong>Card</strong>-<strong>Sorting</strong>-Experimenten muss die Möglichkeit bestehen,<br />

Karten <strong>einer</strong> Kategorie hinzuzufügen. Die Größe eine Kategorie ist zu<br />

Anfang relativ klein gewählt. Das soll verhindern, dass unnötig Platz verbraucht<br />

wird. Werden mehr als zwei Elemente hinzugefügt, wird die Kategorie beim Hinzufügen<br />

weiterer Karten in der Höhe angepasst.<br />

63


6. Bedienung der <strong>Applikation</strong><br />

Es gibt mehrere Möglichkeiten, Karten den Kategorien hinzuzufügen. Zum einen<br />

(a)<br />

(b)<br />

(c)<br />

(d)<br />

Abbildung 6.9: Einzelne Karte zu <strong>einer</strong> Kategorie hinzufügen<br />

können einzelne Karten den Kategorien hinzugefügt werden. Hierbei gibt es zwei<br />

unterschiedliche Szenarien. Wird die Karte an <strong>einer</strong> Stelle auf der Kategorie abgelegt,<br />

an der sich nicht bereits eine Karte befindet, wird diese am Ende der Liste<br />

eingefügt (vgl. Abbildungen 6.9(a) und 6.9(b)). Wird die Karte dagegen auf <strong>einer</strong><br />

bereits in der Kategorie befindlichen Karte abgelegt, wird die vorhandene und alle<br />

folgenden Karten um eine Stelle nach unten verschoben und dafür die neue Karte<br />

eingefügt (vgl. Abbildungen 6.9(c) und 6.9(d)).<br />

Sollen Karten die in <strong>einer</strong> Gruppe zusammengefasst sind, <strong>einer</strong> vorhandenen Kategorie<br />

hinzugefügt werden, wird die Gruppe auf eine Kategorie geschoben (vgl.<br />

Abbildung 6.10(a)). Anschließend wird die Gruppierung gelöscht und die enthaltenen<br />

Karten an das Ende der Liste in der Kategorie hinzugefügt (vgl. Abbildung<br />

6.10(b)). Wichtig dabei ist das sich der Finger beim Aufheben der Berührung auf<br />

64


6.2 <strong>Durchführung</strong> <strong>von</strong> Experimenten<br />

(a)<br />

(b)<br />

Abbildung 6.10: Gruppierung zu <strong>einer</strong> Kategorie hinzufügen<br />

der Kategorie befindet. Wäre der Bereich der Gruppierung dafür verwendet worden,<br />

hätte es passieren können, dass eine (größere) Gruppierung zwei Kategorien<br />

überdeckt und somit nicht klar gelöst werden kann, welcher Kategorie die Karten<br />

hinzugefügt werden sollen.<br />

(a)<br />

(b)<br />

Abbildung 6.11: Karten durch Lasso-Selektion <strong>einer</strong> Kategorie hinzufügen<br />

Sollte ein Benutzer Karten erst grob in der Nähe <strong>einer</strong> Kategorie vorsortieren,<br />

um diese anschließend der Kategorie hinzuzufügen, kann das Einfügen direkt<br />

durch die Lasso-Selektion erledigt werden. Dazu umschließt der Benutzer nicht nur<br />

die Karten, die verschoben werden sollen, sondern auch die Kategorie, in der die<br />

Karten eingefügt werden sollen (vgl. Abbildung 6.11(a)). Nachdem das Erstellen<br />

der Gruppierung abgeschlossen ist, werden die Karten der Kategorie hinzugefügt<br />

und der Gruppierungsrahmen direkt gelöscht (vgl. Abbildung 6.11(b)).<br />

65


6. Bedienung der <strong>Applikation</strong><br />

Karten entfernen<br />

Genauso wie eine Karte <strong>einer</strong> Kategorie hinzugefügt wird, kann diese auch wieder<br />

entfernt werden. Beim Entfernen <strong>einer</strong> Karte wird nach dem Ablegen der Karte<br />

an <strong>einer</strong> anderen Position die Liste so angepasst, dass keine Lücken entstehen.<br />

Außerdem wird die Höhe der Kategorie verkl<strong>einer</strong>t.<br />

Ist bei einem offenem <strong>Card</strong>-<strong>Sorting</strong> die letzte Karte aus <strong>einer</strong> Kategorie entfernt,<br />

wird die komplette Kategorie entfernt.<br />

6.3 Experiment beenden<br />

Abbildung 6.12: Experiment beenden<br />

Zum Beenden eines Experiments muss der Benutzer die Oberfläche im oberen<br />

Bereich berühren und den Finger nach unten ziehen. Hat der Finger den unteren<br />

Rand erreicht, wird ein Dialog angezeigt (vgl. Abbildung 6.12). Dieser enthält die<br />

Danksagung aus dem WeCaSo-Projekt und die Frage, ob das Experiment wirklich<br />

geschlossen werden soll. Wird die Frage verneint, wird der Dialog wieder geschlossen<br />

und der Benutzer kann das Experiment weiter ausführen. Bestätigt er die<br />

66


6.3 Experiment beenden<br />

Frage, wird die Anwendung geschlossen.<br />

Zu diesem Zeitpunkt sollte eine Fehlerprüfung stattfinden, ob alle Karten zugeordnet<br />

worden sind und alle Kategorien einen Namen haben. Sollte es zu Fehlern<br />

kommen, sind dem Benutzer diese anzuzeigen. Außerdem sollten bei erfolgreicher<br />

Prüfung die Ergebnisse in der Datenbank gespeichert werden. Beide Punkte sind<br />

noch nicht umgesetzt und müssten im Rahmen der Weiterentwicklung realisiert<br />

werden.<br />

67


7 Zusammenfassung und Ausblick<br />

7.1 Zusammenfassung<br />

Diese Arbeit beschäftigt sich mit der Implementierung <strong>einer</strong> <strong>Applikation</strong> <strong>zur</strong> <strong>Durchführung</strong><br />

<strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-Experimenten.<br />

Zu Anfang der Arbeit wird untersucht, ob eine solche Multitouch-Anwendung<br />

einen Mehrwert für Testleiter und Testteilnehmer hat. Dies ist u. a. durch die Arbeit<br />

<strong>von</strong> North u.a. [NDL + 09] bestätigt. Die reine <strong>Durchführung</strong>szeit <strong>von</strong> <strong>Card</strong>-<br />

<strong>Sorting</strong>-Experimenten wird auf dem Multitouch-Tisch zwar höher sein als auf<br />

einem physischen Tisch, jedoch schneller als eine Anwendung an einem Desktop-<br />

Computer. Es ist weiter festgestellt worden, dass viele Nachteile, die das klassische<br />

<strong>Card</strong>-<strong>Sorting</strong> und die computergestützten <strong>Card</strong>-<strong>Sorting</strong>-Anwendung haben mit <strong>einer</strong><br />

Multitouch-Anwendung beseitigt werden können.<br />

Im nächsten Schritt ist untersucht worden, für welche Aktionen in einem <strong>Card</strong>-<br />

<strong>Sorting</strong>-Experiment Gesten benötigt werden. Durch Untersuchung verschiedener<br />

Wissenschaftlicher Arbeiten sind für jede Aktion verschiedene Gesten identifiziert<br />

worden. Diese Gesten sind auf Vor- und Nachteile und Umsetzbarkeit für die<br />

Anwendung untersucht worden. Im Ergebnis ist für jede Aktion eine Geste entstanden,<br />

<strong>von</strong> der anzunehmen ist, dass sie <strong>von</strong> Benutzern schnell erlernt werden<br />

kann. Dazu ist es wichtig, dass die Gesten den Benutzern während der Interaktion<br />

ein visuelles Feedback geben, leicht zu merken sind und eine Assoziation <strong>zur</strong><br />

physischen Welt hergestellt werden kann.<br />

Der Großteil der identifizierten Gesten ist in die Anwendung mit eingeflossen.<br />

Die Anwendung kann <strong>Card</strong>-<strong>Sorting</strong>-Projekte aus der Datenbank <strong>von</strong> WeCaSo laden.<br />

Es können offene und geschlossene Experimente durchgeführt werden. Eine<br />

Übertragung der Ergebnisse ist noch nicht möglich, soll aber zu einem späteren<br />

69


7. Zusammenfassung und Ausblick<br />

Zeitpunkt umgesetzt werden.<br />

Insgesamt steht mit dieser Anwendung eine gute Alternative zum klassischen und<br />

desktopbasierten <strong>Card</strong>-<strong>Sorting</strong> <strong>zur</strong> Verfügung. Viele Vorteile der beiden Varianten<br />

sind in dieser <strong>Applikation</strong> zusammengefasst worden und viele Nachteile existieren<br />

nicht mehr. So ist der administrative Aufwand für den Testleiter geringer als<br />

auf einem klassischen <strong>Card</strong>-<strong>Sorting</strong>. Für den Testteilnehmer ist diese <strong>Applikation</strong><br />

leichter zu verstehen und durchzuführen, als ein desktop-basiertes <strong>Card</strong>-<strong>Sorting</strong>-<br />

Programm.<br />

7.2 Ausblick<br />

Mit dieser <strong>Applikation</strong> ist ein erster Schritt zu einem <strong>Card</strong>-<strong>Sorting</strong> auf Multitouch-<br />

Tischen gemacht worden. Es fehlt allerdings noch das hierarchische Einfügen <strong>von</strong><br />

Karten und das Reverse-<strong>Card</strong>-<strong>Sorting</strong>, welche im weiteren Verlauf der <strong>Entwicklung</strong><br />

umgesetzt werden sollten.<br />

Es sind aber auch technische Aspekte zu verbessern. Der Pfad zu der Datenbank<br />

und die Anmeldedaten sind in der Anwendung hart kodiert und können nicht ohne<br />

Weiteres verändert werden. Hier ist zu überlegen, ob man auf eine Konfigurationsdatei<br />

<strong>zur</strong>ückgreift oder einen Administrationsbereich einrichten sollte.<br />

Die direkten Zugriffe auf die Datenbank sind kritisch. Eine Änderung der Datenbankstruktur<br />

kann dazu führen, dass die Anwendung nicht mehr ausgeführt<br />

werden kann. Es wäre wünschenswert wenn WeCaSo eine Schnittstelle <strong>zur</strong> Verfügung<br />

stellen würde, auf die ohne Gefahr <strong>einer</strong> Änderung der Datenbank zugegriffen<br />

werden könnte.<br />

Weiter ist es nötig noch mehr Fehlerbehandlungen in die Anwendung einzubauen.<br />

So wird nicht geprüft, ob notwendige Fragen im Fragebogen beantwortet sind<br />

oder alle Kategorien einen Namen bekommen. Weiter wird nicht überprüft, ob<br />

alle Karten zugeordnet worden sind.<br />

Das Zurückspielen der Ergebnisse in die Datenbank ist elementarer Bestandteil<br />

der Anwendung und wird in Absprache mit der Arbeitsgruppe zeitnah implementiert.<br />

70


Anhang A<br />

A.1 Inhalt der CD-Rom<br />

• Ausarbeitung als PDF: Ausarbeitung.pdf<br />

• Quellen der Ausarbeitung: Benutzte Arbeiten<br />

• <strong>Applikation</strong> <strong>Card</strong><strong>Sorting</strong>MTT: <strong>Card</strong><strong>Sorting</strong>MTT\<strong>Card</strong><strong>Sorting</strong>MTT.exe<br />

• Quellcode <strong>von</strong> <strong>Card</strong><strong>Sorting</strong>MTT: <strong>Card</strong><strong>Sorting</strong>MTT_Quellcode.rar<br />

• MySQL-Dump: Sonstiges\cardsort.sql<br />

• WeCaSo-Webservice: Sonstiges\wecaso.zip<br />

• XAMPP: Sonstiges\xampp-win32-1.8.0-VC9-installer.exe<br />

• Multitouch-Vista: Sonstiges\MultiTouchVista.zip<br />

A.2 Voraussetzungen zum Ausführen der<br />

<strong>Applikation</strong><br />

Zum Ausführen der <strong>Applikation</strong> wird Visual Studio 2010 benötigt, da es sonst zu<br />

ungeklärten Abstürzen der <strong>Applikation</strong> kommt. Außerdem muss für den Zugriff<br />

auf die Datenbank <strong>von</strong> WeCaSo die Serversoftware XAMPP 1.7.4 oder neuer installiert<br />

sein 1 .<br />

Im folgenden wird die Einrichtung <strong>von</strong> WeCaSo und die Konfiguration des virtuellen<br />

Touch-Devices MultiTouch-Vista beschrieben.<br />

1 Version 1.8.0 befindet sich auf der CD<br />

71


A.<br />

A.2.1 Installation <strong>von</strong> WeCaSo<br />

MySQL<br />

1. XAMPP öffnen und den Apache und MySQL Server starten.<br />

2. Im Webbrowser http://localhost/phpmyadmin aufrufen.<br />

3. Im Reiter User einen neuen Benutzer mit folgenden Daten anlegen:<br />

• User name: cardsort<br />

• Password: 1122<br />

• Host: local<br />

• Die Checkbox im Abschnitt Database for user auf Create database with<br />

same name and grant all privileges setzen.<br />

4. In die erstellte Datenbank cardsort wechseln und über den Reiter Import<br />

den SQL-Dump cardsort.sql <strong>von</strong> der CD importieren.<br />

In der Dump-Datei sind bereits vier Demo-Projekte enthalten:<br />

DemoOffen ein offenes <strong>Card</strong>-<strong>Sorting</strong>-Experiment<br />

DemoOffenMulti ein offenes <strong>Card</strong>-<strong>Sorting</strong>-Experiment mit Multiple-Insert<br />

DemoGeschlossen ein geschlossenes <strong>Card</strong>-<strong>Sorting</strong>-Experiment<br />

DemoGeschlossenMulti ein geschlossenes <strong>Card</strong>-<strong>Sorting</strong>-Experiment mit Multiple-<br />

Insert<br />

Diese Schritte sind ausreichend, um die vier Demo Projekte auszuführen. Sollen<br />

eigene Projekte erstellt werden, ist es erforderlich den WeCaSo-Webservice ein<strong>zur</strong>ichten.<br />

WeCaSo-Webservice<br />

1. Den Apache und MySQL Server stoppen<br />

2. Im Installationsverzeichnis <strong>von</strong> XAMPP 2 in den Ordner apache\conf\extra<br />

wechseln und in die Datei httpd-vhosts.conf folgenden Zeilen einfügen.<br />

2 Bei der Standardinstallation C:\xampp<br />

72


A.2 Voraussetzungen zum Ausführen der <strong>Applikation</strong><br />

1 < VirtualHost *:80 ><br />

2 DocumentRoot C:/ xampp / htdocs /<br />

3 ServerName localhost<br />

4 <br />

5<br />

6 < VirtualHost *:80 ><br />

7 DocumentRoot C:/ xampp / htdocs / wecaso_de /<br />

public /<br />

8 ServerName cardsort . localhost<br />

9 <br />

3. Die Datei wecaso_de.zip <strong>von</strong> der CD in den Ordner htdocs des XAMPP<br />

Installationsverzeichnisses entpacken.<br />

4. Den Apache und MySQL Server starten.<br />

Über die Adresse http://cardsort.localhost kann WeCaSo aufgerufen werden.<br />

Sollte es zu einem Fehler beim öffnen der Seite kommen, muss die Subdomain<br />

in die Datei C:\Windows\System32\drivers\etc\hosts eingetragen werden und<br />

der Computer muss im Anschluss neugestartet werden. Die host Datei sollte wie<br />

folgt aussehen:<br />

1 127.0.0.1 localhost<br />

2 127.0.0.1 cardsort . localhost<br />

Nach Aufruf der Seite kann man sich als neuer Benutzer registrieren und anschließend<br />

neue <strong>Card</strong>-<strong>Sorting</strong>-Projekte anlegen.<br />

A.2.2 Virtuelles Touch-Device<br />

Die <strong>Applikation</strong> kann ebenfalls auf einem Desktop-Computer ausgeführt werden.<br />

Hierfür wird die Anwendung Multi-Touch Vista <strong>von</strong> der CD benötigt. Nach Konfigurieren<br />

dieser Anwendung wird jede angeschlossene Maus zu einem eigenständigen<br />

Zeigergerät. Die folgende Konfigurationsanleitung ist <strong>von</strong> radar-touch.com<br />

[Rad] übernommen.<br />

1. Das Archiv in einen beliebigen Ordner entpacken.<br />

73


A.<br />

2. Im Startmenü <strong>zur</strong> Eingabeaufforderung navigieren 3 und über das Kontextmenü<br />

Als Administrator ausführen auswählen.<br />

3. Mit der Eingabeaufforderung in das Multi-Touch Vista Verzeichnis wechseln<br />

und <strong>von</strong> dort weiter in das Verzeichnis Driver.<br />

4. Von dort „Install Driver.cmd“ ausführen.<br />

5. Nach erfolgreicher Installation über die Systemsteuerung den Geräte-Manager<br />

öffnen.<br />

6. Das Gerät Eingabegeräte → UniversalSoftwareHIDdevice deaktivieren<br />

und direkt wieder aktivieren.<br />

7. In der Systemsteuerung Stift- und Fingereingabe öffnen und im Reiter Fingereingabe<br />

diese aktivieren, sofern dies noch nicht automatisch geschehen<br />

ist.<br />

8. In den Multi-Touch Vista Ordner wechseln und folgende Dateien ausführen:<br />

a) Multitouch.Service.Console.exe<br />

b) Multitouch.Driver.Console.exe<br />

c) Multitouch.Configuration.WPF.exe<br />

9. Im Dialog Multitouch configuration das Gerät MultipleMice aktivieren. Auf<br />

den Button Configure device klicken und im Dialog den Haken setzen. Den<br />

Dialog mit Ok schließen.<br />

10. Die in Punkt 8 gestarteten Dateien schließen.<br />

Ab jetzt können durch Starten <strong>von</strong> Multitouch.Driver.Console.exe und Multtouch.Service.Console.exe<br />

die virtuellen Zeigergeräte aktiviert werden. Für<br />

die <strong>Durchführung</strong> der <strong>Applikation</strong> werden zwei Mäuse benötigt.<br />

3 In Windows 7: Start → AlleP rogramme → Zubehör<br />

74


Literatur<br />

[ASLG06] Aliakseyeu, Dzmitry, Sriram Subramanian, Andrés Lucero<br />

und Carl Gutwin: Interacting with piles of artifacts on digital tables.<br />

In: Proceedings of the working conference on Advanced visual<br />

interfaces, AVI ’06, Seiten 159–162, New York, NY, USA, 2006. ACM.<br />

[BKH09]<br />

[Bux07]<br />

[Emm08]<br />

[FHD09]<br />

Burmester, Prof. Dr. Michael, Franz Koller und Christine<br />

Höflacher: Touch it, move it, scale it - Multitouch. Technischer<br />

Bericht, Hochschule der Medien Stuttgart, 2009.<br />

Buxton, Bill: Multi-Touch Systems that I Have Known and Loved.<br />

online unter: http://www.billbuxton.com/multitouchOverview.<br />

html, aufgerufen am 26.12.2012, 2007.<br />

Emmrich, Sebastian: Casolysis: Entwurf und Implementierung eines<br />

Werkzeugs <strong>zur</strong> Analyse <strong>von</strong> <strong>Card</strong>-<strong>Sorting</strong>-Experimenten. Bachelorarbeit,<br />

Universität Paderborn, 2008.<br />

Frisch, Mathias, Jens Heydekorn und Raimund Dachselt: Investigating<br />

multi-touch and pen gestures for diagram editing on interactive<br />

surfaces. In: Proceedings of the ACM International Conference<br />

on Interactive Tabletops and Surfaces, ITS ’09, Seiten 149–156, New<br />

York, NY, USA, 2009. ACM.<br />

[FSHC11] Fuentes, Salvador, J. Alfredo Sánchez, Osvaldo Huerta<br />

und Ofelia Cervantes: InnovaTouch: a multi-touch framework to<br />

support gesture recognition for innovation activities. In: Proceedings<br />

of the Companion Proceedings of the 10th Brazilian Symposium on<br />

Human Factors in Computing Systems and the 5th Latin American<br />

Conference on Human-Computer Interaction, IHC+CLIHC ’11, Seiten<br />

12–13, Porto Alegre, Brazil, Brazil, 2011. Brazilian Computer Society.<br />

75


Literatur<br />

[GHR12]<br />

Geyer, Florian, Anita Höchtl und Harald Reiterer: Harnessing<br />

the benefits of bimanual and multi-finger input for supporting grouping<br />

tasks on interactive tabletops. In: Proceedings of the 7th Nordic<br />

Conference on Human-Computer Interaction: Making Sense Through<br />

Design, NordiCHI ’12, Seiten 496–499, New York, NY, USA, 2012.<br />

ACM.<br />

[Kuh12]<br />

Kuhn, Jasmin: <strong>Entwicklung</strong> eines Leitfadens zum Praxiseinsatz innovativer<br />

<strong>Card</strong> <strong>Sorting</strong> Werkzeuge. Bachelorarbeit, Universität Paderborn,<br />

2012.<br />

[Mica]<br />

Einführung in WPF. Webseite. Online unter msdn.microsoft.com/<br />

de-de/library/vstudio/aa970268(v=vs.100).aspx, aufgerufen am<br />

31.12.2012.<br />

[Micb] Erste Einblicke in Windows - Schließen <strong>einer</strong> App, Herunterfahren<br />

des PCs und vieles mehr. Webseite. Online<br />

unter http://windows.microsoft.com/de-DE/windows-8/<br />

settings-search-shutdown-basics#1TC=t1, aufgerufen am<br />

26.12.2012.<br />

[NDL + 09] North, Chris, Tim Dwyer, Bongshin Lee, Danyel Fisher, Petra<br />

Isenberg, George Robertson und Kori Inkpen: Understanding<br />

Multi-touch Manipulation for Surface Computing. Technischer<br />

Bericht, Berlin, Heidelberg, 2009.<br />

[Rad]<br />

A short manual how to install Multitouch Vista. Webseite. Online unter<br />

http://ck174.server2.raumopol.de/wordpress/wp-content/<br />

uploads/2012/05/Install-Multitouch-Vista220512.pdf, aufgerufen<br />

am 17.01.2013.<br />

[SHL + 12]<br />

Spath, Dieter, Anette Weisbecker (Hrsg.), Uwe Laufs,<br />

Micha Block, Jasmin Link, Antonino Ardilio, Andreas<br />

Schuller und Janina Bierkandt: Multi-Touch - Technologie,<br />

Hard-/Software und deren Anwendungsszenarien. Technischer Bericht,<br />

Fraunhofer IAO, Stuttgart, 2012.<br />

76


Literatur<br />

[SW04]<br />

[Vdo08]<br />

Spencer, Donna und Todd Warfel: <strong>Card</strong> sorting: a definitive<br />

guide. online unter: http://www.boxesandarrows.com/view/card_<br />

sorting_a_definitive_guide, aufgerufen am 26.12.2012, 2004.<br />

Vdovkin, Andreas: <strong>Entwicklung</strong> <strong>einer</strong> webbasierten <strong>Card</strong> <strong>Sorting</strong><br />

<strong>Applikation</strong>. Bachelorarbeit, Universität Paderborn, 2008.<br />

[WMW09] Wobbrock, Jacob O., Meredith Ringel Morris und Andrew<br />

D. Wilson: User-defined gestures for surface computing. In:<br />

Proceedings of the SIGCHI Conference on Human Factors in Computing<br />

Systems, CHI ’09, Seiten 1083–1092, New York, NY, USA, 2009.<br />

ACM.<br />

[WSR + 06] Wu, Mike, Chia Shen, Kathy Ryall, Clifton Forlines und<br />

Ravin Balakrishnan: Gesture Registration, Relaxation, and Reuse<br />

for Multi-Point Direct-Touch Surfaces. In: Proceedings of the<br />

First IEEE International Workshop on Horizontal Interactive Human-<br />

Computer Systems, TABLETOP ’06, Seiten 185–192, Washington,<br />

DC, USA, 2006. IEEE Computer Society.<br />

[WWI07]<br />

Watanabe, Nayuko, Motoi Washida und Takeo Igarashi: Bubble<br />

clusters: an interface for manipulating spatial aggregation of graphical<br />

objects. In: Proceedings of the 20th annual ACM symposium on<br />

User interface software and technology, UIST ’07, Seiten 173–182, New<br />

York, NY, USA, 2007. ACM.<br />

77

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!