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

Preview:

Citation preview

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

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

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

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

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

6

2.1 Gestaltung - Funktionaler Aspekt

Beispiel: Anpassbarkeit von Benutzerschnittstellen

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

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

8

2.2 Gestaltung - Ästhetischer Aspekt

Beispiel: Dialog zur Anpassung des Desktops

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

21.11.2000 Entwicklung von Benutzerschnittstellen, Florian Fuchs

10

2.3 Gestaltung - Struktureller Aspekt

Beispiel: Windows-Benutzeroberfläche

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)

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)

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)

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• ...

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• ...

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

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?

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

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.)

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

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

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

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

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

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

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

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

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

Recommended