(57)【特許請求の範囲】
【請求項１】
ユーザの操作に従い複数のデバイス間の連携動作を規定する設計情報を生成する複数の設計部であって、それぞれ異なる形式の設計情報を生成する複数の設計部と、
前記複数の設計部それぞれに対応して設けられた設計情報変換部であって、対応する設計部が生成した設計情報を、辞書部に記憶された語彙を用いて記述された共通設計情報に変換するとともに、他の設計部が生成した設計情報から生成された共通設計情報を、対応する設計部が生成する形式の設計情報に変換する設計情報変換部と、
前記複数のデバイスそれぞれの動作に応じて出力された出力情報であって、デバイス毎に異なる形式の出力情報を、前記語彙を用いて記述された共通出力情報に変換する出力情報変換部と、
前記設計情報変換部が変換した共通設計情報に従い、各デバイスを連携して動作させるとともに、前記出力情報変換部が変換した共通出力情報に従い、各設計部を動作させる動作実行部と
を備えることを特徴とする動作設計装置。
【請求項２】
前記動作実行部は、前記設計情報変換部が変換した共通設計情報に従い、前記語彙を用いて記述された指示情報を前記各デバイスへ送信することにより、前記デバイスを動作させる
ことを特徴とする請求項１に記載の動作設計装置。
【請求項３】
前記動作実行部は、前記共通設計情報と、前記共通出力情報とに従い、前記各デバイスを動作させる
ことを特徴とする請求項１又は２に記載の動作設計装置。
【請求項４】
前記動作実行部は、前記複数のデバイスのうちのあるデバイスによって出力された出力情報が変換された前記共通出力情報に従い、他のデバイスを動作させる
ことを特徴とする請求項３に記載の動作設計装置。
【請求項５】
前記動作設計装置は、さらに、
前記複数のデバイス間の連携動作を試験する場合に、前記複数のデバイスの少なくとも一部のデバイスの出力を模擬する動作模擬部
を備えることを特徴とする請求項１から４までのいずれかに記載の動作設計装置。
【請求項６】
前記動作設計装置は、さらに、
前記複数のデバイス間の連携動作を試験する場合に、前記共通設計情報から、前記設計情報で規定された動作パターンを抽出する動作パターン抽出部
を備えることを特徴とする請求項１から５までのいずれかに記載の動作設計装置。
【請求項７】
ユーザの操作に従い複数のデバイス間の連携動作を規定する設計情報を生成する複数の設計処理であって、それぞれ異なる形式の設計情報を生成する複数の設計処理と、
前記複数の設計処理それぞれに対応して設けられた設計情報変換処理であって、対応する設計処理で生成した設計情報を、辞書部に記憶された語彙を用いて記述された共通設計情報に変換するとともに、他の設計処理で生成した設計情報から生成された共通設計情報を、対応する設計処理で生成する形式の設計情報に変換する設計情報変換処理と、
前記複数のデバイスそれぞれの動作に応じて出力された出力情報であって、デバイス毎に異なる形式の出力情報を、前記語彙を用いて記述された共通出力情報に変換する出力情報変換処理と、
前記設計情報変換処理で変換した共通設計情報に従い、各デバイスを連携して動作させるとともに、前記出力情報変換処理で変換した共通出力情報に従い、各設計処理を動作させる動作実行処理と
をコンピュータに実行させることを特徴とする動作設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、様々な入力ツールを用いて複数のデバイス間の連携動作を設計する技術に関する。
【背景技術】
【０００２】
タッチパネル、音声認識、空間ジェスチャ認識等の様々なユーザインタフェースデバイス（以下、ＵＩデバイス）が実用化されている。カーナビゲーションシステム等において、これら複数のＵＩデバイスを組み合わせて利用するマルチモーダルインタフェースが開発されている。【０００３】
複数のＵＩデバイスを効率的に利用するマルチモーダルインタフェースの仕組みが提案されている。
特許文献１には、ジェスチャ入力と音声認識入力等、異なる種類の入力を抽象化された意味論で統合する方式が記載されている。【０００４】
Ｗ３ＣのＭＭＩ（Ｍｕｌｔｉｍｏｄａｌ  Ｉｎｔｅｒａｃｔｉｏｎ）  Ａｕｔｈｏｒｉｎｇによりインターネットにおけるマルチモーダルアーキテクチャの標準化が進められている。
非特許文献１には、マルチモーダルインタフェースの動作をＳＣＸＭＬ（Ｓｔａｔｅ  Ｃｈａｒｔ  Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述する方法について記載されている。また、非特許文献２には、統合したインタフェースの動作を記述するファイル形式として、ＳＣＸＭＬを用いることが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１１４６３４号公報
【非特許文献】
【０００６】
【非特許文献１】Ｗ３Ｃ  ＭＭＩ  Ｆｒａｍｅｗｏｒｋ，  ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｍｍｉ−ｆｒａｍｅｗｏｒｋ／
【非特許文献２】Ｗ３Ｃ  Ｓｔａｔｅ  Ｃｈａｒｔ  ＸＭＬ，  ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｓｃｘｍｌ／
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マルチモーダルインタフェースを用いたアプリケーションの設計は複雑である。そのため、アプリケーションを設計するためのツールとして、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）設計ツール、表形式設計ツール、ブロック形式設計ツール等、様々な形式のソフトウェア設計ツールが開発されている。しかし、各ソフトウェア設計ツールの入出力情報に互換性がないという課題がある。【０００８】
例えば、一般に普及している表形式ソフトウェアを利用した表形式設計ツールは、初心者には使いやすいというメリットがあるが、詳細な設計は難しいというデメリットがある。一方で、ＵＭＬ設計ツールは、詳細な設計が可能であるが、利用するのに専門スキルが必要となるため、初心者には利用し辛いというデメリットがある。
また、各ソフトウェア設計ツールの入出力情報に互換性が無いため、あるソフトウェア設計ツールで設計した情報を、後から他のソフトウェア設計ツールで修正する等の作業が困難である。【０００９】
この発明は、異なる種類のソフトウェア設計ツールの入出力情報に互換性を持たせ、効率的な開発を可能にすることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る動作設計装置は、
ユーザの操作に従い複数のデバイス間の連携動作を規定する設計情報を生成する複数の設計部であって、それぞれ異なる形式の設計情報を生成する複数の設計部と、
前記複数の設計部それぞれに対応して設けられた設計情報変換部であって、対応する設計部が生成した設計情報を、辞書部に記憶された語彙を用いて記述された共通設計情報に変換するとともに、他の設計部が生成した設計情報から生成された共通設計情報を、対応する設計部が生成する形式の設計情報に変換する設計情報変換部と、
前記設計情報変換部が変換した共通設計情報に従い、各デバイスを連携して動作させる動作実行部と
を備えることを特徴とする。
【発明の効果】
【００１１】
この発明に係る動作設計装置は、設計部毎に異なる形式の設計情報を、辞書部に記憶された語彙により記述された共通設計情報に変換するとともに、変換された共通設計情報を各設計部の形式の設計情報に変換する。これにより、ある設計部によって生成された設計情報を、他の設計部で編集することが可能になる。その結果、効率的な開発が可能になる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係る動作設計装置１００の構成図。
【図２】実施の形態１に係る動作設計装置１００の処理フローを示す図。
【図３】辞書部１１０に記憶されたイベントテーブル１１１を示す図。
【図４】辞書部１１０に記憶された設計ツール用述語テーブル１１２を示す図。
【図５】辞書部１１０に記憶された設計ツール用固有名詞テーブル１１３を示す図。
【図６】辞書部１１０に記憶されたシステム用固有名詞テーブル１１４を示す図。
【図７】辞書部１１０に記憶されたデバイス用固有名詞テーブル１１５を示す図。
【図８】テキストボックス２０１への数値入力画面の例を示す図。
【図９】ＵＭＬ設計ツール１２１Ｂにより設計された連携動作を示す図。
【図１０】シーケンス図設計ツール１２１Ｃにより設計された連携動作を示す図。
【図１１】グラフ設計ツール１２１Ｄにより設計された連携動作を示す図。
【図１２】ＧＵＩ設計ツール１２１Ｅにより設計された連携動作を示す図。
【図１３】状態テーブルを示す図。
【図１４】状態遷移テーブルを示す図。
【図１５】アクティビティテーブルを示す図。
【図１６】アクティビティテーブルを示す図。
【図１７】共通設計情報を説明するための図。
【図１８】ＳＣＸＭＬで記述された動作定義情報を示す図。
【図１９】ＧＵＩ装置１５１Ｅの入出力定義として生成された設計情報が変換され生成された共通設計情報を示す図。
【図２０】音声認識装置１５１Ａ及び音声合成装置１５１Ｂの入出力定義として生成された設計情報が変換され生成された共通設計情報を示す図。
【図２１】音声認識装置１５１Ａ及び音声合成装置１５１Ｂの入出力定義として生成された設計情報が変換され生成された共通設計情報を示す図。
【図２２】実施の形態２に係る動作設計装置１００の構成図。
【図２３】実施の形態２に係る動作設計装置１００の処理フローを示す図。
【図２４】実施の形態３に係る動作設計装置１００の構成図。
【図２５】辞書部１１０に記憶された設計操作述語テーブル１１６を示す図。
【図２６】例１及び例２を説明するための図。
【図２７】共通設計情報のデータ構造を示す図。
【図２８】実施の形態１，２に示した動作設計装置１００のハードウェア構成の例を示す図。
【発明を実施するための形態】
【００１３】
実施の形態１．
図１は、実施の形態１に係る動作設計装置１００の構成図である。
動作設計装置１００は、辞書部１１０と、設計ツール群１２０と、動作定義生成部１３０と、動作実行部１４０と、デバイス群１５０と、入出力定義部１６０とを備える。
【００１４】
辞書部１１０は、各部間で送受信する情報を共通フォーマットに変換するための語彙を記憶する。
【００１５】
設計ツール群１２０は、デバイス１５１間の連携動作を設計するための複数の設計ツール１２１（設計部）の集合である。設計ツール群１２０には、例えば、表形式設計ツール１２１Ａ、ＵＭＬ設計ツール１２１Ｂ、シーケンス図設計ツール１２１Ｃ、グラフ設計ツール１２１Ｄ、ＧＵＩ設計ツール１２１Ｅ等、それぞれ異なる形式によりデバイス１５１間の連携動作を設計する複数の設計ツールが含まれている。
設計ツール１２１は、ユーザの操作に従い、デバイス１５１間の連携動作を規定した設計情報を生成する。設計ツール１２１毎に、生成される設計情報の形式が異なる。
【００１６】
各設計ツール１２１に対応して設計情報抽象化部１２２（設計情報変換部）が設けられている。
設計情報抽象化部１２２は、対応する設計ツール１２１が受け付けた設計情報をセマンティクス化して共通設計情報に変換する。具体的には、設計情報抽象化部１２２は、辞書部１１０に記憶された語彙を用い、動作記述用の共通フォーマットに従って設計情報を記述して、共通設計情報に変換する。設計情報抽象化部１２２は、生成した共通設計情報を動作定義生成部１３０へ送信して、設計情報記憶部１３１に記憶させる。
また、設計情報抽象化部１２２は、設計情報記憶部１３１に記憶された共通設計情報を読み出して、読み出した共通設計情報を、対応する設計ツールが生成する形式の設計情報に変換する。
【００１７】
動作定義生成部１３０は、設計情報抽象化部１２２が送信した共通設計情報を設計情報記憶部１３１に記憶する。動作定義生成部１３０は、設計情報記憶部１３１に記憶した共通設計情報に基づき、連携動作におけるデバイス１５１の動作タイミング及び動作内容を規定した動作定義情報を生成する。動作定義生成部１３０は、生成した動作定義情報を動作実行部１４０へ送信する。
なお、動作定義情報は、例えば、ステートチャートで定義したファイルである。動作定義情報は、Ｗ３Ｃで標準化が進められているＳＣＸＭＬのフォーマットに従ったファイルであってもよいし、またそれを拡張した独自形式でもよい。
【００１８】
動作実行部１４０は、動作定義生成部１３０が送信した動作定義情報を動作定義記憶部１４１に記憶する。動作実行部１４０は、動作定義記憶部１４１に記憶した動作定義情報に基づき、辞書部１１０に記憶された語彙を用い、通信用の共通フォーマットに従って記述された指示情報をデバイス１５１へ送信して、デバイス１５１を動作させる。
【００１９】
デバイス群１５０は、ユーザとのインタフェースとなるＵＩデバイスや、制御対象となる制御デバイス等のデバイス１５１の集合である。デバイス群１５０には、例えば、ＵＩデバイスである音声認識装置１５１Ａ、音声合成装置１５１Ｂ、空間ジェスチャ認識カメラ１５１Ｃ、キーボード１５１Ｄ、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）装置１５１Ｅと、制御デバイスである制御対象装置１５１Ｆ（テレビ、エアコンディショナー、工作機械、監視制御機器、ロボット等）とが含まれている。
デバイス１５１は、ユーザの操作と動作実行部１４０から送信された指示情報との少なくともいずれかに応じて動作する。
【００２０】
各デバイス１５１に対応して、入出力情報抽象化部１５２（出力情報変換部）が設けられている。
入出力情報抽象化部１５２は、動作実行部１４０から送信された指示情報をデバイス１５１の具体的な命令に変換する。動作実行部１４０から指示情報が送信された場合、デバイス１５１は、入出力情報抽象化部１５２によって変換された具体的な命令に基づき動作する。
デバイス１５１は、動作に応じて出力情報を出力する。入出力情報抽象化部１５２は、デバイス１５１によって出力された出力情報を、辞書部１１０に記憶された語彙を用い、通信用の共通のフォーマットに従って記述された共通出力情報に変換する。入出力情報抽象化部１５２は、生成した共通出力情報を動作実行部１４０へ送信する。
【００２１】
動作実行部１４０は、入出力情報抽象化部１５２が送信した共通出力情報と、動作定義情報とに応じて、指示情報をデバイス１５１へ送信して、デバイス１５１を動作させる。ここで、指示情報の送信先のデバイス１５１は、共通出力情報の元となった出力情報を出力したデバイス１５１と同じ場合もあるし、異なる場合もある。指示情報をどのデバイス１５１へ送信するかは、動作定義情報により規定されている。
【００２２】
入出力定義部１６０は、デバイス１５１の入出力を定義するためのツールである。入出力定義部１６０は、例えば、テキストエディタ、表形式ツール等である。入出力定義部１６０は、ユーザの操作に応じて、デバイス１５１の入出力を定義した定義情報を生成し、デバイス１５１に設定する。
【００２３】
なお、設計ツール１２１は、後述する設計モードにおいて、ユーザがデバイス１５１の操作することにより、動作し設計情報を生成する。同様に、入出力定義部１６０は、後述する設計モードにおいて、ユーザがデバイス１５１の操作することにより、動作し定義情報を生成する。
【００２４】
図２は、実施の形態１に係る動作設計装置１００の処理フローを示す図である。
動作設計装置１００の処理は、設計モードと実行モードとの２つの処理に分けられる。設計モードは、複数のデバイス１５１間の連携動作を設計する処理である。実行モードは、設計モードでの設計に従い、複数のデバイス１５１を連携して動作させる処理である。
【００２５】
設計モードは、（１）入出力設計、（２）連携動作設計、（３）設計情報抽象化、（４）設計情報記憶、（５）動作定義情報生成の処理に分けられる。実行モードは、（６）動作実行部起動、（７）デバイス接続の処理に分けられる。
（１）入出力設計は、入出力定義部１６０が、デバイス１５１の入出力を定義し、デバイス１５１に設定する処理である。（２）連携動作設計は、設計ツール１２１が、デバイス１５１間の連携動作を設計し設計情報を生成する処理である。（３）設計情報抽象化は、設計情報抽象化部１２２が、（２）で生成された設計情報を共通設計情報に変換する処理である。（４）設計情報記憶は、動作定義生成部１３０が、（３）で生成された共通設計情報を記憶する処理である。（５）動作定義情報生成は、動作定義生成部１３０が、（４）で記憶された共通設計情報から動作定義情報を生成する処理である。（６）動作実行部起動は、動作実行部１４０が、動作定義情報を読み出し、動作を開始する処理である。（７）デバイス接続は、動作実行部１４０が、デバイス１５１と接続され、連携動作を実行する処理である。
なお、（４）設計情報記憶の処理の後、（２）へ処理を戻して、他の設計ツール１２１で設計情報を生成してもよい。
以下、前提（Ａ）〜（Ｃ）を説明した上で、（１）〜（７）の各処理について詳細に説明する。
【００２６】
＜前提（Ａ）辞書部１１０が記憶する語彙＞
図３から図７は、辞書部１１０が記憶する語彙の例を示す図である。以下、図３から図７に示す語彙を使用して、動作設計装置１００の具体的な動作を説明する。
図３は、イベントテーブル１１１を示す図である。図４は、設計ツール用述語テーブル１１２を示す図である。図５は、設計ツール用固有名詞テーブル１１３を示す図である。図６は、システム用固有名詞テーブル１１４を示す図である。図７は、デバイス用固有名詞テーブル１１５を示す図である。
なお、各語彙には、便宜的に接頭語が付される。イベントテーブル１１１の語彙には、接頭語“ｅｖ”が付される。設計ツール用の語彙には、接頭語“ａｕ”が付される。システム（動作設計装置１００）で共通利用する語彙には、接頭語“ｓｙｓ”が付される。デバイス用の語彙には、接頭語“ｕｉ”が付される。
【００２７】
＜前提（Ｂ）通信用の共通フォーマット＞
動作実行部１４０とデバイス１５１の入出力情報抽象化部１５２とが送受信する指示情報及び共通出力情報（以下、イベント）のフォーマットである通信用の共通フォーマットについて説明する。
通信用の共通フォーマットは、図６に示すシステム用固有名詞テーブル１１４に記憶された固有名詞“ｓｙｓ：Ｅｖｅｎｔ”，“  ｓｙｓ：Ｔａｒｇｅｔ”，“  ｓｙｓ：Ｖａｌｕｅ”を用いたＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）形式とする。
ここで、“ｓｙｓ：Ｅｖｅｎｔ”には、図３に示すイベントテーブル１１１に記憶された述語が設定される。“ｓｙｓ：Ｔａｒｇｅｔ”には、辞書部１１０が記憶する固有名詞が設定される。“ｓｙｓ：Ｖａｌｕｅ”には、値が設定される。
【００２８】
＜前提（Ｃ）動作例＞
図８は、テキストボックス２０１への数値入力画面の例を示す図である。
図８では、ＧＵＩ画面２００（名称は“ｕｉ：ＧＵＩ”）にテキストボックス２０１（名称は“ｕｉ：ＴｅｘｔＢｏｘ１”）が１つある。キーボード１５１Ｄにより、テキストボックス２０１へ文字列を入力するというのが通常動作である。この通常動作に加え、以下の追加動作を設計する方法を、動作例として説明する。
（追加動作）
（ａ）指でテキストボックス２０１にタッチしてテキストボックス２０１にフォーカスする。（ｂ）人間が「すうちにゅうりょくじゅう」と発話し、発話内容を音声認識装置１５１Ａが認識し、数値“１０”をテキストボックス２０１に入力する。（ｃ）指をテキストボックス２０１から離したら、テキストボックス２０１のフォーカスが外れ、音声合成装置１５１Ｂが入力された数値を「じゅうがにゅうりょくされました」と、読み上げる。
【００２９】
＜（１）入出力設計＞
入出力定義部１６０は、デバイス１５１の入出力を定義した定義情報を生成し、デバイス１５１の入出力情報抽象化部１５２に設定する。
前提（Ｃ）で説明した動作例では、ＧＵＩ装置１５１Ｅの入出力と、音声認識装置１５１Ａの入出力と、音声合成装置１５１Ｂの入出力とが定義され、それぞれ対応する入出力情報抽象化部１５２に設定される。
【００３０】
ＧＵＩ装置１５１Ｅの入出力定義として、以下の入出力動作をするように規定された定義情報が生成される。
ＧＵＩ装置１５１Ｅは、テキストボックス２０１がタッチされた場合に、ＥｖｅｎｔＳｔｒ１をＧＵＩ装置１５１Ｅから動作実行部１４０へ送信する。
ＥｖｅｎｔＳｔｒ１＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：Ｆｏｃｕｓ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＴｅｘｔＢｏｘ１”，“ｓｙｓ：Ｖａｌｕｅ”：“”｝
【００３１】
ＧＵＩ装置１５１Ｅは、テキストボックス２０１から指が外れた場合に、ＥｖｅｎｔＳｔｒ２を動作実行部１４０に送信する。この際、“ｓｙｓ：Ｖａｌｕｅ”には、テキストボックス２０１に入力された数値が設定される。ここでは、テキストボックス２０１に“１０”が入力されている場合のＥｖｅｎｔＳｔｒ２を例として示す。
ＥｖｅｎｔＳｔｒ２＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：Ｕｎｆｏｃｕｓ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＴｅｘｔＢｏｘ１”，“ｓｙｓ：Ｖａｌｕｅ”：“１０”｝
【００３２】
ＧＵＩ装置１５１Ｅは、動作実行部１４０からＥｖｅｎｔＳｔｒ３を受信した場合に、テキストボックス２０１に対して、“ｓｙｓ：Ｖａｌｕｅ”の値を設定する。ここでは、ｓｙｓ：Ｖａｌｕｅに“１０”が入力されている場合のＥｖｅｎｔＳｔｒ３を例として示す。
ＥｖｅｎｔＳｔｒ３＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：ＳｅｔＶａｌｕｅ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＴｅｘｔＢｏｘ１”，“ｓｙｓ：Ｖａｌｕｅ”：“１０”｝
【００３３】
音声認識装置１５１Ａの入出力定義として、以下の入出力動作をするように規定された定義情報が生成される。
音声認識装置１５１Ａは、「すうちにゅうりょく」を認識キーワードとし、認識キーワードが発話された場合に、ＥｖｅｎｔＳｔｒ４を動作実行部１４０に送信する。この際、“ｓｙｓ：Ｖａｌｕｅ”には、認識キーワードに続いて発話された数値が設定される。ここでは、「すうちにゅうりょくじゅう」と発話された場合のＥｖｅｎｔＳｔｒ４を例として示す。
ＥｖｅｎｔＳｔｒ４＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：Ｉｎｐｕｔ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ＴｅｘｔＢｏｘ１”，“ｓｙｓ：Ｖａｌｕｅ”：“１０”｝
【００３４】
音声合成装置１５１Ｂの入出力定義として、以下の入出力動作をするように規定された定義情報が生成される。
音声合成装置１５１Ｂは、動作実行部１４０からＥｖｅｎｔＳｔｒ５を受信した場合に、“ｓｙｓ：Ｖａｌｕｅ”の内容を発話する。ここでは、ｓｙｓ：Ｖａｌｕｅに“１０”が入力されている場合のＥｖｅｎｔＳｔｒ５を例として示す。この場合、例えば、「じゅうがにゅうりょくされました」と発話する。
ＥｖｅｎｔＳｔｒ５＝｛“ｅｖ：Ｅｖｅｎｔ”：“ｅｖ：Ｓａｙ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ＴＴＳ”，“ｓｙｓ：Ｖａｌｕｅ”：“１０”｝
【００３５】
＜（２）連携動作設計＞
設計ツール１２１は、デバイス１５１間の連携動作を規定した設計情報を生成する。
前提（Ｃ）で説明した動作例では、ＧＵＩ装置１５１Ｅと音声認識装置１５１Ａと音声合成装置１５１Ｂとの間の連携動作が設計される。
【００３６】
図９は、ＵＭＬ設計ツール１２１Ｂにより設計された連携動作を示す図である。
ＵＭＬ設計ツール１２１Ｂは、ユーザの操作によるデバイス１５１の動作に従い、辞書部１１０に記憶された語彙を用いて、ＵＭＬ図を設計情報として生成する。
【００３７】
図９では、連携動作がａｕ：ＵｓｅＣａｓｅとして表されている。ａｕ：ＵｓｅＣａｓｅには、ステートマシン図（ａｕ：ＳｔａｔｅＭａｃｈｉｎｅ）と、２つのアクティビティ図（ａｕ：Ａｃｔｉｖｉｔｙ１とａｕ：Ａｃｔｉｖｉｔｙ２）とが含まれている。
【００３８】
ａｕ：ＳｔａｔｅＭａｃｈｉｎｅは、ｕｉ：ＴｅｘｔＢｏｘ１の状態遷移を示している。
ａｕ：ＳｔａｔｅＭａｃｈｉｎｅは、以下の内容を示している。
動作実行部１４０の初期化時に、初期状態であるａｕ：Ｉｎｉｔｉａｌ状態から、ａｕ：Ｉｄｌｅ状態に遷移する。ａｕ：Ｉｄｌｅ状態において、動作実行部１４０が“ｓｙｓ：Ｅｖｅｎｔ”＝“ｅｖ：Ｆｏｃｕｓ”を受信するとａｕ：Ａｃｔｉｖｅ状態に遷移する。ａｕ：Ａｃｔｉｖｅ状態で、動作実行部１４０が“ｓｙｓ：Ｅｖｅｎｔ”＝“ｅｖ：Ｉｎｐｕｔ”を受信すると、動作実行部１４０がａｕ：Ａｃｔｉｖｉｔｙ２を実行する。ａｕ：Ａｃｔｉｖｅ状態で、動作実行部１４０が“ｓｙｓ：Ｅｖｅｎｔ”＝“ｅｖ：Ｕｎｆｏｃｕｓ”を受信すると、動作実行部１４０がａｕ：Ａｃｔｉｖｉｔｙ１を実行し、ａｕ：Ｉｄｌｅ状態に遷移する。
【００３９】
ａｕ：Ａｃｔｉｖｉｔｙ１及びａｕ：Ａｃｔｉｖｉｔｙ２は、動作実行部１４０がデバイス１５１に送信するイベントの内容を示している。
ａｕ：Ａｃｔｉｖｉｔｙ１は、動作実行部１４０がＥｖｅｎｔＳｔｒ５を音声合成装置１５１Ｂ（ｕｉ：ＴＴＳ）に送信することを示している。
なお、ＥｖｅｎｔＳｔｒ５では、“ｓｙｓ：Ｖａｌｕｅ”が“１０”となっている。しかし、実際には、“ｓｙｓ：Ｖａｌｕｅ”には、動作実行部１４０が受信したイベントの“ｓｙｓ：Ｖａｌｕｅ”が設定される。したがって、ＥｖｅｎｔＳｔｒ５は、“ｓｙｓ：Ｖａｌｕｅ”の値を“１０”から“ｓｙｓ：ＲｅｃｅｉｖｅｄＶａｌｕｅ”に置き換え、以下のように記述される。
ＥｖｅｎｔＳｔｒ５＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：Ｓａｙ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＴＴＳ”，“ｓｙｓ：Ｖａｌｕｅ”：“ｓｙｓ：ＲｅｃｅｉｖｅｄＶａｌｕｅ”｝
前提（Ｃ）で説明した動作例では、“ｓｙｓ：ＲｅｃｅｉｖｅｄＶａｌｕｅ”は、“ｅｖ：Ｕｎｆｏｃｕｓ”のイベント発生時（テキストボックス２０１から指が外れた場合）にＧＵＩ装置１５１Ｅが送信するＥｖｅｎｔＳｔｒ２の“ｓｙｓ：Ｖａｌｕｅ”の値が設定される。
【００４０】
ａｕ：Ａｃｔｉｖｉｔｙ２は動作実行部１４０がＥｖｅｎｔＳｔｒ３をＧＵＩ装置１５１Ｅ（ｕｉ：ＧＵＩ）に送信することを示している。
なお、ＥｖｅｎｔＳｔｒ３では、“ｓｙｓ：Ｖａｌｕｅ”が“１０”となっている。しかし、実際には、“ｓｙｓ：Ｖａｌｕｅ”には、動作実行部１４０が受信したイベントの“ｓｙｓ：Ｖａｌｕｅ”が設定される。したがって、ＥｖｅｎｔＳｔｒ３は、“ｓｙｓ：Ｖａｌｕｅ”の値を“１０”から“ｓｙｓ：ＲｅｃｅｉｖｅｄＶａｌｕｅ”に置き換え、以下のように記述される。
ＥｖｅｎｔＳｔｒ３＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：ＳｅｔＶａｌｕｅ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＴｅｘｔＢｏｘ１”，“ｓｙｓ：Ｖａｌｕｅ”：“ｓｙｓ：ＲｅｃｅｉｖｅｄＶａｌｕｅ”｝
前提（Ｃ）で説明した動作例では、“ｓｙｓ：ＲｅｃｅｉｖｅｄＶａｌｕｅ”は、“ｅｖ：Ｉｎｐｕｔ”のイベント発生時に音声認識装置１５１Ａが送信するＥｖｅｎｔＳｔｒ４の“ｓｙｓ：Ｖａｌｕｅ”の値である。
【００４１】
図１０は、シーケンス図設計ツール１２１Ｃにより設計された連携動作を示す図である。図１０に示すシーケンス図は、図９に示すＵＭＬ図と同じ連携動作を示している。
シーケンス図設計ツール１２１Ｃは、ユーザの操作によるデバイス１５１の動作に従い、辞書部１１０に記憶された語彙を用いて、シーケンス図を設計情報として生成する。
【００４２】
図１０では、連携動作がシーケンス図として表されている。図１０に示すシーケンス図は、以下の内容を示している。
（ａ）ＧＵＩ装置１５１Ｅは、テキストボックス２０１にタッチされた場合に、ｅｖｅｎｔ：“ｅｖ：Ｆｏｃｕｓ”、ｏｂｊｅｃｔ：“ｕｉ：ＴｅｘｔＢｏｘ１”、ｖａｌｕｅ：“”とするイベント文字列（ＥｖｅｎｔＳｔｒ１）を動作実行部１４０へ送信する。すると、動作実行部１４０は、ａｕ：Ｉｄｌｅ状態からａｕ：Ａｃｔｉｖｅ状態に遷移する。
（ｂ）音声認識装置１５１Ａは、認識キーワードが発話された場合に、ｅｖｅｎｔ：“ｅｖ：Ｉｎｐｕｔ”、ｏｂｊｅｃｔ：“”、ｖａｌｕｅ：“１０”とするイベント文字列（ＥｖｅｎｔＳｔｒ４）を動作実行部１４０へ送信する。（ｃ）動作実行部１４０は、ｅｖｅｎｔ：“ｅｖ：ＳｅｔＶａｌｕｅ”、ｏｂｊｅｃｔ：“ｕｉ：ＴｅｘｔＢｏｘ１”、ｖａｌｕｅ：“１０”とするイベント文字列（ＥｖｅｎｔＳｔｒ３）をＧＵＩ装置１５１Ｅへ送信する。
（ｄ）ＧＵＩ装置１５１Ｅは、テキストボックス２０１から指が外れた場合に、ｅｖｅｎｔ：“ｅｖ：Ｕｎｆｏｃｕｓ”、ｏｂｊｅｃｔ：“ｕｉ：ＴｅｘｔＢｏｘ１”、ｖａｌｕｅ：“１０”とするイベント文字列（ＥｖｅｎｔＳｔｒ２）を動作実行部１４０へ送信する。（ｅ）動作実行部１４０は、ｅｖｅｎｔ：“ｅｖ：Ｓａｙ”、ｏｂｊｅｃｔ：“ＴＴＳ”、ｖａｌｕｅ：“１０”とするイベント文字列（ＥｖｅｎｔＳｔｒ５）を音声合成装置１５１Ｂへ送信する。
【００４３】
図１１は、グラフ設計ツール１２１Ｄにより設計された連携動作を示す図である。図１１に示す有向グラフは、図９に示すＵＭＬ図が示す連携動作のうち、一部の動作を示している。
グラフ設計ツール１２１Ｄは、ユーザの操作によるデバイス１５１の動作に従い、辞書部１１０に記憶された語彙を用いて、有向グラフを設計情報として生成する。
【００４４】
図１１では、主語及び目的語が楕円で表され、述語が主語から目的語への矢印で表されている。なお、図１１におけるＴ１は、図９におけるａｕ：Ｉｎｉｔｉａｌからａｕ：Ｉｄｌｅへの矢印を意味し、図１１におけるＳ１は、図９におけるａｕ：Ｉｎｉｔｉａｌを意味し、図１１におけるＳ２は、図９におけるａｕ：Ｉｄｌｅを意味している。
図１１に示す有向グラフは、以下の内容を示している。Ｔ１は、種類（ａｕ：Ｔｙｐｅ）が遷移（Ｔｒａｎｓｉｔｉｏｎ）である。Ｔ１は、遷移元（ａｕ：Ｆｒｏｍ）がＳ１であり、遷移先（ａｕ：Ｔｏ）がＳ２である。Ｓ１は、種類（ａｕ：Ｔｙｐｅ）が状態（Ｓｔａｔｅ）であり、名称（ａｕ：Ｎａｍｅ）が初期（ａｕ：Ｉｎｉｔｉａｌ）である。Ｓ２は、種類（ａｕ：Ｔｙｐｅ）が状態（Ｓｔａｔｅ）であり、名称（ａｕ：Ｎａｍｅ）が初期（ａｕ：Ｉｄｌｅ）である。
【００４５】
図１２は、ＧＵＩ設計ツール１２１Ｅにより設計された連携動作を示す図である。図１２に示すプレビュー画面は、図９に示すＵＭＬ図が示す連携動作のうち、一部の動作を示している。
図１２では、プレビュー画面は、ＧＵＩ画面プレビュー領域２１０と、デバイス一覧領域２１１と、詳細設定領域２１２とを有している。
ＧＵＩ画面プレビュー領域２１０は、ＧＵＩ画面を表示する領域である。デバイス一覧領域２１１は、デバイス群１５０に含まれるデバイス１５１の一覧を示す領域である。詳細設定領域２１２は、選択されたイベントの詳細な設定を記述するための領域である。
図１２では、ＧＵＩ画面プレビュー領域２１０に表示されたテキストボックス２０１からデバイス一覧領域２１１に表示された音声合成装置１５１Ｂまでマウス等のポインティングデバイスで線を引いた状態が示されている。この場合、詳細設定領域２１２には、テキストボックス２０１に関して音声合成装置１５１Ｂが送受信するイベントのパラメータ等が表示される。詳細設定領域２１２に表示された情報を編集することにより、テキストボックス２０１に関して音声合成装置１５１Ｂが送受信するイベントを設計することができる。
【００４６】
＜（３）設計情報抽象化＞
設計情報抽象化部１２２は、設計ツール１２１が生成した設計情報をセマンティクス化して共通設計情報に変換する。そして、設計情報抽象化部１２２は、生成した共通設計情報を動作定義生成部１３０へ送信する。
【００４７】
ここでのセマンティクス化は、辞書部１１０に記憶された語彙を少なくとも述語として用いて、主語、述語、目的語の３つの要素で記述することである。主語は、動作設計装置１００において一意に定められた語が用いられ、述語は、辞書部１１０に記憶された語彙が用いられ、目的語は、動作設計装置１００において一意に定められた語と辞書部１１０に記憶された語彙とのいずれかが用いられる。
【００４８】
図１３から図１６は、共通設計情報を示す図である。図１３から図１６では、前提（Ｃ）で説明した動作例についての設計情報から生成される共通設計情報を示している。図１３は、状態テーブル１３１１を示す図である。図１４は、状態遷移テーブル１３１２を示す図である。図１５及び図１６は、アクティビティテーブル１３１３を示す図である。
図１７は、共通設計情報を説明するための図である。図１７は、図９に示すＵＭＬ図に、図１３から図１６で用いられる語が括弧書きで付されている。なお、ここでは、ＵＭＬ設計ツール１２１Ｂにより生成された設計情報であるＵＭＬ図に基づき、共通設計情報を説明する。他の設計ツール１２１により生成された設計情報から生成される共通設計情報も、原則として同じになる。
【００４９】
図１７を参照しながら、図１３から図１６に示す共通設計情報について説明する。
図１３について説明する。
主語Ｓ１の２つの行は、ａｕ：Ｉｎｉｔｉａｌ状態を示す。具体的には、主語Ｓ１の２つの行は、種類（ａｕ：Ｔｙｐｅ）が状態（ａｕ：Ｓｔａｔｅ）であり、名称（ａｕ：Ｎａｍｅ）が初期（ａｕ：Ｉｎｉｔｉａｌ）であることを示す。
主語Ｓ２の２つの行は、ａｕ：Ｉｄｌｅ状態を示す。主語Ｓ３の２つの行は、ａｕ：Ａｃｔｉｖｅ状態を示す。主語Ｓ２の２つの行及び主語Ｓ３の２つの行の具体的な読み方は、主語Ｓ１の２つの行と同様である。
【００５０】
図１４について説明する。
主語Ｔ１の３つの行は、ａｕ：Ｉｎｉｔｉａｌ状態からａｕ：Ｉｄｌｅ状態へ遷移することを示す。具体的には、主語Ｔ１の３つの行は、種類（ａｕ：Ｔｙｐｅ）が遷移（ａｕ：Ｔｒａｎｓｉｔｉｏｎ）であり、Ｓ１から（ａｕ：Ｆｒｏｍ）Ｓ２へ（ａｕ：Ｔｏ）であることを示す。ここで、上述した通り、Ｓ１はａｕ：Ｉｎｉｔｉａｌ状態を示し、Ｓ２はａｕ：Ｉｄｌｅ状態を示す。
主語Ｔ２の４つの行は、イベント“ｅｖ：Ｆｏｃｕｓ”によって、ａｕ：Ｉｄｌｅ状態からａｕ：Ａｃｔｉｖｅ状態へ遷移することを示す。具体的には、主語Ｔ２の４つの行は、上３行の読み方は主語Ｔ１の３つの行と同様であり、最後の１行は状態遷移を引き起こすイベント名（ａｕ：ＴｒｉｇｇｅｒｅｄＢｙ）がｅｖ：Ｆｏｃｕｓであることを示す。
主語Ｔ３の５つの行は、イベント“ｅｖ：Ｕｎｆｏｃｕｓ”によって、Ａｃｔ１が実行され、ａｕ：Ａｃｔｉｖｅ状態からａｕ：Ｉｄｌｅ状態へ遷移することを示す。具体的には、主語Ｔ３の５つの行は、上３行と最後の１行の読み方は主語Ｔ２の４つの行と同様であり、残りの１行は実行されるアクション（ａｕ：ＤｏＡｃｔｉｏｎ）がＡｃｔ１であることを示す。
主語がＴ４の５つの行は、イベント“ｅｖ：Ｉｎｐｕｔ”によって、Ａｃｔ２が実行され、ａｕ：Ａｃｔｉｖｅ状態からａｕ：Ａｃｔｉｖｅ状態へ遷移することを示す。主語Ｔ４の５つの行の読み方は、主語Ｔ３の５つの行と同じである。
【００５１】
図１５及び図１６について説明する。
主語Ａｃｔ１の２つの行は、種類（ａｕ：Ｔｙｐｅ）がａｕ：Ａｃｔｉｖｉｔｙであり、配列［“Ｉ１”，“Ｖ１”，“Ａ１”，“Ｏ１”，“Ｃ１”，“Ｃ２”，“Ｃ３”］を有する（ａｕ：ＨａｓＡｒｒａｙ）ことを示す。
主語Ａｃｔ２の２つの行は、種類（ａｕ：Ｔｙｐｅ）がａｕ：Ａｃｔｉｖｉｔｙであり、配列［“Ｉ２”，“Ｖ２”，“Ａ２”，“Ｏ２”，“Ｃ４”，“Ｃ５”，“Ｃ６”］を有する（ａｕ：ＨａｓＡｒｒａｙ）ことを示す。
主語がＩ２の２つの行は、ａｕ：Ｉｎｉｔｉａｌ状態を示す。主語がＶ２の２つの行は、動作実行部１４０が受信した値を示す。主語がＡ２の２つの行は、ｅｖ：ＳｅｔＶａｌｕｅのイベントを示す。主語がＯ２の２つの行は、テキストボックス２０１であることを示す。主語がＣ４の３つの行は、初期状態（Ｉ２）からｅｖ：ＳｅｔＶａｌｕｅのイベント（Ａ２）へ遷移することを示す。主語がＣ５の３つの行は、動作実行部１４０が受信した値（Ｖ２）がｅｖ：ＳｅｔＶａｌｕｅのイベント（Ａ２）へ送信されることを示す。主語がＣ６の３つの行は、ｅｖ：ＳｅｔＶａｌｕｅのイベント（Ａ２）がＧＵＩ装置１５１Ｅ（Ｏ２）へ送信されることを示す。
主語がＩ１の２つの行は、ａｕ：Ｉｎｉｔｉａｌ状態を示す。主語がＶ１の２つの行は、動作実行部１４０が受信した値を示す。主語がＡ１の２つの行は、ｅｖ：Ｓａｙのイベントを示す。主語がＯ１の２つの行は、音声合成装置１５１Ｂであることを示す。主語がＣ１の３つの行は、初期状態（Ｉ１）からイベント（Ａ１）へ遷移することを示す。主語がＣ２の３つの行は、動作実行部１４０が受信した値（Ｖ１）がイベント（Ａ１）へ送信されることを示す。主語がＣ６の３つの行は、ｅｖ：ＳｅｔＶａｌｕｅのイベント（Ａ１）が音声合成装置１５１Ｂ（Ｏ１）へ送信されることを示す。
【００５２】
＜（４）設計情報記憶＞
動作定義生成部１３０は、設計情報抽象化部１２２から送信された共通設計情報を設計情報記憶部１３１に記憶する。
【００５３】
複数の設計ツール１２１によって、１つのデバイス１５１の動作を規定した複数の設計情報が生成される場合もある。この場合であっても、各共通設計情報はセマンティクス化されているため、動作定義生成部１３０は、単に各共通設計情報を記憶すれば、各共通設計情報が適切に統合される。
例えば、図１３に示す状態テーブルと、図１４に示す状態遷移テーブルとが、ＵＭＬ設計ツール１２１Ｂにより設計された設計情報から生成され、図１５及び図１６に示すアクティビティテーブルが表形式設計ツール１２１Ａにより設計された設計情報から生成されたものである場合もある。この場合でも、動作定義生成部１３０は、単にこれらのテーブルを設計情報記憶部１３１に記憶すれば、全体として前提（Ｃ）で説明した動作例が実現される。
【００５４】
なお、（４）設計情報記憶の処理が終了した後、（２）連携動作設計へ処理を戻して、再び連携動作の設計を行ってもよい。
例えば、（２）連携動作設計において、ＵＭＬ設計ツール１２１Ｂで途中まで設計情報を生成し、（４）設計情報記憶において、その設計情報から生成された共通設計情報を設計情報記憶部１３１に記憶した後、（２）連携動作設計へ処理を戻して、ＧＵＩ設計ツール１２１Ｅで残りの設計情報を生成してもよい。この場合、ＧＵＩ設計ツール１２１Ｅでは、対応する設計情報抽象化部１２２が、設計情報記憶部１３１に記憶された共通設計情報を読み出して、ＧＵＩ設計ツール１２１Ｅの設計情報に変換する。これにより、ＧＵＩ設計ツール１２１Ｅで、既にＵＭＬ設計ツール１２１Ｂにより設計された設計情報に継続した設計情報の生成を行うことが可能である。
【００５５】
＜（５）動作定義情報生成＞
動作定義生成部１３０は、設計情報記憶部１３１に記憶された共通設計情報から、動作実行部１４０の動作を定義した動作定義情報を生成する。そして、動作定義生成部１３０は、生成した動作定義情報を動作実行部１４０へ送信し、動作実行部１４０は、送信された動作定義情報を動作定義記憶部１４１に記憶する。
【００５６】
動作定義生成部１３０は、動作実行部１４０の実装形態に合わせたフォーマットの動作定義情報を生成する。例えば、動作定義生成部１３０は、Ｗ３Ｃで標準化が進められているＳＣＸＭＬで動作定義情報を生成する。動作定義生成部１３０は、Ｃ＋＋等のソースコードで動作定義情報を生成してもよい。
【００５７】
図１８は、ＳＣＸＭＬで記述された動作定義情報を示す図である。図１８では、前提（Ｃ）で説明した動作例についての共通設計情報から生成される動作定義情報を示している。
図１８において、ＳｅｎｄＥｖｅｎｔＦｕｎｃｔｉｏｎ（｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：Ｓａｙ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＴＴＳ”，“ｓｙｓ：Ｖａｌｕｅ”：“ｓｙｓ：ＲｅｃｉｅｖｅｄＶａｌｕｅ”｝）；は、動作実行部１４０がＥｖｅｎｔＳｔｒ５を音声合成装置１５１Ｂへ送信することを示している。
また、ＳｅｎｄＥｖｅｎｔＦｕｎｃｔｉｏｎ（｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｅｖ：ＳｅｔＶａｌｕｅ”，“Ｏｂｊｅｃｔ”：“ｕｉ：ＴｅｘｔＢｏｘ１”，“ｓｙｓ：Ｖａｌｕｅ”：“ｓｙｓ：ＲｅｃｉｅｖｅｄＶａｌｕｅ”｝）；は、動作実行部１４０がＥｖｅｎｔＳｔｒ３を音声合成装置１５１Ｂへ送信することを示している。
【００５８】
＜（６）動作実行部起動＞
動作実行部１４０は、動作定義記憶部１４１から動作定義情報を読み出し、動作を開始する。これにより、動作実行部１４０は、デバイス１５１からの接続を受け付ける状態になる。
動作実行部１４０は、例えば、動作定義情報がＳＣＸＭＬの形式である場合、ＳＣＸＭＬランタイムである。
【００５９】
＜（７）デバイス接続＞
動作実行部１４０は、デバイス１５１と接続される。そして、ユーザによるデバイス１５１の操作と、読み出した動作定義情報とに従い、動作実行部１４０は、デバイス１５１を連携して動作させる。
【００６０】
以上のように、実施の形態１に係る動作設計装置１００は、設計ツール１２１で生成された設計情報を共通設計情報に変換する。そのため、複数の設計ツール１２１を利用して、デバイス１５１の連携動作を設計することを容易に実現できる。
つまり、途中まである設計ツール１２１で設計し、その続きを別の設計ツール１２１で設計することを容易に実現できる。また、１つの動作について、複数の設計ツール１２１で一部ずつ設計を行い、統合することを容易に実現できる。その結果、複数人による１つの動作の設計も容易に行うことが可能である。
【００６１】
また、実施の形態１に係る動作設計装置１００は、動作実行部１４０とデバイス１５１との間で送受信されるイベントを、共通フォーマットを用いて、辞書部１１０に記憶された語彙を用いて記述する。そのため、デバイス１５１の入れ替えを容易に実現できる。
例えば、上記説明では、音声認識装置１５１Ａが“１０”の入力を受け付けた場合に、ＥｖｅｎｔＳｔｒ４を動作実行部１４０へ送信していた。しかし、他のデバイス１５１が“１０”の入力を受け付けた場合にも、ＥｖｅｎｔＳｔｒ４を動作実行部１４０へ送信すれば、音声認識装置１５１Ａと同様の入力操作を実現できる。
【００６２】
なお、上記説明では特に触れなかったが、入出力定義部１６０が定義したデバイス１５１についての定義情報も、設計情報と同様にセマンティクス化してもよい。
【００６３】
図１９から図２１は、設計情報が変換され生成された共通設計情報を示す図である。図１９は、ＧＵＩ装置１５１Ｅの入出力定義として生成された設計情報が変換され生成された共通設計情報を示す図である。図２０及び図２１は、音声認識装置１５１Ａ及び音声合成装置１５１Ｂの入出力定義として生成された設計情報が変換され生成された共通設計情報を示す図である。
【００６４】
図１９に示すＧＵＩ装置１５１Ｅの共通設計情報について説明する。
主語ＣＬ１の３つの行は、種類（ａｕ：Ｔｙｐｅ）がＵＩデバイス（ｕｉ：ＵＩＤｅｖｉｃｅ）で、名称（ａｕ：Ｎａｍｅ）がＧＵＩ装置（ｕｉ：ＧＵＩ）であるＣＬ１が、Ｗ１を有する（ａｕ：Ｈａｓ）ということを示す。
主語がＷ１の４つの行は、種類（ａｕ：Ｔｙｐｅ）がウィジェット（ｕｉ：Ｗｉｄｇｅｔ）で、名称（ａｕ：Ｎａｍｅ）がテキストボックス２０１（ｕｉ：ＴｅｘｔＢｏｘ１）であるＷ１が、ＥｖｅｎｔＳｔｒ１（Ｅｖ１）とＥｖｅｎｔＳｔｒ２（Ｅｖ２）とを動作実行部１４０へ送信し、ＥｖｅｎｔＳｔｒ３（Ｅｖ３）を動作実行部１４０から受信することを示す。
【００６５】
図２０及び図２１に示す音声認識装置１５１Ａ及び音声合成装置１５１Ｂの共通設計情報について説明する。
図２０に示す主語ＣＬ２の３つの行は、種類（ａｕ：Ｔｙｐｅ）がＵＩデバイス（ｕｉ：ＵＩＤｅｖｉｃｅ）で、名称（ａｕ：Ｎａｍｅ）が音声合成装置（ｕｉ：ＴＴＳ）であるＣＬ２が、ＥｖｅｎｔＳｔｒ５（Ｅｖ５）を動作実行部１４０から受信する（ａｕ：Ｒｅｃｅｉｖｅ）ということを示す。
図２０に示す主語ＣＬ３の４つの行は、種類（ａｕ：Ｔｙｐｅ）がＵＩデバイス（ｕｉ：ＵＩＤｅｖｉｃｅ）で、名称（ａｕ：Ｎａｍｅ）が音声認識装置（ｕｉ：ＶＲ）であるＣＬ３が、ＫＷを有する場合に（ａｕ：ＨａｓＫｅｙｗｏｒｄ）、ＥｖｅｎｔＳｔｒ４（Ｅｖ４）を動作実行部１４０へ送信する（ａｕ：Ｅｍｉｔ）ということを示す。
図２１に示す主語ＫＷの３行は、種類（ａｕ：Ｔｙｐｅ）がキーワード（ｕｉ：Ｋｅｙｗｏｒｄ）で、単語が“すうちにゅうりょく”である場合に、Ｉｎｐｕｔイベント（ｅｖ：Ｉｎｐｕｔ）を実行することを示す。
【００６６】
また、上記説明では、設計ツール１２１により設計情報を生成し、設計情報抽象化部１２２により設計情報が共通設計情報に変換されるとした。しかし、表形式設計ツール１２１Ａ等により、共通設計情報を直接生成してもよい。つまり、表形式設計ツール１２１Ａ等を用いて、図１３から図１６に示すテーブルの値を編集してもよい。
【００６７】
また、上記説明では、デバイス群１５０にはＵＩデバイスと制御デバイスとが含まれるとした。しかし、デバイス群１５０は、ＵＩデバイスと制御デバイス以外に、温度計、照度計等のセンサーデバイスを含んでいてもよい。また、ＵＩデバイスとしては、上述した他に、ユーザの操作に応じて情報を入力する視線認識装置や脳波計測装置等や、情報を出力するバイブレーション機器等が含まれていてもよい。
【００６８】
実施の形態２．
実施の形態２では、設計モードで生成した動作定義情報のテスト作業を効率化することについて説明する。より具体的には、実施の形態２では、一部あるは全部のデバイス１５１が物理的に存在しない場合に、存在しないデバイス１５１の出力を模擬することにより、連携動作のテスト作業を行うことについて説明する。
実施の形態２では、実施の形態１と異なる部分を中心に説明する。
【００６９】
図２２は、実施の形態２に係る動作設計装置１００の構成図である。
図２２に示す動作設計装置１００では、設計ツール群１２０が、図１に示す設計ツール群１２０が備える構成に加え、動作パターン抽出部１２３と、動作模擬部１２４とを備える。
【００７０】
動作パターン抽出部１２３は、設計情報記憶部１３１に記憶された共通設計情報から、テストの対象となる動作パターンを抽出する。
【００７１】
動作模擬部１２４は、物理的に存在しないデバイス１５１についての定義情報を取得する。動作模擬部１２４は、定義情報に従い、物理的に存在しないデバイス１５１に代わって、そのデバイス１５１の出力を模擬する。
【００７２】
図２３は、実施の形態２に係る動作設計装置１００の処理フローを示す図である。
動作設計装置１００の処理は、設計モードとテストモードとの２つの処理に分けられる。設計モードは、実施の形態１と同じである。テストモードは、設計モードでの設計に従い、複数のデバイス１５１の連携動作をテストする処理である。
【００７３】
テストモードは、（８）動作パターン抽出、（９）動作実行部起動、（１０）デバイス接続の処理に分けられる。
（８）動作パターン抽出は、動作パターン抽出部１２３が、共通設計情報から動作パターンを抽出する処理である。（９）動作実行部起動は、動作実行部１４０が、動作定義情報を読み出し、動作を開始する処理である。（１０）デバイス接続は、動作実行部１４０が、デバイス１５１及び動作模擬部１２４と接続され、（８）で抽出された動作パターンを実行する処理である。
以下、（８）〜（１０）の各処理について詳細に説明する。
【００７４】
＜（８）動作パターン抽出＞
動作パターン抽出部１２３は、設計情報記憶部１３１に記憶された共通設計情報から、テストの対象となる動作パターンを抽出する。
例えば、前提（Ｃ）で説明した動作例がテストの対象である場合、動作パターン抽出部１２３は、図１４に示す状態遷移テーブルから各主語を抽出することにより、以下の（ａ）〜（ｄ）の４つの状態遷移パターンを動作パターンとして抽出する。
（ａ）主語Ｔ１で示すａｕ：Ｉｎｉｔｉａｌ状態からａｕ：Ｉｄｌｅ状態への遷移
（ｂ）主語Ｔ２で示すａｕ：Ｉｄｌｅ状態からａｕ：Ａｃｔｉｖｅ状態への遷移（ｅｖ：Ｆｏｃｕｓ受信時）
（ｃ）主語Ｔ３で示すａｕ：Ａｃｔｉｖｅ状態からａｕ：Ｉｄｌｅ状態への遷移（ｅｖ：Ｕｎｆｏｃｕｓ受信時）
（ｄ）主語Ｔ４で示すａｕ：Ａｃｔｉｖｅ状態からａｕ：Ａｃｔｉｖｅ状態への遷移（ｅｖ：Ｉｎｐｕｔ受信時）
【００７５】
＜（９）動作実行部起動＞
実施の形態１における（６）動作実行部起動と同じである。
【００７６】
＜（１０）デバイス接続＞
動作実行部１４０は、物理的に存在しているデバイス１５１、及び、動作模擬部１２４と接続される。そして、ユーザによるデバイス１５１の操作と、読み出した動作定義情報とに従い、動作実行部１４０は、デバイス１５１を連携して動作させる。
ここで、動作実行部１４０は、物理的に存在していないデバイス１５１に対する指示情報は、動作模擬部１２４へ送信する。動作模擬部１２４は、指示情報が送信されると、デバイス１５１の出力を模擬し、指示情報に応じた共通出力情報を動作実行部１４０へ送信する。これにより、一部あるいは全部のデバイス１５１が物理的に存在していない場合にも、連携動作のテストを実施することができる。
【００７７】
図９を参照して、前提（Ｃ）で説明した動作例をテストする場合において、音声認識装置１５１Ａが物理的に存在していない場合について説明する。
この場合、（ａ）〜（ｄ）の４つの動作パターンのうちの、（ａ）〜（ｃ）の動作パターンについては、音声認識装置１５１Ａは動作しないため、通常通りテスト可能である。
（ｄ）の動作パターンをテストする場合、まず動作実行部１４０は、ｕｉ：ＴｅｘｔＢｏｘ１について、ａｕ：Ａｃｔｉｖｅ状態にし、ｅｖ：Ｉｎｐｕｔを受信待ち状態にする。次に、動作実行部１４０は、動作模擬部１２４へＥｖｅｎｔＳｔｒ４を送信することを指示する。動作模擬部１２４は、指示を受けて、ＥｖｅｎｔＳｔｒ４を動作実行部１４０へ送信する。動作実行部１４０は、ＥｖｅｎｔＳｔｒ４を受信すると、ａｕ：Ａｃｔｉｖｉｔｙ２を実行する。なお、ＥｖｅｎｔＳｔｒ４における“ｓｙｓ：Ｖａｌｕｅ”の値は、予め定めた値が設定される。
【００７８】
なお、動作実行部１４０は、動作パターン抽出部１２３が抽出した動作パターンを、例えば表示装置に表示する等して、ユーザに認識させ、各動作パターンを実行させてもよい。また、動作実行部１４０は、デバイス１５１が物理的に１つも存在していない状態であれば、動作模擬部１２４との間で、動作パターン抽出部１２３が抽出した動作パターンを順に実行してもよい。
【００７９】
以上のように、実施の形態２に係る動作設計装置１００は、動作模擬部１２４が物理的に存在しないデバイス１５１の出力を模擬する。そのため、デバイス１５１の準備ができていない場合であっても、デバイス１５１間の連携動作のテスト作業を行うことが可能である。
【００８０】
また、動作パターン抽出部１２３が共通設計情報を参照することにより、動作パターンを抽出する。そのため、漏れなく動作パターンのテスト作業を行うことが可能である。
【００８１】
なお、動作模擬部１２４はデバイス１５１の定義情報に従い、デバイス１５１の出力を模擬する。実施の形態１の最後で説明したように、定義情報もセマンティクス化しておけば、動作模擬部１２４の実装が容易である。
【００８２】
実施の形態３．
実施の形態３では、図２における（２）連携動作設計において、ユーザがデバイス１５１を操作することにより、設計ツール１２１を動作させ、連携動作を設計することについて説明する。
実施の形態３では、実施の形態１と異なる部分を中心に説明する。
【００８３】
図２４は、実施の形態３に係る動作設計装置１００の構成図である。
図２４に示す動作設計装置１００では、設計ツール群１２０が、図１に示す設計ツール群１２０が備える構成に加え、各設計ツール１２１に対応して、入出力情報抽象化部１２５を備える。
【００８４】
動作実行部１４０は、動作定義記憶部１４１に記憶した動作定義情報に基づき、デバイス１５１から送信された共通出力情報に応じて、指示情報を設計ツール１２１へ送信して、設計ツール１２１を動作させる。ここで、指示情報は、辞書部１１０に記憶された語彙を用い、通信用の共通フォーマットに従って記述される。
【００８５】
入出力情報抽象化部１２５は、動作実行部１４０から送信された指示情報を設計ツール１２１の具体的な命令に変換する。動作実行部１４０から指示情報が送信された場合、設計ツール１２１は、入出力情報抽象化部１２５によって変換された具体的な命令に基づき動作する。
【００８６】
基本的には、デバイス１５１に対する操作に応じて、入出力情報抽象化部１５２が動作実行部１４０へ送信するイベントを定義情報として生成しておく。そして、受信したイベントに応じて、動作実行部１４０が設計ツール群１２０へ送信するイベントを設計情報として生成しておく。
これにより、図２における（２）連携動作設計において、ユーザがデバイス１５１を操作することにより、設計ツール１２１を動作させ、連携動作を設計することが可能である。
【００８７】
以下、ユーザがデバイス１５１を操作することにより、設計ツール１２１を動作させる特徴的な動作例について説明する。
【００８８】
辞書部１１０は、図３から図７に示すテーブルに加え、図２５に示す設計操作述語テーブル１１６を記憶している。設計操作述語テーブル１１６は、設計ツール１２１を動作させ設計情報を生成させる場合に使用される設計操作用の語彙である。設計操作用の語彙には接頭語“ｍｍｅ”が付される。
【００８９】
（例１：設計情報の表示）
図２６は、例１及び例２を説明するための図である。
例１では、ＧＵＩ装置１５１ＥでＧＵＩ画面２２０をタッチパネルに表示させ、ＧＵＩ装置１５１Ｅ（タッチパネル）や音声認識装置１５１Ａを操作することにより、設計ツール１２１によって生成された設計情報を表示する。
【００９０】
ＧＵＩ画面２２０に、テキストボックス（名称はＴｅｘｔＢｏｘ１）がある。ユーザが、テキストボックスに関する設計情報を確認したいとする。
なお、ここでは、設計ツール１２１として、ＵＭＬ設計ツール１２１Ｂが予め選択されているとする。
【００９１】
この場合、例えば、（１）入出力設計において、ＧＵＩ装置１５１Ｅと音声認識装置１５１Ａとの入出力定義として、以下の入出力動作をするように規定された定義情報が生成される。
テキストボックスがタッチされると、ＧＵＩ装置１５１Ｅは、ＥｖｅｎｔＳｔｒ６を動作実行部１４０へ送信する。「テキストボックスを選択」と発話された場合にも、音声認識装置１５１Ａは、ＥｖｅｎｔＳｔｒ６を動作実行部１４０へ送信する。これにより、タッチパネルを操作するだけでなく、音声認識による操作でも、テキストボックスを選択することができる。
ＥｖｅｎｔＳｔｒ６＝｛“Ｅｖｅｎｔ”：“ｍｍｅ：Ｓｅｌｅｃｔ”，“Ｔａｒｇｅｔ”：“ｓｙｓ：ＵＩＥｄｉｔＤａｔａ”，“Ｖａｌｕｅ”：“ｕｉ：ＴｅｘｔＢｏｘ１”｝
ここで、図６に示すように、ｓｙｓ：ＵＩＥｄｉｔＤａｔａは設計情報記憶部１３１を意味する。
【００９２】
また、図２における（２）連携動作設計において、動作実行部１４０が以下の動作をするように規定された設計情報が生成される。
動作実行部１４０は、ＥｖｅｎｔＳｔｒ６を受信すると、ＥｖｅｎｔＳｔｒ７を設計ツール群１２０へ送信する。
ＥｖｅｎｔＳｔｒ７＝｛“Ｅｖｅｎｔ”：“ｍｍｅ：Ｓｈｏｗ”，“Ｔａｒｇｅｔ”：“ｓｙｓ：ＵＩＥｄｉｔＤａｔａ”，“Ｖａｌｕｅ”：“ｕｉ：ＴｅｘｔＢｏｘ１”｝
【００９３】
ＵＭＬ設計ツール１２１Ｂに対応する入出力情報抽象化部１２５は、ＥｖｅｎｔＳｔｒ７を受信すると、テキストボックスに関する共通設計情報を設計情報記憶部１３１から取得する。そして、入出力情報抽象化部１２５は、共通設計情報をＵＭＬ設計ツール１２１Ｂで生成される形式の設計情報に変換して、ＧＵＩ装置１５１Ｅに表示させる。
【００９４】
以上のように、設計ツール１２１にある動作をさせるに当たり、複数のデバイス１５１の操作を対応させることが可能である。
【００９５】
例１では、ＧＵＩ装置１５１Ｅと音声認識装置１５１ＡとがどちらもＥｖｅｎｔＳｔｒ６を送信するようにした。そのため、動作実行部１４０は、どこからＥｖｅｎｔＳｔｒ６が送信されたか等を意識することなく、単にＥｖｅｎｔＳｔｒ６を受信した場合にＥｖｅｎｔＳｔｒ７を送信すればよい。
このように、動作実行部１４０とデバイス１５１との間で送受信されるイベントを、共通フォーマットを用いているため、動作実行部１４０の実装を単純化でき、開発効率を高くすることができる。
【００９６】
（例２：複数のデバイス１５１による設計ツール１２１の操作）
例２では、ＧＵＩ装置１５１Ｅ（タッチパネル）の操作と音声認識装置１５１Ａの操作とを合わせて、設計ツール１２１を操作する。
【００９７】
図２６に示すように、ＧＵＩ画面２２０に、テキストボックスがある。この場合に、ＧＵＩ装置１５１Ｅの操作で検索対象（ここでは、テキストボックスとする）を特定し、音声認識装置１５１Ａの操作で実行内容（ここでは、設計情報の表示とする）を指示する。
なお、ここでは、設計ツール１２１として、ＵＭＬ設計ツール１２１Ｂが予め選択されているとする。
【００９８】
この場合、例えば、（１）入出力設計において、ＧＵＩ装置１５１Ｅと音声認識装置１５１Ａとの入出力定義として、以下の入出力動作をするように規定された定義情報が生成される。
テキストボックスがタッチされると、ＧＵＩ装置１５１Ｅは、ＥｖｅｎｔＳｔｒＡを動作実行部１４０へ送信する。
ＥｖｅｎｔＳｔｒＡ＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｍｍｅ：Ｓｅｌｅｃｔ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＵＩＥｄｉｔＤａｔａ”，“ｓｙｓ：Ｖａｌｕｅ”：“ｕｉ：ＴｅｘｔＢｏｘ１”｝
【００９９】
「設計情報を表示」と発話されると、音声認識装置１５１Ａは、ＥｖｅｎｔＳｔｒＢを動作実行部１４０へ送信する。
ＥｖｅｎｔＳｔｒＢ＝｛“ｓｙｓ：Ｅｖｅｎｔ”：“ｍｍｅ：Ｓｈｏｗ”，“ｓｙｓ：Ｔａｒｇｅｔ”：“ｕｉ：ＵＩＥｄｉｔＤａｔａ”，“ｓｙｓ：Ｖａｌｕｅ”：“”｝
【０１００】
また、図２における（２）連携動作設計において、動作実行部１４０が以下の動作をするように規定された設計情報が生成される。
動作実行部１４０は、ＥｖｅｎｔＳｔｒＡを受信すると、追加の共通出力情報の受信待ちになる。動作実行部１４０は、ＥｖｅｎｔＳｔｒＡに続いて、ＥｖｅｎｔＳｔｒＢを受信すると、ＥｖｅｎｔＳｔｒＡとＥｖｅｎｔＳｔｒＢとを統合し、ＥｖｅｎｔＳｔｒ７を設計ツール群１２０へ送信する。
【０１０１】
ＵＭＬ設計ツール１２１Ｂに対応する入出力情報抽象化部１２５は、ＥｖｅｎｔＳｔｒ７を受信すると、テキストボックスに関する共通設計情報を設計情報記憶部１３１から取得する。そして、入出力情報抽象化部１２５は、共通設計情報をＵＭＬ設計ツール１２１Ｂで生成される形式の設計情報に変換して、ＧＵＩ装置１５１Ｅに表示させる。
【０１０２】
以上のように、複数のデバイス１５１の操作を結合して、設計ツール１２１へ指示を出すことが可能である。
【０１０３】
例２では、ＧＵＩ装置１５１Ｅの操作と音声認識装置１５１Ａの操作とを合わせた。しかし、動作実行部１４０とデバイス１５１との間で送受信されるイベントを、共通フォーマットを用いている。そのため、空間ジェスチャ認識カメラ１５１Ｃやキーボード１５１Ｄ等の他のデバイス１５１が、操作に応じてＥｖｅｎｔＳｔｒＡやＥｖｅｎｔＳｔｒＢを送信するようにするだけで、ＧＵＩ装置１５１Ｅの操作や音声認識装置１５１Ａとの操作と結合することが可能である。
【０１０４】
なお、ここでは、ＥｖｅｎｔＳｔｒＢのｓｙｓ：Ｖａｌｕｅは空白文字列とした。しかし、ｓｙｓ：Ｖａｌｕｅに検索文字列を設定して、表示したい設計情報を指定するようにしてもよい。
【０１０５】
（例３：自然言語による操作）
例３では、音声認識装置１５１Ａが発話された自然言語を解析して、適切な処理を行う。
【０１０６】
「テキストボックスに値を設定するデバイスを検索する」と発話されたとする。この場合に、音声認識装置１５１Ａが発話された情報を解析して、適切なイベントを動作実行部１４０へ送信する。これにより、発話された情報に応じた、適切な処理を行う。
【０１０７】
この場合、例えば、（１）入出力設計において、音声認識装置１５１Ａの入出力定義として、以下の入出力動作をするように規定された定義情報が生成される。
音声認識装置１５１Ａは、認識した文章を形態素解析により単語に分割する。そして、音声認識装置１５１Ａは、各単語をキーワードとして、辞書部１１０が記憶したテーブルの意味欄を検索して、各単語に対応する語彙を特定する。なお、分割され得られた単語のうち、予め定められたストップワードはキーワードとして用いなくてもよい。
ここでは、“テキストボックス”に対して“ｕｉ：ＴｅｘｔＢｏｘ１”が特定され、“値を設定する”に対して“ｅｖ：ＳｅｔＶａｌｕｅ”が特定され、“検索する”に対して“ｍｍｅ：Ｓｅａｒｃｈ”が特定され、“ＵＩデバイス”に対して“ｕｉ：ＵＩＤｅｖｉｃｅ”が特定される。
【０１０８】
音声認識装置１５１Ａは、特定した語彙に基づき、イベントを生成する。例えば、音声認識装置１５１Ａは、特定した語彙を述語と目的語とに分け、語彙の接頭語を考慮して、特定した語彙に対応するイベントを生成する。ここでは、ＥｖｅｎｔＳｔｒ８が生成されたとする。
ＥｖｅｎｔＳｔｒ８＝｛“Ｅｖｅｎｔ”：“ｍｍｅ：Ｓｅａｒｃｈ”，“Ｔａｒｇｅｔ”：“ｓｙｓ：ＵＩＥｄｉｔＤａｔａ”，“Ｖａｌｕｅ”：｛“Ｔｙｐｅ”：“ｕｉ：ＵＩＤｅｖｉｃｅ”，“Ｅｖｅｎｔ”：“ｅｖ：ＳｅｔＶａｌｕｅ”，“Ｏｂｊｅｃｔ”：“ｕｉ：ＴｅｘｔＢｏｘ１”｝｝
【０１０９】
音声認識装置１５１Ａは、生成したＥｖｅｎｔＳｔｒ８を動作実行部１４０へ送信する。動作実行部１４０は、受信したイベントに応じたイベントを設計ツール群１２０へ送信する。ここでは、動作実行部１４０は、ＥｖｅｎｔＳｔｒ８をそのまま設計ツール群１２０へ送信する。
【０１１０】
指定された設計ツール１２１に対応する入出力情報抽象化部１２５は、ＥｖｅｎｔＳｔｒ８を受信すると、設計情報記憶部１３１が記憶した共通設計情報から“ｅｖ：ＳｅｔＶａｌｕｅ”と“ｕｉ：ＴｅｘｔＢｏｘ１”とに関する“ｕｉ：ＵＩＤｅｖｉｃｅ”を検索する。ここで、共通設計情報は、図２７に示すような有向グラフのデータ構造である。そのため、ｅｖ：ＳｅｔＶａｌｕｅ”と“ｕｉ：ＴｅｘｔＢｏｘ１”とを先端に有する有向グラフを辿ることにより、ｕｉ：ＶＲ（音声認識装置１５１Ａ）が特定される。入出力情報抽象化部１２５は、音声認識装置１５１Ａが特定されたことを示す情報をＧＵＩ装置１５１Ｅに表示させる。
【０１１１】
以上のように、辞書部１１０を用いることにより、設計ツール１２１を自然言語で操作することが可能である。特に、動作実行部１４０とデバイス１５１との間で送受信されるイベント、及び、動作実行部１４０と設計ツール１２１との間で送受信されるイベントとが、辞書部１１０に記憶された語彙を用いて記述されているため、自然言語からイベントへの変換が容易である。
【０１１２】
図２８は、実施の形態１，２に示した動作設計装置１００のハードウェア構成の例を示す図である。
動作設計装置１００は、コンピュータである。動作設計装置１００の各要素をプログラムで実現することができる。
動作設計装置１００のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【０１１３】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置等である。主記憶装置９０３は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。通信装置９０４は、例えば通信ボード等である。入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【０１１４】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、設計ツール１２１、設計情報抽象化部１２２、動作パターン抽出部１２３、動作模擬部１２４、動作定義生成部１３０、動作実行部１４０、入出力情報抽象化部１５２、入出力定義部１６０として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、上記プログラムを実行する。
また、実施の形態１の説明において、辞書部１１０、設計情報記憶部１３１、動作定義記憶部１４１が記憶すると説明した情報等が主記憶装置９０３にファイルとして記憶されている。
【０１１５】
なお、図２８の構成は、あくまでも動作設計装置１００のハードウェア構成の一例を示すものであり、動作設計装置１００のハードウェア構成は図２８に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【０１１６】
１００  動作設計装置、１１０  辞書部、１２０  設計ツール群、１２１  設計ツール、１２２  設計情報抽象化部、１２３  動作パターン抽出部、１２４  動作模擬部、１２５  入出力情報抽象化部、１３０  動作定義生成部、１３１  設計情報記憶部、１４０  動作実行部、１４１  動作定義記憶部、１５０  デバイス群、１５１  デバイス、１５２  入出力情報抽象化部、１６０  入出力定義部。
【図１】
0006022111.tif 000002
【図２】
0006022111.tif 000003
【図３】
0006022111.tif 000004
【図４】
0006022111.tif 000005
【図５】
0006022111.tif 000006
【図６】
0006022111.tif 000007
【図７】
0006022111.tif 000008
【図８】
0006022111.tif 000009
【図９】
0006022111.tif 000010
【図１０】
0006022111.tif 000011
【図１１】
0006022111.tif 000012
【図１２】
0006022111.tif 000013
【図１３】
0006022111.tif 000014
【図１４】
0006022111.tif 000015
【図１５】
0006022111.tif 000016
【図１６】
0006022111.tif 000017
【図１７】
0006022111.tif 000018
【図１８】
0006022111.tif 000019
【図１９】
0006022111.tif 000020
【図２０】
0006022111.tif 000021
【図２１】
0006022111.tif 000022
【図２２】
0006022111.tif 000023
【図２３】
0006022111.tif 000024
【図２４】
0006022111.tif 000025
【図２５】
0006022111.tif 000026
【図２６】
0006022111.tif 000027
【図２７】
0006022111.tif 000028
【図２８】
0006022111.tif 000029