Aufgabenstellung IoT Native Entwicklung
Abstract: Ein Erzeuger generiert Werte die an einen Verbraucher übertragen werden. Der Verbraucher zeigt die einzelnen Werte in der Konsole an. Der Erzeuger kann erst neue Werte an den Verbraucher senden, wenn der Verbraucher den Wert verbraucht (ausgegeben) hat.
Feature: Der Erzeuger überträgt ein variables Objekt an einen Verbraucher der das Objekt auf der Konsole ausgibt
Scenario: Das erzeugte, variable Objekt stellt in der ersten Ausprägung einen Sekunden Zeitwert mit aktuellem Zeitstempel in msec dar Given der aktuelle Zeitwert in Sekunden When das Objekt erstellt wird Then Sekunden Wert und ein Zeitstempel in msec wird in das Objekt eingetragen
Scenario: Das Objekt wird an den Verbraucher übertragen Given ein erstelltes Objekt When das Objekt übertragen wird Then wird auf den Verbraucher gewartet bis er das Objekt verarbeiten kann
Scenario: Das Objekt ist im Verbraucher angekommen Given ein übertragenes Objekt When das Objekt ausgegeben ist Then wird der Erzeuger informiert ein neues Objekt zu erzeugen
Scenario: Das Objekt wird im Verbraucher ausgegeben Given eine übertragenes Objekt When das Objekt ausgegeben wird Then der Wert in Sekunden wird numerisch, der Zeitstempel in lesbarer vollständiger Form, ausgegeben
Scenario: Das Objekt wird vom Erzeuger übertragen Given ein erstelltes Objekt When das Objekt übertragen wird Then der Erzeuger wartet bis der Verbraucher eine Erzeugung angefordert hat
Scenario: Das Objekt wird übertragen Given ein erstelltes Objekt When das Objekt übertragen wird Then das Objekt wird serialisiert über einen Socket übertragen
Development Guidelines
- Die Verwendung von C++ Standards, C11 und neuer
- Die Implementierung soll eine Linux und Windows Plattform abdecken
- Das Build System für die gesamte Anwendung ist CMake
- Die gesamte Anwendung verfügt über Unit Tests die mit google test zu erstellen sind
- Die Versionsverwaltung git ist zu verwenden
- Eine Dokumentation des Anwendungsentwurfs ist verfügbar
- Die Übertragung kann von Sockets auf andere Mechanismen (Shared File) umgestellt werden. Der Impact auf die Anwendung soll begrenzt sein.