25
1 Anwendungssysteme SS03 Gerald Friedland, [email protected] 1 GUI Programmierung Anwendungssysteme SS03 Gerald Friedland, [email protected] 2 Teil 1 Kurzgeschichte des Benutzerinterfaces

Teil 1 Kurzgeschichte des Benutzerinterfaces · 1 Anwendungssysteme SS03 Gerald Friedland, [email protected] 1 GUI Programmierung Anwendungssysteme SS03 Gerald Friedland, [email protected]

Embed Size (px)

Citation preview

1

Anwendungssysteme SS03 Gerald Friedland, [email protected] 1

GUI Programmierung

Anwendungssysteme SS03 Gerald Friedland, [email protected] 2

Teil 1Kurzgeschichte des Benutzerinterfaces

2

Anwendungssysteme SS03 Gerald Friedland, [email protected] 3

Geschichte: Die ersten Rechenmaschinen

ENIAC, 1946

Zuse Z3,1941

Anwendungssysteme SS03 Gerald Friedland, [email protected] 4

Geschichte: Computer zweiter Generation

Eingabe: Lochkartenleser

Ausgabe: Drucker

1955-1965

3

Anwendungssysteme SS03 Gerald Friedland, [email protected] 5

Geschichte: Die ersten Terminals

IBM 2741, 1975

Amdahl 470/U6,1977

Anwendungssysteme SS03 Gerald Friedland, [email protected] 6

Geschichte: Das Textterminal

IBM SAA Standard, 1987

Hier: Turbo Pascal

Commodore 64, 1982

4

Anwendungssysteme SS03 Gerald Friedland, [email protected] 7

Geschichte: Windows 1.0 (1985)

Anwendungssysteme SS03 Gerald Friedland, [email protected] 8

Geschichte Windows 2.0 (1987)

5

Anwendungssysteme SS03 Gerald Friedland, [email protected] 9

Geschichte: Windows 3.0 (1990), 3.1 (1993)

Anwendungssysteme SS03 Gerald Friedland, [email protected] 10

Geschichte: Windows 9x, XP

Windows 95: 1995

Windows 98: 1998Windows ME: 2000

Windows NT: Abkömmling von OS/2Windows 2000: 2000Windows XP: 2001

6

Anwendungssysteme SS03 Gerald Friedland, [email protected] 11

Teil 2 Grundlagen

Anwendungssysteme SS03 Gerald Friedland, [email protected] 12

Benutzbarkeit (Usability)

Usability = Effectiveness + Efficiency + Satisfaction(Dix et al.)

7

Anwendungssysteme SS03 Gerald Friedland, [email protected] 13

Die Kommandozeile

- Historisch entstanden- Schnell zu bedienen- Leicht zu automatisieren

Anwendungssysteme SS03 Gerald Friedland, [email protected] 14

Die Kommandozeile

- Hauptvorteil: Maximal große “Eingabedomain” => Mächtig, maximaler Freiheitsgrad.

- Hauptnachteil: Maximal große “Eingabedomain” => Nicht ohne erhebliches Vorwissen

bedienbar.

=> Problem: Freiheitsgrade einschränken, aber universelle Bedienbarkeitbehalten.

8

Anwendungssysteme SS03 Gerald Friedland, [email protected] 15

Die GUI

Erster kommerzieller Rechner mit GUI: Apple Lisa, 1983.

Vorher Forschung am Xerox Parc (z.B. Erfindung der Maus durch Douglas Engelbart 1968).

Entscheidende Idee: Die Desktop-Metapher

Anwendungssysteme SS03 Gerald Friedland, [email protected] 16

Die Desktop Metapher

Grundidee: Der Computer erweitert den Schreibtisch

9

Anwendungssysteme SS03 Gerald Friedland, [email protected] 17

Nichtanwendbarkeit der Desktopmetapher

- Die Desktopmetapher hilft die Zeit zu minimieren, die man braucht, einenBrief zu schreiben, zu drucken, zu speichern und zu löschen. Aber istsie z.B. für einen Netzwerkadministrator hilfreich?

- Sehr wichtiges Anwendungssystem für das die Desktopmetapher imAllgemeinen ungeignet ist: Computerspiele.

