Best Practices der toolgestützten Embedded-GUI-Entwicklung

Seite: 5/6

Firmen zum Thema

Die oben aufgeführten Ursachen und Probleme lassen sich durch gezielte Maßnahmen - mit Hilfe von geeigneten GUI-Tools und -Bibliotheken - in den Griff bekommen. Die nachfolgenden Ratschläge sollen darüber hinaus helfen, die Umsetzung von GUIs für Embedded Systems zu erleichtern:

Plattformunabhängigkeit: Wie oben bereits erwähnt sollte das GUI-Tool auf einer Zwischenschicht aufsetzen. Diese abstrahiert die Schnittstellen zur Hardware, zum verwendeten Betriebssystem, zur benötigten Auflösung und zum gewählten Farbformat sowie zum eigentlichen graphischen Subsystem. So lässt sich die Hardware einfach austauschen, indem nur die Abstraktionsschicht auf die neue Plattform portiert wird.

Trennung von Middleware und GUI: Eine klare Trennung der Geschäftslogik von der graphischen Benutzerschnittstelle hilft, die Fachlichkeiten besser zu strukturieren. Dadurch ist es zum einen möglich, parallele Entwicklungen zu betreiben. Zum anderen können durch geeignete APIs mehrere, unterschiedliche GUIs auf die gleiche Instanz der Geschäftslogik (Middleware) zugreifen. Dies wird zum Beispiel bei der Implementierung von sog. Companion-Screens interessant, wenn es darum geht, zur eigentlichen, stationären Bedieneinheit eine weitere, mobile Anzeige hinzuzufügen.

Nutzen von bekannten Best-Practices: OOP mit MVC und MVVM: Da in der Regel GUI-Projekte durchaus schnell komplex werden können, ist es empfehlenswert, ein Objekt-orientiertes Programmier-Paradigma zu wählen: Durch Kapselung, Wiederverwendbarkeit von Code und Vererbungen lässt sich ein GUI-Projekt in einzelne Teile zerlegen und macht damit das Projekt beherrschbarer. Des Weiteren können gängige Entwicklungsmuster - wie das Model-View-Controller- oder das Model-View-ViewModel-Muster - helfen, eine klare Struktur in dem Projekt zu schaffen. Demzufolge sollte auch das verwendete GUI-Tool solche Entwurfsmuster von sich aus unterstützen.

Asynchrone statt synchrone APIs verwenden: Sobald das GUI mit der Middleware verknüpft wird, passiert es oft, dass nach Benutzereingaben Animationen nicht mehr flüssig dargestellt werden oder sogar stocken und keine weiteren Eingaben mehr möglich sind. Dies liegt häufig daran, dass die Benutzereingaben synchron mit der Verarbeitung innerhalb der Middleware gekoppelt sind: Das GUI wartet, bis die Middleware die Eingabe verarbeitet hat und kann keine weiteren Aktionen mehr durchführen - es blockiert. Um dies zu vermeiden sollten alle rechenintensiven Aufrufe der Middleware asynchron, also ohne aktives Warten der GUI, ausgeführt werden. Die Ergebnisse des Aufrufs werden dann zu einem späteren Zeitpunkt dem GUI wieder zurückgeführt. Dies ist vor allem bei Animationen im GUI unumgänglich.

(ID:44318559)