---
title: "ステートマシンを用いたソフトウェアテストにおける課題の解決策"
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: この記事では、Altova UModelで遭遇するステートマシン設計の課題について解説し、特に待機状態におけるシステム動作に焦点を当てています。
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/ja/category/uml.md)
# ステートマシンを用いたソフトウェアテストにおける課題の解決策

先月、弊社のブログでご紹介しました件について [状態遷移モデルのソフトウェアテスト](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html) と共に、または、〜と一緒に [Altova UModel](https://www.altova.com/ja/umodel.html) 当社の空調システムのモデルにおいて、予期せぬ動作が確認され、読者の方々にその設計を改善するよう呼びかけました。この記事では、その解決策の可能性の一つを紹介します。当社のモデルに対してテスターアプリケーションを実行したところ、スタンバイ状態の際に、電源スイッチがシステムをオフにしないという問題が明らかになりました [状態遷移図](https://www.altova.com/ja/umodel/state-diagrams.html) 弊社の初期モデルでは、動作モードから待機モードに入る唯一の方法は、待機ボタンを押すことのみです。また、待機状態から元の状態に戻るには、再度待機ボタンを押す必要があります。詳細は以下の通りです。 

[![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) 

システムをスタンバイ状態からシャットダウンさせるための別の経路を作成するには、スタンバイ状態からオフ状態への新しい遷移線を描き、その遷移をトリガーするイベントとして`powerButton()`を割り当てることができます。UModelは、モデルに既に定義されているイベントを一覧表示するポップアップウィンドウを提供することで、このトリガーの割り当てを簡単に行うことができます。 

[![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)

新しい「待機」から「オフ」への移行機能を搭載したモデルの改良版は、以下のようになります

[![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) 

Javaコードを再生成し、新しいバージョンをコンパイルした後、再度テスターアプリケーションを実行できます。デバッグ出力メッセージウィンドウを見ると、システムがイベント3でスタンバイ状態に入ったことがわかります。イベント4、つまり電源ボタンの操作により、状態はオフに設定されます。 

[![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) 

**Altova UModelを使って、ご自身のステートマシンの図の論理構造をどのように改善できるか、ぜひご自身で確かめてみてください** [**30日間の無料トライアル版**をダウンロード](https://www.altova.com/ja/download/umodel/uml_tool_enterprise.html) **今すぐ！**
