説明

情報処理装置及びその制御方法、プログラム

【課題】 多様な形態を有する情報機器のユーザインタフェースを容易に設計することを可能とする技術を提供する。
【解決手段】 本発明によれば、デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、前記デバイス情報に示された前記特性に適合するように前記編集を制約する制約手段と、を備えることを特徴とする情報処理装置が提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はユーザインタフェースの設計技術に関し、特に、多様な情報機器のユーザインタフェースの設計技術に関する。
【背景技術】
【0002】
携帯電話、カーナビゲーション、情報家電など、情報機器の形態が多様化し、そのハードウエア性能が向上している。これとともに、情報機器のユーザインタフェースも、かつてはPCに特有のものであったグラフィックユーザインタフェース(GUI:Graphical User Interface)として実現されるようになり、高度化が進んでいる。また最近では、音声認識や音声合成といった技術が発達し、さまざまな機器に組み込まれるようになり、音声によるUI(User Interface)も汎用化しつつある。機器自体の機能も多機能化しており、ユーザインタフェースも極めて複雑なものになる傾向がある。これに伴い、ユーザインタフェースの開発そのものにも高度な技術が必要になり、ユーザインタフェースの開発コストが大きな問題になっている。
【0003】
現在では、GUI等の主にソフトウエアの制御に基づいて実現されるユーザインタフェースの開発は、プログラマによるプログラミングだけでなく、画面を設計するデザインツールなど、さまざまな開発ツールを利用してなされることが一般的である。GUIの設計に関する技術が、特許文献1、特許文献2に開示されている。また、ガイオ・テクノロジー株式会社の「プロトビルダー」や日本システムウエア株式会社の「RapidPLUS」といった製品も知られている。これらは、機器の筐体、ディスプレイ、物理キーといったハードウエアによるユーザインタフェースとGUIを、GUI操作で設計することができる開発環境を提供する開発ツールに関するものである。このように、デバイスのユーザインタフェースに係る設計のためのGUIを提供し、手動によるプログラミングをなるべく減らすことを目的とした開発ツールが知られている。
【特許文献1】特開2000−137599号公報
【特許文献2】特開2002−244848号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術によっては、多様な形態を有する情報機器のユーザインタフェースを設計することが煩雑だった。
【0005】
PCに対するユーザの操作は、キーボードとマウスによるものがほとんどである。このため、PCのGUIの設計は、入力イベントとして、キーボードやマウスのイベントというあらかじめ決まった種類のイベントに対応するように行えばよい。また、PCのディスプレイはある程度以上の大きさを持っているため、ウインドウサイズやGUI部品の配置なども比較的自由に設計することができる。
【0006】
これに対して、PC以外の情報機器は、その形態によって、ディスプレイ、物理キー、ジョグダイアルなど、ハードウエアによる入出力機器が多様である。このため、これらの入出力機器の操作に係るイベント処理は、PCの入出力機器の操作に係るイベント処理よりも複雑である。例えば、PC以外の情報機器には、テンキーのような汎用的な物理キーだけでなく、機器特有の物理キーが備わっている場合が多い。このため、その機器のGUIの開発においては、機器固有の物理キーの操作に基づくイベントに対する振る舞いをプログラミングすることになる。この場合、GUIのプログラマ(開発者)は、機器の物理キーイベントに関する仕様書を読み、仕様に合わせたプログラミングを行わなければならなかった。
【0007】
また、機器の小型化が進むとディスプレイサイズも小さくなる。これは、GUI開発におけるウインドウサイズの調整やGUI部品の配置に大きな影響を与える。このため、プログラマや画面デザイナは、機器の仕様書からディスプレイサイズを調べ、これを考慮してGUI画面を設計しなければならなかった。このように、GUIの設計は、情報機器に備えられた入出力機器のハードウエアのさまざまな属性に影響を受ける作業となる。
【0008】
しかし、従来のGUI設計ツールは、こうした機器の属性をGUI設計作業に反映することができなかった。即ち、機器の属性は仕様書というドキュメントに書かれ、GUI設計ツールとの連携がなかった。このため、プログラマや画面デザイナなどの開発者の負担が大きかった。また、新機種のGUIを開発する際に、従来機種のGUIの内容をなるべく再利用して開発の効率化を図るケースがある。この場合、新機種のディスプレイサイズが変わったり、物理キーが変更になったりすることで、それらに関係する従来機種のGUIの部分に修正を加える作業が大きな負担となっていた。
【0009】
本発明は上記問題に鑑みなされたものであり、多様な形態を有する情報機器のユーザインタフェースを容易に設計することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、
前記デバイス情報に示された前記特性に適合するように前記編集を制約する制約手段と、を備える。
【発明の効果】
【0011】
本発明によれば、多様な形態を有する情報機器のユーザインタフェースを容易に設計することを可能とする技術を提供することができる。
【発明を実施するための最良の形態】
【0012】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【0013】
<<第1実施形態>>
本実施形態に係る情報処理装置は、ユーザから入力された指示に基づいてデバイスのユーザインタフェースに係るUI記述文書を編集する編集のインタフェースを提供する。ただし、本実施形態に係る情報処理装置は、デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込み、このデバイス情報に示された特性に適合する制約条件の範囲においてユーザによる編集を許容する。このため、デバイスの設計者は、デバイスに備えられた入出力機器の仕様を調べることなく、デバイスの特性に整合したユーザインタフェースの設計を効率的に行うことができる。このため、設計者は、多様な形態を有する情報機器のユーザインタフェースを容易に設計することができる。
【0014】
以下、本実施形態では、説明の便宜上、デジタルカメラにより撮像された写真画像に音声アノテーションを付与するための、デジタルカメラのユーザインタフェースを開発する場合の例を説明する。
【0015】
(システム構成)
図1は、本実施形態に係る情報処理装置を組み込んだコンピュータシステムの構成図である。図1のように、コンピュータシステムはサーバコンピュータ101、編集コンピュータ102、及び、それらが接続されたネットワーク103から構成されている。
【0016】
サーバコンピュータ101は、UIの設計対象となるデバイスの種類毎に、デバイスの特性を示すデバイス情報(デバイス記述文書、属性情報、デバイス情報文書)を記憶し、外部装置からの要求に応じてデバイス情報を配信する情報処理装置である。サーバコンピュータ101は、例えば、パーソナルコンピュータ(PC)やワークステーション(WS)等で実現される。
【0017】
編集コンピュータ102は、ユーザインタフェースの開発者(設計者)の操作によりユーザインタフェースの記述を編集する情報処理装置である。編集コンピュータ102は、必要に応じてサーバコンピュータ101からユーザインタフェースを設計する対象のデバイスに係るデバイス情報を取得し、このデバイス情報に基づいて、ユーザインタフェース記述の編集を制御する。ただし、デバイス情報は編集コンピュータ102が保持するものを用いてもよい。編集コンピュータ102も、例えば、PCやWS等で実現される。
【0018】
ネットワーク103は、典型的には、インターネットであるが、有線/無線を問わず、公衆回線(アナログ回線、ISDN等)やLAN、WAN、無線LAN等のデータ送受信可能な回線であれば、どのような構成でもよい。ネットワークを用いた通信プロトコルは、例えば、TCP/IP等を採用することができる。
【0019】
(機能構成)
次に、本実施形態におけるサーバコンピュータ101の機能構成について図2を参照して説明する。図2は、本実施形態におけるサーバコンピュータ101の機能構成を示したブロック図である。
【0020】
201は、デバイス情報保持部であり、デバイス情報(デバイス記述文書)をデバイスの種類毎に保持する。202は、デバイス情報要求受信部であり、後述の通信部204を介して受け取ったデバイス情報の要求情報を受信する。203は、デバイス情報送信部であり、デバイス情報要求受信部202がデバイス情報の要求情報を受信したことに応じて、要求されたデバイス情報を後述の通信部204を介して要求元の外部装置へ送信する。204は、通信部であり、外部装置と当該サーバコンピュータ101との通信を制御するインタフェースとして機能する。
【0021】
図2に示される各機能ブロックは、図4を参照して後述するハードウエア構成のCPU401がRAM402にロードされたプログラムを実行し、図4に示される各ハードウェアと協働することによって実現される。もちろん機能ブロックの一部或いは全てが専用のハードウェアで実現されてもよい。
【0022】
次に、本実施形態における編集コンピュータ102の機能構成について図3を参照して説明する。図3は、本実施形態における編集コンピュータ102の機能構成を示したブロック図である。
【0023】
301は、編集部であり、ユーザインタフェースの開発者の指示入力に基づいて後述のUI記述文書を編集するとともに、デバイス情報に基づいてUI記述文書の編集を制御する。UI記述文書の編集に係る処理の詳細は後述する。302は、UI記述文書保持部であり、開発に係るユーザインタフェースの設計情報を記述するUI記述文書を保持する。303は、デバイス情報要求送信部であり、デバイス情報を記憶するサーバコンピュータ101に対してデバイス情報を要求する情報を、後述の通信部305を介して送信する。304は、デバイス情報受信部であり、サーバコンピュータ101からデバイス情報を後述の通信部305を介して受信する。305は、通信部であり、外部装置と当該編集コンピュータ102との通信を制御するインタフェースとして機能する。
【0024】
図3に示される各機能ブロックは、図5を参照して後述する装置のCPU501がRAM502にロードされた編集プログラム(ユーザインタフェース編集ソフトウエア)を実行し、図5に示される各ハードウェアと協働することによって実現される。もちろん機能ブロックの一部或いは全てが専用のハードウェアで実現されてもよい。なお、ユーザインタフェース編集ソフトウエア(編集ソフトウエア)の動作の詳細は後述する。
【0025】
(ハードウエア構成)
次に、本実施形態におけるサーバコンピュータ101のハードウエア構成について、図4を参照して説明する。図4は、本実施形態におけるサーバコンピュータ101のハードウエア構成を示すブロック図である。
【0026】
図4において、401はCPUであり、サーバコンピュータ101の動作手順を記述するプログラムに従って動作する。CPU401は、例えば、後述するHDD405に格納されているアプリケーションプログラム、オペレーティングシステムや制御プログラム等を実行し、RAM402にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0027】
402はRAMであり、上記プログラムの動作に必要な記憶領域を提供する。即ち、各種データを一時記憶し、CPU401の主メモリ、ワークエリア等として機能する。403はROMであり、基本I/Oプログラム等のプログラムや、基本処理において使用する各種データ等を保持する。
【0028】
404はディスプレイ装置としてのLCD(Liquid Crystal Display)であり、指示入力装置(不図示)から入力されたコマンドや、それに対するサーバコンピュータ101の応答出力等を表示したりするものである。なお、LCD404は、ディスプレイ装置として機能すればよく、例えば、CRTディスプレイ、有機ELパネル、SED(Surface-conduction Electron-emitter Display)等により実現されてもよい。
【0029】
405は外部記憶装置としてのHDD(Hard Disk Drive)であり、デバイス情報を保持する。なお、HDD405は、外部記憶装置として機能すればよく、例えば、記録媒体としてのメディアと、メディアへのアクセスを実現するための外部記憶ドライブとによって構成されてもよい。このようなメディアには、例えば、フレキシブルディスク(FD)、CD−ROM、CD−R、CD−RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等が含まれる。
【0030】
406はLANボードであり、外部装置とデータの通信を行う。407はバスであり、サーバコンピュータ101内のデータの流れを司る。
【0031】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【0032】
本実施形態では、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているHDD405からRAM402にロードして実行させる場合を例示的に想定する。ただし、本発明に係る実施の形態はこれに限られず、例えば、メディア(不図示)から本実施形態に係るプログラム及び関連データを直接RAM402にロードして実行させてもよい。或いは、本実施形態に係るプログラムをROM403に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU401で実行するようにしてもよい。
【0033】
次に、本実施形態における編集コンピュータ102のハードウエア構成について、図5を参照して説明する。図5は、本実施形態における編集コンピュータ102のハードウエア構成を示すブロック図である。
【0034】
図5において、501はCPUであり、後述する編集コンピュータ102の動作手順を記述するプログラムに従って動作する。CPU501は、例えば、後述するHDD505に格納されているアプリケーションプログラム、オペレーティングシステムや制御プログラム等を実行し、RAM502にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【0035】
502はRAMであり、上記プログラムの動作に必要な記憶領域を提供する。即ち、各種データを一時記憶し、CPU501の主メモリ、ワークエリア等として機能する。503はROMであり、基本I/Oプログラム等のプログラムや、基本処理において使用する各種データ等を保持する。
【0036】
504はディスプレイ装置としてのLCD(Liquid Crystal Display)であり、指示入力装置(不図示)から入力されたコマンドや、それに対する編集コンピュータ102の応答出力等を表示したりするものである。なお、LCD504は、ディスプレイ装置として機能すればよく、LCD404と同様にこれに限られない。
【0037】
505は外部記憶装置としてのHDD(Hard Disk Drive)であり、編集するUI記述文書やデバイス情報を保持する。なお、HDD505も、HD405と同様に、外部記憶装置として機能すればよく、例えば、記録媒体としてのメディアと、メディアへのアクセスを実現するための外部記憶ドライブとによって構成されてもよい。。
【0038】
506はLANカードであり、外部装置とデータの通信を行う。507はバスであり、編集コンピュータ102内のデータの流れを司る。
【0039】
507は指示入力装置であり、キーボードやポインティングデバイス(マウス等)、タッチパネル等がこれに相当する。指示入力装置507を用いて、ユーザインタフェースの開発者は、編集コンピュータ102に対して、装置を制御するコマンド等を入力指示する。
【0040】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【0041】
本実施形態では、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているHDD505からRAM502にロードして実行させる場合を例示的に想定する。ただし、本発明に係る実施の形態はこれに限られず、例えば、メディア(不図示)から本実施形態に係るプログラム及び関連データを直接RAM502にロードして実行させてもよい。或いは、本実施形態に係るプログラムをROM503に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU501で実行するようにしてもよい。
【0042】
また、本実施形態では、説明の便宜のため、サーバコンピュータ101と編集コンピュータ102とにリソースが分散された構成について述べるが、サーバコンピュータ101と編集コンピュータ102の機能を1つの情報処理装置で実現してもよい。或いは、3つ以上の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、情報処理装置上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。
【0043】
(ユーザインタフェース編集処理)
次に、編集コンピュータ102が提供するユーザインタフェース編集処理の流れについて、図6を参照して説明する。図6は、ユーザインタフェース編集処理の流れを示したフローチャートである。なお、上述のように、本実施形態では、図6に示したフローチャートに係る処理は、編集コンピュータのCPU501が編集ソフトウエアに基づいて装置を制御することにより実行される。
【0044】
本実施形態では、説明の便宜上、編集コンピュータ102を使用するユーザインタフェースの開発者が、ユーザインタフェース編集ソフトウエア(編集ソフトウエア)を用いて、デジタルカメラAのユーザインタフェースを設計しようとしている状況を想定する。そして、設計しようとしているユーザインタフェースは、GUIと音声入出力を含むマルチモーダルユーザインタフェースであるとする。また、デジタルカメラAのデバイス情報は、サーバコンピュータ101に記憶されており、編集コンピュータ102は、デジタルカメラAのデバイス情報をサーバコンピュータ101からダウンロードして使用する状況を想定する。
【0045】
開発者により編集ソフトウエアが起動されると、ステップS600において、編集コンピュータ102は、編集画面1000をLCD504に表示する。図10は編集画面を例示した図である。図10のように、編集画面1000は、GUIの編集タブ1001と音声入出力の編集タブ1002から構成される。
【0046】
次に、ステップS601において、編集ソフトウエアは、デフォルトに設定されているデバイス情報をRAM502のワークエリアにロードする。デフォルトのデバイス情報は、編集コンピュータ102の、例えば、HDD505等の記憶装置に予め格納されている。
【0047】
次に、ステップS602において、開発者により、デフォルトのデバイス情報に代えて別のデバイス情報をロードする旨の要求がなされたか否かを判定する。開発者によりデバイス情報の要求がなされた場合(ステップS602でYES)はステップS603へ進み、デバイス情報の要求がなされなかった場合(ステップS602でNO)はステップS604へ進む。
【0048】
ステップS603においては、開発者により要求されたデバイス情報をRAM502のワークエリアにロードする。ただし、要求されたデバイス情報が外部装置に存在する場合は、デバイス情報はネットワーク103を経由してダウンロードされることになる。
【0049】
開発者がデバイス情報の要求を行えるようにするために、編集コンピュータ102は、ロードするデバイス情報の所在場所を入力するためのユーザインタフェースを提供する。図11は、開発者がデバイス情報の所在場所を入力するためのユーザインタフェースを例示した図である。図11において、1101は、開発者がデバイス情報の所在場所を入力するための入力インタフェースである。1102、1104はチェックボックスであり、ローカルファイルからデバイス情報をロードする場合は1102、外部装置(ネットワークコンピュータ)からデバイス情報をダウンロードする場合は1104が選択される。1103は、ローカルファイルからデバイス情報をダウンロードする場合に、開発者による押下(選択)に応じて、ローカルファイルを参照するためのインタフェースを開くための参照ボタンである。ローカルファイルを参照するためのインタフェースは、例えば、情報処理装置のオペレーティングシステムにより提供されているものを利用することができる。1105は、外部装置からデバイス情報をダウンロードする場合に、外部装置のURI(Uniform Resource Identifiers)を入力するための入力領域である。編集コンピュータ102は、入力インタフェース1101を介して開発者によりデバイス情報が指定されたことに応じて、指定されたデバイス情報にアクセスする。
【0050】
例えば、サーバコンピュータ101に記憶されたデジタルカメラAのデバイス情報のURI
http://A-company.co.jp/Camera1.dev
を指定する場合について例示的に説明する。この場合、開発者は、図11のように1104を選択し、1105にこのURIを入力する。開発者により入力領域1105にURIが入力されたことに応じて、編集コンピュータ101は、入力されたURIで指定された情報にアクセスする。この場合にはサーバコンピュータ101へアクセスする必要があるため、デバイス情報要求送信部303は、サーバコンピュータ101に対して、デジタルカメラAのデバイス情報”Camera1.dev”を要求する。サーバコンピュータ101は、この要求に応じて、前記デジタルカメラAのデバイス情報”Camera1.dev”を編集コンピュータ102に送信する。このようにして編集コンピュータ102はデバイス情報をダウンロードすることができる。なお、ローカルファイルを参照してデバイス情報を取得する処理は通常のオペレーティングシステムにより行われるため、説明を省略する。上記の処理の後、ステップS604へ進む。
【0051】
ステップS604においては、開発に係るユーザインタフェースの設計情報を記述するUI記述文書をRAM502のワークエリアにロードする。この処理において、UI記述文書を新規作成する場合は、RAM502のワークエリアにおいて編集されていないUI記述文書を生成する。事前に編集されたUI記述文書がUI記述文書保持部302として機能するHDD505等の記憶装置に記憶されており、更に編集する場合は、このUI記述文書をHDD505等から読み出してRAM502のワークエリアにロードする。事前に編集されたUI記述文書をロードする際には、オペレーティングシステムが提供するファイル参照のインタフェースを利用することができる。
【0052】
次に、ステップS605においては、RAM502のワークエリアにロードされた、編集対象のUI記述文書とデバイス情報とに基づいて、UI記述文書が、デバイス情報に記述されたデバイスに係る制約条件に適合しているか否かを判定する。UI記述文書がデバイス情報に適合している場合(ステップS605でYES)はステップS607へ進み、適合していない場合(ステップS605でNO)はステップS606へ進む。ステップS606では、UI記述文書がデバイス情報に適合していない、即ち、矛盾していることを開発者に通知するための情報をLCD504に表示し、ステップS607へ進む。ステップS605の適合性判定に係る処理とステップS606の矛盾の存在の表示の処理の詳細は後述する。
【0053】
ステップS607では、開発者からの指示入力装置508を介した指示入力を受け付ける。開発者からの指示入力が、編集インタフェースの表示に係るものである場合(ステップS608でYES)は、ステップS609へ進む。
【0054】
編集ソフトウエアは、図10のGUI編集タブ1001上において、開発者が、ボタンなどGUI部品の配置を含むデバイスのGUIの画面設計を可能に制御する。また、図10の音声編集タブ1002上において、音声入出力部品の設定を可能に制御する。さらに、デバイスのボタンが押下されたときのアクションなど、イベントとそのイベントに対するアクションの編集を可能に制御する。
【0055】
編集ソフトウエアは、このような設計を可能にするために、デバイス情報に示されたデバイスの入出力機器に係る特性に適合する制約条件の範囲においてUI記述文書の編集を許容する編集インタフェースを提供する。そして、編集インタフェースの切り替えを開発者が容易に行えるように制御することで、開発者の設計に係る負担を軽減する。例えば、GUI編集タブ1001に表示されたボタン上にポインタが設定されている場合に、ポインティングデバイスの右クリックが入力された場合、ボタンの表示色や、ボタンが押下された場合に行う処理等に係る編集インタフェースを表示制御する。ステップS609へ進むのは、このような編集インタフェースの表示に係る指示入力が、開発者によりなされた場合である。
【0056】
ステップS609においては、指示入力に対応する編集インタフェースを表示する。後述するように、この編集インタフェースは、ユーザインタフェースに係るUI記述文書を編集するインタフェースであって、デバイス情報に示された特性に適合する制約条件の範囲において編集を許容する。また、編集インタフェースは、デバイス情報に示された特性に適合する制約条件の範囲において許容されるUI記述文書の編集に係る操作の選択肢を提示し、開発者による指示により選択された選択肢に基づいて前記編集を行う。このため、ユーザはこの編集インタフェースを用いてUI記述文書を編集することで、デバイス情報に適合した設計を行うことができる。このような編集インタフェースの例、及びその動作は後述する。ステップS609の処理の後、ステップS607へ戻る。
【0057】
ステップS607において受け付けた開発者からの指示入力が、デバイスのUIに係る編集操作の場合(ステップS610でYES)は、ステップS611へ進む。ステップS611においては、指示入力されたUIの一つ一つの編集操作について、デバイス情報に示されたデバイスの入出力機器に係る特性に適合するか否かを判定する。編集操作がデバイスの入出力機器に係る特性に適合する場合(ステップS611でYES)は当該編集操作に応じてUI記述文書を更新し(ステップS612)、ステップS607へ戻る。適合しない場合(ステップS611でNO)は編集操作を受け付けず、何もせずにステップS607へ戻る。
【0058】
以下、ステップS611に係る処理について、詳しく説明する。デバイス情報について説明する。図9は、本実施形態において、UIの開発対象のデバイスの例として取り上げた、デジタルカメラAを模式的に示した図である。図9のように、デジタルカメラAは、表示画面902、シャッターボタン903、メニューボタン904、SETボタン905、ヘルプボタン906を備えるとする。
【0059】
このデジタルカメラAのデバイス情報は、例えば図7のようなXML文書701として表すことができる。図7はデバイス情報を例示した図である。<DeviceProperty>要素702の中にデバイス情報が記述されている。<DeviceProperty>要素702の中の各要素は、以下のような意味を持つ。即ち、
<DisplaySize>要素703は、表示画面のサイズを記述する要素である。図7では、表示画面のサイズが640×400の例を示している。
<Colors>要素704は、デバイスが表示可能な色のリストを記述する要素である。図7の場合では、表示可能色は8色である。
<Microphone>要素705は、デバイスがマイクを備えているか否かを記述する要素である。<Microphone>要素705の値が”yes”の場合はマイクを備えており、”no”の場合は備えていないことを意味する。従って、図7の例では、マイクを備えている。
<Speaker>要素706は、デバイスがスピーカを備えているか否かを記述する要素である。<Speaker>要素706の値が”yes”の場合はスピーカを備えており、”no”の場合は備えていないことを意味する。従って、図7の例では、スピーカを備えている
<EventList>要素707は、このデバイスが内部的に発生するイベントの一覧を記述する要素である。そして、子要素の<EventType>要素708に各イベントタイプ名が記述される。”OnPress.XXXX”は、XXXXという物理ボタンがデバイスのユーザにより押下されたというイベントであり、”OnSystemEvent.YYYY”は、YYYYというシステム内部のイベントである。例えば、”OnSystemEvent.MemoryCardFull”は、「メモリカードがいっぱいになった」というイベントである。
【0060】
なお、上記の要素は説明の便宜のために例示したものであり、これに限られない。また、本実施形態では、デバイス文書をXML文書として記述する場合を例に取り上げたが、情報処理装置が処理可能な他の形式により記述してもよいことは明らかである。
【0061】
編集ソフトウエアは、デバイス情報に含まれる<DisplaySize>要素703の内容から、表示画面サイズが取得することができ、GUI編集タブ上では、図12の1203のように、表示画面サイズを示す枠を表示する。編集ソフトウエアは、開発者がGUIウインドウ1204やその他のGUI部品を、この枠からはみでないように制約をかける。即ち、GUI部品が表示画面サイズに収まる場合はデバイス情報に適合する(S611でYES)と判断し、編集操作に応じてUI記述文書を更新する(ステップS612)。UI部品が表示画面サイズに収まらない場合はデバイス情報に適合しない(S611でNO)と判断し、UI記述文書を更新せずに、指示入力待ちの状態(ステップS607)に遷移する。
【0062】
また、編集ソフトウエアは、デバイス情報の<Colors>要素704から、デジタルカメラAの表示可能色が得られる。このため、開発者が例えばあるGUI部品の背景色を指定しようとした場合は、開発者の指示入力に応じて(ステップS608でYES)背景色に係る編集インタフェースを表示する(ステップS609)。図13の1301は、背景色に係る編集インタフェースとしての背景色設定パネルを例示したものである。編集ソフトウエアは、背景色設定パネルに提示した表示可能色の中から所望とする色を開発者が選択できるように制御する。こうすることにより、表示不可能な色を選択することがないように制約をかけることができる。
【0063】
また、編集ソフトウエアは、デバイス情報の<EventList>要素707から、発生イベントの一覧が得られる。このため、開発者が例えばイベントに対する動作を編集しようとした場合は、開発者の指示入力に応じて(ステップS608でYES)イベント設定に係る編集インタフェースを表示する(ステップS609)。図14の1401はイベント設定に係る編集インタフェースとしてのイベント設定パネルを例示したものである。編集ソフトウエアは、イベント設定パネルにプルダウンメニュー1402のような形で提示したイベントタイプの中から所望とするイベントタイプを開発者が選択できるように制御する。このように構成することで、開発者が選択するイベントタイプを<EventList>要素707から得られたイベントの一覧に含まれるものに制約することができる。なお、編集ソフトウエアは、全てのデバイスに共通の、予め設定されたイベントに係る選択肢を提示し、開発者からの指示により選択された選択肢に基づいてイベントハンドリングに係るUI記述文書の編集を行うように構成することもできる。
【0064】
また、編集ソフトウエアは、デバイス情報の<Microphone>要素705、<Speaker>要素706から、デバイスが音声の入出力による入出力機器(マイク、スピーカ等)を備えているか否かの有無に係る情報を取得することができる。編集ソフトウエアは、このため、上記と同様に、音声の入出力による入出力機器を備えている場合には、音声の入出力に係るUI設計文書の編集を許容するような編集インタフェースを提供することができる。
【0065】
上記のような編集操作により設計されるユーザインタフェースは、図16の1601のようなUI記述文書として記述される。図16は、UI記述文書の一例を示した図である。図16は、UI記述が、W3Cの仕様であるXHTML(http://www.w3.org/TR/xhtml1/)を用いて記述されている場合を例示している。1602は、イベントに対する動作の記述であり、W3Cの仕様であるXML Events(http://www.w3.org/TR/xml-events/)を用いて記述された場合を例示している。1602は、”OnPress.Help”イベント、つまり、ヘルプボタン906が押された場合の動作を記述している。
<cmm:start component="HelpMessage"/>
は、”HelpMessage”というIDを持つUI部品を実行することを意味する。”HelpMessage”というIDを持つUI部品は、1604の<cmm:prompt>要素である。これは、音声出力部品であり、1602の<cmm:start>の動作が実行されたら、「操作ガイドです。・・・」のように音声出力することになる。1603は、GUIの部品の記述である。
【0066】
なお、上記のUI記述文書は説明の便宜のために例示したものであり、これに限られない。また、本実施形態では、UI記述文書をXML文書として記述する場合を例に取り上げたが、情報処理装置が処理可能な他の形式により記述してもよいことは明らかである。
【0067】
ステップS607において受け付けた開発者からの指示入力が、UI記述文書の保存である場合(ステップS613でYES)は、ステップS615へ進む。ステップS615では、RAM502にロードされた編集中のUI記述文書でもって、UI記述文書保持部302として機能するHDD505に記憶されたUI記述文書を更新する。そして、ステップS607へ戻る。
【0068】
ステップS607において受け付けた開発者からの指示入力が、UI編集の終了である場合(ステップS613でYES)は、処理を終了する。
【0069】
次に、ステップS605の適合性判定に係る処理とステップS606の矛盾の存在の表示の処理について説明する。説明の便宜上、ここでは、開発者が、図17に示すような別機種のデジタルカメラBのユーザインタフェースを設計する際に、デジタルカメラAように設計したユーザインタフェースを流用したとする。図17は、デジタルカメラBを模式的に示した図である。
【0070】
開発者の指示入力に基づいて、編集コンピュータ102は、上記と同様に、サーバコンピュータ101からデジタルカメラBのデバイス情報をダウンロードする。図8は、デジタルカメラBのデバイス情報を示した図である。図8の801は、デジタルカメラBのデバイス情報を示している。
【0071】
この場合、図6のステップS605において、編集コンピュータ102は、UI記述文書1601と、デバイス情報801の間の矛盾をチェックする。前述のように、1602は、”OnPress.Help”イベントに対する動作を記述している。しかし、デバイス情報801では、<EventList>要素802内に”OnPress.Help”イベントは含まれていない。デジタルカメラBにはヘルプボタンがないからである。従って、1602の記述に矛盾が検出され、編集ソフトウエアは、ステップS606において、「”OnPress.Help”イベントありません」等の警告メッセージを表示する。さらに、801は<Speaker>要素803の値が”no”である。つまり、デジタルカメラBは音声出力ができない。しかし、UI記述文書1601は、1604のように、音声出力部品の記述を含んでいる。これも矛盾として検出され、「このデバイスは音声出力ができません。音声出力部品を削除してください」といった警告メッセージを表示する。
【0072】
なお、図6では、UI記述文書とデバイス情報との適合性判定に係る処理をUI記述文書をロードした時に行う場合を示しているが、このような適合性判定に係る処理は他のイベント発生を契機として実行するように構成してもよい。例えば、編集操作(ステップS610でYES)やUI編集処理の保存(ステップS615)の処理を契機として実行するように構成することができる。
【0073】
上記のように、本実施形態の編集コンピュータ102は、ユーザから入力された指示に基づいてデバイスのユーザインタフェースに係るUI記述文書を編集する編集のインタフェースを提供する。ただし、編集コンピュータ102は、デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込み、このデバイス情報に示された特性に適合する制約条件の範囲においてユーザによる編集を許容する。このため、デバイスの設計者は、デバイスに備えられた入出力機器の仕様を調べることなく、デバイスの特性に整合したユーザインタフェースの設計を効率的に行うことができる。このため、設計者は、多様な形態を有する情報機器のユーザインタフェースを容易に設計することができる。
【0074】
<<第2実施形態>>
第1の実施形態におけるユーザインタフェース編集ソフトウエアは、図10のように、GUI編集タブと音声編集タブからなっていた。しかし、デバイス情報が801のようになっていて、このデバイスがマイクもスピーカも備えていないことがわかった場合は、図15のように、音声編集タブを表示しないようにしてもよい。
【0075】
<<その他の実施形態>>
なお、本発明の目的は次のようにしても達成される。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。このようにしても目的が達成されることは言うまでもない。
【0076】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0077】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0078】
また、本発明に係る実施の形態は、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0079】
さらに、本発明に係る実施形態の機能は次のようにしても実現される。即ち、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行う。この処理により前述した実施形態の機能が実現されることは言うまでもない。
【図面の簡単な説明】
【0080】
【図1】情報処理装置を組み込んだコンピュータシステムの構成図である。
【図2】サーバコンピュータの機能構成を示したブロック図である。
【図3】編集コンピュータの機能構成を示したブロック図である。
【図4】サーバコンピュータのハードウエア構成を示すブロック図である。
【図5】編集コンピュータのハードウエア構成を示すブロック図である。
【図6】ユーザインタフェース編集処理の流れを示したフローチャートである。
【図7】デバイス情報を例示した図である。
【図8】デジタルカメラBのデバイス情報を示した図である。
【図9】デジタルカメラAを模式的に示した図である。
【図10】編集画面を例示した図である。
【図11】開発者がデバイス情報の所在場所を入力するためのユーザインタフェースを例示した図である。
【図12】GUI編集タブ上に表示画面サイズを示す枠を表示した様子を示す図である。
【図13】背景色設定パネルを例示した図である。
【図14】イベント設定パネルを例示した図である。
【図15】音声編集タブが含まれない編集画面を示した図である。
【図16】UI記述文書を例示する図である。
【図17】デジタルカメラBを模式的に示した図である。

【特許請求の範囲】
【請求項1】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、
前記デバイス情報に示された前記特性に適合するように前記編集を制約する制約手段と、を備えることを特徴とする情報処理装置。
【請求項2】
前記デバイス情報には、前記デバイスが備えるディスプレイ装置の表示サイズが含まれ、
前記制約手段は、
前記編集手段において、前記ディスプレイ装置に表示させるウインドウに係る設計情報が編集される場合に、該ウインドウのサイズが前記表示サイズよりも大きくならないように前記編集を制約することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制約手段は、前記特性に適合する範囲における前記編集に係る操作の選択肢を含むインタフェースを前記編集手段に提示させ、
前記編集手段は、ユーザにより選択された前記選択肢に基づいて前記編集を行うことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記編集には、前記入出力機器の操作において発生するイベントに応じた動作を記述するイベントハンドリングに係る編集が含まれ、
前記制約手段は、予め設定されたイベントの選択肢を含むインタフェースを前記編集手段に提示させ、
前記編集手段は、ユーザにより選択された前記選択肢に基づいて前記イベントハンドリングに係る編集を行うことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記デバイス情報には、前記入出力機器の操作に応じて内部的に発生するイベントの一覧情報が含まれ、
前記制約手段は、前記一覧情報に含まれるイベントの選択肢を含むインタフェースの提示を前記編集手段に行わせることを特徴とする請求項3に記載の情報処理装置。
【請求項6】
前記デバイス情報には、前記デバイスが備えるディスプレイ装置の表示可能色を示す色情報が含まれ、
前記制約手段は、前記ディスプレイ装置に表示する色に係る編集において、前記色情報に示された前記表示可能色の選択肢を含むインタフェースを前記編集手段に提示させ、
前記編集手段は、ユーザにより選択された前記選択肢に基づいて前記色に係る編集を行うことを特徴とする請求項3乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記デバイス情報には、前記デバイスが音声入出力機器を備えているか否かの有無情報が含まれ、
前記制約手段は、前記音声入出力機器を備えている場合にのみ、音声の入出力に係る前記設計情報の編集を許容するように、前記編集の制約を行うことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
外部装置と通信する通信手段を更に備え、
前記読込手段は、前記通信手段を介して前記外部装置から取得された前記デバイス情報を読み込むことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込手段と、
前記設計情報が前記デバイス情報に示された前記特性に適合するか否かを判定する判定手段と、
前記判定手段において、適合しないと判定された場合、その旨をユーザに通知する通知手段と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集手段と、を備えることを特徴とする情報処理装置。
【請求項10】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置の制御方法であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込工程と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集工程と、を備え、
前記デバイス情報に示された前記特性に適合するように前記編集工程における前記編集を制約することを特徴とする情報処理装置の制御方法。
【請求項11】
デバイスのユーザインタフェースに係る設計情報を編集する情報処理装置の制御方法であって、
前記デバイスの備える入出力機器に係る特性を示すデバイス情報を読み込む読込工程と、
前記設計情報が前記デバイス情報に示された前記特性に適合するか否かを判定する判定工程と、
前記判定工程において、適合しないと判定された場合、その旨をユーザに通知する通知工程と、
前記設計情報を編集するためのインタフェースを提示し、ユーザからの指示入力に基づいて前記設計情報を編集する編集工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項12】
コンピュータを請求項1乃至9のいずれかに記載の情報処理装置として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate