---
title: "Rozwiązanie problemu testowania oprogramowania z wykorzystaniem automatów stanów"
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: W tym artykule omówiono rozwiązanie problemu związanego z projektowaniem automatów stanów, który wystąpił w programie Altova UModel, a konkretnie dotyczy on zachowania systemu w trybie czuwania.
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/pl/category/uml.md)
# Rozwiązanie problemu testowania oprogramowania z wykorzystaniem automatów stanów

W zeszłym miesiącu, w naszym artykule na blogu poświęconym [testowaniu oprogramowania dla automatów stanów](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html) z wykorzystaniem [Altova UModel](https://www.altova.com/pl/umodel.html), odkryliśmy nieoczekiwane zachowanie w naszym modelu systemu klimatyzacji i zachęciliśmy czytelników do ulepszenia projektu. Ten artykuł opisuje jedno z możliwych rozwiązań. Podczas uruchomienia aplikacji Tester dla naszego modelu, zauważyliśmy, że przełącznik zasilania nie wyłączał systemu, gdy znajdował się w trybie czuwania. W [diagramie automatu stanów](https://www.altova.com/pl/umodel/state-diagrams.html) naszego oryginalnego modelu, jedyną drogą do trybu czuwania z trybu pracy jest przycisk "czuwanie", a jedynym sposobem wyjścia z trybu czuwania jest ponowne naciśnięcie tego przycisku, jak widać na szczegółowym schemacie poniżej. 

[![Szczegółowy widok diagramu maszyny stanów w programie 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) 

Możemy stworzyć alternatywne wyjście, które pozwoli wyłączyć system ze stanu czuwania, po prostu dodając nową linię przejścia ze stanu czuwania do stanu wyłączenia i przypisując funkcję `powerButton()` jako zdarzenie, które wywołuje to przejście. UModel ułatwia przypisywanie zdarzenia, wyświetlając okno dialogowe z listą zdarzeń, które są już zdefiniowane w modelu. 

[![Lista elementów wyzwalających przejścia w diagramie maszyny stanów w programie 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)

Nasza zaktualizowana wersja modelu, zawierająca nowe przejście z trybu czuwania do wyłączenia, wygląda następująco:

[![Diagram stanów w programie 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) 

Po zregenerowaniu kodu Java i skompilowaniu nowej wersji, możemy ponownie uruchomić aplikację Tester. Okno wyświetlające komunikaty debugowania pokazuje, że system przeszedł w tryb czuwania podczas zdarzenia 3. Zdarzenie 4, czyli naciśnięcie przycisku zasilania, teraz ustawia stan na "wyłączony". 

[![Aplikacja do testowania automatów stanów, wygenerowana przez 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) 

**Sprawdź samodzielnie, w jaki sposób możesz ulepszyć logikę diagramów automatów stanów za pomocą programu Altova UModel –** [**pobierz bezpłatną 30-dniową wersję próbną**](https://www.altova.com/pl/download/umodel/uml_tool_enterprise.html) **już dziś!**
