---
title: "Lösung für die Herausforderung \"Software-Tests mit Zustandsautomaten\""
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: Dieser Artikel beschreibt eine Lösung für eine Herausforderung bei der Entwicklung von Zustandsautomaten, die in Altova UModel auftritt, und behandelt insbesondere das Verhalten des Systems im Standby-Modus.
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/de/category/uml.md)
# Lösung für die Herausforderung "Software-Tests mit Zustandsautomaten"

Letzten Monat haben wir in unserem Blogbeitrag zum Thema [Software-Tests für Zustandsautomaten](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html) mit [Altova UModel](https://www.altova.com/de/umodel.html) 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](https://www.altova.com/de/umodel/state-diagrams.html) 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. 

[![Detailansicht eines Zustandsautomaten-Diagramms in Altova UModel](https://lh5.ggpht.com/_REdrfeVqYdU/TbBqA8gVCnI/AAAAAAAAAYE/3PfcEd2PcKo/clip_image002%5B6%5D.jpg?imgmax=800 "Detail of a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html) 

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. 

[![Pop-up-Liste der Auslöser für Übergänge in einem Zustandsautomaten-Diagramm in Altova UModel](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqBGFuyKI/AAAAAAAAAYI/63ZNLF_dU3A/clip_image004%5B6%5D.jpg?imgmax=800 "Pop-up list of triggers for transitions in a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html)

Unsere überarbeitete Version des Modells, die den neuen Übergang von "Standby" zu "Aus" beinhaltet, sieht wie folgt aus:

[![Zustandsdiagramm in Altova UModel](https://lh6.ggpht.com/_REdrfeVqYdU/TbBqBUKsVYI/AAAAAAAAAYM/jSeTZcHJL4g/Snap10_new%20transition_thumb%5B6%5D.png?imgmax=800 "State machine diagram in Altova UModel")](https://www.altova.com/umodel.html) 

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". 

[![Testanwendung für Zustandsautomaten, generiert von Altova UModel](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqCLuSc2I/AAAAAAAAAYU/13GMhNPkg7s/clip_image008_thumb%5B2%5D.jpg?imgmax=800 "State machine test application generated by Altova UModel")](http://lh6.ggpht.com/_REdrfeVqYdU/TbBqBgADPsI/AAAAAAAAAYQ/0AsFb3WdtAU/s1600-h/clip_image008%5B5%5D.jpg) 

**Entdecken Sie selbst, wie Sie die Logik Ihrer Zustandsautomaten-Diagramme mit Altova UModel verbessern können –** [**laden Sie eine kostenlose 30-Tage-Testversion](https://www.altova.com/de/download/umodel/uml_tool_enterprise.html) **heute herunter!**
