Messumformer
Entwicklung der Benutzerkommunikation eines Messumformers für chemische Eigenschaften von Flüssigkeiten
Analyse und Entwurf in UML 2, Implementierung in C++, Test, Software-Koordination
An den Messumformer können bis zu acht Sensoren angeschlossen werden, die chemische Eigenschaften von Flüssigkeiten messen, z.B. Sauerstoffgehalt, Nitratgehalt, pH-Wert, Reduktions-Oxidations-Potential, elektrische Leitfähigkeit, Trübung. Er hat eine grafische Anzeige 10cm x 8cm, einen Drehdrücksteller und vier Drucktasten. Die Sensoren sind über Memosens mit dem Messumformer verbunden.
Der größte Teil der Benutzeroberfläche ist zeilenorientiert mit hierarchischen Menüs ähnlich dem iPod. Drehen wählt eine Zeile aus, Drücken führt in ein Untermenü oder in eine Tabelle oder löst eine Aktion aus. In ein- oder zwei-dimensionalen Tabellen wird durch Drehen navigiert, Drücken ruft einen Editor auf. Es gibt Editoren für Text und verschiedene Zahlenformate. Messwerte werden in speziellen Bildern angezeigt, in denen z.B. Zahl und Einheit die ganze Grafikanzeige ausfüllen, sodass man den Messwert auch auf Entfernung ablesen kann. Die Drucktasten werden als kontextabhänge Softkeys verwendet.
Die Benutzeroberfläche ist hochgradig konfigurierbar. Die Menü-Hierarchie, der Inhalt jedes einzelnen Menüs, die anzuzeigenden Daten und die Reaktionen auf bestimmte Ereignisse können theoretisch je Gerät, praktisch je Kunde festgelegt werden. Die Konfiguration wird von Produkt-Expertinnen oder -Experten am PC durchgeführt. Das PC-Werkzeug erzeugt dann C++Text, der in die Laufzeit-Software eingebunden wird.
Die Sensorbestückung kann zur Laufzeit verändert werden. Bei Anschließen eines Sensors macht die Benutzerkommunikation die zu diesem Sensor, bzw. seinem Typ gehörigen Menüs, Daten und Messbilder zugänglich. Bei Abklemmen eines Sensors macht sie diese unzugänglich.
Entwurf der Benutzerkommunikation als Software-Komponente in UML 2.2 mit Enterprise Architect
Der Entwurf besteht aus Komponentendiagrammen, Klassendiagrammen, Kollaborationsdiagrammen und Sequenzdiagrammen. Es handelt sich um einen klassischen objektorientierten Entwurf, in dem jedem auf der Anzeige sichtbaren Ding ein Software-Objekt zugeordnet ist. Objekte an den Grenzen der Komponente nehmen Dienste anderer Komponenten z.B. des Fenstersystems in Anspruch, reagieren auf Ereignisse, die von anderen Komponenten z.B. der Sensor-Verwaltung gemeldet werden, lesen/schreiben aus/in verschiedene Datenbasen und führen Dienste z.B. Anzeigen von Meldungen für andere Komponenten aus. Die Benutzerkommunikation ist vollständig asynchron, d.h. sie wird nur aktiv, wenn Ereignisse oder Aufrufe von außen kommen.Definition des Formats des C++Textes, der vom PC-Konfigurationswerkzeug zu erzeugen ist
Definition der Schnittstellen zu anderen Software-Komponenten
Programmierung in C++
Test am Gerät und in einer Software-Simulation des Geräts auf dem PC
Meine Aufgaben waren
Ich machte den Grobentwurf und war verantwortlich für die Benutzerkommunikation als Software-Komponente. Feinentwurf, Programmierung und Test machten ein Kollege und ich zusammen, wobei jeder für bestimmte Subkomponenten zuständig war.