(57)【要約】  有限状態マシンモデルを構築する解決策を提供する。本解決策は、少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントは、利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップ（３００）と、フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップ（３０２）と、前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップ（３０４）と、 検出した送出側状態遷移及び送出先状態を表示するステップ（３０６）と、前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップ（３０８）と、前記選択されたものを、有限状態マシンを記述するモデルに追加するステップ（３１０）とを含む。
2009501970.tif 000002
【特許請求の範囲】
【請求項１】
有限状態マシンモデルを構築する方法であって、
少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントは、利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップと、
フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップと、
前記少なくとも1つのモデル化コンポーネントに関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップと、
探索した送出側状態遷移及び送出先状態を表示するステップと、
前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップと、
前記選択されたものを、有限状態マシンを記述するモデルに追加するステップと、
を含むことを特徴とする有限状態マシンモデル構築方法。
【請求項２】
或る状態、及びフォーカスを得ている前記状態に関連付けられたモデル化コンポーネントを検出するステップと、
前記コンポーネントが、前記有限状態マシンに含まれていない利用可能な状態遷移と送出先状態とを、トリガイベントに提供するか否かをチェックするステップと、
検出した状態遷移と送出先状態とを前記ディスプレイに表示するステップと、
を含むことを特徴とする、請求項１に記載の有限状態マシンモデル構築方法。
【請求項３】
前記有限状態マシンモデルに含まれる状態遷移及び送出先状態を、前記有限状態マシンモデルに含まれていない状態遷移及び送出先状態と比較して、強調して表示するステップを含むことを特徴とする、請求項１に記載の有限状態マシンモデル構築方法。
【請求項４】
前記有限状態マシンモデルは、電子デバイスのユーザインターフェースの働きを記述していることを特徴とする、請求項１に記載の有限状態マシンモデル構築方法。
【請求項５】
前記有限状態マシンモデルは、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）状態チャートであることを特徴とする、請求項１に記載の有限状態マシンモデル構築方法。
【請求項６】
エラー又は警告を指示するインジケータを、示された状態とともに表示するステップを含むことを特徴とする、請求項１に記載の有限状態マシンモデル構築方法。
【請求項７】
或る状態と関連付けられたモデル化コンポーネントは、サブコンポーネントを含むことを特徴とする、請求項１に記載の有限状態マシンモデル構築方法。
【請求項８】
サブコンポーネントは、サブコンポーネントを含むことを特徴とする、請求項１に記載の有限状態マシンモデル構築方法。
【請求項９】
サブコンポーネントは、状態遷移及び送出先状態を、トリガイベントに供給することを特徴とする、請求項７又は８に記載の有限状態マシンモデル構築方法。
【請求項１０】
動作上、互いに接続された、プロセッサと、ディスプレイと、入力手段とを備える電子デバイスであって、前記プロセッサは、状態マシンの状態と関連付けられたモデル化コンポーネントを用いて有限状態マシンモデルを作成するように構成され、前記モデル化コンポーネントは、利用可能なトリガイベントについての情報を含み、
少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示し、
フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するように構成された電子デバイスであって、更に、
前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索し、
探索した送出側状態遷移及び送出先状態を表示し、
前記入力手段により送出側状態遷移及び送出先状態の選択されたものを受信し、
前記プロセッサにより前記選択されたものを、前記有限状態マシンを記述するモデルに追加するように構成されていることを特徴とする電子デバイス。
【請求項１１】
前記電子デバイスは、更に、
或る状態、及びフォーカスを得ている該状態に関連付けられたモデル化コンポーネントを検出し、
前記コンポーネントが、前記有限状態マシンに含まれていない利用可能な状態遷移と送出先状態とを、トリガイベントに供給するか否かをチェックし、
検出した状態遷移と送出先状態とを前記ディスプレイに表示するように構成されていることを特徴とする、請求項１０に記載の電子デバイス。
【請求項１２】
前記電子デバイスは、更に、
前記有限状態マシンモデルに含まれる状態遷移及び送出先状態を、前記有限状態マシンモデルに含まれていない状態遷移及び送出先状態と比較して、強調して表示するように構成されていることを特徴とする、請求項１０に記載の電子デバイス。
【請求項１３】
前記電子デバイスは、更に、
エラー又は警告を指示するインジケータを、示された状態とともに表示するように構成されていることを特徴とする、請求項１０に記載の電子デバイス。
【請求項１４】
有限状態マシンモデルを構築するコンピュータ処理を実行するための命令のコンピュータプログラムを符号化するコンピュータプログラム製品であって、
前記コンピュータ処理は、
少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントは、利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップと、
フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップとを含み、更に、
前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップと、
探索した送出側状態遷移及び送出先状態を表示するステップと、
前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップと、
前記選択されたものを、有限状態マシンを記述するモデルに追加するステップと、
を含むことを特徴とするコンピュータプログラム製品。
【請求項１５】
コンピュータで読み取り可能な、有限状態マシンモデルを構築するコンピュータ処理を実行するための命令のコンピュータプログラムの配布メディアであって、
前記コンピュータ処理は、
少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントは、利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップと、
フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップとを含み、更に、
前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップと、
検出した送出側状態遷移及び当該モデル化コンポーネントが関連付けられた前記状態に関する送出先状態を表示するステップと、
前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップと、
前記選択されたものを、有限状態マシンを記述するモデルに追加するステップと、
を含むことを特徴とするコンピュータプログラムの配布メディア。
【請求項１６】
コンピュータ読み取り可能なメディア、プログラム・ストレージメディア、記録メディア、コンピュータ読み取り可能なメモリ、コンピュータ読み取り可能なソフトウェア配布パッケージ、コンピュータ読み取り可能な信号、コンピュータ読み取り可能なテレコミュニケーション信号、及びコンピュータ読み取り可能な圧縮されたソフトウェアパッケージのうち、少なくとも１つのメディアを含む、請求項１５に記載のコンピュータプログラムの配布メディア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、有限状態マシンモデルの構築に関する。特に、本発明は、利用可能なトリガイベントについての情報を含むモデル化コンポーネントを利用する有限状態マシンに関する。
【背景技術】
【０００２】
技術システム、デバイス及びソフトウェアアプリケーションの設計に当たり、システムの動作及び働きを効率的に特定して、検証することができるようにするのが不可欠である。 一般的な技法は、システムの動作を記述するモデルを構築することである。システムの働きが、状態依存型、及び／又はイベント駆動型である場合、有限状態マシンを用いてシステムをモデル化することができる。
【０００３】
例えば、ソフトウェアの開発に当たって、実際のソフトウェアを実装する前に、ソフトウェアのモデルを開発することができる。ソフトウェアアプリケーションのモデルは、物理デバイスのブループリントに例えることができる。ソフトウェアの動作及び動的な働きを設計し、特定し、テストし、且つ検証するのに、有限状態マシンを利用するモデルを用いることができる。既知の技法は、ソフトウェアアプリケーションの状態依存の働きを表すのに、グラフィカルでビジュアルな状態マシンモデルを利用するやり方である。
【０００４】
現在、ビジュアル状態マシンのエディタは、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）状態チャートなどのグラフィカルな状態マシンモデルを描くのに用いられている。現在のビジュアル状態マシンエディタには、幾つかの問題がある。設計者は、状態チャート、即ち状態図を手動でレイアウトする必要がある。状態図を編集し、変更し、維持するのは、難儀であり、時間もかかっている。設計者は、状態間に起こりうる状態マシンのイベント、及び関連する状態の遷移を知ったり、特定したり、又は見出したりする必要がある。現在、有限状態マシンモデルをチェックし、且つ検証する技法は、状態遷移テーブルを用いるやり方である。通常、状態遷移テーブルは二次元テーブルであり、例えば、一方の軸は全ての状態をリストし、他方の軸は全ての可能なイベントをリストするのに用いられる。テーブルにおけるセルは、イベントと状態との関係を規定するのに用いられる。 状態遷移テーブルの手動の作成と維持、及び状態遷移テーブルに基づく状態マシンの完全性の手動チェックは、間違いを起こしやすく、時間もかかっている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、有限状態マシンモデルを作成する高度の解決策を提供することにある。 
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、有限状態マシンモデルを構築する方法を提供する。本方法は、少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントは、利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップと、フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップと、前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップと、探索した送出側状態遷移及び送出先状態を表示するステップと、前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップと、前記選択されたものを、有限状態マシンを記述するモデルに追加するステップとを含む。   
【０００７】
本発明の他の態様によれば、電子デバイスを提供する。本電子デバイスは、動作上、互いに接続された、プロセッサと、ディスプレイと、入力手段とを備え、前記プロセッサは、状態マシンの状態と関連付けられたモデル化コンポーネントを用いて有限状態マシンモデルを作成するように構成され、前記モデル化コンポーネントは、利用可能なトリガイベントについての情報を含み、当該電子デバイスは、前記少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示し、フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するように構成されている。本電子デバイスは、更に、前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索し、探索した送出側状態遷移及び送出先状態を表示し、前記入力手段により送出側状態遷移及び送出先状態の選択されたものを受信し、前記プロセッサにより前記選択されたものを、有限状態マシンを記述するモデルに追加するように構成されている。   
【０００８】
本発明の別の態様によれば、有限状態マシンモデルを構築するコンピュータ処理を実行するための命令のコンピュータプログラムを符号化するコンピュータプログラム製品を提供する。前記コンピュータ処理は、少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントは、利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップと、フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップと、前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップと、 探索した送出側状態遷移及び送出先状態を表示するステップと、前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップと、前記選択されたものを、有限状態マシンを記述するモデルに追加するステップとを含む。
【０００９】
本発明の更に別の態様によれば、コンピュータで読み取り可能な、有限状態マシンモデルを構築するコンピュータ処理を実行するための命令のコンピュータプログラムの配布メディアを提供する。前記コンピュータ処理は、少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントは、利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップと、フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップと、前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップと、検出した送出側状態遷移及び当該モデル化コンポーネントが関連付けられた前記状態に関する送出先状態を表示するステップと、前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップと、前記選択されたものを、有限状態マシンを記述するモデルに追加するステップとを含む。  
【００１０】
本発明による解決策は、幾つかの利点を提供する。本解決策は、グラフィカルなモデル化環境における状態マシンの速い開発を可能にする。本発明の実施例において、状態遷移テーブルは、自動的に作成され、維持され、とぎれなく動的に状態マシンモデルを作成するのに用いられるツールに統合される。状態遷移テーブルは、各状態に対して可能なイベントについての利用可能なメタ情報に基づいて自動的に生成することができる。これは、状態マシンの予測的な構築、完全性の自動チェック、及び検証を可能にする。状態マシンモデルを設計するとき、ツールは、利用可能なトリガイベントを探し出し、状態遷移と、イベントに基づいて状態マシンモデルに追加されるべき送出先状態とを提示するように構成される。自動チェックは、規定された状態及び状態遷移を包含して実行することができる。従って、設計者は、手動で状態マシン図を作成し、レイアウトする必要がなくなる。また、提案された方法は、設計者に対して、全ての可能な状態遷移を探し出すのを助け、従って状態マシン図の完全性に達するように支援する。
【００１１】
更に、設計者が不慣れな目標とするソフトウェア環境用の状態マシンベースの設計を開発し始めるとき、本発明は、設計者に対して習熟曲線を低い程度にする。
【００１２】
本発明は、コンポーネントイベントについてのメタ情報に基づいて状態遷移を探し出し、送出先状態を提示する、自動化した方法を提供する。
【００１３】
以下、図面を参照して、本発明を、更に詳細な実施例について説明する。
【発明を実施するための最良の形態】
【００１４】
一般に、状態マシンは、モデル化した項目の状態を所定の時刻に格納するモデルを云い、これは入力で動作して、状態を変えたり、及び／又は、アクション、即ち出力によって何らかの所定の変化を生じさせたりことができる。状態マシンモデルは、デバイス又はソフトウェアアプリケーションのインタラクション及び働きを開発し、記述するのに用いられる。状態マシンを記述するプロパティは、以下のようにリストすることができる。状態マシンは、初期状態を有する。状態マシンは、１組の可能な入力イベントを受信する。従って、状態マシンは、未知の入力イベントを受信することができない。状態マシンは、入力イベントに由来する1組の新たな状態を含む。状態マシンは、更に、新たな状態に由来する1組の可能なアクション、即ち出力イベントを含む。入力イベントが状態マシンを或る状態から別の状態に移すときに、状態遷移が起こる。 状態及び入力イベントをそれぞれの状態にマップする状態遷移関数を規定するのは可能である。
【００１５】
限られた数の可能な状態を有する状態マシンは、有限状態マシンと称される。有限状態マシンは、状態と、状態間の遷移とから成る。入力イベントは、状態遷移をトリガすることができる。有限状態マシンは、問題に技法して解決するための開発ツールとして、及び後の開発者とシステム維持者に対する解決策を記述し、記録する形式的な手法として、その双方に使用することができる。
【００１６】
有限状態マシンは、ビジュアル状態マシンエディタを用いて設計することができる。エディタは、モデル化コンポーネントのライブラリを提供することができ、モデル化コンポーネントのライブラリは、目標の実行環境、例えば組み込み型アプリケーション・ソフトウェアのアプリケーション実行環境をモデル化するのに用いられる。典型的なモデル化コンポーネントの例は、グラフィカルユーザインターフェース（ＧＵＩ）コンポーネント、及び実行プラットホームＡＰＩ（アプリケーションプログラミングインターフェース）コンポーネントである。１つ以上のモデル化コンポーネントを、或る状態に関連付けることができ、各モデル化コンポーネントは、そのコンポーネントによって生成される利用可能なトリガイベントについての情報を含むことができる。可能なトリガイベントについての情報は、適切な状態遷移、及びこれらの送出先状態をも自動的に提示するのに用いられる。
【００１７】
実施例において、モデル化コンポーネントは、階層構造を有することができる。このような場合、モデル化コンポーネントは、多数のサブコンポーネントを含む。このような階層構造の各コンポーネントは、トリガイベントを生成することができる。
【００１８】
モデル化コンポーネントは、別々のソフトウェアツールを用いて設計することができる。当業者に明らかなように、利用可能なトリガイベントについての情報は、様々な手法でモデル化コンポーネントに含めることができる。一例において、この情報は、個別のデータファイルに格納することができる。データファイルは、例えば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）を用いて作成することができる。この情報は、該情報を含むだけの別のコンポーネントとして、モデル化コンポーネントに供給することもできる。また、モデル化コンポーネント自体に、この情報を直接含めることもできる。上述した例は、利用可能なトリガイベントの情報をモデル化コンポーネントに含めるか、又は供給する様々な手法の単なる例である。
【００１９】
有限状態マシンは、統一されたモデル言語状態図（Ｕｎｉｆｉｅｄ  Ｍｉｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ  ｓｔａｔｅ  ｃｈａｒｔ）としてグラフィカルに提示することができる。例えば、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｉｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）は、ソフトウェアモデルを記述するのに用いられる言語として広く用いられている。
【００２０】
図１を参照して、状態マシンを構築するのに用いることができ、且つ本発明の実施例を適用することができるデバイスの例を説明する。
【００２１】
デバイス１００は、動作上互いに接続された、コントローラ１０２と、ディスプレイ１０４と、入力手段１０６とを備える。コントローラは、例えば、プロセッサ、集積回路及び関連するソフトウェアで実現することができる。入力手段は、例えば、キーボードか、キーパッドか、タッチセンシティブ・スクリーンか、ポインタか、又はマウスを含むことができる。更に、入力手段は、通信インターフェースを含むことができ、これにより当該デバイスを、別のデバイスに接続することもできる。入力手段は、デバイスのユーザにデバイス１００とのインターフェースを提供する任意のデバイス又はソルーションとすることもできる。また、デバイス１００は、データを格納するのに用いるメモリ１０８を備えることもできる。メモリは、１つ以上のメモリ回路、ディスクドライブ、又はメモリカード、メモリスティック、又はディスケットなどの取り外し可能なメモリデバイスで実現することができる。
【００２２】
デバイス１００は、上述したコンポーネントを備えるパーソナルコンピュータ、ラップトップコンピュータ又は他のデバイスとすることができる。一例では、本発明は、デバイス１００で実行されるビジュアル状態マシンエディタソフトウェアで実現することができる。
【００２３】
図２Ａ、図２Ｂ、図２Ｃ、及び図３のフローチャートを参照して、本発明の実施例を説明する。図３のフローチャートのフェーズ３００では、有限状態マシンの状態２００に関連するモデル化コンポーネント（本例では、ＧＵＩビュー）を、図２Ａに示すように、デバイス１００のスクリーン１０４に表示する。図２Ａの例は、携帯電話の動作を記述する有限状態マシンに関し、状態２００は、新たなメッセージコマンドを選択するメッセージングアプリケーションの状態を表している。この状態２００は、携帯電話のメッセージングアプリケーションのＧＵＩビューを含む。関連のＧＵＩビューは、３つのリストコマンドを規定するオプションメニュー“作成（Ｃｒｅａｔｅ）”（これ自体はＧＵＩのサブコンポーネントである）を含む。これらのリストコマンドは、現行状態から送出側状態遷移のための潜在的なイベントトリガを表す。図２Ａには、作成メニュー（オプションメニュー）２０２を示してある。この作成メニューは、３つのオプション、即ちショートメッセージ、マルチメディアメッセージ、及びＥメールを含む。他の可能なイベントトリガについては、図面の明瞭化のために本実施例からは省いている。このような潜在的なトリガイベントは、例えば、現在の可視的なグラフィカルユーザインターフェース（ＧＵＩ）コンポーネント、物理ＵＩデバイス（キー又はジョイスティック）、アプリケーションプラットホームモジュール、Ｉ／Ｏデバイス、及びネットワーク・サービスによって提供することができる。
【００２４】
ステップ３０２では、表示された状態２００と該状態に関連するモデル化コンポーネントがフォーカスを得ていることを検出する。ユーザが、マウスでコンポーネントをクリックするか、又は当業者に周知の他の手段でコンポーネントを選択するときに、コンポーネントは、フォーカスを得ている。
【００２５】
また、１つ以上の前の状態２０４を、現行のフォーカス状態２００と同時にディスプレイに表示することができる。一例では、前の状態を現行のフォーカス状態より小さく表示するか、又はグレーにする。また、前の状態から現行状態までの状態遷移２０６を示すこともできる。
【００２６】
一例では、上述の２つのステップを、ユーザが、モデル化コンポーネントに関連する新たな状態を加えるステップと取り換えることができる。新たに追加された状態は、自動的にフォーカスを得ている。
【００２７】
ステップ３０４では、可能なトリガイベントを探索する。本発明の実施例では、コンポーネントがフォーカスを得ているとき、コンポーネントに利用可能な状態遷移と送出先状態とを自動的にディスプレイに表示する。この場合、コンポーネント２００がステップ３０２でフォーカスを得ているとき、そのコンポーネントが利用可能な送出側状態遷移及び送出先状態を有しているか否かをチェックする。本例では、３つの可能な状態遷移を検出する。
【００２８】
ステップ３０６では、検出した利用可能な送出側状態遷移と送出先状態とを、図２Ｂに示すようにデバイス１００のスクリーン１０４に表示する。状態２００は、本例では、作成リスト２０２のコマンドに対応する、３つの可能な状態遷移２０８、２１０、２１２を有し、作成リスト２０２は、“ショートメッセージ”、“マルチメディアメッセージ”、及び“Ｅメール”からなる。各状態遷移は、送出先状態２１４、２１６、２１８に至り、これも表示する。送出先状態は、ユーザが、これらの送出先状態がまだ状態マシンの一部ではないこと迅速に判断することができるように、破線のアウトラインで表示することができる。
【００２９】
従って、状態マシンの設計者は、その状態マシンの設計時に、利用可能な選択肢を容易に見ることができる。 まだ状態マシンの一部になっていない各トリガイベントに対する遷移のための状態遷移及び送出先状態は、設計者のためにビジュアルに提示する。提示された遷移は、イベントのタイプによって視覚的にカテゴリ化することができる。設計者は、リストからか、又はフォーカス状態に割り当てられたモデル化コンポーネントをクリックすることによって、表示カテゴリを選択することができる。この本発明の実施例では、ユーザは、例えば、マウスで遷移をクリックすることによって、設計下のアプリケーションに必要とされる遷移を簡単に選択することができる。
【００３０】
従って、或る状態がフォーカスを有している場合には、該状態に関連付けられた全ての遷移が指示される。モデル化コンポーネント又はサブコンポーネントがフォーカスを得ている場合には、コンポーネント又はサブコンポーネントによって提供される遷移のみが指示される。
【００３１】
従って、時間がかかる手動のレイアウト設計が排除される。設計者は、手動で遷移や状態を描く必要がなくなり、設計者は、グラフィカルな状態マシン要素を手動で再配置させる必要もなくなる。これらの手動の編集及びレイアウトタスクは、従来のビジュアル状態マシンエディタでは繰り返し行われ、時間がかかるものである。設計者は、包含される遷移及び送出先状態のプロパティを変更することもできる。設計者は、例えば、新たな状態を包含させる代わりに、前に規定した状態のリストから、割り当てられた送出先状態を変更することもできる。
【００３２】
ステップ３０８では、ユーザが選択したものを受信する。本例では、ユーザは、作成リスト２０２の“ショートメッセージ”及び“マルチメディアメッセージ”に対応する状態遷移２０８、２１０を選択している。
【００３３】
ステップ３１０では、これらの遷移及び対応する送出先状態を、状態マシンモデルに追加する。一例では、この追加した遷移及び送出先状態を、選択されなかった遷移及び状態と比べて、異なって表示する。図２Ｃに示すように、未選択の遷移２１２及び送出先状態２１８は、選択した変遷２０８，２１０及び送出先状態２１４，２１６に比べて、強調しないで示される。従って、ユーザは、どの遷移と送出先状態が、現時点で、状態マシンに属しているか、どれが属していないかを迅速に判断することができる。
【００３４】
一例では、設計者は、或る状態から別の状態にフォーカスをシフトさせることによって、構築中の有限状態マシンモデルを見直すことができる。また、モデル化コンポーネントを含む状態が選択されるときに、モデル化コンポーネントは、デフォルトで選択されるようにすることも考えられる。選択されたモデル化コンポーネントのイベントは、表示され、編集可能な現行イベントのカテゴリを規定する。フォーカス状態は、２つ以上のモデル化コンポーネントを含む場合、１つのモデル化コンポーネントを、適用されたポリシーに従ってデフォルトで選択されるようにする。例えば、このポリシーは、第１のモデル化コンポーネントが初めに選択されたものとすることができる。状態及びモデル化コンポーネントがフォーカスを得たことを検出するたびに、コンポーネントが有限状態マシンにまだ含まれていない状態遷移及び送出先状態用のトリガイベントを提供するか否かをチェックする。未処理のトリガイベントとして検出された状態遷移及び送出先状態は、モデル化コンポーネントがフォーカスを有する限り、特別な視覚的指示によりディスプレイ上に表示する。設計者は、状態マシンに追加すべき何らかの提示された状態をいつでも選択することができる。設計者は、通常、既に包含した遷移及び状態を見て、編集することもできる。従って、ユーザは、容易にモデルを変更することができる。また、ビジュアルにディスプレイから除外すべき提示済みの遷移か、又は包含済みの遷移のいずれかを切り換えるオプションを設計者に提供することもできる。
【００３５】
図４のフローチャートを参照して、本発明の実施例を説明する。ステップ４００で、フォーカス状態の選択されたものを受信する。 設計者は、現行のビジュアル状態マシンモデルの利用可能な状態から、何らかの状態を選択することができる。選択された状態は、現行フォーカス状態となるように設定される。設計者は、新たな状態を状態マシン図に追加することもできる。この場合、その新たな状態を、現行のフォーカス状態となるように自動的に設定する。
【００３６】
ステップ４０２で、当該フォーカス状態と、該状態に関連付けられたモデル化コンポーネントとを表示する。状態は、１つ以上の関連付けられたモデル化コンポーネントを有することができる。各モデル化コンポーネントは、階層的にすることができる。このような場合、各モデル化コンポーネントは、多数のサブコンポーネントで構成される。
【００３７】
ステップ４０４で、フォーカス状態の送出側遷移のための全ての可能なトリガイベントを探索する。可能なトリガイベントが、全てのモデル化コンポーネント（これらの可能なサブコンポーネントを含む）から、及び、フォーカス状態のコンテクストから収集される。状態のコンテクストは、例えば、組み込み型ソフトウェアとその実行プラットホームとすることができる状態マシンの実行コンテクストである。ソフトウェア実行プラットホームは、アプリケーション及びその状態マシンがトリガイベントとして受信することができる多数の可能なイベントを規定することができる。
【００３８】
ステップ４０６で、デフォルトで選択されたトリガイベントのカテゴリを探索する。通常、全ての可能なトリガイベントのための全ての提示された状態遷移を同時に表示するのは実用的ではない。従って、トリガイベント及びこれらの割り当てられた遷移をカテゴリ化するようにする。 カテゴリ化は、イベントタイプか、又はソースのモデル化コンポーネントに基づくものとできる。
【００３９】
ステップ４０８で、選択されたカテゴリから、割り当てられた遷移を有するトリガイベントを探索する。幾つかのイベントは、フォーカス状態の送出側状態遷移に既に割り当てられている。これは、フォーカス状態が現行の状態であるときにイベントが生じる場合に、割り当てられたイベントがどのように処理されるかを、状態マシンが特定することを意味する。
【００４０】
ステップ４１０で、選択されたカテゴリから、まだ割り当てられていない遷移を有するトリガイベントを探索する。このステップでは、まだ送出側遷移に割り当てられていないトリガイベントを探し出す。これらのイベントは、フォーカス状態用の未処理のイベントを表す。全ての未処理のイベントは、実現される状態マシンに対して、不正確か、又は不完全な働き又は機能性を引き起こしうる。例えば、モデル化したソフトウェア・システムは、正確な働きを保証するために処理されるべき重大なイベントを受信することができる。 状態マシンモデルが受信したイベント用の処理を特定しなければ、状態マシンは、受信したイベントに反応し損ない、必要な制御動作を実行しないことになる。
【００４１】
ステップ４１２で、未処理のトリガイベント用の遷移と送出先状態を提示する。
【００４２】
ステップ４１４で、選択されたイベントのカテゴリ用のフォーカス状態にある、ユーザによって規定された状態遷移、及び提示した状態遷移の双方を表示する。提示した新たな送出側遷移を、設計者にビジュアルに表す。提示される送出先状態は、初めはエンプティであり、ユーザは、コンポーネントパレット又はリストからコンポーネントを選択することによって、１つ以上のモデル化コンポーネントを送出先状態に割り当てることができる。一例では、送出先状態を提示するのに1組のルールを適用することができる。例えば、選択されたトリガイベントが“バック”コマンドを表す場合、送出先状態を、現行フォーカス状態の親状態とすることができる。また、設計者は、提示されるエンプティの送出先状態を、状態マシンに既に存在する何らかの状態に取り換えることもできる。しかしながら、場合によって、幾つかの制限を行って、状態マシンの正確性を維持させる必要がある。提示した状態遷移から、ユーザは、状態マシンに含まれている状態遷移を選択することができる（ステップ４２２）。
【００４３】
図４におけるフローチャートの別の枝路は、ステップ４１６で始まる。ステップ４１６で、現行フォーカス状態によって包含されたモデル化コンポーネントの選択されたものを受信する。 或る状態に割り当てられたモデル化コンポーネントは、階層構造を有することができる。 従って、モデル化コンポーネントは、多数のサブコンポーネントを含むことができる。例えば、或る状態は、任意数のＧＵＩコンポーネントを含む、割り当てられたＧＵＩビューを有することができる。包含されたＧＵＩコンポーネントの各々は、多数のトリガイベントを規定することができるモデル化コンポーネントとみなされる。設計者は、フォーカス状態に割り当てられたトップレベルのモデル化コンポーネントと、該トップレベルのモデル化コンポーネントのサブコンポーネントを選択することができる。
【００４４】
ステップ４１８では、選択されたモデル化コンポーネントに従って、トリガイベントのカテゴリを選択する。現行イベントのカテゴリは、選択されたモデル化コンポーネントによって規定した送出側イベントの組となるように設定される。 本処理は、ステップ４０８から続けることができる。
【００４５】
図４におけるフローチャートの別の枝路は、ステップ４２０で始まる。ステップ４２０で、トリガイベントのカテゴリの選択されたものを受信する。更に、モデル化コンポーネントを選択することによってイベントコンポーネントを選択する場合、設計者は、提示されたリスト又はパネルからイベントのカテゴリを選択することができる。本処理は、ステップ４０８から続けることができる。
【００４６】
図４におけるフローチャートの別の枝路は、ステップ４２２で始まる。ステップ４２２で、状態マシンに追加されるべく提示した状態遷移の選択されたものを受信する。設計者は、１組の提示した状態遷移から、フォーカス状態用の送出側状態遷移を選択することができる。ステップ４２４で、選択された遷移と送出先状態を、状態マシンに追加する。ユーザによって選択された遷移、及び該遷移に割り当てられた送出先状態は、状態マシンモデルに含められる。選択された要素の追加後に、表示された状態マシン図を、ステップ４１４で更新する。
【００４７】
一例では、様々なインジケータを、状態遷移と共に示すようにする。図２Ｃの例では、ディスプレイは、エラー・インジケータとして用いることができるインジケータ２２０，２２２及び２２４を含む。これらのインジケータは、問題とする要素又は規定が意味的に正確でないというビジュアル通知をユーザに与えることができる。エラー・インジケータを有する要素及び規定は、状態マシンのシミュレーションで実行することができない。ディスプレイは、警告インジケータとして用いることができるインジケータ２２６，２２８及び２３０を含む。警告インジケータを用いて、要素又は規定が、全く定義されていないか、又は規定から何か欠落しているかのいずれかを示すことができる。未規定の要素（図２ＣにおけるＥメール遷移など）は、このチェックから除外する。警告インジケータを有する要素及び規定は、実行可能ではあるが、これらは、実行の観点から論理的に不正確であるか、又は不完全となりうる。状態マシンは、適用された状態マシン形式として規定される実行のセマンティクスを受け入れる場合に、実行可能である。この実行は、状態マシンを解釈することによって、コード生成を介して実現することができる。
【００４８】
本発明の実施例は、電子デバイスにおいて実現することができ、電子デバイスは、例えば、ディスプレイと、キーボードと、動作上キーボード及びディスプレイに接続されたコントローラとを備える。コントローラは、図３及び図４のフローチャートで説明した少なくとも幾つかのステップを、図２Ａ、図２Ｂ、及び図２Ｃと関連して実行するように構成することができる。 本実施例は、コンピュータプログラムとして実現することができ、コンピュータプログラムは、有限状態マシンモデルを構築するコンピュータ処理を実行するための命令を含み、コンピュータ処理は、少なくとも1つのモデル化コンポーネントに関連付けられた状態をディスプレイに表示するステップであって、該モデル化コンポーネントが利用可能なトリガイベントについての情報を含む、当該状態をディスプレイに表示するステップと、フォーカスを得ている、前記状態及びモデル化コンポーネントを検出するステップと、前記少なくとも1つのモデル化コンポーネントが関連付けられた前記状態に関する、可能な送出側状態遷移と送出先状態とを探索するステップと、探索した送出側状態遷移及び送出先状態を表示するステップと、前記送出側状態遷移及び前記送出先状態の選択されたものを受信するステップと、前記選択されたものを、有限状態マシンを記述するモデルに追加するステップとを含む。  
【００４９】
コンピュータプログラムは、コンピュータ又はプロセッサで読み取り可能なコンピュータプログラムの配布メディアに格納することができる。コンピュータプログラムメディアは、例えば、限定するものではないが、電気的、磁気的、光学的の赤外又は半導体システム、デバイス又は伝送メディアとすることができ、コンピュータ読み取り可能なメディア、プログラム・ストレージメディア、記録メディア、コンピュータ読み取り可能なメモリ、ランダムアクセスメモリ、消去可能なプログラマブルリードオンリメモリ、コンピュータ読み取り可能なソフトウェア配布パッケージ、コンピュータ読み取り可能な信号、コンピュータ読み取り可能なテレコミュニケーション信号、コンピュータ読み取り可能な印刷物、及びコンピュータ読み取り可能な圧縮されたソフトウェアパッケージのうち、少なくとも１つのメディアを含むことができる。
【００５０】
本発明は、図面に従う一例を参照して上述したが、本発明は、それに制限されないのは明らかであり、請求の範囲内で幾つかの手法で変更することもできる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施例を適用することができるデバイスの一例を示す図である。
【図２Ａ】状態マシンモデルを構築する一例を示す図である。
【図２Ｂ】状態マシンモデルを構築する一例を示す図である。
【図２Ｃ】状態マシンモデルを構築する一例を示す図である。
【図３】本発明の実施例をフローチャートで示す図である。
【図４】本発明の実施例をフローチャートで示す図である。
【図１】
2009501970.tif 000003
【図２Ａ】
2009501970.tif 000004
【図２Ｂ】
2009501970.tif 000005
【図２Ｃ】
2009501970.tif 000006
【図３】
2009501970.tif 000007
【図４】
2009501970.tif 000008
【国際調査報告】
2009501970.tif 000009
2009501970.tif 000010
2009501970.tif 000011