Jenseits des Codes

Nicht nur die korrekte Funktionsweise eines Geräts ist wichtig - die Funktionen müssen auch leicht zugänglich sein. Dies zu gewährleisten ist die Aufgabe einer Benutzeroberfläche. Damit ihre Gestaltung gelingt, müssen schon im Vorfeld der Produktentwicklung die richtigen Weichen gestellt werden.

Von der Automatisierungstechnik über die Medizintechnik und von Haushaltsgeräten bis hin zu Infotainment-Systemen in Fahrzeugen - Embedded-Systeme sind für die Leistungsfähigkeit und den Funktionsumfang von immer mehr Produkten entscheidend. Da sich Erwartungen schnell ändern können und fast jedes Unternehmen eine auffällige, trendige Benutzerschnittstelle (GUI - Graphical User Interface) anbieten möchte, stehen die Entwickler dieser Embedded-Systeme unter dem Druck, nicht nur die Anforderungen an die Benutzerfreundlichkeit zu erfüllen, sondern auch eine eindrucksvolle Benutzeroberfläche zu gestalten. Die Programmierung ist bei der Entwicklung der Schnittstelle für ein Embedded-Design ein wichtiger Bestandteil - aber eine gute Programmierung allein ist nicht alles. Den Anwender zu verstehen und die richtige Wahl der Entwicklungswerkzeuge zu treffen sind weitere wichtige Erfolgsfaktoren.

Funktionsflut macht Bedienung schwieriger

In der Vergangenheit waren viele Embedded-Systeme in der Tat eingebettet und erforderten eine minimale oder gar keine Verbindung zum Endanwender. Darum mussten nur grundlegende UI-Anforderungen erfüllt werden - wenn überhaupt. Da Embedded-Systeme aber immer leistungsfähiger werden und sich heute in fast jedem elektronischen Gerät befinden, müssen deren Funktionen für den Nutzer besser zugänglich sein. Damit diese Systeme bedienbar bleiben, ist ein Mehraufwand in Kauf zu nehmen. Kommen zusätzlich Funktionen wie Touchscreen-Steuerung, dynamische Inhalte und Internet-Zugang hinzu, ist klar, dass die Entwicklung von Benutzerschnittstellen ein entscheidender Bestandteil bei der Entwicklung von Embedded-Systemen ist.

Jeder hat sich mittlerweile an den einfachen Gebrauch von Mobiltelefonen und Tablet-Rechnern gewöhnt. Selbst bei grundlegenden Designs jenseits der Konsumelektronik wird eine GUI erwartet, die intuitiv, eindeutig, informativ, schnell und zuverlässig ist. Dies erhöht den Druck auf das Entwicklerteam, nicht nur weil die GUI-Entwicklung bei der Programmierung sehr komplex werden kann (entsprechende vorprogrammierte Module sind für viele Embedded-Betriebssysteme nicht ohne weiteres verfügbar), sondern weil eine attraktive Grafik mittlerweile von jedem System mit einem guten Display und entsprechender Prozessorleistung dargestellt werden kann. Die Entwicklung interaktiver und dynamischer GUIs kann ohne die entsprechenden Werkzeuge sehr anspruchsvoll sein. Auch ein weiterer, weniger beachteter Aspekt ist zu berücksichtigen: Neben den richtigen Tools zur GUI-Entwicklung sind auch zusätzliche Entwicklungsfertigkeiten gefragt, die in einem Team mit Software-Entwicklern nicht immer vorhanden sind.

Während der Funktionsumfang natürlich wichtig ist, unterscheidet letztendlich die Benutzerfreundlichkeit gute GUI-Designs von einfachen Implementierungen. Software-Entwickler sind immer imstande, eine Benutzerschnittstelle zu implementieren, die alle Funktionsspezifikationen erfüllt. Aber die optimale Benutzererfahrung ergibt sich nur durch Erwägungen auf höherer Ebene und dem Verständnis, wie diese Schnittstelle dem Anwender bei seiner Arbeit helfen soll bzw. wie seine gewünschte Anfrage auf einfache und intuitive Weise erledigt wird. Deshalb muss eine Unterscheidung bei der Programmierung einer Schnittstelle und beim Design einer Schnittstelle erfolgen. Warum? Heutzutage wollen sich Anwender nicht mehr mit Geräten und Systemen zufriedengeben, die schwer zu erlernen oder zu bedienen sind. Es gibt also viel zu tun, bevor mit der Programmierung begonnen wird.

Überlegungen vor der Programmierung

Der erste Schritt beim Design einer Benutzerschnittstelle sollte die Definition der Nutzeranforderungen sein und die Analyse, wie der Anwender die notwendigen Schritte durchführt. Es gibt keinen anderen Weg, zu verstehen, was der Anwender erreichen möchte und wie er Aufgaben der Reihenfolge nach gewichtet. Dies trifft zwar auf alle Designs zu, spielt aber in einsatz- und sicherheitskritischen Anwendungen eine besonders wichtige Rolle, z.B. in der Medizintechnik und Luft-/Raumfahrttechnik, wo die Art, wie gut eine Schnittstelle entwickelt ist, buchstäblich über Leben und Tod entscheiden kann. Besonders wertvoll ist daher die Beobachtung oder Aufzeichnung von Anwendern, wenn sie ähnliche Aufgaben bewältigen müssen. Dabei müssen Probleme und Fehlschläge während der Nutzung bestehender Systeme mit einbezogen werden.

Sobald Entwickler verstehen, welche Funktionen der Anwender benötigt, können sie sich dem „Look & Feel“ der Schnittstelle und dem entsprechenden Workflow widmen. Storyboards und Prototypen-Visuals sollten erstellt werden und mit Anwendern diskutiert, neue Iterationen auf Basis des Feedbacks durchgeführt werden. Moderne Tools können da helfen - nicht nur, um eine schnelle Prototypenentwicklung zu ermöglichen, sondern auch, um eine rasche Umsetzung im Endprodukt zu gewährleisten. Übergreifend sollte der Entwickler stets eine Schnittstelle bereitstellen, die intuitiv, konsistent in Form und Funktion sowie aufgeräumt erscheint.

Neben der Analyse der Nutzeranforderungen und Aufgaben beeinflussen noch andere Faktoren das Schnittstellendesign, z.B. die Betriebsumgebung. Helle Umgebungen oder die Bedienung von Touchscreens mit Handschuhen, wie es in der Medizintechnik oder in industriellen Bereichen der Fall sein kann, können einen Einfluss auf die Icon-Größe, -Farbe und -Position haben. Auch die Portabilität über Hardware- und Software-Plattformen hinweg ist wichtig, genauso wie die weltweite Einsatzmöglichkeit, die verschiedene Sprachversionen erfordert. Auch eine integrierte Internet-Anbindung muss in dieser Projektphase mit berücksichtigt werden.