Systemsoftware: Unterschied zwischen den Versionen

Aus IV1
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(21 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
<yambe:breadcrumb>Software|Software</yambe:breadcrumb>
<!--<yambe:breadcrumb>Software|Software</yambe:breadcrumb>-->
{{Kurzform|Die Systemsoftware stellt den Anwendungsprogrammen gewisse Grundfunktionen über standardisierte Schnittstellen (sog. APIs, „Application Programming Interfaces”) zur Verfügung.}}
{{Kurzform|Die Systemsoftware stellt den Anwendungsprogrammen über standardisierte Schnittstellen gewisse Grundfunktionen (sog. APIs, „Application Programming Interfaces”) zur Verfügung.}}


{{Englisch|The system software provides certain basic functions to the application programs in way of standardised interfaces (so-called APIs, „Application Programming interface“).}}
{{Englisch|The system software provides certain basic functions to the application programs in way of standardised interfaces (so-called APIs, „Application Programming interface“).}}


 
__NOTOC__
__TOC__


== Systemsoftware ==
== Systemsoftware ==
Zeile 12: Zeile 11:


* [[User Interface]]
* [[User Interface]]
== Betriebssystem ==
Kern der Systemsoftware ist das Betriebssystem. Je nach Aufgabenbereich und Entwicklungsstand stellt dieses unterschiedliche Funktionen zur Verfügung. Typische aktuelle Betriebssysteme für einen Personal-Computer umfassen mindestens folgende Leistungsmerkmale:
*Gängige PC-Betriebssysteme sind in der Regel darauf ausgelegt, dass ein Computersystem von höchstens einem Benutzer/einer Benutzerin gleichzeitig verwendet wird (Single-User-System). Auf einem solchen Single-User-PC konnte früher ein Benutzer/eine Benutzerin immer nur ein Programm ausführen (Single-Tasking). Seit Jahren ist es bei den PCs Stand der Technik, dass auch auf einem Ein-Benutzungs-System mehrere Programme gleichzeitig ausgeführt werden können (Multi-Tasking, siehe nächster Punkt).
*Das Betriebssystem erlaubt es, dass zu einem Zeitpunkt mehrere Anwendungsprogramme aktiv sind. Um den Benutzenden den Eindruck zu geben, dass alle Programme gleichzeitig ablaufen, wird vom Betriebssystem veranlasst, dass sich diese Programme in rascher Folge in der Nutzung eines einzelnen Prozessors abwechseln („Multitasking”); multiprozessor-fähige Betriebssysteme (z. B. die Windows-NT-Produktfamilie, manche LINUX- und UNIX-Versionen) sorgen darüber hinaus dafür, dass unterschiedliche Anwendungen auch auf verschiedenen Prozessoren gleichzeitig ablaufen können; schließlich werden Funktionen bereitgestellt, damit die gleichzeitig aktiven Programme untereinander (z. B. über das Clipboard) kommunizieren und sich koordinieren können (etwa, wenn auf gemeinsame Datenbestände zugegriffen werden muss).
*Eine Betriebssystemkomponente (z. B. der Macintosh Finder, der Windows Desktop, ...) erlaubt es den Benutzenden, Anwendungsprogramme ihrer Wahl zu starten.
*Diese Betriebssystemkomponente (oder auch andere Systemprogramme, wie z. B. der Windows Explorer) stellen den Benutzenden auch Grundfunktionen (Umbenennen, Kopieren, Löschen, ...) zum Verwalten ihrer Dateien (bzw. „Dokumente”) zur Verfügung.
*Das Betriebssystem stellt allen Anwendungsprogrammen Grundfunktionen für den Zugriff auf Dateien („Dokumente”) und Peripheriegeräte (z. B. Speichermedien und Drucker) zur Verfügung. Über diese Grundfunktionen wird das Anwendungsprogramm gleichzeitig von den Details der verwendeten Rechnerperipherie abgeschirmt: So sollte z. B. der Austausch des verwendeten Druckers oder der Einbau eines zusätzlichen Festplattenlaufwerks nur eine Rekonfiguration des Betriebssystems (durch Installation neuer Gerätetreiber) erforderlich machen; die Anwendungsprogramme selbst sollten davon unberührt bleiben.
*Das Betriebssystem bietet Mechanismen (sog. Dateisysteme) an, um auf Speichermedien mit wahlfreiem Zugriff Dateien zu verwalten, die von Benutzenden erzeugte Dokumente, aber auch System- oder Anwendungsprogramme repräsentieren oder von Benutzenden eingestellte Konfigurationsparameter für bestimmte Systemkomponenten beinhalten können. Dateien können gemäß den Regeln des verwendeten Dateisystem-Typs benannt und in hierarchisch angeordneten Verzeichnissen (oder „Ordnern”) organisiert werden.
*Über Netzwerk-Funktionen können Benutzer und Benutzerinnen auf Betriebsmittel (z. B. Dateien oder Drucker) anderer Computer (z. B. dedizierter Server) zugreifen und auch eigene Peripherie anderen Benutzenden zur Verfügung stellen („Peer-to-Peer-Networking”).
*Das Betriebssystem stellt schließlich allen Anwendungsprogrammen, einschließlich seinen eigenen Komponenten und Hilfsprogrammen, Grundelemente zur Gestaltung der Benutzeroberfläche zur Verfügung. Bei graphischen Benutzeroberflächen ist dies ein wesentlicher Faktor für das einheitliche „Look and Feel” der dafür verfügbaren Applikationen (der zweite Faktor ist in der Regel ein „Style Guide”, der vom Hersteller des betreffenden Betriebssystems bzw. der graphischen Benutzeroberfläche publiziert wird). Bei entsprechender Hardwareausstattung (z. B. einer Sound- oder Video-Karte) umfasst diese Unterstützung auch Multimedia-Funktionen (z. B. Aufnahme und Wiedergabe von Video-Sequenzen und Sounds).
*In aktuellen Desktop-Betriebssystemen (z. B. MacOS und Vista) werden für die Darstellung, Druck und Speicherung von Dokumenten komplexe Dokumentformate und Graphik-Engines verwendet. Bei Apple sind das PDF und OpenGL, während Microsoft versucht, mit XPS (XML Paper Specification) einen neuen Industriestandard zu etablieren. Bedeutend sind diese Formate und Techniken vor allem für die Langzeitarchivierung.
Dieser Funktionsumfang (der ein sog. Single-User-/Multi-Tasking-Betriebssystem  kennzeichnet) wurde bereits in den Betriebssystemen des Macintosh („Mac OS”, ab Version 7.x) sowie vom Betriebssystem MS-DOS mit Windows (3.x) unterstützt.
Die (Multi-User-/Multi-Tasking-) Betriebssysteme LINUX, UNIX und Windows NT (in den Varianten für den Serverbetrieb) erlauben es darüber hinaus, dass verschiedene Anwendende gleichzeitig (von verschiedenen Arbeitsstationen aus) mit verschiedenen Programmen auf einem Computersystem, dem Terminal-Server,  arbeiten. Diese Arbeitsstationen können dabei vergleichsweise „schwache“ Computer sein („Thin Clients“). Gründe dafür können z. B. sein, dass man nicht für jede Arbeitsstation eine Softwarelizenz erwerben möchte, eine vereinfachtere Wartung der Anwendungen und/oder wenn eine Anwendung spezielle Anforderungen an die Hardware stellt, die man aus ökonomischen Gründen nicht an jedem Client vorhalten möchte.
Damit diese Benutzenden auf einem Computersystem arbeiten können, ohne sich gegenseitig zu stören, sind zusätzlich folgende Vorkehrungen nötig:
*Alle Benutzenden müssen sich dem Betriebssystem gegenüber identifizieren, bevor sie mit dem Computersystem arbeiten können. Üblicherweise geschieht dies, indem die Benutzenden ihre Benutzerkennung sowie ein dazugehöriges, nur ihnen und dem Betriebssystem bekanntes Kennwort eingeben.
*Allen Benutzenden werden von speziellen Benutzenden, dem/der SystemadministratorIn, Rechte zur Nutzung gewisser Programme, Dateien und Peripheriegeräte zugewiesen.
*Bestimmte Konfigurationsdaten werden je Benutzendem abgelegt, sodass jede/r Benutzende (in einem gewissen Rahmen) die Möglichkeit erhält, sich Teile des Systems (z. B. Elemente der Benutzeroberfläche) nach seinen Bedürfnissen und Vorlieben einzurichten.
Eine eingeschränkte Multi-User-Funktionalität gibt es bereits bei den gängigen Betriebssystem-Varianten für den Ein-Benutzer-Betrieb.
Bei der Windows NT-Produktlinie (dazu zählt beispielsweise auch Windows Vista) für den Ein-Benutzungs-Betrieb können zwar mehrere Benutzende gleichzeitig angemeldet sein und auch Programme ausführen, es kann aber immer nur ein Benutzer/eine Benutzerin interaktiv über Monitor, Maus und Tastatur mit dem Computer arbeiten.
== Gängige Betriebssysteme ==
=== Windows Familie ===
Windows (zuletzt in der Version 3.1) wurde ursprünglich als graphische Benutzeroberfläche für das Kommandoorientierte Betriebssystem '''MS-DOS''' („Microsoft Disk Operating System”) konzipiert und implementiert.
'''Windows 3.1''' übernimmt viele Eigenschaften von seinem Basis-Betriebssystem MS-DOS:
*beispielsweise werden Laufwerke durch Buchstaben bezeichnet (die Buchstaben A: und B: sind standardmäßig Diskettenlaufwerken zugewiesen; ab C: werden dann zunächst Festplatten-Laufwerke, dann weitere Laufwerke mit auswechselbaren Datenträgern, z.B. CD-ROMs, und zuletzt Netzwerk-Laufwerke zugeordnet);
*auf einem Datenträger können sich Dateien (das sind Programme und Dokumente) sowie Verzeichnisse befinden;
*Verzeichnisse können wiederum Dateien und andere Verzeichnisse beinhalten („hierarchisches Dateisystem”);
*alle Namen für Dateien und Verzeichnisse müssen den Konventionen des FAT-Dateisystems  folgen, das für Disketten und Festplatten-Partitionen verwendet wird: ein Dateiname besteht aus bis zu acht Zeichen, optional gefolgt von einem „.” und einer bis zu drei Zeichen langen Namens-Erweiterung; diese Namens-Erweiterung legt bei Dateien einen Dateityp fest: z.B. kennzeichnen die Namens-Erweiterungen „.EXE” und „.COM” ausführbare Programme; Namens-Erweiterungen für Daten-Dateien (z.B. „.XLS”)  können ausführbaren Programmen (z.B. Microsoft EXCEL) zugeordnet werden, sodass die betreffenden Dokumente aus dem Datei-Manager einfach durch Doppel-Klicken geöffnet werden können; in Dateinamen und Namens-Erweiterungen sind Zeichen, die von MS-DOS mit einer Spezialbedeutung belegt sind (z.B. „?”, „*”, „.”, „:”, „\”, „/”, „<”, „>”, „|”, ...), verboten, Zeichen außerhalb des ASCII-Zeichensatzes (z.B. Umlaute) sollten nicht verwendet werden.
Mit „Windows for WorkGroups” (einer Variante von Windows 3.1, die spezielle Netzwerk-Funktionen für kleine Arbeitsgruppen anbot) hat Microsoft begonnen, Funktionen des Betriebssystems MS-DOS (z.B. den Zugriff auf das FAT-Dateisystem) in Windows selbst zu implementieren; diese Entwicklung wurde mit '''Windows 95''' abgeschlossen, bei dem MS-DOS und Windows zu einem Betriebssystem integriert wurden. Windows 95 verfügt über eine komplett neu entworfene Benutzeroberfläche, erweitert die Definition des FAT-Dateisystems, sodass lange Dateinamen (bis zu ca. 250 Zeichen) verwendet werden können , und bietet Unterstützung für „Plug and Play” (eine Hardware-Technologie, die den Einbau von Hardware-Erweiterungen in einen PC drastisch vereinfachen soll, indem die bisher durch manuelles Einstellen von DIP-Schaltern, Jumpern, ... vorgenommene Hardware-Konfigurationen durch Software durchgeführt und automatisiert wird).
Die neue Benutzeroberfläche von Windows 95 (und Windows NT 4.0, s.u.) zeigt standardmäßig den „Schreibtisch” an, auf dem der Benutzer Symbole für Dokumente, Programme und Systembereiche ablegen kann; über das Symbol „Arbeitsplatz” kann der Benutzer auf alle (lokalen) Laufwerke, über „Netzwerkumgebung” auf Netzwerk-Laufwerke zugreifen. Eine alternative Ansicht des Schreibtisches zeigt das Systemprogramm „Windows Explorer”. Am unteren Rand des Bildschirms befindet sich der Task-Bar, der die aktiven Applikationen anzeigt und ein Umschalten zwischen diesen erlaubt; das Start-Menü (links im Task-Bar) erlaubt das Öffnen der darin (oder in einem Untermenü eingetragenen).
Während Microsoft mit Windows 95 den evolutionären Weg der Weiterentwicklung eines bestehenden Betriebssystems gegangen ist, hat es mit''' Windows NT („New Technology”)''' ein vollständig neues Betriebssystem entwickelt. Hatte die Version 3.5 noch eine Windows 3.1-Benutzeroberfläche in Verwendung, so hat Microsoft für die Version 4.0 die Oberfläche von Windows 95 übernommen und adaptiert. Ein großer Teil der Programmierschnittstellen von Windows 95 und Windows NT ist darüber hinaus identisch, sodass Programme, die keine besondere Funktionalität eines der beiden Betriebssysteme benötigen, so geschrieben werden können, dass sie unter beiden Betriebssystemen ablaufen.
Ursprünglich gab es NT sowohl für x86 Prozessoren als auch für Alpha, MIPS und PowerPC Prozessoren. Gegenwärtig gibt es 32-bit Varianten nur mehr für x86 Prozessoren und 64-bit Varianten für x86 und Itanium Prozessoren.
Windows NT wurde ursprünglich als Betriebssystem mit mehreren „Persönlichkeiten” konzipiert; neben den Programmierschnittstellen für Windows bietet Windows NT unter anderen Schnittstellen für UNIX (in der dem POSIX-Standard entsprechenden Untermenge). Windows NT verlangt, dass sich Benutzende vor Nutzung des Systems mit einer Benutzerkennung und einem dazugehörigen Kennwort identifizieren; durch Vergabe von Zugriffsberechtigungen können Benutzende das Durchführen bestimmter Systemfunktionen und der Zugriff auf bestimmte Dateien und/oder Verzeichnisse (auf einem NTFS-Dateisystem) erlaubt oder verweigert werden. Mit NTFS („New Technology File System”) bietet Windows NT eine Alternative zum FAT-Dateisystem, das lange Dateinamen (bis zu ca. 250 Zeichen) zulässt, für große Festplatten-Partitionen (bis zu 17 Milliarden GB) optimiert ist und es erlaubt, Benutzer-spezifische Zugriffsrechte auf Dateien und/oder Verzeichnisse zu definieren.
Seit '''Windows 2000''' gibt es das Encrypted File System (EFS), mit dem sich Dateien auf NTFS-formatierten Datenträgern verschlüsseln lassen. Dateinamen werden dabei nicht verschlüsselt. Ab Windows Vista gibt es eine Verschlüsselung („Bitlocker“), die den gesamten Datenträger verschlüsseln kann. Dies ist insbesonders bei (abhanden gekommenen) Laptops sinnvoll, da man zuvor z.B. aus dem unverschlüsseltem Hibernate-File (=Speicherabbild für den Ruhezustandsmodus) sensible Daten wiederherstellen konnte.
Eine weitere Sicherheitslücke wird mit Vista gleichfalls geschlossen: Bisher wurde zu den Benutzendenpasswörtern aus Kompatibilitätsgründen zu Windows 95/98/Me auch immer ein so genannter LM-Hash gespeichert, der sich aber aufgrund von Designschwächen knacken lies. Im Endbenutzerbereich soll vor Allem die neue dreidimensionale graphische Benutzeroberfläche „AeroGlass“ als Kaufanreiz dienen.
AB Herbst 2009 soll schliesslich das neue '''Windows 7''', der Nachfolger von '''Windows Vista''', im freien Handel verfügbar sein. Auch diese Version basiert auf Windows NT (6.1).
Als „Mini-Version” von Windows für besonders kompakte Geräte (Palm-Tops, Mini-Notebooks, Mobiltelefone, ...) hat Microsoft mittlerweile auch Windows CE in der Version 6.0 auf den Markt gebracht.
=== UNIX ===
Das UNIX-Betriebssystem ist ein Veteran unter den heute eingesetzten Betriebssystemen, und es entstand noch vor dem ersten Mikroprozessor: Es begann damit, dass sich die Bell Telephone Labs (BTL) von AT&T im Jahre 1969 aus dem Betriebssystem-Projekt Multics  zurückzogen. Einer der Beteiligten, Ken Thompson, hatte unter Multics ein kleines Spiel („Space Travel”) geschrieben, das er gemeinsam mit Dennis Ritchie nun – gemeinsam mit einem kleinen, einfachen Betriebssystem – auf einer ungenutzten DEC PDP 7 neu implementierte. Unter dem Vorwand, eine Textverarbeitung zu schreiben, überzeugten sie schließlich das BTL-Management, eine DEC PDP 11 anzuschaffen , auf die dann das neue Betriebssystem portiert und auf ein Multi-User-Betriebssystem erweitert wurde.
1973 wurde UNIX auf einer Konferenz der Öffentlichkeit präsentiert, was großes Interesse an diesem Betriebssystem erzeugte. AT&T war damals in den USA Monopolist für das Telefonsystem – als Ausgleich durfte es sich in keinen anderen Sektoren kommerziell betätigen. BTL entschloss sich jedoch, UNIX interessierten Universitäten zur Verfügung zu stellen, was bewirkte, dass viele neue Ideen zunächst für UNIX implementiert wurden.
Unix wurde neben AT&T vor allem in der University of California in Berkeley weiterentwickelt; zahlreiche Firmen entwickelten auf Basis der AT&T- oder der BSD-Linie („Berkeley System Distribution”) von UNIX eigene Versionen (z.B. SunOS/Solaris von SUN, Irix von SGI, AIX von IBM, Ultrix von DEC, SINIX von Siemens, SCO UNIX, das aus dem von Microsoft entwickelten XENIX entstand, ...) mit jeweils eigenen „Features”; in dem Maße, als sich PCs in für UNIX taugliche Leistungsklassen hineinentwickelten, entstanden auch UNIX-Versionen für PCs (u.a. das frei verfügbare LINUX); um die dadurch entstandene „Variantenvielfalt” einzudämmen, versuchte man, sich für UNIX auf gemeinsame Standards zu einigen: Als erster Minimal-Standard entstand so POSIX („Portable Operating System Environment”, eine IEEE-Norm), weitergehende Bemühungen koordiniert die „Open Group” , der Novell (das UNIX von AT&T käuflich erworben hatte) auch den UNIX-Markennamen übertrug.
UNIX ist berüchtigt für seine komplexe und kryptische, aber auch sehr mächtige Kommandosprache und seiner komplexen, auf vielen Textdateien basierenden Systemkonfiguration; aber auch für UNIX sind graphische Benutzeroberflächen  entstanden, die das Arbeiten auf der Ebene des UNIX-Shells  zu einem großen Teil überflüssig machen.
=== Mac OS ===
1984 brachte Apple mit dem '''Macintosh''' den ersten Computer auf den Markt, der über eine '''graphische Benutzeroberfläche''' verfügte, der damit am Markt erfolgreich war  – und dadurch jenen Stein ins Rollen brachte, der dafür sorgte, dass graphische Benutzeroberflächen heute Stand der Technik in allen Betriebssystemen für Personal Computer und Workstations sind.
Da Macintosh-Programme streng nach dem '''WYSIWYG-Prinzip''' arbeiten („What You See Is What You Get” – „was man (am Bildschirm) sieht, ist das, was man auch (am Drucker) herausbekommt”), brachte Apple mit der Einführung von Laserdruckern die DTP-Welle („Desktop Publishing”) ins Rollen.
Mit der Entwicklung der QuickTime-Technologien schließlich leistete Apple einen entscheidenden Beitrag zur Entwicklung von Multimedia.
Kern der „klassischen” Macintosh-Benutzeroberfläche ist der „Finder”, der auf dem Schreibtisch alle verfügbaren Laufwerke samt deren Inhalten anzeigt; beim Doppel-Klicken auf ein Dokument stellt er aufgrund eines Datei-Attributs die Verbindung zu einem ausführbaren Programm her , um damit das betreffende Dokument zu öffnen.
Steven Jobs, einer der beiden Firmengründer von Apple, trennte sich 1985 von Apple, um einen neuen Computer – den NeXT – zu bauen; das zugehörige Betriebssystem – NextStep – basierte auf UNIX, besonderes Augenmerk wurde auf die Entwicklung einer graphischen Benutzeroberfläche gelegt, die die Komplexität von UNIX verbergen sollte. Next stellte bald die Hardware-Entwicklung ein, entwickelte jedoch das Betriebssystem weiter, portierte es auf andere Plattformen (u.a. für Intel-Prozessoren), und entwickelte zuletzt (gemeinsam mit SunSoft) OpenStep, eine auf NextStep basierende Anwendungsumgebung, die für unterschiedliche Betriebssysteme angeboten werden sollte.
1997 hat Apple Next aufgekauft und NextStep unter dem Codenamen „Rhapsody” (das nun den Namen Mac OS X trägt) zum Kernpunkt seiner Betriebssystem-Entwicklung gemacht. Basis der Entwicklung ist ein UNIX-Betriebssystem, auf die die sog. „Cocoa”-Anwendungsumgebung (entspricht OpenStep; soll das Plattform-übergreifende Entwickeln von Anwendungen ermöglichen) aufsetzt; Bestandteil von „Cocoa” ist eine Java-Entwicklungs- und Laufzeitumgebung. Um existierende Mac OS-Anwendungen weiterhin ausführen zu können, wird die Power-PC-Version mit der sog. „Classic”-Umgebung ausgestattet, einer Version des Mac OS-Betriebssystems, das so umgeschrieben wurde, dass es unter UNIX ablauffähig ist; alternativ dazu wird aber empfohlen, existierende Mac OS-Anwendungen leicht umzubauen, sodass sie dann in der „Carbon”-Anwendungsumgebung ohne zwischengeschaltetes „klassisches” Mac OS ablauffähig sind; über „Classic”, „Carbon” und „Cocoa” liegt eine einheitliche graphische Benutzeroberfläche (mit Namen „Aqua”), die auf der „klassischen” Mac OS-Benutzeroberfläche basiert. Da  sämtliche Elemente einer UNIX-Benutzeroberfläche in Mac OS X nicht mehr vorhanden und teilweise durch korrespondierende Mac OS-artige Elemente ersetzt sein werden, wird Mac OS X dem Benutzer (trotz seiner geänderten Betriebssystembasis) als ein um preemptives Multitasking, „Cocoa”, ... erweitertes Mac OS erscheinen.
Das aktuelle Version '''Mac OS 10.5''' (Leopard) ermöglicht die parallele Installation des Betriebssystems Windows XP (und höher) der Firma Microsoft auf Apple Computern, sofern diese mit einem Intel-Prozessor ausgestattet sind. Im Herbst 2009 wird die neue Mac OS X Version Snow Leopard erwartet.
Seit 2007 gibt es auch ein Betriebssystem für das Apple Smartphone "iPhone" (iPhone OS), das auf MAC OS X basiert.
=== LINUX ===
Der Name "LINUX" stammt von dem Finnen Linux Torvalds, der 1991 den Kernel (Betriebssystemkern) entwickelte, welcher in Verbindung mit der freien Software GNU ein vollständig freies Betriebssystem ergab. Der Begriff Linux steht nun zumeist für freie Betriebssysteme, welche auf der GNU-Software und dem Linux-Kernel beruhen. LINUX wird unter der GPL-Lizenz vertrieben und ist sowohl Multitasking als auch Multiuserfähig. Da das Betriebssystem beliebig veränder- und erweiterbar ist, kann es in Form von zahlreichen Distributionen (Suse, Ubuntu, Debian, RedHat) als Installationspaket bezogen werden.
Im folgenden Beitrag erfahren Sie mehr über die Idee, die Geschichte, die Einsatzmöglichkeiten und die Distributionen von Linux:
http://www.3sat.de/mediathek/?mode=play&obj=11913
== User Interface ==
Die '''Benutzerschnittstelle (Benutzeroberfläche)''' ist der für die Benutzenden sichtbare Teil der Interaktionsschnittstelle eines Softwareproduktes. Hierunter fallen alle Einheiten, Formen und Techniken über welche die Benutzenden mit dem Computersystem kommuniziert. Diese Benutzerschnittstelle ist zu einem gewissen Grad abhängig von der Hardware und der verwendeten Betriebssoftware des Systems und natürlich direkt abhängig von der benutzten Anwendungssoftware.
Unter Benutzeroberfläche werden all jene Teile eines Computersystems zusammen gefasst,die Benutzende wahrnehmen können. Die Benutzerschnittstelle ist zunächst eine Funktion der vorhandenen Ein- und Ausgabegeräte und im Weiteren der dazugehörenden Software; unter Benutzeroberfläche versteht man sowohl Hardware als auch Software. Die Benutzeroberfläche legt weitestgehend fest, wie Benutzende mit einem System arbeiten können. Die Gestaltung muss sich nach dem jeweiligen AdressatInnenkreis richten, nach deren Anforderungen, deren Gewohnheiten und nach Kenntnissen.
Die Benutzeroberfläche bestimmt mit vielen Faktoren die Form der Interaktion zwischen den Benutzenden und dem Computersystem. Die Mensch-Computer-Interaktion (MCI) ist ein wechselseitiger Informationsaustausch zwischen Benutzenden und dem System, dieser ist durch die Natur der Sache zwar Regel gebunden und formalisiert, zumindest bei modernen interaktiven Systemen liegt die Kontrolle im Regelfall bei Benutzenden.
Die '''Mensch-Maschine-Interaktion''' lässt sich beschreiben als eine '''Dreiecksbeziehung''' zwischen Benutzenden, (ihren) Aufgabe und (dem benutzten) Werkzeug, natürlicherweise im Rahmen des vorhandenen Arbeitsumfeldes. Der Computer ist hier das Werkzeug, welches die kognitive Funktion der Benutzenden unterstützt und beeinflusst. Durch die Gestaltung von Benutzerschnittstellen wird die Art und Qualität der Aufgaben, das Problemlöseverhalten der Benutzenden sowie das Lernen von Fertigkeiten und deren Einsatz bei der Aufgabenbearbeitung beeinflusst. Daher ist die Gestaltung von Benutzerschnittstellen immer auch Arbeits- und Aufgabengestaltung.
Um diese "Dreifaltigkeit" bei der Gestaltung der Interaktion entsprechend zu berücksichtigen, kann das von Tom Moran in den frühen achtziger Jahren entwickelte Modell herangezogen werden. Hierin wird die Benutzungsschnittstelle in eine Hierarchie von vier Ebenen zerlegt, wobei eine Ebene auf die jeweils untergeordnete abgebildet wird.
*Auf der Aufgabenebene verfolgen Benutzenden das Ziel eine bestimmte Arbeitsaufgabe zu erledigen und damit weitere Aufgabenziele zu erreichen. Dieses ist ihr Primärziel, dafür setzen sie ihre Kompetenz, ihr Wissen und ihre Kenntnisse über Problemlösungsstrategien ein. Hierbei muss das Computersystem unterstützen und darf nicht behindern!
*Auf der Semantischen Ebene werden die geeigneten Werkzeuge für die Aufgabenbearbeitung aus der verfügbaren Funktionalität des Computersystems ausgewählt. Unter "Funktionalität des Computersystems" ist die      gesamte Menge der verfügbaren Systemfunktionen und repräsentierter Objekte zu verstehen.
*Auf der Syntaktischen Ebene müssen Benutzende ihr Wissen einbringen, um die ausgewählten Systemfunktionen auszuführen. Sie müssen sich die Fragen beantworten:
**Wie heißt das Objekt (z. B. Datei)?
**Was muss ich tun um sie auszuwählen?
**Wie starte ich die Systemfunktion, um das gewünschte Objekt zu bearbeiten?
*Die Interaktionsebene unterteilt sich ihrerseits nochmals in:
**Eine Kommunikationskomponente bei der Benutzenden die erkannten Befehle in Handlungen umgesetzen, um diese wirklich zur Ausführung zu bringen. Zum Beispiel wird der Mauszeiger zum gewünschten Objekt bewegt, der rechte Mausknopf gedrückt und die gewünschte Systemfunktion aus dem Popupmenü gewählt.
**Eine Physikalische Komponente durch die die Gestaltung und räumliche Anordnung der Teile des Systems sowie deren technische Eigenschaften festgelegt sind. Hierbei ist zum einen die Hardware und ihre Platzierung im Arbeitsumfeld, aber auch die aktuellen Einstellungen gemeint, zum anderen aber auch die Platzierung von Objekten und Werkzeugen auf der Arbeitsoberfläche des Computers.
Bei der Gestaltung von Benutzerschnittstellen muss also die "Dreifaltigkeit" von Aufgabe, Mensch und Computer einbezogen werden und der Aufbau der Interaktion in auf einander aufbauenden Ebenen ist zu berücksichtigen. Dadurch entsteht zwar nicht zwangsläufig eine gute Benutzerschnittstelle, aber sie wird doch deutlich wahrscheinlicher.
Im Laufe der Zeit haben sich eine Reihe von Interaktionstechniken herausgebildet. Ihr Einsatz ist in erster Linie abhängig von der verfügbaren Hardware, Software und der Benutzungssituation.
Die Interaktion der Benutzenden mit dem Computer wird Dialog genannt, da sich ein wechselseitiger Informationsaustausch zwischen beiden abspielt. Eine besondere Veränderung hat sich durch den Personal Computer und die Fähigkeit der Systeme zum Multitasking bzw. -processing ergeben, wodurch es den Benutzenden möglich ist zeitgleich unterschiedlichste Aktionen durchzuführen. Hinsichtlich eines Dialogfadens bleibt dabei das alte Wechselspiel des Dialoges erhalten. Die Interaktion kann dabei entweder mit Hilfe einer Kommandosprache, über graphische, zeichenorientierte, sprachbasierte oder anfassbare Benutzungsoberflächen stattfinden.
Ein Beispiel für eine kommandoorientierte Schnittstelle (CLI):
[[Bild:Windows-CLI.jpg]]
Hier sehen Sie eine graphische Benutzungsoberfläche:
[[Bild:MAC-GUI.png]]
=== Grafische Benutzeroberflächen ===
Grafische Benutzeroberflächen (Graphical User Interface = GUI) werden häufig in einem Atemzug mit direkter Manipulation genannt, bieten jedoch in der Regel eine Mischung aus unterschiedlichen Interaktionstechniken. Sie basieren meistens auf der Schreibtischmetapher und zeigen den Zustand in Form von Dokumenten-Icons, Fenstern und Menüs. Beispiele für grafische Benutzeroberflächen sind: Finder von MacOS, KDE von Linux, Windows, Open Look.
====Leitideen====
Die Leitideen für grafische Benutzeroberflächen sind (abgeleitet aus den StyleGuides von Windows bzw. Macintosh)
'''Benutzerkontrolle (user control)'''
Visuelle Anzeige und Kontrollmöglichkeit auch automatischer Vorgänge,
Gefühl der Kontrolle geben.
'''Rückkopplung (feedback)'''
Echo oder Reaktion auf jede Eingabe vorsehen, z. B.
*Mauszeiger ändert Form
*Objekt verändert Aussehen
*Menüeintrag wird blass, wenn nicht wählbar
*Statuszeile zeigt Fortschritte durch Balkenlänge oder Dateinamen an
*Übersichtsfenster zeigt Fortschritt an (progress indicator)
*Ereignisfenster (pop -up window )
'''Visualisierung (directness)'''
Visuelles Äquivalent der Daten und Funktionen, die darauf zeigen.
Logik von Metaphern nutzen
Beispiele:
Schreibtisch mit Papierkorb, Eingangskorb, Ablage, Mappen
Pinnwand zum Austausch von Infos & Texten in Arbeitsgruppen
Vorteile:
NutzerIn hat Informationen über Sinn und Funktion des Objekts
Protokollwissen (Interaktion) ist schon da
'''Konsistenz (consistency)'''
Ähnliche Situationen – ähnliche Visualisierung, ähnliche Reaktionen
*Nicht auswählbares Menü ebenfalls zeigen
*Daten sichern, Dokument drucken: immer mit Dateiauswahl oder immer ohne.
*„Selektion“ immer ein Objekt. &Gedrückter Knopf: immer ein Bereich.
'''Einfachheit (simplicity)'''
„so viel Info wie nötig, so wenig wie möglich“
Kurze Meldungen und Kommandos
Info nur zeigen, wenn nötig,
Karteikartenreiter, ...
'''Ästhetik (aesthetics)'''
Konflikt Einfachheit, Funktionalität vs. Schönheit
==== Elemente grafischer Benutzeroberflächen ====
'''Fenster'''
Der Bildschirm kann in mehrere Ausschnitte geteilt sein, die als Fenster bezeichnet werden. Fenster sind rechteckig und grafisch durch Seitenmarkierungen begrenzt. Fenster erlauben die Kontrolle mehrerer, einander überlappender Bildschirmausschnitte, wobei diese Ausschnitte direkt Arbeitsbereichen der Benutzenden zugeordnet werden können.
Der Vorteil von fensterbasierten, interaktiven Systemen liegt in der gleichzeitigen, gruppierten Darstellung unterschiedlicher Informationen. Durch die Überlappung von Fensterteilen können die Benutzenden nicht nur zwischen verschiedenen Aufgaben hin- und herwechseln, sondern sie können diese auch zeitlich reihen und Informationen zwischen den Fenstern transferieren.
Folgende Operationen sollten von Fenstersystemen zur Verfügung gestellt werden:
''Create'': legt ein neues Fenster am Bildschirm an.
''Delete:'' löscht ein bestehendes Fenster am Bildschirm.
''Open:'' öffnet ein Fenster in verkleinerter Darstellung, beispielsweise in Piktogramm- oder Balkendarstellung.
''Close'': verkleinert ein Fenster zu einem Piktogramm oder Balken.
''Move:'' erlaubt das Bewegen (Ziehen) eines Fensters über den Bildschirm ohne die Größe des Fensters zu verändern.
''Resize:'' bewirkt eine Größenveränderung des Fensters.
''Full Size:'' erlaubt unmittelbar die maximale Ausdehnung eines Fensters.
''Small Size:'' reduziert ein Fenster unmittelbar auf seine minimale Größe.
''Scroll:'' lässt den Fensterinhalt vertikal oder horizontal passieren.
''Define:'' erlaubt die Definition eines Fensters.
''Bring-to-front'': bringt das ausgewählte Fenster in den Bildvordergrund (bei überlappenden Fenstern).
''Sent-to-back:'' rückt das ausgewählte Fenster in den Hintergrund (bei überlappenden Fenstern).
Der Lernaufwand für den Umgang mit Fenstern ist nicht zu unterschätzen. Die Benutzenden müssen die aufgezählten Befehle zur Manipulation der Fenster erlernen und auch die motorischen Fertigkeiten dazu. Außerdem fehlt die nötige Metapher aus dem Alltag für das Medium Fenster.
''' Menü '''
Eine Menge von Optionen wird am Bildschirm bzw. in einem Bildschirmausschnitt dargestellt. Alle Optionen sind sichtbar, das wieder Erkennen ist leichter als das Erinnern, Voraussetzung dafür sind aber sinnvolle Menüeinträge. Die Auswahl erfolgt entweder durch die Maus oder über die Tastatur. Die Menüs können auch hierarchisch gegliedert werden. Damit Platz gespart wird, werden Menüs oft nur bei Bedarf gezeigt.
Typen
''Menübalken:'' oft oben waagerecht auf Fenstern.
''Pull-Down-Menü:'' ist sichtbar, solange oder bis Maus gedrückt wird z. B. an Menübalken. verankert. Es öffnet sich nach unten, wenn man mit dem Mauszeiger über den Menütitel fährt.
''Drop-Down-Menü:'' erscheint z. B. bei rechter Maustaste auf Objekt.
''Fall-Down-Menü:'' erscheint, ohne, dass Maus gedrückt wird, der Cursor wird nur auf Objekt bewegt.
''Kontextmenüs:'' Ein ''Pop-up-Menü'' kann nur an den Stellen in einer Anwendung geöffnet. werden, an denen es Sinn macht. Es kann spezielle Werkzeuge oder eine Befehlsauswahl enthalten, die für diesen Abschnitt der Software eingesetzt werden können und kann irgendwo auf dem Bildschirm erscheinen. Ein typisches Pop-up-Menü erscheint z. B., wenn man auf einer Website ein Bild anklickt (Windows rechts Klick, Mac Maustaste gedrückt halten), das die Optionen enthält, was man mit diesem Bild machen kann.
''Menükaskaden:'' durch die Auswahl eines Menüpunktes öffnen sich Untermenüs, eine hierarchische Menüstruktur steht dahinter.
''' Symbole '''
Grafiksymbole, die die Bedienung von Computern aber auch Instrumenten mit grafikfähigem Display erleichtern.
Die Symbole repräsentieren verschiedene Objekte, wie beispielsweise Dokumente, Fenster, Aktionen, ...
Die bildlichen Darstellungen können mit Blick auf die Bearbeitung mit speziellen Bedeutungen versehen werden, wie beispielsweise als Tasten (buttons), die man drücken kann oder Griffe (handles), an denen man ein grafisches Objekt bewegen oder verformen kann.
Icons sind kaum normiert und universell verständlich. Sie werden verwendet zur Darstellung von:
*Komponenten (wie Papierkorb, Festplatte)
*Prozesse (Uhr für arbeitendes System)
*Ablaufende Prozesse mit Eingriffsmöglichkeit (Balken mit Abbruch)
'''Buttons'''
''CommandButton'' (Befehlsschaltfläche) spielen eine wichtige Rolle in der Interaktion zwischen Mensch und Computer. Befehlsschaltflächen stehen als Abbrechen-, OK- oder Befehlsknopf zur Verfügung
''CheckBoxen'' (Kontrollkästchen) stellen eine Möglichkeit dar, die Auswahl keiner, einer oder mehrerer Optionen zu realisieren.
Kontrollkästchen werden daher nicht für Eigenschaften verwendet werden, die sich gegenseitig ausschließen.
''OptionButtons'' erlauben die Auswahl (Radiobuttons, Optionsfeld) immer genau einer von mehreren Optionen.
'''Dialogboxen'''
''TextBox'' (Eingabefeld): Das TextBox-Steuerelement dient zur Eingabe von alphanumerischen Daten über die Tastatur oder die Zwischenablage an ein Programm. Eingabefelder können in mehreren Varianten auftreten: Einzeilig oder mehrzeilig, Bildlaufleisten können optional eingeblendet werden, die maximale Textlänge kann gesetzt werden.
''Listbox'' (Listenfeld) wird verwendet, um den Benutzenden die Möglichkeit zu geben, aus einer Liste ein oder mehrere Elemente auszuwählen.
'''Leisten (Bars)'''
''Toolbar'' (Werkzeugleiste) besteht aus einem oder mehreren Schaltflächen beispielsweise für Operationen zum Bearbeiten von Dateien wie Speichern, Öffnen.
''StatusBar'' (Statusleiste) wird verwendet um Informationen über den Status einer Anwendung bzw. eines Prozesses zu geben, wobei es sich eher um unwichtige Informationen handelt, die den Benutzenden nicht gleich ins Auge stechen sollen.
''ProgressBar'' (Fortschrittsanzeige) wird verwendet, um den Benutzenden über den Fortschritt eines Prozesses zu informieren. Dabei kann der prozentuale Anteil einer Operation, die bereits abgeschlossen ist im Verhältnis zu Gesamtaufwand klar dargestellt werden.
''Register'' (TabStrip) besteht aus einer oder mehreren Laschen, bei denen immer eine ausgewählt werden kann. Man kann sich die Funktion leicht mit einem Registrierkasten vergegenwärtigen, der immer eine Lasche geöffnet hat.
''Schieberegler'' (Slider) finden dort ihre Anwendung, wo Benutzende einen Wert aus einer festen Menge von linear angeordneten numerischen Werten mit konstanten Abständen wählen können, z. B. bei Lautstärkenregler.
'''Ansichten'''
''Baumansicht'' (TreeView) wird verwendet, um Daten in einer baumähnlichen Struktur anzuzeigen. Beispiel dafür ist das Dateisystem. Dabei können Knoten weitere Knoten und Blätter enthalten. Blätter sind Knoten, die keine weiteren Unterknoten besitzen.
''Listenansicht'' (ListView) wird verwendet, um mehrere Elemente anzuzeigen. Dabei ist es möglich, mehrere Spalten und Grafiken für die Elemente fest zu legen.
'''Dialoge'''
Bei der Dialog- und Interaktionsführung soll die intuitive Arbeitsweise der Nutzenden unterstützt werden:
Im Idealfall sollen Nutzenden die ihnen auf dem Bildschirm bekannten Symbole genauso wie reale Gegenstände manipulieren können (Bsp: Ziehen eines Objektes auf den Mülleimer oder in den Postkorb).
Dem entspricht das Objekt-Aktion-Prinzip: Erst Objekt wählen, dann aus den für das Objekt möglichen Aktionen eine Aktion auswählen.
Reihenfolge von Eingabemasken wird in traditionellen Programmen starr vorgegeben, das Programm führen Benutzende, sie haben weniger Freiheiten. Im Gegensatz dazu stehen den Benutzenden bei einer freien Dialogführung mehrere/alle Funktionen eines Datenobjekts zur gleichen Zeit zur Verfügung, die Nutzenden agieren, die Anwendung reagiert (auf „Ereignisse“).
=== Kommandoorientierte Benutzeroberfläche ===
'''Kommandosprache'''
Eine Kommandosprache ist eine formale Sprache zur Formulierung von Aufträgen an den Computer. Für jeden Auftrag werden die benötigten Angaben, wie Operation, Bezugsobjekt, Argumente und Optionen, in Textform angegeben. Fehlende Angaben werden durch Standardwerte(Defaults) ergänzt, die fest sind oder dem aktuellen Zustand entnommen werden.
Kommandosprachen basieren auf der Eingabe von Befehlen in einer vorgegebenen Syntax.
Jedem Befehl können in der Regel Parameter mitgegeben werden. Die meisten Umgebungen ermöglichen die Zusammenfassung von mehreren Befehlen in so genannte Batch-Dateien bzw. Makros, die ebenfalls zur Ausführung gebracht werden können. Des Weiteren wird vielfach die Möglichkeit der Ausgabeumlenkung geboten, wodurch das Ergebnis eines Befehls als Eingabe eines weiteren genutzt werden kann. Dadurch lassen sich umfangreiche und sehr mächtige Aktionen ausführen. Insbesondere wenn mehr als nur ein Objekt bearbeitet werden soll.
Wesentliche Gestaltungsfragen für Kommandosprachen sind:
*Die anwendungsnahe Gestaltung des Vokabulars
*Die Gestaltung von Abkürzungen nach einheitlichen und einfachen Regeln
*Die einheitliche syntaktische Struktur von Kommandos
*Die verständliche Beschreibung (Dokumentation, Hilfesystem) der sprachlichen Ausdrucksmöglichkeiten.
'''Vorteile:'''
*Sie erfordern keine speziellen Eingabegeräte, nur die in der Regel vorhandene Tastatur.
*Sie erlauben die leichte Aufzeichnung von Vergangenheit (Protokoll).
*Der geübte Benutzer kann sehr schnell und effizient arbeiten.
*Es sind mächtige Befehle realisierbar.
*Aktionen über viele Objekte lassen sich leicht durchführen.
'''Nachteile:'''
*Hoher Lernaufwand, vor allem für AnfängerInnen und gelegentliche BenutzerInnen. Außerdem ist eine Nutzung ohne Kenntnis der Syntax nicht möglich.
*Die Eingabe ist fehleranfällig, da Befehle und Parameter erinnert werden müssen.
*Da der Wirkungsbereich von Kommandos der gesamte Zustand des interaktiven Systems sein kann, ist es schwer, die Wirkungen eines Kommandos unmittelbar zu kontrollieren.
*Die Auswirkung eines Befehls rückgängig zu machen ist nur in Ausnahmen möglich.
*Der Benutzende muss über das System genau Bescheid wissen (z. B. Directorystruktur).
'''Beispiele:'''
*MS-DOS (Beispiel für das Kopieren eines Textes von Laufwerk A (Diskette) auf die Festplatte C
copy a:Artikel.doc c:\Dokumente\Arteikel1.doc
*Beispiel SQL (Suche nach Vornamen und Nachnamen der Kunden, sortiert nach den Nachnamen)
SELECT Vorname, Nachname FROM Kunde ORDER BY Nachname
== Literatur ==
=== Quellen ===
Elisabeth Katzlinger/Thomas Filsecker/Alfred Novacek/Manfred Pils in Pils: Informationsverarbeitung 1.
=== Weiterführende Links ===
* [http://www.idv.edu Institut für Datenverarbeitung]
* [http://www.jku.at Johannes Kepler Universität]
* [http://musss.jku.at/moodle MUSSS-Moodle]
http://www.3sat.de/mediathek/?mode=play&obj=11913

Aktuelle Version vom 20. September 2009, 20:40 Uhr

Die Systemsoftware stellt den Anwendungsprogrammen über standardisierte Schnittstellen gewisse Grundfunktionen (sog. APIs, „Application Programming Interfaces”) zur Verfügung.

The system software provides certain basic functions to the application programs in way of standardised interfaces (so-called APIs, „Application Programming interface“).


Systemsoftware