(57)【要約】【課題】  多様な形態を有する情報機器のユーザインタフェースを容易に設計することを可能とする技術を提供する。【解決手段】  本発明によれば、デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、前記デバイス情報に示された前記特性に適合するように前記編集を制約する制約手段と、を備えることを特徴とする情報処理装置が提供される。【選択図】  図６
2007156712.tif 000002
【特許請求の範囲】
【請求項１】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、
前記デバイス情報に示された前記特性に適合するように前記編集を制約する制約手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記デバイス情報には、前記デバイスが備えるディスプレイ装置の表示サイズが含まれ、
前記制約手段は、
前記編集手段において、前記ディスプレイ装置に表示させるウインドウに係る設計情報が編集される場合に、該ウインドウのサイズが前記表示サイズよりも大きくならないように前記編集を制約することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制約手段は、前記特性に適合する範囲における前記編集に係る操作の選択肢を含むインタフェースを前記編集手段に提示させ、
前記編集手段は、ユーザにより選択された前記選択肢に基づいて前記編集を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記編集には、前記入出力機器の操作において発生するイベントに応じた動作を記述するイベントハンドリングに係る編集が含まれ、
前記制約手段は、予め設定されたイベントの選択肢を含むインタフェースを前記編集手段に提示させ、
前記編集手段は、ユーザにより選択された前記選択肢に基づいて前記イベントハンドリングに係る編集を行うことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記デバイス情報には、前記入出力機器の操作に応じて内部的に発生するイベントの一覧情報が含まれ、
前記制約手段は、前記一覧情報に含まれるイベントの選択肢を含むインタフェースの提示を前記編集手段に行わせることを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記デバイス情報には、前記デバイスが備えるディスプレイ装置の表示可能色を示す色情報が含まれ、
前記制約手段は、前記ディスプレイ装置に表示する色に係る編集において、前記色情報に示された前記表示可能色の選択肢を含むインタフェースを前記編集手段に提示させ、
前記編集手段は、ユーザにより選択された前記選択肢に基づいて前記色に係る編集を行うことを特徴とする請求項３乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記デバイス情報には、前記デバイスが音声入出力機器を備えているか否かの有無情報が含まれ、
前記制約手段は、前記音声入出力機器を備えている場合にのみ、音声の入出力に係る前記設計情報の編集を許容するように、前記編集の制約を行うことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
外部装置と通信する通信手段を更に備え、
前記読込手段は、前記通信手段を介して前記外部装置から取得された前記デバイス情報を読み込むことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、
前記設計情報が前記デバイス情報に示された前記特性に適合するか否かを判定する判定手段と、
前記判定手段において、適合しないと判定された場合、その旨をユーザに通知する通知手段と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、を備えることを特徴とする情報処理装置。
【請求項１０】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置の制御方法であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込工程と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集工程と、を備え、
前記デバイス情報に示された前記特性に適合するように前記編集工程における前記編集を制約することを特徴とする情報処理装置の制御方法。
【請求項１１】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置の制御方法であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込工程と、
前記設計情報が前記デバイス情報に示された前記特性に適合するか否かを判定する判定工程と、
前記判定工程において、適合しないと判定された場合、その旨をユーザに通知する通知工程と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項１２】
コンピュータを請求項１乃至９のいずれかに記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はユーザインタフェースの設計技術に関し、特に、多様な情報機器のユーザインタフェースの設計技術に関する。
【背景技術】
【０００２】
携帯電話、カーナビゲーション、情報家電など、情報機器の形態が多様化し、そのハードウエア性能が向上している。これとともに、情報機器のユーザインタフェースも、かつてはＰＣに特有のものであったグラフィックユーザインタフェース（ＧＵＩ：Graphical User Interface）として実現されるようになり、高度化が進んでいる。また最近では、音声認識や音声合成といった技術が発達し、さまざまな機器に組み込まれるようになり、音声によるＵＩ（User Interface）も汎用化しつつある。機器自体の機能も多機能化しており、ユーザインタフェースも極めて複雑なものになる傾向がある。これに伴い、ユーザインタフェースの開発そのものにも高度な技術が必要になり、ユーザインタフェースの開発コストが大きな問題になっている。
【０００３】
現在では、ＧＵＩ等の主にソフトウエアの制御に基づいて実現されるユーザインタフェースの開発は、プログラマによるプログラミングだけでなく、画面を設計するデザインツールなど、さまざまな開発ツールを利用してなされることが一般的である。ＧＵＩの設計に関する技術が、特許文献１、特許文献２に開示されている。また、ガイオ・テクノロジー株式会社の「プロトビルダー」や日本システムウエア株式会社の「ＲａｐｉｄＰＬＵＳ」といった製品も知られている。これらは、機器の筐体、ディスプレイ、物理キーといったハードウエアによるユーザインタフェースとＧＵＩを、ＧＵＩ操作で設計することができる開発環境を提供する開発ツールに関するものである。このように、デバイスのユーザインタフェースに係る設計のためのＧＵＩを提供し、手動によるプログラミングをなるべく減らすことを目的とした開発ツールが知られている。
【特許文献１】特開２０００−１３７５９９号公報
【特許文献２】特開２００２−２４４８４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術によっては、多様な形態を有する情報機器のユーザインタフェースを設計することが煩雑だった。
【０００５】
ＰＣに対するユーザの操作は、キーボードとマウスによるものがほとんどである。このため、ＰＣのＧＵＩの設計は、入力イベントとして、キーボードやマウスのイベントというあらかじめ決まった種類のイベントに対応するように行えばよい。また、ＰＣのディスプレイはある程度以上の大きさを持っているため、ウインドウサイズやＧＵＩ部品の配置なども比較的自由に設計することができる。
【０００６】
これに対して、ＰＣ以外の情報機器は、その形態によって、ディスプレイ、物理キー、ジョグダイアルなど、ハードウエアによる入出力機器が多様である。このため、これらの入出力機器の操作に係るイベント処理は、ＰＣの入出力機器の操作に係るイベント処理よりも複雑である。例えば、ＰＣ以外の情報機器には、テンキーのような汎用的な物理キーだけでなく、機器特有の物理キーが備わっている場合が多い。このため、その機器のＧＵＩの開発においては、機器固有の物理キーの操作に基づくイベントに対する振る舞いをプログラミングすることになる。この場合、ＧＵＩのプログラマ（開発者）は、機器の物理キーイベントに関する仕様書を読み、仕様に合わせたプログラミングを行わなければならなかった。
【０００７】
また、機器の小型化が進むとディスプレイサイズも小さくなる。これは、ＧＵＩ開発におけるウインドウサイズの調整やＧＵＩ部品の配置に大きな影響を与える。このため、プログラマや画面デザイナは、機器の仕様書からディスプレイサイズを調べ、これを考慮してＧＵＩ画面を設計しなければならなかった。このように、ＧＵＩの設計は、情報機器に備えられた入出力機器のハードウエアのさまざまな属性に影響を受ける作業となる。
【０００８】
しかし、従来のＧＵＩ設計ツールは、こうした機器の属性をＧＵＩ設計作業に反映することができなかった。即ち、機器の属性は仕様書というドキュメントに書かれ、ＧＵＩ設計ツールとの連携がなかった。このため、プログラマや画面デザイナなどの開発者の負担が大きかった。また、新機種のＧＵＩを開発する際に、従来機種のＧＵＩの内容をなるべく再利用して開発の効率化を図るケースがある。この場合、新機種のディスプレイサイズが変わったり、物理キーが変更になったりすることで、それらに関係する従来機種のＧＵＩの部分に修正を加える作業が大きな負担となっていた。
【０００９】
本発明は上記問題に鑑みなされたものであり、多様な形態を有する情報機器のユーザインタフェースを容易に設計することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、
前記デバイス情報に示された前記特性に適合するように前記編集を制約する制約手段と、を備える。
【発明の効果】
【００１１】
本発明によれば、多様な形態を有する情報機器のユーザインタフェースを容易に設計することを可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１３】
＜＜第１実施形態＞＞
本実施形態に係る情報処理装置は、ユーザから入力された指示に基づいてデバイスのユーザインタフェースに係るＵＩ記述文書を編集する編集のインタフェースを提供する。ただし、本実施形態に係る情報処理装置は、デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込み、このデバイス情報に示された特性に適合する制約条件の範囲においてユーザによる編集を許容する。このため、デバイスの設計者は、デバイスに備えられた入出力機器の仕様を調べることなく、デバイスの特性に整合したユーザインタフェースの設計を効率的に行うことができる。このため、設計者は、多様な形態を有する情報機器のユーザインタフェースを容易に設計することができる。
【００１４】
以下、本実施形態では、説明の便宜上、デジタルカメラにより撮像された写真画像に音声アノテーションを付与するための、デジタルカメラのユーザインタフェースを開発する場合の例を説明する。
【００１５】
（システム構成）
図１は、本実施形態に係る情報処理装置を組み込んだコンピュータシステムの構成図である。図１のように、コンピュータシステムはサーバコンピュータ１０１、編集コンピュータ１０２、及び、それらが接続されたネットワーク１０３から構成されている。
【００１６】
サーバコンピュータ１０１は、ＵＩの設計対象となるデバイスの種類毎に、デバイスの特性を示すデバイス情報（デバイス記述文書、属性情報、デバイス情報文書）を記憶し、外部装置からの要求に応じてデバイス情報を配信する情報処理装置である。サーバコンピュータ１０１は、例えば、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）等で実現される。
【００１７】
編集コンピュータ１０２は、ユーザインタフェースの開発者（設計者）の操作によりユーザインタフェースの記述を編集する情報処理装置である。編集コンピュータ１０２は、必要に応じてサーバコンピュータ１０１からユーザインタフェースを設計する対象のデバイスに係るデバイス情報を取得し、このデバイス情報に基づいて、ユーザインタフェース記述の編集を制御する。ただし、デバイス情報は編集コンピュータ１０２が保持するものを用いてもよい。編集コンピュータ１０２も、例えば、ＰＣやＷＳ等で実現される。
【００１８】
ネットワーク１０３は、典型的には、インターネットであるが、有線／無線を問わず、公衆回線（アナログ回線、ＩＳＤＮ等）やＬＡＮ、ＷＡＮ、無線ＬＡＮ等のデータ送受信可能な回線であれば、どのような構成でもよい。ネットワークを用いた通信プロトコルは、例えば、ＴＣＰ／ＩＰ等を採用することができる。
【００１９】
（機能構成）
次に、本実施形態におけるサーバコンピュータ１０１の機能構成について図２を参照して説明する。図２は、本実施形態におけるサーバコンピュータ１０１の機能構成を示したブロック図である。
【００２０】
２０１は、デバイス情報保持部であり、デバイス情報（デバイス記述文書）をデバイスの種類毎に保持する。２０２は、デバイス情報要求受信部であり、後述の通信部２０４を介して受け取ったデバイス情報の要求情報を受信する。２０３は、デバイス情報送信部であり、デバイス情報要求受信部２０２がデバイス情報の要求情報を受信したことに応じて、要求されたデバイス情報を後述の通信部２０４を介して要求元の外部装置へ送信する。２０４は、通信部であり、外部装置と当該サーバコンピュータ１０１との通信を制御するインタフェースとして機能する。
【００２１】
図２に示される各機能ブロックは、図４を参照して後述するハードウエア構成のＣＰＵ４０１がＲＡＭ４０２にロードされたプログラムを実行し、図４に示される各ハードウェアと協働することによって実現される。もちろん機能ブロックの一部或いは全てが専用のハードウェアで実現されてもよい。
【００２２】
次に、本実施形態における編集コンピュータ１０２の機能構成について図３を参照して説明する。図３は、本実施形態における編集コンピュータ１０２の機能構成を示したブロック図である。
【００２３】
３０１は、編集部であり、ユーザインタフェースの開発者の指示入力に基づいて後述のＵＩ記述文書を編集するとともに、デバイス情報に基づいてＵＩ記述文書の編集を制御する。ＵＩ記述文書の編集に係る処理の詳細は後述する。３０２は、ＵＩ記述文書保持部であり、開発に係るユーザインタフェースの設計情報を記述するＵＩ記述文書を保持する。３０３は、デバイス情報要求送信部であり、デバイス情報を記憶するサーバコンピュータ１０１に対してデバイス情報を要求する情報を、後述の通信部３０５を介して送信する。３０４は、デバイス情報受信部であり、サーバコンピュータ１０１からデバイス情報を後述の通信部３０５を介して受信する。３０５は、通信部であり、外部装置と当該編集コンピュータ１０２との通信を制御するインタフェースとして機能する。
【００２４】
図３に示される各機能ブロックは、図５を参照して後述する装置のＣＰＵ５０１がＲＡＭ５０２にロードされた編集プログラム（ユーザインタフェース編集ソフトウエア）を実行し、図５に示される各ハードウェアと協働することによって実現される。もちろん機能ブロックの一部或いは全てが専用のハードウェアで実現されてもよい。なお、ユーザインタフェース編集ソフトウエア（編集ソフトウエア）の動作の詳細は後述する。
【００２５】
（ハードウエア構成）
次に、本実施形態におけるサーバコンピュータ１０１のハードウエア構成について、図４を参照して説明する。図４は、本実施形態におけるサーバコンピュータ１０１のハードウエア構成を示すブロック図である。
【００２６】
図４において、４０１はＣＰＵであり、サーバコンピュータ１０１の動作手順を記述するプログラムに従って動作する。ＣＰＵ４０１は、例えば、後述するＨＤＤ４０５に格納されているアプリケーションプログラム、オペレーティングシステムや制御プログラム等を実行し、ＲＡＭ４０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２７】
４０２はＲＡＭであり、上記プログラムの動作に必要な記憶領域を提供する。即ち、各種データを一時記憶し、ＣＰＵ４０１の主メモリ、ワークエリア等として機能する。４０３はＲＯＭであり、基本Ｉ／Ｏプログラム等のプログラムや、基本処理において使用する各種データ等を保持する。
【００２８】
４０４はディスプレイ装置としてのＬＣＤ（Liquid Crystal Display）であり、指示入力装置（不図示）から入力されたコマンドや、それに対するサーバコンピュータ１０１の応答出力等を表示したりするものである。なお、ＬＣＤ４０４は、ディスプレイ装置として機能すればよく、例えば、ＣＲＴディスプレイ、有機ＥＬパネル、ＳＥＤ（Surface-conduction Electron-emitter Display）等により実現されてもよい。
【００２９】
４０５は外部記憶装置としてのＨＤＤ（Hard Disk Drive）であり、デバイス情報を保持する。なお、ＨＤＤ４０５は、外部記憶装置として機能すればよく、例えば、記録媒体としてのメディアと、メディアへのアクセスを実現するための外部記憶ドライブとによって構成されてもよい。このようなメディアには、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等が含まれる。
【００３０】
４０６はＬＡＮボードであり、外部装置とデータの通信を行う。４０７はバスであり、サーバコンピュータ１０１内のデータの流れを司る。
【００３１】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００３２】
本実施形態では、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているＨＤＤ４０５からＲＡＭ４０２にロードして実行させる場合を例示的に想定する。ただし、本発明に係る実施の形態はこれに限られず、例えば、メディア（不図示）から本実施形態に係るプログラム及び関連データを直接ＲＡＭ４０２にロードして実行させてもよい。或いは、本実施形態に係るプログラムをＲＯＭ４０３に記録しておき、これをメモリマップの一部をなすように構成し、直接ＣＰＵ４０１で実行するようにしてもよい。
【００３３】
次に、本実施形態における編集コンピュータ１０２のハードウエア構成について、図５を参照して説明する。図５は、本実施形態における編集コンピュータ１０２のハードウエア構成を示すブロック図である。
【００３４】
図５において、５０１はＣＰＵであり、後述する編集コンピュータ１０２の動作手順を記述するプログラムに従って動作する。ＣＰＵ５０１は、例えば、後述するＨＤＤ５０５に格納されているアプリケーションプログラム、オペレーティングシステムや制御プログラム等を実行し、ＲＡＭ５０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００３５】
５０２はＲＡＭであり、上記プログラムの動作に必要な記憶領域を提供する。即ち、各種データを一時記憶し、ＣＰＵ５０１の主メモリ、ワークエリア等として機能する。５０３はＲＯＭであり、基本Ｉ／Ｏプログラム等のプログラムや、基本処理において使用する各種データ等を保持する。
【００３６】
５０４はディスプレイ装置としてのＬＣＤ（Liquid Crystal Display）であり、指示入力装置（不図示）から入力されたコマンドや、それに対する編集コンピュータ１０２の応答出力等を表示したりするものである。なお、ＬＣＤ５０４は、ディスプレイ装置として機能すればよく、ＬＣＤ４０４と同様にこれに限られない。
【００３７】
５０５は外部記憶装置としてのＨＤＤ（Hard Disk Drive）であり、編集するＵＩ記述文書やデバイス情報を保持する。なお、ＨＤＤ５０５も、ＨＤ４０５と同様に、外部記憶装置として機能すればよく、例えば、記録媒体としてのメディアと、メディアへのアクセスを実現するための外部記憶ドライブとによって構成されてもよい。。
【００３８】
５０６はＬＡＮカードであり、外部装置とデータの通信を行う。５０７はバスであり、編集コンピュータ１０２内のデータの流れを司る。
【００３９】
５０７は指示入力装置であり、キーボードやポインティングデバイス（マウス等）、タッチパネル等がこれに相当する。指示入力装置５０７を用いて、ユーザインタフェースの開発者は、編集コンピュータ１０２に対して、装置を制御するコマンド等を入力指示する。
【００４０】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００４１】
本実施形態では、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているＨＤＤ５０５からＲＡＭ５０２にロードして実行させる場合を例示的に想定する。ただし、本発明に係る実施の形態はこれに限られず、例えば、メディア（不図示）から本実施形態に係るプログラム及び関連データを直接ＲＡＭ５０２にロードして実行させてもよい。或いは、本実施形態に係るプログラムをＲＯＭ５０３に記録しておき、これをメモリマップの一部をなすように構成し、直接ＣＰＵ５０１で実行するようにしてもよい。
【００４２】
また、本実施形態では、説明の便宜のため、サーバコンピュータ１０１と編集コンピュータ１０２とにリソースが分散された構成について述べるが、サーバコンピュータ１０１と編集コンピュータ１０２の機能を１つの情報処理装置で実現してもよい。或いは、３つ以上の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、情報処理装置上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。
【００４３】
（ユーザインタフェース編集処理）
次に、編集コンピュータ１０２が提供するユーザインタフェース編集処理の流れについて、図６を参照して説明する。図６は、ユーザインタフェース編集処理の流れを示したフローチャートである。なお、上述のように、本実施形態では、図６に示したフローチャートに係る処理は、編集コンピュータのＣＰＵ５０１が編集ソフトウエアに基づいて装置を制御することにより実行される。
【００４４】
本実施形態では、説明の便宜上、編集コンピュータ１０２を使用するユーザインタフェースの開発者が、ユーザインタフェース編集ソフトウエア（編集ソフトウエア）を用いて、デジタルカメラＡのユーザインタフェースを設計しようとしている状況を想定する。そして、設計しようとしているユーザインタフェースは、ＧＵＩと音声入出力を含むマルチモーダルユーザインタフェースであるとする。また、デジタルカメラＡのデバイス情報は、サーバコンピュータ１０１に記憶されており、編集コンピュータ１０２は、デジタルカメラＡのデバイス情報をサーバコンピュータ１０１からダウンロードして使用する状況を想定する。
【００４５】
開発者により編集ソフトウエアが起動されると、ステップＳ６００において、編集コンピュータ１０２は、編集画面１０００をＬＣＤ５０４に表示する。図１０は編集画面を例示した図である。図１０のように、編集画面１０００は、ＧＵＩの編集タブ１００１と音声入出力の編集タブ１００２から構成される。
【００４６】
次に、ステップＳ６０１において、編集ソフトウエアは、デフォルトに設定されているデバイス情報をＲＡＭ５０２のワークエリアにロードする。デフォルトのデバイス情報は、編集コンピュータ１０２の、例えば、ＨＤＤ５０５等の記憶装置に予め格納されている。
【００４７】
次に、ステップＳ６０２において、開発者により、デフォルトのデバイス情報に代えて別のデバイス情報をロードする旨の要求がなされたか否かを判定する。開発者によりデバイス情報の要求がなされた場合(ステップＳ６０２でＹＥＳ)はステップＳ６０３へ進み、デバイス情報の要求がなされなかった場合(ステップＳ６０２でＮＯ)はステップＳ６０４へ進む。
【００４８】
ステップＳ６０３においては、開発者により要求されたデバイス情報をＲＡＭ５０２のワークエリアにロードする。ただし、要求されたデバイス情報が外部装置に存在する場合は、デバイス情報はネットワーク１０３を経由してダウンロードされることになる。
【００４９】
開発者がデバイス情報の要求を行えるようにするために、編集コンピュータ１０２は、ロードするデバイス情報の所在場所を入力するためのユーザインタフェースを提供する。図１１は、開発者がデバイス情報の所在場所を入力するためのユーザインタフェースを例示した図である。図１１において、１１０１は、開発者がデバイス情報の所在場所を入力するための入力インタフェースである。１１０２、１１０４はチェックボックスであり、ローカルファイルからデバイス情報をロードする場合は１１０２、外部装置（ネットワークコンピュータ）からデバイス情報をダウンロードする場合は１１０４が選択される。１１０３は、ローカルファイルからデバイス情報をダウンロードする場合に、開発者による押下（選択）に応じて、ローカルファイルを参照するためのインタフェースを開くための参照ボタンである。ローカルファイルを参照するためのインタフェースは、例えば、情報処理装置のオペレーティングシステムにより提供されているものを利用することができる。１１０５は、外部装置からデバイス情報をダウンロードする場合に、外部装置のＵＲＩ（Uniform Resource Identifiers）を入力するための入力領域である。編集コンピュータ１０２は、入力インタフェース１１０１を介して開発者によりデバイス情報が指定されたことに応じて、指定されたデバイス情報にアクセスする。
【００５０】
例えば、サーバコンピュータ１０１に記憶されたデジタルカメラＡのデバイス情報のＵＲＩ
http://A-company.co.jp/Camera1.dev
を指定する場合について例示的に説明する。この場合、開発者は、図１１のように１１０４を選択し、１１０５にこのＵＲＩを入力する。開発者により入力領域１１０５にＵＲＩが入力されたことに応じて、編集コンピュータ１０１は、入力されたＵＲＩで指定された情報にアクセスする。この場合にはサーバコンピュータ１０１へアクセスする必要があるため、デバイス情報要求送信部３０３は、サーバコンピュータ１０１に対して、デジタルカメラＡのデバイス情報”Camera1.dev”を要求する。サーバコンピュータ１０１は、この要求に応じて、前記デジタルカメラＡのデバイス情報”Camera1.dev”を編集コンピュータ１０２に送信する。このようにして編集コンピュータ１０２はデバイス情報をダウンロードすることができる。なお、ローカルファイルを参照してデバイス情報を取得する処理は通常のオペレーティングシステムにより行われるため、説明を省略する。上記の処理の後、ステップＳ６０４へ進む。
【００５１】
ステップＳ６０４においては、開発に係るユーザインタフェースの設計情報を記述するＵＩ記述文書をＲＡＭ５０２のワークエリアにロードする。この処理において、ＵＩ記述文書を新規作成する場合は、ＲＡＭ５０２のワークエリアにおいて編集されていないＵＩ記述文書を生成する。事前に編集されたＵＩ記述文書がＵＩ記述文書保持部３０２として機能するＨＤＤ５０５等の記憶装置に記憶されており、更に編集する場合は、このＵＩ記述文書をＨＤＤ５０５等から読み出してＲＡＭ５０２のワークエリアにロードする。事前に編集されたＵＩ記述文書をロードする際には、オペレーティングシステムが提供するファイル参照のインタフェースを利用することができる。
【００５２】
次に、ステップＳ６０５においては、ＲＡＭ５０２のワークエリアにロードされた、編集対象のＵＩ記述文書とデバイス情報とに基づいて、ＵＩ記述文書が、デバイス情報に記述されたデバイスに係る制約条件に適合しているか否かを判定する。ＵＩ記述文書がデバイス情報に適合している場合（ステップＳ６０５でＹＥＳ）はステップＳ６０７へ進み、適合していない場合（ステップＳ６０５でＮＯ）はステップＳ６０６へ進む。ステップＳ６０６では、ＵＩ記述文書がデバイス情報に適合していない、即ち、矛盾していることを開発者に通知するための情報をＬＣＤ５０４に表示し、ステップＳ６０７へ進む。ステップＳ６０５の適合性判定に係る処理とステップＳ６０６の矛盾の存在の表示の処理の詳細は後述する。
【００５３】
ステップＳ６０７では、開発者からの指示入力装置５０８を介した指示入力を受け付ける。開発者からの指示入力が、編集インタフェースの表示に係るものである場合（ステップＳ６０８でＹＥＳ）は、ステップＳ６０９へ進む。
【００５４】
編集ソフトウエアは、図１０のＧＵＩ編集タブ１００１上において、開発者が、ボタンなどＧＵＩ部品の配置を含むデバイスのＧＵＩの画面設計を可能に制御する。また、図１０の音声編集タブ１００２上において、音声入出力部品の設定を可能に制御する。さらに、デバイスのボタンが押下されたときのアクションなど、イベントとそのイベントに対するアクションの編集を可能に制御する。
【００５５】
編集ソフトウエアは、このような設計を可能にするために、デバイス情報に示されたデバイスの入出力機器に係る特性に適合する制約条件の範囲においてＵＩ記述文書の編集を許容する編集インタフェースを提供する。そして、編集インタフェースの切り替えを開発者が容易に行えるように制御することで、開発者の設計に係る負担を軽減する。例えば、ＧＵＩ編集タブ１００１に表示されたボタン上にポインタが設定されている場合に、ポインティングデバイスの右クリックが入力された場合、ボタンの表示色や、ボタンが押下された場合に行う処理等に係る編集インタフェースを表示制御する。ステップＳ６０９へ進むのは、このような編集インタフェースの表示に係る指示入力が、開発者によりなされた場合である。
【００５６】
ステップＳ６０９においては、指示入力に対応する編集インタフェースを表示する。後述するように、この編集インタフェースは、ユーザインタフェースに係るＵＩ記述文書を編集するインタフェースであって、デバイス情報に示された特性に適合する制約条件の範囲において編集を許容する。また、編集インタフェースは、デバイス情報に示された特性に適合する制約条件の範囲において許容されるＵＩ記述文書の編集に係る操作の選択肢を提示し、開発者による指示により選択された選択肢に基づいて前記編集を行う。このため、ユーザはこの編集インタフェースを用いてＵＩ記述文書を編集することで、デバイス情報に適合した設計を行うことができる。このような編集インタフェースの例、及びその動作は後述する。ステップＳ６０９の処理の後、ステップＳ６０７へ戻る。
【００５７】
ステップＳ６０７において受け付けた開発者からの指示入力が、デバイスのＵＩに係る編集操作の場合（ステップＳ６１０でＹＥＳ）は、ステップＳ６１１へ進む。ステップＳ６１１においては、指示入力されたＵＩの一つ一つの編集操作について、デバイス情報に示されたデバイスの入出力機器に係る特性に適合するか否かを判定する。編集操作がデバイスの入出力機器に係る特性に適合する場合（ステップＳ６１１でＹＥＳ）は当該編集操作に応じてＵＩ記述文書を更新し（ステップＳ６１２）、ステップＳ６０７へ戻る。適合しない場合（ステップＳ６１１でＮＯ）は編集操作を受け付けず、何もせずにステップＳ６０７へ戻る。
【００５８】
以下、ステップＳ６１１に係る処理について、詳しく説明する。デバイス情報について説明する。図９は、本実施形態において、ＵＩの開発対象のデバイスの例として取り上げた、デジタルカメラＡを模式的に示した図である。図９のように、デジタルカメラＡは、表示画面９０２、シャッターボタン９０３、メニューボタン９０４、ＳＥＴボタン９０５、ヘルプボタン９０６を備えるとする。
【００５９】
このデジタルカメラＡのデバイス情報は、例えば図７のようなＸＭＬ文書７０１として表すことができる。図７はデバイス情報を例示した図である。＜DeviceProperty＞要素７０２の中にデバイス情報が記述されている。＜DeviceProperty＞要素７０２の中の各要素は、以下のような意味を持つ。即ち、
＜DisplaySize＞要素７０３は、表示画面のサイズを記述する要素である。図７では、表示画面のサイズが６４０×４００の例を示している。
＜Colors＞要素７０４は、デバイスが表示可能な色のリストを記述する要素である。図７の場合では、表示可能色は８色である。
＜Microphone＞要素７０５は、デバイスがマイクを備えているか否かを記述する要素である。＜Microphone＞要素７０５の値が”yes”の場合はマイクを備えており、”no”の場合は備えていないことを意味する。従って、図７の例では、マイクを備えている。
＜Speaker＞要素７０６は、デバイスがスピーカを備えているか否かを記述する要素である。＜Speaker＞要素７０６の値が”yes”の場合はスピーカを備えており、”no”の場合は備えていないことを意味する。従って、図７の例では、スピーカを備えている
＜EventList＞要素７０７は、このデバイスが内部的に発生するイベントの一覧を記述する要素である。そして、子要素の＜EventType＞要素７０８に各イベントタイプ名が記述される。”OnPress.XXXX”は、XXXXという物理ボタンがデバイスのユーザにより押下されたというイベントであり、”OnSystemEvent.YYYY”は、YYYYというシステム内部のイベントである。例えば、”OnSystemEvent.MemoryCardFull”は、「メモリカードがいっぱいになった」というイベントである。
【００６０】
なお、上記の要素は説明の便宜のために例示したものであり、これに限られない。また、本実施形態では、デバイス文書をＸＭＬ文書として記述する場合を例に取り上げたが、情報処理装置が処理可能な他の形式により記述してもよいことは明らかである。
【００６１】
編集ソフトウエアは、デバイス情報に含まれる＜DisplaySize＞要素７０３の内容から、表示画面サイズが取得することができ、ＧＵＩ編集タブ上では、図１２の１２０３のように、表示画面サイズを示す枠を表示する。編集ソフトウエアは、開発者がＧＵＩウインドウ１２０４やその他のＧＵＩ部品を、この枠からはみでないように制約をかける。即ち、ＧＵＩ部品が表示画面サイズに収まる場合はデバイス情報に適合する（Ｓ６１１でＹＥＳ）と判断し、編集操作に応じてＵＩ記述文書を更新する（ステップＳ６１２）。ＵＩ部品が表示画面サイズに収まらない場合はデバイス情報に適合しない（Ｓ６１１でＮＯ）と判断し、ＵＩ記述文書を更新せずに、指示入力待ちの状態（ステップＳ６０７）に遷移する。
【００６２】
また、編集ソフトウエアは、デバイス情報の＜Colors＞要素７０４から、デジタルカメラＡの表示可能色が得られる。このため、開発者が例えばあるＧＵＩ部品の背景色を指定しようとした場合は、開発者の指示入力に応じて（ステップＳ６０８でＹＥＳ）背景色に係る編集インタフェースを表示する（ステップＳ６０９）。図１３の１３０１は、背景色に係る編集インタフェースとしての背景色設定パネルを例示したものである。編集ソフトウエアは、背景色設定パネルに提示した表示可能色の中から所望とする色を開発者が選択できるように制御する。こうすることにより、表示不可能な色を選択することがないように制約をかけることができる。
【００６３】
また、編集ソフトウエアは、デバイス情報の＜EventList＞要素７０７から、発生イベントの一覧が得られる。このため、開発者が例えばイベントに対する動作を編集しようとした場合は、開発者の指示入力に応じて（ステップＳ６０８でＹＥＳ）イベント設定に係る編集インタフェースを表示する（ステップＳ６０９）。図１４の１４０１はイベント設定に係る編集インタフェースとしてのイベント設定パネルを例示したものである。編集ソフトウエアは、イベント設定パネルにプルダウンメニュー１４０２のような形で提示したイベントタイプの中から所望とするイベントタイプを開発者が選択できるように制御する。このように構成することで、開発者が選択するイベントタイプを＜EventList＞要素７０７から得られたイベントの一覧に含まれるものに制約することができる。なお、編集ソフトウエアは、全てのデバイスに共通の、予め設定されたイベントに係る選択肢を提示し、開発者からの指示により選択された選択肢に基づいてイベントハンドリングに係るＵＩ記述文書の編集を行うように構成することもできる。
【００６４】
また、編集ソフトウエアは、デバイス情報の＜Microphone＞要素７０５、＜Speaker＞要素７０６から、デバイスが音声の入出力による入出力機器（マイク、スピーカ等）を備えているか否かの有無に係る情報を取得することができる。編集ソフトウエアは、このため、上記と同様に、音声の入出力による入出力機器を備えている場合には、音声の入出力に係るＵＩ設計文書の編集を許容するような編集インタフェースを提供することができる。
【００６５】
上記のような編集操作により設計されるユーザインタフェースは、図１６の１６０１のようなＵＩ記述文書として記述される。図１６は、ＵＩ記述文書の一例を示した図である。図１６は、ＵＩ記述が、Ｗ３Ｃの仕様であるXHTML(http://www.w3.org/TR/xhtml1/)を用いて記述されている場合を例示している。１６０２は、イベントに対する動作の記述であり、Ｗ３Ｃの仕様であるXML Events(http://www.w3.org/TR/xml-events/)を用いて記述された場合を例示している。１６０２は、”OnPress.Help”イベント、つまり、ヘルプボタン９０６が押された場合の動作を記述している。
＜cmm:start component="HelpMessage"/＞
は、”HelpMessage”というＩＤを持つＵＩ部品を実行することを意味する。”HelpMessage”というＩＤを持つＵＩ部品は、１６０４の＜cmm:prompt＞要素である。これは、音声出力部品であり、１６０２の＜cmm:start＞の動作が実行されたら、「操作ガイドです。・・・」のように音声出力することになる。１６０３は、ＧＵＩの部品の記述である。
【００６６】
なお、上記のＵＩ記述文書は説明の便宜のために例示したものであり、これに限られない。また、本実施形態では、ＵＩ記述文書をＸＭＬ文書として記述する場合を例に取り上げたが、情報処理装置が処理可能な他の形式により記述してもよいことは明らかである。
【００６７】
ステップＳ６０７において受け付けた開発者からの指示入力が、ＵＩ記述文書の保存である場合（ステップＳ６１３でＹＥＳ）は、ステップＳ６１５へ進む。ステップＳ６１５では、ＲＡＭ５０２にロードされた編集中のＵＩ記述文書でもって、ＵＩ記述文書保持部３０２として機能するＨＤＤ５０５に記憶されたＵＩ記述文書を更新する。そして、ステップＳ６０７へ戻る。
【００６８】
ステップＳ６０７において受け付けた開発者からの指示入力が、ＵＩ編集の終了である場合（ステップＳ６１３でＹＥＳ）は、処理を終了する。
【００６９】
次に、ステップＳ６０５の適合性判定に係る処理とステップＳ６０６の矛盾の存在の表示の処理について説明する。説明の便宜上、ここでは、開発者が、図１７に示すような別機種のデジタルカメラＢのユーザインタフェースを設計する際に、デジタルカメラＡように設計したユーザインタフェースを流用したとする。図１７は、デジタルカメラＢを模式的に示した図である。
【００７０】
開発者の指示入力に基づいて、編集コンピュータ１０２は、上記と同様に、サーバコンピュータ１０１からデジタルカメラＢのデバイス情報をダウンロードする。図８は、デジタルカメラＢのデバイス情報を示した図である。図８の８０１は、デジタルカメラＢのデバイス情報を示している。
【００７１】
この場合、図６のステップＳ６０５において、編集コンピュータ１０２は、ＵＩ記述文書１６０１と、デバイス情報８０１の間の矛盾をチェックする。前述のように、１６０２は、”OnPress.Help”イベントに対する動作を記述している。しかし、デバイス情報８０１では、＜EventList＞要素８０２内に”OnPress.Help”イベントは含まれていない。デジタルカメラＢにはヘルプボタンがないからである。従って、１６０２の記述に矛盾が検出され、編集ソフトウエアは、ステップＳ６０６において、「”OnPress.Help”イベントありません」等の警告メッセージを表示する。さらに、８０１は＜Speaker＞要素８０３の値が”no”である。つまり、デジタルカメラＢは音声出力ができない。しかし、ＵＩ記述文書１６０１は、１６０４のように、音声出力部品の記述を含んでいる。これも矛盾として検出され、「このデバイスは音声出力ができません。音声出力部品を削除してください」といった警告メッセージを表示する。
【００７２】
なお、図６では、ＵＩ記述文書とデバイス情報との適合性判定に係る処理をＵＩ記述文書をロードした時に行う場合を示しているが、このような適合性判定に係る処理は他のイベント発生を契機として実行するように構成してもよい。例えば、編集操作（ステップＳ６１０でＹＥＳ）やＵＩ編集処理の保存（ステップＳ６１５）の処理を契機として実行するように構成することができる。
【００７３】
上記のように、本実施形態の編集コンピュータ１０２は、ユーザから入力された指示に基づいてデバイスのユーザインタフェースに係るＵＩ記述文書を編集する編集のインタフェースを提供する。ただし、編集コンピュータ１０２は、デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込み、このデバイス情報に示された特性に適合する制約条件の範囲においてユーザによる編集を許容する。このため、デバイスの設計者は、デバイスに備えられた入出力機器の仕様を調べることなく、デバイスの特性に整合したユーザインタフェースの設計を効率的に行うことができる。このため、設計者は、多様な形態を有する情報機器のユーザインタフェースを容易に設計することができる。
【００７４】
＜＜第２実施形態＞＞
第１の実施形態におけるユーザインタフェース編集ソフトウエアは、図１０のように、ＧＵＩ編集タブと音声編集タブからなっていた。しかし、デバイス情報が８０１のようになっていて、このデバイスがマイクもスピーカも備えていないことがわかった場合は、図１５のように、音声編集タブを表示しないようにしてもよい。
【００７５】
＜＜その他の実施形態＞＞
なお、本発明の目的は次のようにしても達成される。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。このようにしても目的が達成されることは言うまでもない。
【００７６】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７８】
また、本発明に係る実施の形態は、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７９】
さらに、本発明に係る実施形態の機能は次のようにしても実現される。即ち、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。この処理により前述した実施形態の機能が実現されることは言うまでもない。
【図面の簡単な説明】
【００８０】
【図１】情報処理装置を組み込んだコンピュータシステムの構成図である。
【図２】サーバコンピュータの機能構成を示したブロック図である。
【図３】編集コンピュータの機能構成を示したブロック図である。
【図４】サーバコンピュータのハードウエア構成を示すブロック図である。
【図５】編集コンピュータのハードウエア構成を示すブロック図である。
【図６】ユーザインタフェース編集処理の流れを示したフローチャートである。
【図７】デバイス情報を例示した図である。
【図８】デジタルカメラＢのデバイス情報を示した図である。
【図９】デジタルカメラＡを模式的に示した図である。
【図１０】編集画面を例示した図である。
【図１１】開発者がデバイス情報の所在場所を入力するためのユーザインタフェースを例示した図である。
【図１２】ＧＵＩ編集タブ上に表示画面サイズを示す枠を表示した様子を示す図である。
【図１３】背景色設定パネルを例示した図である。
【図１４】イベント設定パネルを例示した図である。
【図１５】音声編集タブが含まれない編集画面を示した図である。
【図１６】ＵＩ記述文書を例示する図である。
【図１７】デジタルカメラＢを模式的に示した図である。
【図１】
2007156712.tif 000003
【図２】
2007156712.tif 000004
【図３】
2007156712.tif 000005
【図４】
2007156712.tif 000006
【図５】
2007156712.tif 000007
【図６】
2007156712.tif 000008
【図７】
2007156712.tif 000009
【図８】
2007156712.tif 000010
【図９】
2007156712.tif 000011
【図１０】
2007156712.tif 000012
【図１１】
2007156712.tif 000013
【図１２】
2007156712.tif 000014
【図１３】
2007156712.tif 000015
【図１４】
2007156712.tif 000016
【図１５】
2007156712.tif 000017
【図１６】
2007156712.tif 000018
【図１７】
2007156712.tif 000019