Best Practices der toolgestützten Embedded-GUI-Entwicklung

Seite: 6/6

Firmen zum Thema

User Experience: Um eine gute User Experience, die Kombination aus ansprechendem Design und guter Bedienbarkeit zu erreichen, bedarf es eine Menge gedanklicher Vorarbeit: Damit die einzelnen Ansichten leicht zu erfassen sind und die touchbaren Elemente groß genug sein können, müssen die Funktionen der Benutzeroberfläche auf mehrere Ansichten aufgeteilt werden. Diese Aufteilung richtet sich nach Anwendungszenarien und logischer Zusammengehörigkeit der Funktionen, wobei jeder Screen übersichtlich und in sich logisch gegliedert sein muss. Die einzelnen Elemente müssen dann nach Wichtigkeit richtig gewichtet werden. Dies geschieht durch Größe, Farbe und Form.

Des Weiteren muss das GUI in sich konsistent sein: Die an einer Stelle im GUI gelernte Bedienung muss sich unbedingt an allen anderen ähnlichen Stellen gleich verhalten. Dafür ist es notwendig, das GUI-Konzept in Komponenten bzw. Templates zu strukturieren. Letzteres ist eine wichtige Vorarbeit für die objektorientierte Programmierung. Letztlich bedarf es eines gestalterischen Gespürs und Erfahrung um aus einer Kombination aus Farben, Linien, Symbolen und Schriften ein harmonisches und attraktives Ganzes werden zu lassen. Für diesen Bereich gibt es Spezialisten, die entsprechende Methoden für Anforderungserhebung, Konzeption und Design parat haben.

Instant-Prototyping: Wurde die Middleware vom eigentlichen UI getrennt und nutzt dieses eine Abstraktionsschicht zur Zielplattform, ist es mit wenig Aufwand möglich, Prototypen zu realisieren. Es ist hilfreich, wenn für die Prototyping-Plattform das Host-System (zum Beispiel der Windows PC) verwendet wird. So können schnell Vorabversionen der Benutzeroberfläche an Nicht-Entwickler wie Designer, Produktmanager oder Mitarbeiter der Marketing-Abteilung bereitgestellt werden. Änderungen im GUI können damit schneller kommuniziert und greifbar gemacht werden.

RAM Optimierung: Den Verbrauch von Arbeitsspeicher bei GUI-Applikationen bestimmen hauptsächlich die gewählte Auflösung, das verwendete Farbformat (True Color, High Color, Index8, etc.) und die Anzahl und Art der benutzten Ressourcen wie Schriftarten oder Bitmaps. Kann man die Auflösung nicht reduzieren und hat man bereits die Auswahl der Schriftarten und Bitmaps optimiert, so ist die Reduktion des Farbformats oft das Mittel der Wahl, um signifikant den Verbrauch von Arbeitsspeicher zu minimieren. Demzufolge sollte ein GUI-Tool bzw. eine GUI-Bibliothek die Möglichkeit bieten, das Farbformat ohne große Einbußen beim Design zu ändern.

ROM Optimierung: Ähnlich wie bei der Optimierung des RAM-Verbrauchs, bestimmen im Wesentlichen die verwendeten Ressourcen und der eigentliche Programmcode die Größe der resultierenden Applikation im Flash-Speicher. Da man am Programmcode bei einer guten Software-Architektur selten signifikante Änderungen durchführen kann, die einen Einfluss auf den ROM-Footprint haben, lohnt es sich, bei den verwendeten Ressourcen zu optimieren. Dabei ist es entscheidend, ob diese statisch (zur Compile-Zeit) oder dynamisch (zur Laufzeit) verwendet werden. So kann beispielsweise der Wechsel von der statischen zur dynamischen Verwendung große Auswirkungen haben. Sollen zum Beispiel nur wenige Schriftzeichen in einer bestimmten Größe dargestellt werden, sollte das verwendete GUI-Tool die Option anbieten, auch nur diese Selektion statisch im Programmcode einzubetten. Damit muss nicht die ganze Schriftart eingebunden werden und der Speicherverbrauch wird gesenkt.

