Programmieren unter MS-Windows
Kapitel 3: Vereinheitlichung von GUIs
Letzte Änderung: 2.11.97 von B. Tritsch
Überblick
Zurück zum Index "PC- und MS-Windows-Support"
Zurück zum Inhalt
Die ergonomischen Anforderungen an
Mensch-Maschine-Schnittstellen werden heute durch mehrere
Standards gestellt, die sich jedoch immer stärker aufeinander
zubewegen.
- SAA/CUA-Standard
- OSF/Motif
- Apple Style Guide
Als beispielhaft soll hier der SAA/CUA-Standard betrachtet
werden (SAA = System-Anwendungs-Architektur, System Application
Architecture; CUA = Common User Application). Er war wesentliche
Basis für die Definition des Microsoft Style Guides.
Das Konzept der SAA dient der Realisierung verschiedener
Standardisierungs-Aspekte bezüglich Benutzungsoberflächen,
Programmierschnittstellen und Kommunikationsprotokolle.
Ausgangs-punkt war die Vereinheitlichung von Werkzeugen für die
Programmentwicklung auf verschiedenen IBM Hardwareplattformen
(PC, /3X, /370).
Ziele der SAA-Initiative:
- Portabilität der entwickelten Software auch zwischen den
Hardware-Systemen.
- Reduktion des Entwicklungsaufwandes für die
Softwarehäuser.
- Konzentration auf die zu erstellende Anwendung ohne auf
das Betriebssystem und die konkrete Hardware Rücksicht
nehmen zu müssen.
Durch eine vereinheitlichte Kommunikation
wird der Datenaustausch (Texte, Bilder, Grafiken) zwischen
verschiedenen Applikationen auf heterogener Hardware ohne großen
Aufwand möglich. Der wichtigste Teil des SAA-Standards besteht
jedoch in der Schaffung einer einheitlichen Benutzerführung.
Vorteile einer einheitlichen Benutzerführung in
Multitasking-Betriebssystemen:
- Eine konsistente Bedienung (sowohl innerhalb einer
Anwendung als auch über die Anwendung hinaus) der
verschiedenen Tasks verhindert Verwirrungen beim
Benutzer.
- Der Benutzer muß die Grundlagen zur Bedienung von
Programmen nur ein einziges mal erlernen.
- Der Benutzer kann dann dieses Wissen auf neue Programme
übertragen, wodurch eine Einarbeitung einfacher und
dadurch mit weniger Zeitaufwand möglich ist.
- Die Akzeptanz neuer Programme wird wesentlich erhöht und
viel Frustration beim Benutzer vermieden.
Diese Übertragbarkeit auch auf verschieden
Rechnerarchitekturen kann nur durch zugrundliegende Konzepte
gewährleistet werden, die die physikalische,
syntaktische und semantische Konsistenz der
Bedieneroberfläche garantieren.
- Die physikalische Konsistenz betrifft
vor allem die Gestaltung der Hardware, so z.B. der
Tastatur und der Maus mit einer bestimmten
Tastenanordnung und -belegung.
- Die syntaktische Konsistenz betrifft die
Gestaltung des Bildschirms, auf dem verschiedene Elemente
immer auf gleiche Weise angeordnet sein sollten.
Hierdurch wird das Layout der Programme möglichst
einheitlich.
- Die semantische Konsistenz erfordert,
daß der gleiche Vorgang auch bei verschiedenen
Programmen den gleichen Vorgang hervorruft.
Als zentrales Steuerinstrument (neben Dialogfeldern) für
Programme kann der Menümanager als Schnittstelle zwischen
Programm und Benutzer angesehen werden. Allen Menümanagern, die
sich exakt an den SAA-Standard halten, sind folgende grundlegende
Bildschirmelemente gemeinsam:
- Die Menüzeile (Action Bar, Menu Bar):
Sie erscheint in der obersten Zeile des Bildschirms oder
eines Fensters. In ihr ist eine Gruppe von
Wahlmöglichkeiten enthalten (Menu Group).
- Ein Menütitel (Menu Item)
repräsentiert eine Wahlmöglichkeit aus der Menüzeile.
- Ein Menüfenster besteht aus einem
Rahmen, in dem sich die einzelnen Menüoptionen befinden.
- Waagrechte Trenner (Separators)
ermöglichen die optische Zusammenfassung verschiedener
Gruppen von Menüoptionen
- Ein Mnemonic (Hotkey) bezeichnet einen
speziell gekennzeichneten Buchstaben in jedem Menütitel,
der das zugehörige Menüfenster direkt und ohne Umweg
über die Menüzeile aktiviert.
- Markierungen (Check Marks) vor den
Menüoptionen können den Benutzer darüber informieren,
ob die entsprechende Option zur Zeit ein- oder
ausgeschaltet ist.
- Der Arbeitsbereich oder Client-Bereich
(Panel Body, Client Area): Dies ist der Teil des
Bildschirms oder des Fensters, der für das Programm oder
für Benutzer-Interaktion zur Verfügung steht.
- Die Statuszeile (Function Key Area,
Status Bar): Hier können kurze Mitteilungen vom Programm
an den Benutzer ausgegeben oder Funktionstastenbelegungen
angezeigt werden. Viele Programme nutzen diese
Möglichkeit nur wenig.
Das Verfahren, mit dem der Benutzer seine Wahl in der
Menüzeile und dem Menüfenster vornimmt, ist ebenfalls durch den
SAA-Standard festgelegt. Hierbei wird zwischen Maus- und
Tastatureingabe unterschieden, die jedoch wahlweise und
abwechselnd eingesetzt werden können.
Inzwischen wird eine Button-Leiste unter dem eigentlichen
Menü als neuster Stand der Technik angesehen. Diese "Smart
Icons" dienen der schnellen Programmsteuerung.
Betrachtet man einen Schreibtisch, dessen Besitzer sich nicht
über Mangel an Arbeit zu beklagen braucht, so kann man meist
folgende Beobachtung machen:
- Er ist offensichtlich zu klein.
- Es liegt nicht nur ein Dokument in der Mitte des Tisches,
sondern derer viele, oft übereinander und verstreut.
- Für einen Unbeteiligten herrscht auf dem Schreibtisch
(oft) scheinbares Papier-Chaos.
Zwischen den Papieren befindet sich zusätzlich noch:
- Schreibwerkzeug
- Taschenrechner
- Kalender
- Telefon
- Karteikarten
- Notizblöcke
- andere mehr oder weniger nützliche Hilfsmittel.
Der Besitzer des Tisches weiß jedoch meist, an welcher Stelle
sich ein wichtiges Dokument befindet und wird es bei Bedarf an
die Oberfläche bringen um es zu bearbeiten. Er
wird für eine optimalen Arbeitsablauf andere Papiere und/oder
Hilfsmittel günstig anordnen, um daraus für ihn wichtige
Informationen zu entnehmen, darauf Notizen und Anmerkungen zu
machen oder eine kurze Rechenoperation auszuführen.
Solch einen "Desktop" auf den Bildschirm eines
Computers zu übertragen war die Intention der ersten Entwickler
von Windows-Systemen. Hierbei ist ein "Desktop" nur
eine von vielen Möglichkeiten, momentan jedoch die
gebräuchlichste. Ein modernes Desktop-System hat dabei folgende
Eigenschaften:
- Programme sollen auf frei skalierbaren und beweglichen
virtuellen Bildschirmen innerhalb des physikalisch
vorhandenen Monitors ablaufen.
- Diese "Fenster" zu den Programmen können sich
ganz oder teilweise überschneiden, wobei sie sich noch
nicht einmal vollständig im Bildschirm befinden müssen.
- Die Fenster werden in einer Stapelstruktur verwaltet, in
der sie in der Reihenfolge ihres Erscheinen registriert
sind. Das oberste Fenster in diesem Stapel wird als das
aktive bezeichnet und es ist ohne Überdeckungen von
anderen Fenstern sichtbar.
- Jedes beliebige Fenster soll zu jedem Zeitpunkt
aktivierbar sein, womit eine Veränderung der
Stapelstruktur zu Gunsten des aktivierten Fensters
einhergeht.
- Eingaben vom Benutzer kann nur das aktive Fenster
annehmen
- Ausgaben der Programme in die zugehörigen Fenster
müssen auch bei völliger Überdeckung gewährleistet
sein.
Nur auf diese Weise läßt sich ein Multitasking System
vernünftig realisieren (zumindest im Moment).
Fazit: Das Desktop-Konzept ist der
gebräuchlichste Paradigmus für graphische
Benutzerschnittstellen
Für Programmierer: Der Lebenszyklus eines Fensters läßt
sich grob in drei Phasen zerlegen:
- Einrichten. Fenster erhält seine
Größe und andere physikalische Attribute. Zudem wird
ihm eine eindeutige und einmalige Identität (Handle)
verliehen.
- Aktivieren. Fenster wird geöffnet. Es
steht nun sichtbar (oder nur temporär unsichtbar) bereit
für Benutzeraktionen.
- Entfernen. Fenster wird wieder
geschlossen. Alle von dem Fenster belegten Ressourcen
werden wieder freigegeben.
Fenster können verschieden lange Lebenszyklen haben:
- Das Fenster für die zentrale Benutzerführung der
Applikation lebt so lange wie die Applikation selbst.
- Andere Fenster, wie ein Fenster, das als Dialogfeld
verwendet wird, mag nur einige Sekunden Bestand haben.
Dialogfelder sind Bildschirmfenster, die ein
Programm verwendet, um vom Benutzer Daten einzuholen oder ihm
Informationen über Ergebnisse bzw. Zustände auszugeben. Diese
Art der Kommunikation wird durch den SAA-Standard genau geregelt.
Die möglichen Komponenten eines Dialogfeldes sind:
- Schaltfläche, Befehlsfläche (Push
Button)
- Optionsfelder (Radio Button, Check Box)
- Listenfelder (List Box)
- Textfelder (Edit Control)
Zum nächsten Kapitel