- Wahl der Metapher hängt von der Hardware ab: PDAs, IntegrierteSysteme, Wandtafeln (E-Chalk), etc... brauchen eine andere Metapher.

Aktuelle Forschungsdisziplin: Human Computer Interface Design (HCI)

Anwendungssysteme SS03 Gerald Friedland, [email protected] 18

GUI Standards

- Microsoft: The Windows Interface Guidelines for Software Design: An Application Design Guide, Microsoft Press, Redmond, WA, 1995.

- Apple: Macintosh Human Interface Guidelines, Addison-Wesley, Reading, MA, 1993.

- Apple: Aqua Human Interface Guidelines, Apple Inc, Cupertino, CA, 2001.

- Sun: Java Look and Feel Design Guidelines, second edition, Boston, MA, 2001 und Java Look and Feel Design Guidelines: AdvancedTopics, Addison-Wesley, Boston, MA, 2002.

10

Anwendungssysteme SS03 Gerald Friedland, [email protected] 19

Teil 3 Designprinzipien

Anwendungssysteme SS03 Gerald Friedland, [email protected] 20

Prinzip 0

Do not think „inside-out“

- Häufigstes Problem nicht nur bei der Entwicklung von Software: „Betriebsblindheit“

Andere Beispiele:

- Vorlesungen

- Aufsätze (vor allem technische Beschreibungen)

- Soziale Phänomene („von sich auf andere schliessen“, „sich in eine Lage nicht hineinversetzen können“)

11

Anwendungssysteme SS03 Gerald Friedland, [email protected] 21

Prinzip 1

Orientiere Dich nicht an dem, was durch die Technik vorgegeben wird, sondern konzentriere Dich auf die

Benutzer und Ihre Aufgaben

- Welche Fähigkeiten hat der Benutzer?

- Bei welchen Aufgaben soll ihm das Programm helfen?

- Wie kann das Programm die wichtigsten Aufgaben des Benutzers schnell erledigen und die selteneren überhaupt?

„Common things should be easy, advanced things should be at least possible“(Larry Wall)

Anwendungssysteme SS03 Gerald Friedland, [email protected] 22

Prinzip 2

Denke erst an die Funktion, dann an die Präsentation

- Weniger ist mehr

- Halte Dich an Standards, sei nicht an der falschen Stelle kreativ.

- Halte es so einfach wie möglich, aber nicht zu einfach (Negativbeispiel: mv in Unix)

- Benutze vorgegebene GUI Komponenten nur so, wie sie gedacht sind

12

Anwendungssysteme SS03 Gerald Friedland, [email protected] 23

Prinzip 3

Denke daran, wie der Benutzer seine Aufgaben sieht

- Lass Deinen Benutzer keine unnatürlichen Handlungen ausführen (Beispiel: Schachprogramm)

- Führe keine willkürlichen Beschränkungen ein (typischer Fehler: konstante Arraylängen)

- Benutze das Vokabular des Benutzers

- Behalte Programminterna im Programminnern

- Finde den richtigen Kompromiss zwischen Mächtigkeit und Komplexität des Programms

Anwendungssysteme SS03 Gerald Friedland, [email protected] 24

Prinzip 4

Fördere den Lernprozess des Benutzers

- Strukturiere logisch, vermeide Widersprüche (gutes Beispiel: Unixphilosophie)

- Sei konsistent (Vorsicht: Konsistenz bringt auch Probleme mit sich)

- Schaffe eine risikolose Umgebung (Beispiel: Undo, Redo)

- Gib intelligente Standardwerte vor

13

Anwendungssysteme SS03 Gerald Friedland, [email protected] 25

Prinzip 5

Vermittle Inhalt, nicht nur Daten

- Dein Programm muss sich sinnvoll präsentieren: Es muss zu jeder Zeit klar sein, was der nächste Schritt ist.

- Das Programm muss dem Anzeigemedium angepasst sein (Beispiel: 1280x1024 auf einem PDA?)

- Bildschirmmeldungen müssen erklärend, verständlich und angebracht sein (Negativbeispiel: Geldautomat).

- Der Bildschirm gehört dem Benutzer (Negativbeispiel: Officeassistenten)

Anwendungssysteme SS03 Gerald Friedland, [email protected] 26

Prinzip 6

Garantiere die Ansprechbarkeit des Programms

