Oplossing voor de uitdaging "Software testen met behulp van toestandsautomaten"
Vorige maand, in onze blogpost over Softwaretesten voor toestandsautomaten met Altova UModel, ontdekten we onverwacht gedrag in ons model van een airconditioningsysteem en daagden we lezers uit om het ontwerp te verbeteren. Dit artikel beschrijft een mogelijke oplossing. Toen we de Tester-applicatie voor ons model uitvoerden, zagen we dat de aan/uit-schakelaar het systeem niet uitschakelde wanneer het zich in de stand-by modus bevond. In het toestandsdiagram van ons oorspronkelijke model is de enige manier om van de werkingsmodus naar de stand-by modus te gaan via de stand-by knop, en de enige manier om de stand-by modus te verlaten is door nogmaals op de stand-by knop te drukken, zoals te zien is in de details hieronder.

We kunnen een alternatieve uitgang creëren om het systeem uit te schakelen vanuit de stand-by modus, door simpelweg een nieuwe overgangslijn van stand-by naar de uitgeschakelde toestand te tekenen, en de functie powerButton() aan te wijzen als het evenement dat de overgang activeert. UModel maakt het toewijzen van dit trigger-evenement eenvoudig door een pop-upvenster te bieden waarin een lijst van reeds gedefinieerde evenementen in het model wordt weergegeven.

De herziene versie van het model, met de nieuwe overgang van "standby" naar "uit," ziet er als volgt uit:
![]()
Nadat de Java-code opnieuw is gegenereerd en de nieuwe versie is gecompileerd, kunnen we de Tester-applicatie opnieuw uitvoeren. Het debugvenster toont aan dat het systeem in de stand-by modus is gegaan bij gebeurtenis 3. Gebeurtenis 4, het activeren van de aan/uit-knop, zet de status nu op "uit".
![]()
Ontdek zelf hoe u de logica van uw eigen diagrammen voor toestandsautomaten kunt verbeteren met Altova UModel – download vandaag nog een gratis proefversie van 30 dagen !