説明

素描を通じたユーザーインターフェース記述の自動生成

所望のグラフィックユーザーインターフェース(GUI)が、素描されてからスキャンされてメモリに読み込まれるか、あるいは動きが追跡されてメモリに記録されるスタイラスを使って素描されるかする。素描されたウィンドウ、リスト、ボタン、フレームのようなオブジェクトは自動的に認識され、作成されるべきGUIのために正規化される。オブジェクトどうしの間の包含関係はツリー階層構造に記録される。ツリー階層構造には素描におけるレイアウト情報および注釈からの情報が添加される。ツリー階層構造は次いで目標プラットフォーム上でのGUIの生成のために整形される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はグラフィックユーザーインターフェース(GUI: graphic user interface)に、特にGUIの記述を生成することに関するものである。
【背景技術】
【0002】
グラフィックユーザーインターフェース(GUI)は典型的には、該GUIを生成する特定のウィンドウシステムに対応したソフトウェアルーチンを書くコンピュータプログラマーによって作成される。GUIとは、画面上に記号を表示するコンピュータプログラムまたは環境で、ユーザーが入力デバイスを通じて記号を選択することによってユーザーコマンドを生成できるようなものである。
【0003】
ソフトウェアルーチンは、書いたり修正したりすることの困難に加え、通例特定のウィンドウシステム向けに仕立てられていてその限りにおいて移植性を欠いている。
【0004】
GUI生成にはいくつかのドロー・プログラムが使われる。ドロー・プログラムとは、画像や図形を独立したオブジェクトとして、すなわちビットマップ画像ではなくベクトル画像として作成し、操作するのに使われるアプリケーションである。ビットマップ画像ではなくベクトル画像を使うことで編集が容易になり、記憶が節約される。
【0005】
Tommへの米国特許第6,246,403号は、その開示全体をここに参照によって組み込むものであるが、標準的なGUI生成の上記の不都合な点を指摘し、さらに既存のドロー・プログラムは非プログラマーにもGUI作成を可能にするものの、通常はGUIの修正はできず、特定のウィンドウシステム向けに仕立てられている点も同様であることを指摘している。
【0006】
Tommの方法論はテキストエディタを使って「テキストファイル」内にビットマップ画像を生成するというものである。テキストファイルは、コマンドの代わりに、所望のGUIに似た絵柄情報を含む。GUIの要素(ウィンドウ、ボタン、リストなど)を画面上に描くには、ユーザーは画面内を動き回って、そのGUI要素の境界を定めるために繰り返し特定のキャラクタを置く。ユーザーは各要素に対して任意的に、GUIでその要素内に表示される「ここを押す」のような名前と、たとえばその特定の要素がボタンであることを示す「button」のような機能的に記述するデータ型とを用いて注釈を付ける。画面上のどの要素が他のどの要素の内部にあるかを定義するデータツリー構造は、諸要素に付随するデータ型および名前のほかに、諸要素のレイアウトも含む。このフォーマットでは、GUI記述は、そのGUIのための目標プラットフォームに固有のアプリケーションプログラムインターフェース(API: application program interface)に対して容易に伝達できる。
【0007】
しかし、インターフェースを定義するための境界デリミタを繰り返し入力することはユーザーにとって面倒なことがある。たとえば、Tommはインターフェースをデザインするためにハイフン、プラス記号、縦棒の使用を例示しているが、これはかなりの努力を伴う。また、必要とされるキーボードはいつも便利に利用できるとは限らない。とりわけ携帯用情報端末(PDA: personal digital assistant)、携帯電話および複合型の携帯装置といったモバイル機器についてはそうである。
【0008】
Tranへの米国特許第6,054,990号は、その開示全体をここに参照によって組み込むものであるが、素描をベクトル化し、一連のベクトルを一つまたは複数の参照オブジェクトと比較して三角形などの最良一致オブジェクトを決定することに関するものである。
【発明の開示】
【発明が解決しようとする課題】
【0009】
プログラミングをしないユーザーにとって簡単かつ便利であり、選択されたプラットフォームに容易に移行できるGUI生成が必要とされている。
【0010】
本発明は、従来技術における上述した欠点を克服することに向けられたものである。
【課題を解決するための手段】
【0011】
本発明によれば、ユーザーはペンおよびデジタイザーを使って、あるいは代替的には光学スキャン可能媒体上に、スキャンされるべき所望のGUIを素描しうる。自動的な段階において、ぶれのある直線が認識されてまっすぐにされ、線どうしは適宜平行にされて、あらかじめ保存されている参照オブジェクトと似させられる。自動的に、画面上でどのオブジェクトが他のどのオブジェクトの内部にあるかが決定される。このデータならびにオブジェクトの機能的な記述および作成されるGUI内でのオブジェクトどうしの間の重なり合いの優先度を含むレイアウト情報を反映するユーザーインターフェース記述が生成される。
【0012】
具体的には、本発明に基づくユーザーインターフェース記述生成方法は、オブジェクトを手で素描して作成すべきGUIを表す素描を作成し、自動的にその後の諸機能を実行してユーザーインターフェース記述を生成するステップを含んでいる。特に、前記素描を調べてオブジェクトの素描バージョンを同定し、その素描バージョンがそれぞれの参照画像に似るよう適合される。この適合バージョンから、該適合バージョンどうしの間での相対的な包含の階層構造が決定される。最後に、その階層構造からGUIを作成するためのユーザーインターフェース記述が生成される。
【0013】
ここに開示される本発明の詳細は、図面を援用して説明される。同様の特徴はいくつかの図を通じて同一の番号を付けてある。
【発明を実施するための最良の形態】
【0014】
図1は、限定的でない例として、本発明に基づくユーザーインターフェース記述生成装置100を示している。装置100は、Tranへの米国特許第6,054,990号に記載されているように中央処理装置(CPU)110、読み出し専用メモリ(ROM)120、ランダムアクセスメモリ(RAM)130、ペン/デジタイザーユニット140および液晶ディスプレイ(LCD)150を含む。装置100にはまた、スキャナ160、素描エディタ170ならびに上記の構成要素すべてを接続するデータおよび制御バス180が盛り込まれている。
【0015】
図2に例示的に描かれているように、ROM120内のコンピュータプログラム200は素描同定手段210、素描正規化手段220、階層構造決定手段230および記述生成手段240を含む。プログラム200のこれらのモジュールのそれぞれは、適宜互いに通信できるようリンクされており、そのことは図2ではリンク250によって概念的に表されている。あるいはまた、これらのモジュールおよびROM120はたとえば専用プロセッサのようなハードウェアにおいて実現されてもよい。
【0016】
図3に示されているように、素描300は適合されて、電子的記憶媒体、ここではRAM130中に正規化された素描304が生成される。素描300はスキャナ160を使ったスキャンによりメモリに読み込まれるのでもよいし、あるいは素描する間にペン/デジタイザーユニット140によってリアルタイムでメモリに記録されていたのでもよい。
【0017】
素描300は4つの素描バージョンのオブジェクト308から320からなる。前記バージョン308〜302のおのおのは、輪郭線324〜336のうちのそれぞれ一つによって境界が定められており、分割線340〜352のうちのそれぞれ一つの分割線を含んでいる。この例では、前記オブジェクトまたは部品のおのおのは、タブパネルを表している。これは、集積回路(IC)設計者メニューの一区画であって、関係するオプションおよびコントロールのセットを表示するために選択することができる。
【0018】
素描の適合により、輪郭線324〜336の各辺はまっすぐにされて、ベクトル画像のような対応する参照オブジェクトに似させられる。関連する参照オブジェクトは、垂直もしくは水平の直線であってもよいし、あるいは参照オブジェクト356〜368のうちのいずれかのような長方形であってもよい。参照オブジェクト356〜368はROM120またはRAM130に保存されており、規格化されたオブジェクトと同一でなく相似(比例的に大きさを変えてある)であってもよい。適合はまた、輪郭線324〜336の向かい合う辺を平行にする。分割線340〜352は同様にまっすぐにされ、それぞれの輪郭の辺と平行にされる。ただし、参照ベクトル画像が円の場合のように直線でない、あるいは平行でない線をもつ場合には、適合は素描バージョンを、適宜線をまっすぐにしたり平行にしたりしないようにして参照オブジェクトに似させる。素描と一つまたは複数の参照オブジェクトとの一致を調べる工程はTranに記載されている。
【0019】
図3がさらに示しているように、正規化された素描を使って、オブジェクト間の包含を定義するツリー階層構造372が生成される。素描はもともとはビットマップ画像としてスキャンされるなり記録されるなりしたものである。適合すなわち正規化によって素描は一つまたは複数の参照オブジェクトに適合するよう修正され、参照オブジェクトはベクトル画像であることもあるが、適合された素描は好ましくはビットマップ形式のままである。Tommへの米国特許第6,246,403号はビットマップ画像間の包含のツリー表現を形成しているので、この技法を正規化された素描に適用してもよい。ここでは、ツリー階層構造372はXMLのような階層的な、構造化されたマークアップ言語において実装されている。当該GUIの目標プラットフォームのためのアプリケーションプログラムインターフェース(API)は容易にプログラムできる。
【0020】
図4は、本発明に基づく、素描されたオブジェクトの注釈および素描400内でのオブジェクトの重なり合いを図示している。素描バージョン402は分割線404をもち、任意的に「panel」のデータ型406をもつ。このデータ型は対応するオブジェクトが図3との関連で議論したようなタブパネルであることを示しうる。再び図4を参照すると、素描バージョン408はスタック順すなわち「z順」の印410、この例では数字の「1」を用いて注釈が付けられている。したがって、数字の「1」はこの素描バージョンに対応するオブジェクトの、それぞれ優先度の注釈を付けられた他の素描バージョンのオブジェクトに対する優先度を表す。特に、スタック順が2以上のオブジェクトがパネル406オブジェクトと交わる場合(素描の際に、あるいは将来のいつか、たとえば作成されるGUI内でウィンドウの移動により)、パネル406は優先度が低いほうのウィンドウの上に重なる優先度をもつ。よって優先度が高いほうのパネル406は重ねられたウィンドウを、両オブジェクトの重なり合うすなわち交わっている部分にわたって隠す。分割線404は素描されたオブジェクト402をラベル領域412とコンテンツ領域414とに分割する。ラベル領域はコンテンツ領域より小さくなっている。「panel」の語は、該「panel」の語がコンテンツ領域414ではなくラベル領域412内に位置しているおかげでデータ型として認識される。同じことは、優先度の印にも当てはまり、これもラベル領域内に位置している場合に優先度の印として認識される。これと対照的に、Tommの記載する注釈付けプロセスは、箱形の境界上に注釈を導入するために箱形の境界を定めるための反復キャラクタが中断されるという、より難しいものとなっている。
【0021】
「button」のデータ型418をもつ素描バージョン416はパネル406と交わるが、スタック順の印は欠いている。バージョン416はバージョン408のコンテンツ領域内にあるので、バージョン416はバージョン408内に含まれているものとして認識され、そのため生成されるGUI内ではバージョン416に対応するオブジェクトはバージョン408に対応するオブジェクト内に画面上で含まれる。同じように、素描バージョン402内に示されている素描バージョンに対応するオブジェクトのすべては作成されるGUI内ではパネル406内に画面上で含まれる。代替的な実施例では、交わりのあるバージョンの包含は、一方または両方のバージョンが優先度の印を欠いている場合、データ型に基づいて解決される。たとえば「button」は他のどんなデータ型よりも内部に含まれている必要があるなどとすることができる。
【0022】
図4においてさらに示されているように、ボタンバージョン418はフレームバージョン422のコンテンツ領域420内に含まれており、よって生成されるGUIにおいてもボタンはフレームで囲まれる。「list」バージョンは前記フレームバージョン422に対応するオブジェクトの上に重なる優先度をもつリストを示しているが、これは両者の優先度の印424,426のためである。
【0023】
これらの規則は単に例示的であって、本発明の意図される範囲を限定するものではない。
【0024】
図5は、本発明のある実施形態500においてスキャナおよび光学式文字認識(OCR)とともに用いた動作を示している。参照オブジェクトが電子的記憶装置ROM120またはRAM130にあらかじめ記憶される(ステップ510)。スキャナ160は素描をスキャンしてRAM130に入力する(ステップ520)。素描同定手段210がオブジェクトの素描されたバージョンをたとえばあらかじめ保存された一連の参照ベクトルと当該素描もしくは当該素描の一部分との間の最良一致を決定することによって同定する(ステップ530)。同定された素描バージョンは、該素描を正規化するために、素描正規化手段220によって参照オブジェクトに適合させられ、光学式文字認識(OCR)を通じて注釈のデータ型および優先度の印が認識される(ステップ540)。階層構造決定手段230が次いで、作成されるGUIにおけるオブジェクトの適合されたバージョンどうしの間での画面上の包含の階層構造を決定する。データ型、優先度およびその他の注釈は、Tommにおいて詳述されるようにレイアウトを定義する画面座標とともに、生成されるツリー階層構造に含められる(ステップ550)。記述生成器240は、目標プラットフォーム上にGUIを作成する際にAPIによって使用可能な形でユーザーインターフェース記述を生成する(ステップ560)。その後素描は編集されか、あるいは新しい素描が作成されるかし(ステップ570)、ステップ520のスキャンにかけられる。
【0025】
図6は、ペン/デジタイズユニットおよび素描エディタとともに用いた本発明の動作を示している。図5と同一のステップは同じ参照符号を保持している。ユーザーはペンを操作することによって素描を行う。ペンはたとえばライトペンまたはTranにあるように電磁場によってその動きが感知されるペンでありうる。ペン/デジタイザー140のデジタイザーがペンの動きによってたどられるそれぞれの画面座標を記録する(ステップ615)。これは新しい素描をなすこともあるし、あるいは修正中の以前に処理されたスケッチへの追加をなすこともある。記録はリアルタイムで起こる(ステップ620)。素描されたバージョンは次いで、上述したのと同様に、同定され(ステップ530)、正規化され(ステップ640)、やはり上記したように階層構造が決定され、ユーザーインターフェース記述が生成される(ステップ550〜560)。素描はRAM130に保存され(ステップ670)、新しい素描が処理のために準備されることもできる(ステップ680、NO分枝)。そうでなければ、素描がその後編集される場合(ステップ680)、素描に追加をする際にユーザーの助けとなるよう、LCD150上に表示されてもよい(ステップ690)。あるいはまた、編集が素描中のオブジェクトの削除、変更または移動を伴うならば、画面上でグラフィックオブジェクトを対話的に編集するために既知の仕方でメニューを操作するために、ペンにボタンが設けられていてもよいし、あるいは他の入力デバイスが実装されていてもよい。
【0026】
本発明の好ましい実施形態と考えられるものが示され、記述されてきたが、もちろん、形態または詳細におけるさまざまな修正および変更が本発明の精神から外れることなく容易になし得ることは理解されるであろう。したがって、本発明は記述され、示された厳密な形に限定されるのではなく、付属の特許請求の範囲内にはいりうるあらゆる修正をカバーするものと解釈されるべきことが意図されている。
【図面の簡単な説明】
【0027】
【図1】本発明に基づくユーザーインターフェース記述生成装置のブロック図である。
【図2】本発明に基づくプログラムのブロック図である。
【図3】本発明に基づく、素描の適合と、素描のユーザーインターフェース記述への変換との概念図である。
【図4】本発明に基づくGUIの素描を描いた図である。
【図5】スキャナおよび光学式文字認識(OCR)とともに用いる本発明の動作を図示するフロー図である。
【図6】ペン/デジタイズユニットおよび素描エディタとともに用いる本発明の動作を図示するフロー図である。

