Navigationsrechner
Mitarbeit bei der Entwicklung eines Navigationsrechners für Wasserfahrzeuge innerhalb eines Teams aus Software-, Hardware- und Produktspezialistinnen und -spezialisten; dabei Entwurf (in UML mit Rational Rose), Implementierung (in C++) und Test von Modulen, Systemintegration, Beteiligung am Entwurf des Gesamtsystems
Der Navigationsrechner sammelt Navigationsdaten aus
verschiedenen Quellen, z.B. GPS-Empfängern und Kreiselkompassen und verteilt
sie an Konsumenten, z.B. den Maschinenleitstand. Er prüft die empfangenen
Daten auf Plausibilität, berechnet aus ihnen Optimalwerte und überwacht
den Zustand der angeschlossenen Geräte.
Verschiedene Geräte sind über verschiedene Schnittstellen angebunden,
kommunizieren über unterschiedliche Protokolle und liefern oder benötigen
verschiedenartige Navigationsdaten. In jeder dieser Dimensionen gibt es Gruppen.
Zum Beispiel sind mehrere Geräte über RS422 angebunden, von denen
ein Teil via HDLC und ein anderer byteweise asynchron kommuniziert. Die geographische
Position wird z.B. von mehreren Quellen geliefert und an mehrere Konsumenten
mit unterschiedlichen Schnittstellen verteilt.
Die Klassenhierarchie der Software ergab sich aus dieser Situation mit ihren Gemeinsamkeiten und Unterschieden. Ein (Qualitäts-)Ziel des Entwurfs war es, die in einer solchen Situation drohende Existenz mehrerer leicht verschiedener Kopien bestimmter Programmtextstücke zu vermeiden.
Entwurf, Implementierung und Integration der Software zur Anbindung des Geschwindigkeitsmessgeräts
Entwurf (in UML mit Rose) und Integration der Software zur Anbindung des Maschinenleitstands und des Leitsystems des gesamten Fahrzeugs, Implementierung eines Teils davon.
Das Leitsystem, der Maschinenleitstand und der Navigationsrechner kommunizieren über ein verbindungsorientiertes Netz. Aus Gründen der Ausfallsicherheit tritt der Navigationsrechner in diesem Netz als mehrere Teilnehmer auf, die unterschiedliche Daten liefern bzw. erhalten, von denen einige unidirektional und einige bidirektional sind und die verschiedene Rollen (z.B. Initiator eines Verbindungsaufbaus) spielen. Analog zum Gesamtsystem spiegeln sich die Gemeinsamkeiten und Unterschiede in der Klassenhierarchie wieder.
Ich entwarf die Navigationsdatenverarbeitung und das Fahren des Netzprotokolls und programmierte erstere und die obere Schicht des Protokolls.Mitarbeit bei der Verfeinerung der Klassenhierarchie des Gesamtsystems
Mitarbeit bei Aufbau und Inbetriebnahme des Prototypen
Mitarbeit bei der Integration der gesamten Anlage aus Navigationsrechner, Leitsystem, Maschinenleitstand und Navigationsgeräten