Usability-Design
Die Benutzerfreundlichkeit einer Anwendung wird im Wesentlichen vom Benutzer bestimmt. Schnittstellendesign ist ein iterativer Prozess; beim Entwerfen einer Schnittstelle für eine Anwendung ist es selten, gleich im ersten Schritt eine perfekte Schnittstelle zu erhalten. Je früher Benutzer in den Designprozess einbezogen werden, desto weniger Aufwand ist erforderlich, um eine bessere, benutzerfreundlichere Benutzeroberfläche zu erstellen.
Was ist eine gute Schnittstelle?
Wenn Sie eine Benutzeroberfläche entwerfen, ist es eine gute Idee, sich zunächst einige der meistverkauften Anwendungen von Microsoft oder anderen Unternehmen anzusehen. Schließlich verkauft sich eine App mit einer schlechten Benutzeroberfläche nicht gut. Sie finden viele gängige Dinge wie Symbolleisten, Statusleisten, Tooltips, Kontextmenüs und Markup-Dialoge. Es ist kein Zufall, dass Visual Basic die Möglichkeit bietet, all diese Dinge zu einer Anwendung hinzuzufügen.
Sie können sich auch auf Ihre eigene Erfahrung im Umgang mit der Software verlassen. Denken Sie über einige Anwendungen nach, die Sie verwendet haben, was funktioniert hat, was nicht und wie Sie es ändern könnten. Denken Sie jedoch daran, dass persönliche Vorlieben nicht gleich Benutzerpräferenzen sind und Sie Ihre eigene Meinung mit der der Benutzer in Einklang bringen müssen.
Beachten Sie außerdem, dass die meisten erfolgreichen Anwendungen Optionen bieten, um unterschiedlichen Benutzerpräferenzen gerecht zu werden. Mit Microsoft Windows Explorer können Benutzer beispielsweise Dateien über Menüs, Tastaturbefehle oder Drag-and-Drop kopieren. Die Bereitstellung von Optionen erhöht die Attraktivität der Anwendung und sollte zumindest den Zugriff auf alle Funktionen per Maus und Tastatur ermöglichen.
Richtlinien zur Windows-Schnittstelle
Der Hauptvorteil des Windows-Betriebssystems besteht darin, dass es eine gemeinsame Schnittstelle für alle Anwendungen bietet. Benutzer, die wissen, wie man Windows-basierte Anwendungen verwendet, können leicht lernen, andere Anwendungen zu verwenden. Anwendungen, die zu weit von den etablierten Schnittstellenrichtlinien abweichen, sind schwer nachvollziehbar.
Menüs sind ein gutes Beispiel dafür – die meisten Windows-basierten Anwendungen folgen diesem Standard: das Menü „Datei“ ganz links, dann „Bearbeiten“, „Extras“ und andere optionale Menüs und das Menü „Datei“ ganz rechts .Hilfe"-Menü. Wenn Dokumente besser wären als Dateien oder das Hilfemenü an erster Stelle stehen sollte, wäre es eine Diskussion wert. Nichts hindert Sie daran, dies zu tun, aber dies kann Benutzer verwirren und die Benutzerfreundlichkeit Ihrer Anwendung beeinträchtigen. Benutzer müssen jedes Mal innehalten und nachdenken, wenn sie zwischen Apps und anderen Programmen wechseln.
Auch die Position der Untermenüs ist wichtig. Benutzer erwarten, dass sie im Menü „Bearbeiten“ Untermenüs wie „Kopieren“, „Ausschneiden“ und „Einfügen“ finden. Wenn sie jedoch in das Menü „Datei“ verschoben werden, führt dies zu Verwirrung bei den Benutzern. Weichen Sie nicht zu weit von den erstellten Richtlinien ab, es sei denn, es gibt einen guten Grund dafür.
Usability-Tests
Der beste Weg, die Benutzerfreundlichkeit Ihrer Benutzeroberfläche zu testen, besteht darin, Benutzer während des gesamten Designprozesses einzubeziehen. Unabhängig davon, ob Sie eine große, komprimierte Anwendung oder eine kleine Anwendung mit eingeschränkter Nutzung entwerfen, sollte der Entwurfsprozess genau derselbe sein. Anhand der erstellten Designrichtlinien sollte das Interface-Design auf dem Papier beginnen.
Der nächste Schritt besteht darin, einen oder mehrere Prototypen zu erstellen und das Formular in Visual Basic zu entwerfen. Sie müssen noch genügend Code hinzufügen, um den Prototyp starten zu können: Formular anzeigen, Listenfeld mit Beispieldaten füllen und so weiter. Bereiten Sie sich dann auf den Usability-Test vor.
Usability-Tests können ein informeller Prozess zur Überprüfung des Designs mit Benutzern sein, oder es kann sich um einen formellen Prozess in einem erstellten Usability-Labor handeln. Der Zweck beider Methoden ist derselbe: von den Anwendern aus erster Hand zu erfahren, was gut funktioniert und was verbessert werden muss. Lassen Sie los, lassen Sie die Benutzer bei der Anwendung sein und beobachten Sie sie; dieser Ansatz ist effektiver, als Benutzer zu fragen. Bitten Sie Benutzer, ihren Denkprozess auszudrücken, während sie versuchen, eine Reihe von Aufgaben zu erledigen: „Ich möchte ein neues Dokument öffnen, also suche ich im Menü „Datei“ danach.“ Beachten Sie, dass das Interface-Design ihren Denkprozess nicht widerspiegelt. Testen Sie mit verschiedenen Benutzertypen. Wenn Sie feststellen, dass Benutzer Schwierigkeiten beim Erledigen einer bestimmten Aufgabe haben, erfordert diese Aufgabe möglicherweise mehr Aufmerksamkeit.
Überprüfen Sie als Nächstes die Datensätze und überlegen Sie, wie Sie die Schnittstelle ändern können, um sie benutzerfreundlicher zu machen. Ändern Sie die Schnittstelle und testen Sie sie erneut. Sobald Sie mit der Benutzerfreundlichkeit der Anwendung zufrieden sind, können Sie mit dem Codieren beginnen. Während des Entwicklungsprozesses sind von Zeit zu Zeit auch Tests erforderlich, um sicherzustellen, dass die Annahmen über den Prototyp korrekt sind.
Auffindbarkeit von Funktionen
Ein Schlüsselkonzept beim Usability-Testen ist die Auffindbarkeit. Wenn Benutzer nicht herausfinden können, wie eine Funktion verwendet wird (oder nicht einmal wissen, dass sie existiert), ist es unwahrscheinlich, dass sie verwendet wird. Die meisten Benutzer von Windows 3.1 wussten beispielsweise nicht, dass die Tastenkombination ALT und TAB zum Wechseln zwischen geöffneten Anwendungen verwendet werden kann. Nirgendwo in der Benutzeroberfläche werden Hinweise bereitgestellt, die Benutzern helfen, diese Funktion zu entdecken.
Um die Auffindbarkeit der Funktionalität zu testen, bitten Sie Benutzer, eine Aufgabe abzuschließen, ohne zu erklären, wie sie ausgeführt wird (z. B. ein neues Dokument mithilfe einer „Formularvorlage“ erstellen). Wenn die Aufgabe nicht abgeschlossen werden kann oder mehrere Versuche erforderlich sind, muss die Erkennbarkeit dieser Funktion verbessert werden.
Interagieren Sie mit Benutzern, wenn mit ihnen oder dem System etwas schief geht
In einer idealen Welt würden Software und Hardware immer störungsfrei funktionieren und Benutzer würden niemals Fehler machen. In Wirklichkeit sind Fehler unvermeidlich. Die Entscheidung, wie Ihre Anwendung reagiert, wenn etwas schief geht, ist Teil des Benutzeroberflächendesigns.
Eine häufige Reaktion besteht darin, ein Dialogfeld anzuzeigen, in dem der Benutzer um Eingaben gebeten wird, wie die Anwendung mit dem Problem umgehen soll. Eine weniger verbreitete (aber bessere) Reaktion besteht darin, das Problem einfach zu beheben, ohne den Benutzer zu stören. Schließlich geht es den Nutzern in erster Linie um die Erledigung von Aufgaben und nicht um technische Details. Berücksichtigen Sie beim Entwerfen einer Benutzeroberfläche mögliche Fehler und bestimmen Sie, welche eine Benutzerinteraktion erfordern und welche mit vorab vereinbarten Lösungen behoben werden können.
Erstellen Sie leicht verständliche Dialogfelder
Gelegentlich tritt in einem Antrag ein Fehler auf und es ist ein Urteil erforderlich, um die Situation zu klären. Dies erfolgt normalerweise als Codezweig – eine If...Then-Anweisung oder eine Case-Anweisung. Wenn diese Beurteilung eine Benutzerinteraktion erfordert, wird dieses Problem dem Benutzer normalerweise über ein Dialogfeld angezeigt. Dialogfelder sind Teil der Benutzeroberfläche, und wie andere Teile der Benutzeroberfläche spielt ihr Design eine Rolle für die Benutzerfreundlichkeit der Anwendung.
Manchmal hat man das Gefühl, dass viele Designer von Programmdialogfeldern keine Worte sprechen, die es den Leuten leicht machen, sie zu verstehen. Beispielsweise eine Meldung wie diese: „Sektor der Festplatte C ist beschädigt oder nicht zugänglich. Abbrechen, erneut versuchen, ignorieren?“ (Siehe Abbildung 6.22) Dies ist für normale Benutzer nicht leicht zu verstehen. Das ist so, als würde ein Kellner einen Kunden fragen: „Wir haben keine Suppe oder die Küche zündet ein Feuer an, brechen Sie ab, versuchen Sie es noch einmal, ignorieren Sie es?“ Es ist wichtig, das Problem (und die Wahlmöglichkeit) so zu beschreiben, dass Benutzer es verstehen können. Im vorherigen Beispiel wäre eine bessere Meldung: „Es gibt ein Problem beim Speichern der Datei auf Laufwerk C. Bitte speichern Sie die Datei auf Laufwerk A. Möchten Sie die Datei speichern?“
Denken Sie beim Erstellen von Dialogfeldern für Ihre Anwendung an den Benutzer. Vermittelt diese Nachricht dem Benutzer nützliche Informationen? Ist es leicht zu verstehen? Sind die durch Befehlsschaltflächen dargestellten Auswahlmöglichkeiten klar? Ist diese Wahl für die gegebenen Bedingungen geeignet? Denken Sie daran, dass bereits ein einziges lästiges Meldungsfeld den Benutzern einen schlechten Eindruck von Ihrer Anwendung vermitteln kann.
Wenn Sie ein benutzerdefiniertes Dialogfeld entwerfen, versuchen Sie, sich an Standardtypen zu halten. Wenn es zu stark vom Standardlayout des Meldungsfelds abweicht, erkennen Benutzer es möglicherweise nicht als Dialogfeld.
Weitere Informationen zu Dialogfeldern finden Sie weiter oben in diesem Kapitel unter „Dialogfelder“.
Fehlerbehandlung ohne Dialogbox
Es ist nicht erforderlich, den Benutzer zu unterbrechen, wenn ein Fehler auftritt. Manchmal ist es besser, Fehler im Code zu behandeln, ohne den Benutzer zu benachrichtigen, oder den Benutzer auf eine Weise zu warnen, die den Arbeitsablauf des Benutzers nicht stoppt. Ein gutes Beispiel für diese Technologie ist die „AutoKorrektur“-Funktion in Microsoft Word: Wenn ein häufig vorkommendes Wort falsch geschrieben ist, korrigiert Word es automatisch; wenn ein ungewöhnliches Wort falsch geschrieben ist, wird eine rote Linie darunter gezeichnet, um den Benutzer daran zu erinnern, es später zu korrigieren .
Es stehen zahlreiche Techniken zur Verfügung. Es liegt an Ihnen, zu entscheiden, welche Techniken für Ihre Anwendung geeignet sind. Hier ein paar Vorschläge:
1. Fügen Sie im Menü „Bearbeiten“ die Funktion „Rückgängig“ hinzu. In Situationen wie dem Löschen können Sie den Benutzer nicht mit einem „OK“-Dialog unterbrechen, sondern sicherstellen, dass er die richtige Entscheidung getroffen hat, und eine „Rückgängig“-Funktion bereitstellen, falls er seine Meinung später ändert.
2. Meldung in der Statusleiste oder im Symbol anzeigen. Wenn sich der Fehler nicht auf die aktuelle Aufgabe des Benutzers auswirkt, stoppen Sie die Anwendung nicht. Verwenden Sie eine Statusleiste oder ein helles Warnsymbol, um Benutzer darauf aufmerksam zu machen, dass sie das Problem beheben können, wenn sie dazu bereit sind.
3. Beheben Sie das Problem. Manchmal ist die falsche Lösung offensichtlich. Wenn der Benutzer beispielsweise versucht, eine Datei zu speichern, wenn die Festplatte voll ist, überprüft das System, ob auf anderen Laufwerken Speicherplatz vorhanden ist. Wenn Speicherplatz verfügbar ist, wird die Datei gespeichert; in der Statusleiste wird eine Meldung angezeigt, die dem Benutzer mitteilt, was getan wurde.
4. Speichern Sie die Nachricht und warten Sie auf die Verarbeitung. Da nicht alle Fehler kritisch sind oder sofortige Aufmerksamkeit erfordern, sollten Sie erwägen, diese in einer Datei zu protokollieren und sie dem Benutzer anzuzeigen, wenn er die Anwendung beendet oder zu einem anderen geeigneten Zeitpunkt. Wenn der Benutzer einen Eingabefehler macht (z. B. MainSt. statt MianSt. schreibt), protokollieren Sie ihn. Fügen Sie eine Schaltfläche „ReviewEntries“ und eine Funktion hinzu, die Unterschiede anzeigt, damit Benutzer diese korrigieren können.
5. Tu nichts. Manchmal ist der Fehler nicht wichtig genug, um eine Warnung zu rechtfertigen. Beispielsweise spielt die Tatsache, dass das Papier beim LPT1 noch nicht für den Drucker bereit ist, keine große Rolle, bis es druckbereit ist. Warten Sie, bis die Nachricht für die aktuelle Aufgabe relevant ist.
Weitere Informationen zu Fehlerbehandlungstechniken finden Sie in Kapitel 13, „Code debuggen und Fehler behandeln“.
Entwerfen benutzerunterstützender Muster
Unabhängig davon, wie gut eine Benutzeroberfläche gestaltet ist, benötigen Benutzer manchmal Hilfe. Der benutzerunterstützende Modus einer Anwendung umfasst Dinge wie Online-Hilfe und gedruckte Dokumentation; er kann auch benutzerunterstützende Geräte wie Tooltips, Statusleisten, „Was ist das“-Hilfe und Assistenten umfassen.
Wie bei jedem anderen Teil einer Anwendung sollte der Entwicklung ein benutzerunterstützender Musterentwurf vorausgehen. Der Inhalt des Schemas variiert je nach Komplexität der Anwendung und der beabsichtigten Zielgruppe.
Hilfe und Dokumentation
Die Online-Hilfe ist ein wichtiger Bestandteil jeder Anwendung und oft die erste Anlaufstelle für Benutzer, wenn sie Fragen haben. Auch einfache Anwendungen sollen „Hilfe“ leisten. Wenn man es nicht bereitstellt, geht man davon aus, dass Benutzer nie ein Problem haben.
Denken Sie beim Entwerfen eines Hilfesystems daran, dass sein Hauptzweck darin besteht, Fragen zu beantworten. Versuchen Sie, beim Erstellen von Themennamen und Indexeinträgen Benutzerbegriffe zu verwenden, z. B. „Wie formatiere ich eine Seite?“. Themen sind leichter zu finden als die Menüs „Bearbeiten“ oder „Seitenformat“. Vergessen Sie nicht den Kontext; die meisten Benutzer werden frustriert sein, wenn sie die F1-Taste drücken, um Hilfe zu einem bestimmten Feld zu erhalten, und dann direkt beim Inhaltsthema landen.
Die Dokumentation grundlegender Konzepte, ob ausgedruckt und/oder auf einer ZIP-Diskette bereitgestellt, ist für alle außer den einfachsten Anwendungen hilfreich. Es kann Informationen liefern, die mit einem kurzen Hilfethema schwer zu vermitteln wären. Zumindest sollte es in der ReadMe-Dateiform ein Dokument geben, das der Benutzer bei Bedarf ausdrucken kann.
Benutzerhilfsgerät
In Benutzeroberflächen gibt es mehrere Technologien, die Benutzer unterstützen. Mit Visual Basic können Sie ganz einfach Tooltips, „Was ist das“-Hilfe, Statusanzeigen und Assistenten zu Ihren Anwendungen hinzufügen. Die Entscheidung, welche dieser Geräte für Ihren Einsatzzweck geeignet sind, bleibt Ihnen überlassen.
Tooltip
Tooltips (Abbildung 6.23) sind eine großartige Möglichkeit, Benutzern Informationen anzuzeigen, während sie auf der Benutzeroberfläche suchen. Ein Tooltip ist eine kleine Beschriftung, die angezeigt wird, wenn der Mauszeiger auf einem Steuerelement ruht, und normalerweise eine Beschreibung der Funktionalität des Steuerelements enthält. Normalerweise werden Tooltips in Verbindung mit Symbolleisten verwendet und funktionieren in den meisten Teilen der Benutzeroberfläche gut.
Die meisten Visual Basic-Steuerelemente enthalten eine Eigenschaft zum Anzeigen von QuickInfos: ToolTipText. Der folgende Code stellt einen Tooltip für eine Befehlsschaltfläche mit dem Namen „cmdPRint“ bereit.
cmdPrint.ToolTipText=DrucktdasaktuelleDokument
Stellen Sie wie bei anderen Teilen der Benutzeroberfläche sicher, dass dieser Text dem Benutzer die Nachricht klar vermittelt.
Weitere Informationen zu Tooltips finden Sie unter „ToolTipText-Eigenschaft“ in der Sprachreferenz.
„Was ist das?“-Hilfe
Wenn der Benutzer „Was ist Hilfe“ auswählt und auf den „Was ist Hilfe“-Cursor auf dem Steuerelement klickt, stellt „Was ist Hilfe“ einen Link zum Popup-Hilfethema bereit (siehe Abbildung 6.24). Die „Was ist das“-Hilfe kann über eine Symbolleistenschaltfläche, ein Menüelement oder eine Schaltfläche in der Titelleiste eines Dialogfelds gestartet werden.
Gehen Sie wie folgt vor, um die „Was ist das“-Hilfe über das Menü oder die Symbolleiste zu aktivieren:
1. Wählen Sie die Steuerung aus, der Sie helfen möchten.
2. Wählen Sie im Eigenschaftenfenster die Eigenschaft WhatsThisHelpID aus.
3. Geben Sie den Kontextbezeichner für das entsprechende Popup-Hilfethema ein.
4. Wiederholen Sie die Schritte 1 bis 3 für alle anderen Steuerelemente.
5. Wählen Sie das Formular aus.
6. Setzen Sie im Fenster „Eigenschaften“ die WhatsThisHelp-Eigenschaft des Formulars auf True.
7. Geben Sie im Click-Ereignis der Menü- oder Symbolleistenschaltfläche den folgenden Code ein:
Formularname.WhatsThisHelp
Wenn der Benutzer auf die Schaltfläche oder das Menü klickt, ändert sich der Mauszeiger in einen „Was ist das“-Hilfezeiger. Um die „Was ist das“-Hilfe in der Titelleiste eines benutzerdefinierten Dialogformulars zu aktivieren, legen Sie die Eigenschaften „WhatsThisButton“ und „WhatsThisHelp“ des Formulars auf „True“ fest.
Weitere Informationen zur „WhatsThis“-Hilfe finden Sie unter „WhatsThisHelp-Eigenschaft“ und „WhatsThisButton-Eigenschaft“ in der Sprachreferenz.
Statusanzeige
Ähnlich wie Tooltips können auch Statusanzeigen als Hilfestellung für den Benutzer dienen. Statusanzeigen sind eine großartige Möglichkeit, Anweisungen oder Meldungen bereitzustellen, die sich nicht für Tooltips eignen. Das in den Professional- und Enterprise-Editionen von Visual Basic enthaltene Statusleisten-Steuerelement kann Meldungen sehr gut anzeigen; das Label-Steuerelement kann auch als Statusanzeige verwendet werden.
Der in der Statusanzeige angezeigte Text kann auf zwei Arten aktualisiert werden: mithilfe des GotFocus-Ereignisses des Steuerelements oder Formulars oder mithilfe des MouseMove-Ereignisses. Wenn Sie das Display als Lerngerät verwenden möchten, fügen Sie dem Hilfemenü ein Element hinzu, um die Eigenschaft „Sichtbar“ ein- und auszuschalten.
Um eine Statusanzeige hinzuzufügen, gehen Sie folgendermaßen vor:
1. Fügen Sie dem Formular ein Label-Steuerelement hinzu.
2. Wählen Sie das Steuerelement aus, für das Sie eine Meldung anzeigen möchten.
3. Fügen Sie den folgenden Code im MouseMove- (oder GotFocus-)Ereignis des Steuerelements hinzu: Labelname.Caption=Enterthecustomer'sIDnumberinthisfield Wenn sich die Maus über das Steuerelement bewegt, wird diese Meldung in diesem Label-Steuerelement angezeigt.
4. Wiederholen Sie die Schritte 2 bis 3 für alle anderen Steuerelemente.
Zauberer
Ein Assistent ist ein benutzergestütztes Gerät, das Sie anhand Ihrer eigenen Ist-Daten Schritt für Schritt durch die Umsetzung eines Prozesses führt. Zur aufgabenspezifischen Unterstützung werden häufig Assistenten eingesetzt. Sie helfen bei Aufgaben, die einen langwierigen (und lästigen) Lernprozess erfordern, und stellen Experteninformationen für Benutzer bereit, die noch keine Experten sind.
Die Professional- und Enterprise-Editionen von Visual Basic enthalten ein Tool zum Erstellen von Assistenten: den Wizard Manager.
Einzelheiten zum Assistenten finden Sie unter „Verwenden von Assistenten und Add-Ins“ in Kapitel 4 „Projektmanagement“.
->