29
Entwicklung von Benutzerschnittstellen Florian Fuchs, [email protected]

Entwicklung von Benutzerschnittstellen Florian Fuchs, [email protected]

Embed Size (px)

Citation preview

Page 1: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

Entwicklung von Benutzerschnittstellen

Florian Fuchs, [email protected]

Page 2: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

2

Übersicht

1. Einführung

2. Gestaltung der Benutzerschnittstelle

3. Softwareentwicklung und HCI-Design

4. Zusammenfassung

Page 3: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

3

1. Einführung

Gestaltung der Benutzerschnittstelleaus Sicht der Softwareentwicklung

• zeitaufwändig• programmieraufwändig• anspruchsvoll:

neben Implementierung der eigentlichen FunktionGestaltung von...

... Kommunikation und Interaktion

... Grafik und Text

... Information und Aufgaben

Page 4: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

4

2. Aspekte der Gestaltung der Benutzerschnittstelle

• Praktische Erfahrungen

• Theoretische Herangehensweise

1. Funktionaler Aspekt2. Ästhetischer Aspekt3. Struktureller Aspekt

Page 5: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

5

2.1 Gestaltung - Funktionaler Aspekt

Ist Benutzerschnittstelle zur Aufgabenbewältigung geeignet?

• Wozu soll sie dienen?• Wozu soll sie nicht dienen?• Wie kann Erweiterbarkeit für neue Aufgaben

gewährleistet werden?

Aufgabenanalyse

Page 6: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

6

2.1 Gestaltung - Funktionaler Aspekt

Beispiel: Anpassbarkeit von Benutzerschnittstellen

Page 7: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

7

2.2 Gestaltung - Ästhetischer Aspekt

Hat Benutzerschnittstelle ansprechendes und aussagekräftiges Äußeres?

• Am Bildschirm:• Grafik und Text• Layout

• Eingabegeräte:• Form, Farbe, ...• Anordnung

Page 8: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

8

2.2 Gestaltung - Ästhetischer Aspekt

Beispiel: Dialog zur Anpassung des Desktops

Page 9: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

9

2.3 Gestaltung - Struktureller Aspekt

Ist Benutzerschnittstellestabil und effizient programmierbar sowieproblemlos aktualisierbar und erweiterbar?

• einfache Erzeugung• stabile und effiziente Ausführung • Wiederverwendbarkeit von Komponenten• Erschaffung neuer Komponenten auf Basis

vorhandener

Objekt-orientierte Programmiersprachen

Page 10: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

10

2.3 Gestaltung - Struktureller Aspekt

Beispiel: Windows-Benutzeroberfläche

Page 11: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

11

3. Softwareentwicklung und HCI-Design

Definition: Softwareentwicklung (1)

Die Aufstellung und Benutzung von vernünftigen Ingenieurprinzipien,um wirtschaftliche Software zu erhalten,die zuverlässig ist und auf real existierenden Maschinen effizient läuft. (Friedrich L. Bauer, 1969)

Page 12: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

12

3.1 Softwareentwicklung und HCI-Design

Definition: Softwareentwicklung (2)

Die Entwicklung und Nutzung von Prinzipien, Methoden und Werkzeugenzur wirtschaftlichen und optimalen Gestaltung und Entwicklung von Softwaresystemen,die ästhetisch ansprechend, effizient, zuverlässig und geeignet sind für die Zwecke, für die sie gestaltet wurden.(Peter Johnson, 1992)

Page 13: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

13

3.1.1 Prinzipien

Prinzipien für verschiedene Bereiche der Softwareentwicklung

• Benutzbarkeit (usability)

• Gestaltung (design)

• Konstruktion (construction)

Page 14: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

14

3.1.2 Methoden

Methoden liefern die Vorgehensweise bei Softwareentwicklung

• Projektplanung• Kosten-, Zeit-, Aufwandsabschätzung• Anforderungs-, Aufgabenanalyse• Gestaltung der Datenstrukturen, Programmarchitektur• Entwicklung, Test, Bewertung, Wartung• ...

Page 15: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

15

3.1.3 Werkzeuge (Tools)

Werkzeuge unterstützen die Softwarentwicklung

• unterstützende Programme für die einzelnen Methoden• Programmiersprachen, Compiler• Programmbibliotheken, Toolkits• Editoren• Browser• ...

Page 16: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

16

3.2 Softwareentwicklung

Klassifizierung (Howden, 1982)

Typ I: mittelgroßes Projekt, 16 MJ Entwicklungszeitz.B. Diagramme, Quellcode-Manager, Testpläne

