Lösung für die Herausforderung "Software-Tests mit Zustandsautomaten"

Letzten Monat haben wir in unserem Blogbeitrag zum Thema Software-Tests für Zustandsautomaten mit Altova UModel unerwartetes Verhalten in unserem Modell eines Klimaanlagensystems festgestellt und unsere Leser aufgefordert, das Design zu verbessern. Dieser Beitrag beschreibt eine mögliche Lösung. Als wir die Testanwendung für unser Modell ausführten, stellten wir fest, dass der Ein-/Ausschalter das System nicht ausschaltete, wenn es sich im Standby-Modus befand. Im Zustandsautomendiagramm unseres ursprünglichen Modells ist der einzige Weg vom Betriebsmodus in den Standby-Modus über den Standby-Knopf, und der einzige Weg, den Standby-Modus zu verlassen, ist, den Standby-Knopf erneut zu drücken, wie im Detail unten dargestellt.

Wir können einen alternativen Ausweg erstellen, um das System aus dem Standby-Zustand herunterzufahren, indem wir einfach eine neue Übergangsverbindung vom Standby-Zustand zum Aus-Zustand zeichnen und die Funktion powerButton() als das Ereignis definieren, das diese Übergang auslöst. UModel erleichtert die Zuweisung des Auslösers, indem es ein Pop-up-Fenster anzeigt, das bereits im Modell definierte Ereignisse auflistet.

Unsere überarbeitete Version des Modells, die den neuen Übergang von "Standby" zu "Aus" beinhaltet, sieht wie folgt aus:

Nachdem der Java-Code neu generiert und die neue Version kompiliert wurde, können wir die Testanwendung erneut ausführen. Das Debug-Ausgabefenster zeigt an, dass das System in Ereignis 3 in den Standby-Modus überging. Ereignis 4, die Aktivierung des Power-Knopfes, setzt den Zustand nun auf "Aus".

Entdecken Sie selbst, wie Sie die Logik Ihrer Zustandsautomaten-Diagramme mit Altova UModel verbessern können – **laden Sie eine kostenlose 30-Tage-Testversion heute herunter!