【特許請求の範囲】
【請求項1】
作成されるべきグラフィックユーザーインターフェース(GUI)を表す諸オブジェクトの手書き素描を調べて前記オブジェクトの素描バージョンを同定するための素描同定器と、
同定された素描バージョンをそれぞれの参照画像に似るよう適合させるための素描正規化器と、
前記適合されたバージョンから、該適合されたバージョンどうしの間の相対的な包含の階層構造を決定するための階層構造決定器と、
前記階層構造から前記GUIを作成するためのユーザーインターフェース記述を生成するための記述生成器、
とを有することを特徴とする、ユーザーインターフェース記述生成装置。
【請求項2】
前記参照画像がベクトル画像を有することを特徴とする、請求項1記載の装置。
【請求項3】
前記素描正規化器が線をまっすぐにし、線を互いに平行にするよう構成されていることを特徴とする、請求項1記載の装置。
【請求項4】
前記手書き素描がキャラクタを含み、前記素描同定器が光学式文字認識(OCR)を適用するよう構成されていることを特徴とする、請求項1記載の装置。
【請求項5】
前記記述生成器がさらに、前記適合バージョンのレイアウトを含むユーザーインターフェース記述を生成するよう構成されていることを特徴とする、請求項1記載の装置。
【請求項6】
前記記述生成器が前記ユーザーインターフェース記述を前記GUIのための目標プラットフォームに固有なフォーマットにして生成するよう構成されていることを特徴とする、請求項1記載の装置。
【請求項7】
前記記述生成器が前記記述を階層的な、構造化されたマークアップ言語において生成するよう構成されていることを特徴とする、請求項1記載の装置。
【請求項8】
電子的記憶媒体と、
素描を作成するためのハンドヘルドペンと、
素描が作成されていくにつれてリアルタイムで前記媒体中に素描を記録するためのデジタイザー、
とをさらに有することを特徴とする、請求項1記載の装置。
【請求項9】
当該装置が前記適合バージョンを含んでいる正規化された素描を前記媒体中に保存し、当該装置がさらに前記媒体中に保存されている正規化された素描を編集するための素描エディタを有しており、前記デジタイザーがペンからの入力に従って前記媒体中に保存されている前記正規化された素描に追補を行うよう構成されている、ことを特徴とする、請求項8記載の装置。
【請求項10】
前記参照画像を保存するための電子的な記憶媒体をさらに有しており、
前記素描同定器が前記素描バージョンを同定する際に前記保存されている参照画像を使うよう構成されていることを特徴とする、請求項1記載の装置。
【請求項11】
前記記述生成器が、前記素描内のオブジェクトの素描バージョンへの注釈に基づいたスタック順を反映するようユーザーインターフェース記述を生成するよう構成されており、前記注釈が、注釈を付けられたオブジェクトの少なくとも一つの他のオブジェクトに対する、当該GUIにおいて二つのオブジェクトのうちのどちらが該二つのうちの他方の上に重なる優先度をもつかについての優先度を示すことを特徴とする、請求項1記載の装置。
【請求項12】
前記注釈があるオブジェクトの前記素描バージョン内の分割線に基づく優先度を示していることを認識するようさらに構成されていることを特徴とする、請求項11記載の装置。
【請求項13】
作成されるべきグラフィックユーザーインターフェース(GUI)を表す素描を作成するためにオブジェクトを手書きで素描し、
自動的に:
前記素描を調べて前記オブジェクトの素描バージョンを同定し、
同定された素描バージョンをそれぞれの参照画像に似るよう適合させ、
前記適合されたバージョンから、該適合されたバージョンどうしの間の相対的な包含の階層構造を決定し、
前記階層構造から前記GUIを作成するためのユーザーインターフェース記述を生成する、
機能を実行する、
ステップを有することを特徴とする、ユーザーインターフェース記述生成方法。
【請求項14】
前記素描ステップが、前記オブジェクトの少なくとも一つへの注釈として、前記GUIにおけるオブジェクトの機能のラベルを素描するステップをさらに含むことを特徴とする、請求項13記載の方法。
【請求項15】
前記素描ステップが、オブジェクトの前記素描バージョンの少なくとも一つへの注釈として、そのオブジェクトの他のオブジェクトのうちの少なくとも一つに対するスタック順のそれぞれの指標を素描するステップをさらに含んでおり、該指標が前記GUIにおいて二つのオブジェクトのうちのどちらが該二つのうちの他方の上に重なる優先度をもつかを示すものであることを特徴とする、請求項13記載の方法。
【請求項16】
あるオブジェクトの素描バージョンの少なくとも一つがあるオブジェクトの別の素描バージョンと交わり、前記素描ステップがさらに、二つの互いに交わるバージョンのうちの少なくとも一つへの注釈として前記GUIにおけるそれぞれのオブジェクトの機能のラベルを素描するステップをさらに含むことを特徴とする、請求項13記載の方法。
【請求項17】
前記階層構造決定ステップが、前記二つの互いに交わるオブジェクトのそれぞれのオブジェクトを前記注釈素描ステップにおいて作成された注釈に基づいて前記階層構造内で相対的に位置づけることを特徴とする、請求項16記載の方法。
【請求項18】
前記素描ステップが:
前記素描を作成するために手でペンを操作し、
前記素描が作成されていくにつれてリアルタイムで前記素描を媒体に記録する、
ステップをさらに有することを特徴とする、請求項13記載の方法。
【請求項19】
前記調べるステップにおいて実行される同定において助けとするために前記参照画像をあらかじめ保存しておくステップをさらに有することを特徴とする、請求項13記載の方法。
【請求項20】
ユーザーインターフェース記述を生成するためにプロセッサによって実行されるコンピュータプログラムが保存されているコンピュータ可読媒体を有するコンピュータプログラムプロダクトであって、前記コンピュータプログラムが:
作成されるべきグラフィックユーザーインターフェース(GUI)を表す諸オブジェクトの手書き素描を調べて前記オブジェクトの素描バージョンを同定するための命令のシーケンスと、
同定された素描バージョンをそれぞれの参照画像に似るよう適合させるための命令のシーケンスと、
前記適合されたバージョンから、該適合されたバージョンどうしの間の相対的な包含の階層構造を決定するための命令のシーケンスと、
前記階層構造から前記GUIを作成するためのユーザーインターフェース記述を生成するための命令のシーケンス、
とを有することを特徴とするコンピュータプログラムプロダクト。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2007−511814(P2007−511814A)
【公表日】平成19年5月10日(2007.5.10)
【国際特許分類】
【出願番号】特願2006−534893(P2006−534893)
【出願日】平成16年10月12日(2004.10.12)
【国際出願番号】PCT/IB2004/052069
【国際公開番号】WO2005/038648
【国際公開日】平成17年4月28日(2005.4.28)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】