Performance-Steigerung: Gilt es nicht den Speicherverbrauch, sondern die Performance von Benutzeroberflächen zu verbessern, sollten zunächst die eigentlichen Zeichenoperationen optimiert werden. Bessere GUI-Tools sind deshalb zum Beispiel so ausgelegt, dass nur sich ändernde Bereiche, sog. Dirty Areas, zur Darstellung gebracht werden. Dies spart Rechenzeit und die Anzahl der Frames pro Sekunde (FPS) steigt. Eine weitere Möglichkeit, die FPS bei vollflächigen Animationen zu verbessern, besteht darin, ein intelligentes Caching zu nutzen: Einmal zusammengesetzte UI-Elemente wie Buttons, Sliders, Text-Views, etc. werden vor der Animation eingefroren, dupliziert und zu einem, sich nicht mehr änderbaren Abbild zusammengefügt. Die vollflächige Animation wird dann mit dem temporären Abbild durchgeführt und dieses danach wieder aus dem System entfernt. Dadurch muss die Animation nur noch auf einem zwischengespeicherten Objekt anstatt auf vielen kleineren Objekten durchgeführt werden. Das spart kostbare Rechenzeit, kostet aber zusätzlichen Speicher.

Integration: Während der Projektlaufzeit gibt es normalerweise mehrere Sitzungen, bei denen die neu entwickelten Software-Komponenten zusammengebracht und auf der Zielplattform integriert werden. Stellt man dabei fest, dass bestimmte Animationen oder Übergänge nicht zufriedenstellend dargestellt werden, ist es vorteilhaft, die gesamte Kette zu beherrschen. Folglich sollte man keine Unbekannte in seinem System vorfinden: Von der Applikation selbst über das GUI-Tool bzw. der GUI-Bibliothek bis hin zum graphischen Subsystem sollte der Entwickler Bescheid wissen.

Wer in dem Bereich der Benutzeroberflächenentwicklung ein Neuling ist und sich in der eingangs erwähnten Situation befindet, kann durch die Berücksichtigung der genannten Best Practices viel Zeit, Kosten und auch Nerven einsparen. Was am Anfang zunächst als Mehraufwand erscheint - genaue Konzeption, Architektur, Plattformunabhängigkeit, etc. - zahlt sich hinterher aus, da oftmals doppelte Entwicklungen vermieden werden können.

Natürlich erwarten Marketing und Management, dass der Prototyp schon in der ersten Version die gesamte Funktionspalette des zu bedienenden Gerätes abbildet. Jedoch sollte gerade zu Beginn der Funktionsumfang reduziert sein, damit verstärkt auf die Softwarequalität geachtet werden kann. Die genannten Aspekte können somit auch als Argumentationshilfe dienen, einen effektiven, vernünftigen und pragmatischen Weg einzuschlagen. So kann es gelingen, ein HMI-Projekt benutzerfreundlich, termingerecht und nachhaltig umzusetzen.

Über TARA Systems GmbH: Die TARA Systems GmbH ist ein unabhängiges Softwareunternehmen, das Komponenten und Dienstleistungen für Embedded Systems in Bereichen der Unterhaltungselektronik, Industrie, Automobilindustrie und mobilen Endgeräte anbietet. Der Schwerpunkt liegt auf zuverlässigen Lösungen für digitalen TV-Empfang sowie auf der Konzeption und Umsetzung von graphischen Benutzeroberflächen. Mit mehr als 25 Jahre Erfahrung in diesen Bereichen garantiert sie ihren Kunden innovative Produkte von hoher Qualität.

Verweise

  • Embedded Wizard GUI Lösung: http://www.embedded-wizard.de
  • TARA Systems GmbH: http://www.tara-systems.de

* Manuel Melic studierte Diplom Informatik und ist Gesellschafter der TARA Systems GmbH. Dort verantwortet er als Produktmanager die GUI Lösung Embedded Wizard. Außerdem betreut er im Team neben dem Tagesgeschäft unterschiedliche Studentenprojekte, die für Bachelor- und Masterstudenten im Fachbereich Informatik/Mathematik an der Hochschule München angeboten werden.

(ID:44318559)