Typ IV: Großprojekt, 385 MJ Entwicklungszeitautomatische Unterstützung in allen Bereichenz.B. Maschinenlesbare Spezifikation, Archivierungstools, Testprogramme

Aber: HCI-Design wird nur teilweise unterstützt

Page 17: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

17

3.3 Formale Methoden

Vorteil:Klare, präzise Beschreibung der Anforderungen und/oder des Entwurfs

Problem: Anwendbarkeit auf HCI• Was soll spezifiziert werden?• Wie soll es spezifiziert werden?

Page 18: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

18

3.3 Formale Methoden

Beispiel: Zustandsübergangsdiagrammfür Passwortkontrolle

1. Versuch 2. Versuch 3. Versuch

Erfolg Abbruch

FehlerOKOKOK

FehlerFehler

Page 19: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

19

3.4 Modelle für den Softwareentwicklungsprozess

1. Klassisches Lebenszyklus- oder Wasserfall-Modell (lifecycle or waterfall model)

2. Prototypenmodell (prototyping)

3. Lösungsansätze der vierten Generation(4th-generation approaches)

4. Modell von Pressman (Kombination von 1. - 3.)

Page 20: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

20

3.4.1 Klassisches Lebenszyklus- oder Wasserfall-Modell

1. Systementwicklung(system engineering)

2. Analyse (analysis)3. Gestaltung (design)4. Programmierung (coding)5. Tests (testing)6. Wartung (maintenance)

Erfordert systematische, sequentielle Herangehensweise

Page 21: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

21

3.4.1 Klassisches Lebenszyklus- oder Wasserfall-Modell

Nachteile• Projekte in der Realität nicht sequentiell• Schwierigkeit, alle Anforderungen am Anfang festzulegen• Fehler können zu spät entdeckt werden (Programmierung und Tests erst am Ende)

Vorteile• umfassender Vorgehensplan• grundlegende Schritte• weite Verbreitung• besser als unsystematische Herangehensweise

Page 22: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

22

3.4.2 Prototypenmodell

1. Anforderungskatalog(requirements gathering)

2. Erster Entwurf (quick design)3. Prototypentwicklung

(build prototyp)4. Bewertung (evaluation)5. Wiederholung (iteration)6. Fertigstellung (engineering)

Bei allgemeinen oder ungenauen Anforderungen

Page 23: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

23

3.4.2 Prototypenmodell

Nachteile• Gefahr, dass Prototyp zur Endversion wird• verbleibende quick and dirty - Lösungen• prinzipiell trial and error - Vorgehensweise

Vorteile• Ansicht und Bewertung des HCI vor Fertigstellung• nachträgliche Erweiterung der Anforderungen• Bewertung während der Entwicklung

Page 24: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

24

3.4.3 Lösungsansätze der vierten Generation

1. Anforderungskatalog(requirements gathering)

2. Gestaltungsstrategie(design strategy)

3. Implementierung (implementation)4. Produktphase (product phase)

Spezifizierung auf hoher Abstraktionsebene, darausautomatische Quellcode-Erzeugung durch Tools

Page 25: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

25

3.4.3 Lösungsansätze der vierten Generation

Nachteile• beschränkte Anzahl und Möglichkeiten der Tools

Vorteile• Zeitersparnis• in vielen Fällen gute Gestaltung

Page 26: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

26

3.4.4 Modell von Pressman, 1987

Kombination der Modelle 1 - 31. Anforderungskatalog, unklare Anforderungen werden identifiziert2. Prototyp durch iterative Entwicklung und Bewertung des HCI, Tools der 4. Generation3. Übergang zum Endprodukt mit konventionellen

Vorgehensweisen

Page 27: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

27

3.5 Grundlegende Phasen der Softwareentwicklung

1. Definition (definition)Systemanalyse, Projektplanung,

Anforderungskatalog

2. Entwicklung (development)Softwaregestaltung, Programmierung,

Tests,Verbesserung

3. Wartung (maintenance)Änderungen, Korrekturen, Anpassungen

Page 28: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

28

4. Zusammenfassung

• Softwareentwicklung beschäftigt sich mit Gestaltung eines kompletten Systems und seines Lebenszyklus.

Dabei Mangel an Prinzipien, Methoden und Werkzeugen zur Gestaltung der HCI

• Modelle der Vorgehensweisen sind stark idealisiert

• Grundlegend: Aufgabenanalyse vor, während und nach Entwicklung

Page 29: Entwicklung von Benutzerschnittstellen Florian Fuchs, fuchs@in.tum.de