- Das Programm sollte möglichst immer ansprechbar sein. (Negativbeispiel: Internet Explorer)

- Wenn das Programm ausnahmsweise nicht ansprechbar ist, sollte der Benutzer darüber informiert werden, was das Programm gerade tut und wie lange noch. (Beispiel: Busy Cursor, Progress Bar)

- Alle längeren Aufgaben sollten grundsätzlich abbrechbar sein.

Responsiveness = Perceived Performance

14

Anwendungssysteme SS03 Gerald Friedland, [email protected] 27

Prinzip 7

Probiere Dein Programm an Benutzern aus- Zwei Ziele: Sozial, Inhaltlich

Anwendungssysteme SS03 Gerald Friedland, [email protected] 28

Teil 4 Exemplarische Designfehler

15

Anwendungssysteme SS03 Gerald Friedland, [email protected] 29

Schlecht: Variable Menüeinträge

Anwendungssysteme SS03 Gerald Friedland, [email protected] 30

Schlecht: Doppelte Menüeintrage

Ausserdem schlecht: Keine Tastaturunterstützung

16

Anwendungssysteme SS03 Gerald Friedland, [email protected] 31

Schlecht: Handlungen implizit verlangen

Anwendungssysteme SS03 Gerald Friedland, [email protected] 32

Besser: Handlungen explizit vorgeben

17

Anwendungssysteme SS03 Gerald Friedland, [email protected] 33

Schlecht: Unintuitive Anordnung

Anwendungssysteme SS03 Gerald Friedland, [email protected] 34

Schlecht: Entscheidungen verlangen, ohne hinreichende Hinweise

18

Anwendungssysteme SS03 Gerald Friedland, [email protected] 35

Schlecht: Entscheidungen verlangen, ohne hinreichende Hinweise (2)

Anwendungssysteme SS03 Gerald Friedland, [email protected] 36

Schlecht: Information geben, aber keine Wahl lassen

19

Anwendungssysteme SS03 Gerald Friedland, [email protected] 37

Schlecht: Dialoge mit Nullaussage

Anwendungssysteme SS03 Gerald Friedland, [email protected] 38

Schlecht: Künstlich Stress erzeugen

20

Anwendungssysteme SS03 Gerald Friedland, [email protected] 39

Noch schlechter: Künstlich Stress erzeugen und die Zeit des Benutzers verschwenden (Endlosschleife)

Anwendungssysteme SS03 Gerald Friedland, [email protected] 40

Schlecht: GUI Elemente verkomplizieren

21

Anwendungssysteme SS03 Gerald Friedland, [email protected] 41

Schlecht: Aufgaben an Benutzer verteilen

Anwendungssysteme SS03 Gerald Friedland, [email protected] 42

Noch schlechter: Unerfüllbare Aufgaben verteilen

22

Anwendungssysteme SS03 Gerald Friedland, [email protected] 43

Schlecht: Komplizierte Formulierungen

Anwendungssysteme SS03 Gerald Friedland, [email protected] 44

Schlecht: Geek Speak

23

Anwendungssysteme SS03 Gerald Friedland, [email protected] 45

Schlecht: Benutzer mit Komplexität erschlagen

Anwendungssysteme SS03 Gerald Friedland, [email protected] 46

Schlecht: Programm nicht wirklich ansprechbar

24

Anwendungssysteme SS03 Gerald Friedland, [email protected] 47

Schlecht: Kreativität an der falschen Stelle

Anwendungssysteme SS03 Gerald Friedland, [email protected] 48

Schlecht: Die wichtigsten Features der GUI nicht zu kennen

25

Anwendungssysteme SS03 Gerald Friedland, [email protected] 49

Literatur

- Jeff Johnson, „GUI Bloopers“, Morgan Kaufmann, 2000.

- Jakob Nielsen, „Designing Web Usability“, New Riders, 2000.

- Jakob Nielsen, „Usability Engineering“, Academic Press, San Diego, 1993.

- Alan Dix, Janet Finlay, Gregory Abowd, „Human Computer Interaction“, Prentince Hall, 1998.

- Jeff Raskin, „The Humane Interface“, Addison-Wesley 2000.

- Donald R. Norman, „The Design of Everyday Things“, Currency/Doubleday, 1990.