(57)【要約】      （修正有）【課題】アプリケーションをリビルドすることなく、アプリケーションに連動するプロトタイプをテストする、ユーザー端末によって行われるプロトタイプテスト方法及びその装置を提供する。【解決手段】プロトタイプコントローラーを含めてビルドされたアプリケーションを活性化し、プロトタイプコントローラーがプロトタイプをロードして、アプリケーションの画面のうち、プロトタイプコントローラーに割り当てられたプロトタイプ領域上に表示できるようにセットする。アプリケーションに対する入力イベントが生成されると、プロトタイプコントローラーが入力イベントの提供を最優先的に受け、プロトタイプコントローラーが提供を受けた入力イベントをアプリケーションにそのまま伝達するか、或いは、ロードされたプロトタイプに伝達するかを判断する。【選択図】図２
2019053705.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションをリ−ビルド（ｒｅ−ｂｕｉｌｄ）することなく、前記アプリケーションに連動するプロトタイプ（ｐｒｏｔｏｔｙｐｅ）をテストする、前記アプリケーションがインストールされたユーザー端末によって行われるプロトタイプテスト方法において、
プロトタイプコントローラーが含まれてビルドされた前記アプリケーションを活性化する段階と、
前記プロトタイプコントローラーが前記プロトタイプをロードして、前記アプリケーションの画面のうち、前記プロトタイプコントローラーに割り当てられたプロトタイプコントローラー領域の少なくとも一部の領域であるプロトタイプ領域上に表示できるようにセットする段階と、
前記アプリケーションに対する入力イベントが生成されると、前記プロトタイプコントローラーが前記入力イベントのうちの少なくとも一部の提供を最優先的に受ける段階と、
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階と
を含んでなる、プロトタイプテスト方法。
【請求項２】
前記プロトタイプコントローラーは、前記アプリケーションの少なくとも一部の領域に形成された最上段の透明画面を含むものである、請求項１に記載のプロトタイプテスト方法。
【請求項３】
前記アプリケーションを活性化する段階は、
前記プロトタイプコントローラーが非活性化された状態で前記アプリケーションが活性化されて第１画面を表示する段階と、
前記アプリケーションの第２画面を表示しながら、前記プロトタイプコントローラーを活性化する段階と、
前記アプリケーションの第２画面から他の画面に転換されながら、前記プロトタイプコントローラーが非活性化される段階と
を含む、請求項１に記載のプロトタイプテスト方法。
【請求項４】
前記アプリケーションを活性化する段階は、
前記プロトタイプコントローラーが非活性化された状態で前記アプリケーションが活性化される段階と、
前記アプリケーションに、既に指定された入力イベントが発生する場合、前記プロトタイプコントローラーを活性化する段階と、
前記プロトタイプコントローラーの非活性化要件を満たした場合、前記プロトタイプコントローラーが非活性化される段階と
を含む、請求項１に記載のプロトタイプテスト方法。
【請求項５】
前記アプリケーションを活性化する段階は、
前記プロトタイプコントローラーが非活性化された状態で前記アプリケーションが活性化される段階と、
前記アプリケーションの状態が、既に指定された状態に進入する場合、前記プロトタイプコントローラーを活性化する段階と、
前記アプリケーションの状態が、前記既に指定された状態から他の状態に変更される場合、前記プロトタイプコントローラーが非活性化される段階と
を含む、請求項１に記載のプロトタイプテスト方法。
【請求項６】
前記セットする段階は、
前記プロトタイプコントローラーが前記アプリケーションからメッセージの提供を受ける段階と、
前記プロトタイプコントローラーが、前記提供されたメッセージを用いて、ロードされるべきプロトタイプを決定する段階と、
前記プロトタイプコントローラーが、前記決定されたプロトタイプをユーザー入力なしでロードする段階と
を含む、請求項１に記載のプロトタイプテスト方法。
【請求項７】
前記セットする段階は、
プロトタイプストレージに格納された複数のプロトタイプのうち、前記ユーザー端末のディスプレイサイズにマッチングされるプロトタイプの少なくとも一つをロードする段階を含む、請求項１に記載のプロトタイプテスト方法。
【請求項８】
前記セットする段階は、
前記ロードされたプロトタイプから前記プロトタイプの領域に対する情報を得る段階を含む、請求項１に記載のプロトタイプテスト方法。
【請求項９】
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階は、
前記プロトタイプコントローラーがプロトタイプロードを指し示すユーザー入力の提供を受け、プロトタイプストレージに格納されたプロトタイプの少なくとも一つが選択されるための画面を表示する段階と
前記選択されたプロトタイプをロードし、既存にロードされたプロトタイプをアンロードする段階と
を含む、請求項１に記載のプロトタイプテスト方法。
【請求項１０】
前記プロトタイプロードを指し示すユーザー入力は、前記アプリケーションから入力されていないユーザー入力のいずれかである、請求項９に記載のプロトタイプテスト方法。
【請求項１１】
前記セットする段階は、
前記プロトタイプコントローラーが第１プロトタイプ及び第２プロトタイプをロードする段階と、
前記プロトタイプコントローラーが、前記第１プロトタイプ及び前記第２プロトタイプを、それぞれの優先順位に基づいて少なくとも一部の領域が重なるように積層して表示する段階とを含み、
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階は、
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記第１プロトタイプ及び前記第２プロトタイプに伝達する段階と
を含む、請求項１に記載のプロトタイプテスト方法。
【請求項１２】
前記プロトタイプコントローラーが、既に指定されたユーザー入力がある場合、前記第１プロトタイプと前記第２プロトタイプの優先順位を変更する段階をさらに含む、請求項１１に記載のプロトタイプテスト方法。
【請求項１３】
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階は、
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達するか、或いは前記アプリケーションにそのまま伝達するとともに前記ロードされたプロトタイプにも伝達する段階を含み、
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階は、
前記プロトタイプ領域に対するユーザー入力を、前記ロードされたプロトタイプに伝達する段階と、
前記プロトタイプ領域外の前記プロトタイプコントローラー領域に対するユーザー入力を、前記アプリケーションにそのまま伝達する段階と、
ユーザー入力を除いたすべての入力イベントを、前記アプリケーションにそのまま伝達するとともに前記ロードされたプロトタイプにも伝達する段階と
を含む、請求項１に記載のプロトタイプテスト方法。
【請求項１４】
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階は、
前記ロードされたプロトタイプに前記入力イベントを伝達することに対する応答として前記プロトタイプによって生成された信号に基づいて、前記プロトタイプコントローラーが非活性化される段階を含む、請求項１に記載のプロトタイプテスト方法。
【請求項１５】
前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階は、
前記ロードされたプロトタイプに前記入力イベントを伝達したことに対する応答として前記プロトタイプによって生成された信号に基づいて、前記プロトタイプコントローラーの領域が変更される段階を含む、請求項１に記載のプロトタイプテスト方法。
【請求項１６】
アプリケーションをリ−ビルド（ｒｅ−ｂｕｉｌｄ）することなく、前記アプリケーションに連動するプロトタイプ（ｐｒｏｔｏｔｙｐｅ）をテストする、前記アプリケーションがインストールされたユーザー端末によって行われる方法において、
前記プロトタイプを前記アプリケーションの画面のうちの少なくとも一部の領域であるプロトタイプ領域に前記アプリケーションの上位層として表示して、前記アプリケーションの前記プロトタイプ領域に対する入力イベントを前記プロトタイプが先占するが、前記プロトタイプは透過領域を含むものである段階と、
前記透過領域に対する入力イベントを前記アプリケーションにそのまま伝達する段階と
を含む、プロトタイプテスト方法。
【請求項１７】
前記透過領域が透明な領域である、請求項１に記載のプロトタイプテスト方法。
【請求項１８】
前記プロトタイプはスクリーンショット領域をさらに含み、
前記スクリーンショット領域は、前記プロトタイプの表示時点の前記アプリケーションの画面のうち、前記スクリーンショット領域のイメージで満たされる領域である、請求項１に記載のプロトタイプテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存のアプリケーションに連動するプロトタイプのテスト方法及びその装置に関する。より詳しくは、アプリケーションをリ−ビルド（ｒｅ−ｂｕｉｌｄ）することなく、前記アプリケーションに連動するプロトタイプ（ｐｒｏｔｏｔｙｐｅ）をテストする、前記アプリケーションがインストールされたユーザー端末によって行われる方法及びそのユーザー端末に関する。
【背景技術】
【０００２】
スマート機器（Ｓｍａｒｔ  Ｄｅｖｉｃｅ）などのユーザー端末にインストールされるアプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）の製作者は、ユーザーの利便性及び直観性の増大のために、グラフィカルユーザーインターフェース（ＧＵＩ、Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）デザインに多くの努力を傾けており、アプリケーションをリリースする前に、様々なＧＵＩプロトタイプ（Ｐｒｏｔｏｔｙｐｅ）を製作して利便性及び直観性のテストを行う。
【０００３】
従来のプロトタイプの製作は、デザイナーが考えているグラフィカルユーザーインターフェースのデザインをパワーポイントなどの文書で作成してアプリケーション開発者に説明し、アプリケーション開発者は、自分が理解したグラフィカルユーザーインターフェースのデザインを実際に実現してプロトタイプを製作した。ところが、この過程でデザイナーの考えがプログラマに正確に伝達されない問題が発生し、アプリケーション開発者も自分の理解を基にグラフィカルユーザーインターフェースのデザインを実現するから、最終的に製作したプロトタイプがデザイナーの考えと相違してしまい、再作業を行わなければならない場合が頻繁である。
【０００４】
このような従来のＧＵＩプロトタイプ製作方法の問題点を解決するためのものがプロトタイピングツール（Ｐｒｏｔｏｔｙｐｉｎｇ  Ｔｏｏｌ）である。このようなプロトタイピングツールは、例えば、グラフィカルユーザーインターフェースのデザインに適用される様々なインタラクション（ｉｎｔｅｒａｃｔｉｏｎ）を定義する方式でプロトタイプを製作することができるプログラムツールであって、デザイナーや一般ユーザーが使用方法だけ熟知すれば、プロトタイプを迅速かつ簡単に製作することができるように助ける。
【０００５】
一方、アプリケーションのアップデートまたはリリース前の一部の画面に対するＵＩプロトタイプなどの作業において、既にリリースされてユーザーによって使用されているか、ほとんど開発が完了したアプリケーションを対象に一部の画面または一部の機能のみをアップデートする場合、既存のアプリケーションに連動するプロトタイプのテストが求められる。たとえば、アップデート対象ではない画面または機能との自然な画面転換が行われるのか、既存のＧＵＩとよく調和されるのかなどを様々なプロトタイプを用いてテストする方法の提供が求められる。
【０００６】
ところが、このようなプロトタイプテストのためにプロトタイプを取り替えるたびに連動対象アプリケーションの開発者の助けを受けることは、業務上非効率を引き起こす。したがって、アプリケーションの開発者の助けを最小化して、前記アプリケーションに連動するプロトタイプ（ｐｒｏｔｏｔｙｐｅ）をテストする方法の提供が求められる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明が解決しようとする技術的課題は、テストしようとするプロトタイプを取り替えるためのアプリケーション開発者の助けなしでプロトタイプをテストすることができる、既存のアプリケーションに連動するプロトタイプのテスト方法、及びそのプロトタイプのテスト方法を行うユーザー端末を提供することにある。
【０００８】
本発明が解決しようとする他の技術的課題は、連動対象のアプリケーションにプロトタイプコントローラーモジュールをリンク（ｌｉｎｋ）して前記アプリケーションをビルドすることにより、ユーザー操作及びセンサー入力などのフィードバックに関連したアプリケーションとプロトタイプとの連動を可能にする、プロトタイプテスト方法、及びそのプロトタイプテスト方法を行うユーザー端末を提供することにある。
【０００９】
本発明が解決しようとする別の技術的課題は、アプリケーションのプロトタイプ領域に前記アプリケーションの上位層としてプロトタイプを積層して、ユーザー操作やセンサー入力などのフィードバックに関連したアプリケーションとプロトタイプとの連動を可能にする、プロトタイプテスト方法、及びそのプロトタイプテスト方法を行うユーザー端末を提供することにある。
【００１０】
本発明の技術的課題は上述した技術的課題に限定されず、上述していない別の技術的課題は以降の記載から本発明の技術分野における通常の技術者に明確に理解できるだろう。
【課題を解決するための手段】
【００１１】
アプリケーションをリ−ビルド（ｒｅ−ｂｕｉｌｄ）することなく、前記アプリケーションに連動するプロトタイプ（ｐｒｏｔｏｔｙｐｅ）をテストする、前記アプリケーションがインストールされたユーザー端末によって行われるプロトタイプテスト方法において、プロトタイプコントローラーが含まれてビルドされた前記アプリケーションを活性化する段階と、前記プロトタイプコントローラーが前記プロトタイプをロードして、前記アプリケーションの画面のうち、前記プロトタイプコントローラーに割り当てられたプロトタイプコントローラー領域の少なくとも一部の領域であるプロトタイプ領域上に表示できるようにセットする段階と、前記アプリケーションに対する入力イベントが生成されると、前記プロトタイプコントローラーが前記入力イベントのうちの少なくとも一部の提供を最優先的に受ける段階と、前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する段階とを含んでなる、プロトタイプテスト方法。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る既存のアプリケーションに連動するプロトタイプのテストシステムを示す構成図である。
【図２】本発明の他の実施形態に係る既存のアプリケーションに連動するプロトタイプのテスト方法を示すフローチャートである。
【図３】図２を参照して説明したプロトタイプテスト方法の一部の動作を詳細に説明するための詳細フローチャートである。
【図４】図２を参照して説明したプロトタイプテスト方法の他の一部の動作を詳細に説明するための詳細フローチャートである。
【図５】図２の方法によるときにプロトタイプとプロトタイプコントローラーとの間、及びプロトタイプコントローラーとアプリケーションとの間でコミュニケーションが行われることを説明するための概念図である。
【図６】図２の方法においてプロトタイプコントローラーが複数のプロトタイプを積層してテストすることを説明するための概念図である。
【図７】図２の方法においてプロトタイプコントローラーが複数のプロトタイプを互いに異なる位置に配置してテストすることを説明するための概念図である。
【図８】本発明の別の実施形態に係る既存のアプリケーションに連動するプロトタイプのテスト方法のフローチャートである。
【図９】図８の方法によるときにプロトタイプ及びアプリケーションで入力イベントが処理される方法を説明するための概念図である。
【図１０】図８の方法においてプロトタイプコントローラーが複数のプロトタイプを積層してテストすることを説明するための概念図である。
【図１１】図８の方法においてプロトタイプコントローラーが複数のプロトタイプを積層してテストすることを説明するための概念図である。
【図１２】図８の方法においてプロトタイプがスクリーンショット領域を持つ場合の動作を説明するための概念図である。
【図１３】本発明の別の実施形態に係るプロトタイプテスト機能を行うユーザー端末のブロック構成図である。
【発明を実施するための形態】
【００１３】
図１を参照して、本発明の一実施形態に係るプロトタイプテストシステムの構成及び動作を説明する。図１に示すように、本実施形態に係るプロトタイプテストシステムは、プロトタイプストレージ４００及びユーザー端末１００を含む。
【００１４】
プロトタイプストレージ４００は、プロトタイプ著作装置２００によって生成されたプロトタイプ１０を格納する、ネットワーク３００に接続されたストレージ装置である。プロトタイプ１０は、プロトタイプ著作装置２００にインストールされたプロトタイプ著作ツール（ＴＯＯＬ）によって生成されるデータであって、ユーザー端末１００にインストールされたプロトタイプ再生ツール、またはユーザー端末１００にインストールされたアプリケーションに含まれているプロトタイプコントローラーによって解釈できるデータである。
【００１５】
前記プロトタイプ著作装置２００は、例えば、タブレット、スマートフォン、ＰＣ、ノートＰＣなどのコンピューティングデバイスであって、ユーザーアプリケーションまたは前記コンピューティングデバイスの組み込みソフトウェアであるプロトタイプ著作ツール（図示せず）がインストールされたものであり得る。
【００１６】
ユーザー端末１００は、例えば、タブレット、スマートフォン、ノートパソコン、ＰＣなどのコンピューティングデバイスであって、ユーザーのアプリケーションソフトウェアであるプロトタイプ再生ツール（図示せず）、またはテスト対象プロトタイプに連動するアプリケーション（図面には「ＡＰＰ」と表示、以下同じ）３０がインストールされたものであり得る。前記プロトタイプ再生ツールは、プロトタイプ１０を解釈し、プロトタイプ１０に定義されたユーザーインターフェースを実現するユーザーアプリケーションソフトウェアであり得る。
【００１７】
前記プロトタイプコントローラーもプロトタイプ１０を解釈し、プロトタイプ１０に定義されたユーザーインターフェースを実現する。但し、前記プロトタイプコントローラーは、前記プロトタイプ再生ツールとは異なり、アプリケーション３０にリンクされたアプリケーション３０の内部モジュールである。すなわち、アプリケーション３０のビルド（ｂｕｉｌｄ）時点で、前記プロトタイプコントローラーがアプリケーション自体のモジュールにリンクされてコンパイルされる。
【００１８】
前記プロトタイプコントローラーは、プロトタイプ１０をロード（ｌｏａｄ）して表示する。前記プロトタイプコントローラーは、アプリケーション３０に対する入力イベントが生成されると、前記入力イベントのうちの少なくとも一部の提供を最優先的に受ける。アプリケーション３０に対する入力イベントの提供を最優先的に受けるために、前記プロトタイプコントローラーは、アプリケーション３０の上段に積層された画面を含む。
【００１９】
前記プロトタイプコントローラーは、提供された入力イベントをアプリケーション３０にそのまま伝達するか、或いはロードされたプロトタイプ１０に伝達する。例えば、前記プロトタイプコントローラーは、プロトタイプ１０の領域に対するタッチ入力イベントをプロトタイプ１０に伝達する。また、プロトタイプコントローラーは、プロトタイプ１０の領域以外の領域に対するタッチ入力イベントをアプリケーション３０にそのまま伝達する。また、プロトタイプコントローラーは、タッチ入力以外の入力イベントをプロトタイプ１０及びアプリケーション３０の両方ともに伝達することができる。
【００２０】
前記プロトタイプコントローラーの画面の少なくとも一部は透明（ｔｒａｎｓｐａｒｅｎｔ）である。前記プロトタイプコントローラーの画面全体が透明であることが好ましい。これは、デザイン及びユーザー感性などの要素を考慮したテストが行われるために、プロトタイプ１０の画面及びアプリケーションの画面だけ表示されることが好ましいからである。
【００２１】
前記プロトタイプコントローラーの様々な動作については、図２乃至図７を参照してより詳細に後述する。
【００２２】
本実施形態に係るプロトタイプテストシステムは、プロトタイプストレージ４００を除いて構成してもよい。このとき、プロトタイプ著作装置２００によって生成されたプロトタイプ１０は、ユーザー端末１００の格納手段に格納できる。このとき、前記プロトタイプは、前記格納手段に格納されたプロトタイプ１０をロード（ｌｏａｄ）することができる。
【００２３】
図２は本発明の他の実施形態に係る既存のアプリケーションに連動するプロトタイプのテスト方法を示すフローチャートである。
【００２４】
段階Ｓ１０２で、アプリケーションがユーザー端末にインストールされる。既に説明したように、前記アプリケーションは、テスト対象のプロトタイプに連動するものであり、プロトタイプコントローラーが含まれてビルドされたものである。前記「ビルド」は「コンパイル」と類似する意味で理解できるだろう。
【００２５】
段階Ｓ１０４で、プロトタイプ著作ツールを用いてプロトタイプが著作され、段階Ｓ１０６で、生成されたプロトタイプがプロトタイプストレージに格納される（Ｓ１０６）。一実施形態において、前記著作されたプロトタイプは、どのサイズのディスプレイのためのものかに関する情報を含むか、或いはプロトタイプが占める領域のサイズに関する情報を含むことができる。
【００２６】
段階Ｓ１０８で、前記アプリケーションが活性化される。本明細書において、アプリケーションが「活性化」されるというのは、画面に表示され、ユーザー端末の入力イベントの伝達を受ける対象になることを意味する。前記入力イベントは、タッチ入力などのユーザー入力を含む。前記入力イベントは、前記ユーザー端末のセンサー測定値、前記ユーザー端末のネットワークインターフェースが外部装置から受信したデータをさらに含むことができる。
【００２７】
一実施形態において、アプリケーションが活性化されると、自動的に前記プロトタイプコントローラーが活性化できる。他の実施形態では、段階Ｓ１１０で、プロトタイプコントローラーの活性化が必要な状況であるかどうかが判定される。すなわち、このような場合、アプリケーションが活性化されるときに常にプロトタイプコントローラーが活性化されるのではなく、特定の状況でのみプロトタイプコントローラーが活性化できる。以下、これに関連していくつかの実施形態を提示する。
【００２８】
第１実施形態において、前記プロトタイプコントローラーが非活性化された状態で前記アプリケーションが活性化されて第１画面を表示し、前記アプリケーションの第２画面を表示しながら、前記プロトタイプコントローラーを活性化し、前記アプリケーションの第２画面から他の画面に転換されながら、前記プロトタイプコントローラーが非活性化される。前記第２画面は、特定のタブが選択されるときに見られる画面なのか、特定のメニューが選択されるときに見られる画面なのか、特定のボタンが押されたときに見られる画面なのか、特定のアイコンが選択されたときに見られる画面なのか、特定のリンクが選択されたときに見られる画面なのか、或いは特定の識別子を持つ画面であり得る。例えば、前記アプリケーションがモバイルメッセンジャーであり、ダイアログボックスでのＵＩプロトタイプをテストする状況で、友人リストが表示される画面である前記第１画面では、前記プロトタイプコントローラーが非活性化されて既存のモバイルメッセンジャーの動作と差異がないが、ダイアログボックスである第２画面に転換されると、前記プロトタイプコントローラーが活性化されてプロトタイプがロードされ、前記プロトタイプをテストすることができるようになる。このとき、ダイアログボックスから抜け出すと、前記プロトタイプコントローラーが非活性化される。前記プロトタイプコントローラーの非活性化は、前記アプリケーションのプログラムコードによって実現されるか、或いは前記プロトタイプコントローラーが画面転換を感知して自ら終了することにより行われ得る。
【００２９】
第２実施形態において、前記プロトタイプコントローラーが非活性化された状態で前記アプリケーションが活性化され、前記アプリケーションに既に指定された入力イベントが発生する場合、前記プロトタイプコントローラーを活性化し、前記プロトタイプコントローラーの非活性化要件を満足するとき、前記プロトタイプコントローラーが非活性化される。すなわち、本実施形態において、前記アプリケーションに特定の入力があるときのプロトタイプをテストする場合、その特定の入力があるときにプロトタイプコントローラーを活性化する。前記特定の入力は、ユーザーの入力、ユーザー端末に備えられたセンサーの測定値検知、ユーザー端末に備えられたネットワークインターフェースを介した外部装置からの特定データの受信などを含む。例えば、前記アプリケーションがモバイルメッセンジャーであり、マイクセンサーに音が入力されるときに表示される画面であるプロトタイプをテストしようとする場合、平常時には、前記プロトタイプコントローラーを非活性化させておくことにより既存のモバイルメッセンジャーの動作と差異がないが、マイクセンサーに音が入力されると、前記プロトタイプコントローラーが活性化されて音入力状態などを表示するプロトタイプがロードされ、前記プロトタイプをテストすることができるようになる。前記プロトタイプコントローラーは、前記入力イベントの発生後に直ちに非活性化できる。すなわち、この場合、前記プロトタイプコントローラーの非活性化要件は、前記入力イベントがそれ以上発生しないことである。前記プロトタイプコントローラーは、前記入力イベントの発生後に直ちに非活性化されず、既に指定された非活性化要件を満たすときに非活性化されることも可能である。例えば、第１ジェスチャーの入力が検知された場合にはプロトタイプコントローラーが活性化され、第２ジェスチャーの入力が検知された場合にはプロトタイプコントローラーが非活性化できる。前記第１ジェスチャー及び前記第２ジェスチャーは、タッチ入力によるジェスチャーまたは前面カメラなどによって検知される動作ジェスチャーであり得る。
【００３０】
第３実施形態において、前記プロトタイプコントローラーが非活性化された状態で前記アプリケーションが活性化され、前記アプリケーションの状態が既に指定された状態に進入する場合には、前記プロトタイプコントローラーを活性化し、前記アプリケーションの状態が前記既に指定された状態から他の状態に変更される場合には、前記プロトタイプコントローラーが非活性化される。前記「アプリケーションの状態」は、例えば、アプリケーションが全画面モードであるかどうか、横向き表示モードであるかどうか、ステータスバーの有無、バックグラウンドモードであるかどうか、特定の領域の色、アプリケーションに適用されたテーマ、ユーザーがログインしているかどうか、画面の明るさの設定、音量の状態など、アプリケーションのＵＩに影響を及ぼすことができる様々な状態を指す。例えば、前記アプリケーションがモバイルメッセンジャーであり、横向きモード（ｌａｎｄｓｃａｐｅ  ｍｏｄｅ）での友人リスト表示画面に対するプロトタイプをテストしようとするとき、縦向きモード（ｐｏｒｔｒａｉｔ  ｍｏｄｅ）では、前記プロトタイプコントローラーを非活性化させておくことにより既存のモバイルメッセンジャーの動作と差異がないが、モバイルメッセンジャーが横向き表示モードに転換されると、前記プロトタイプコントローラーが活性化されて横向き表示モードでの友人リストを表示するプロトタイプがロードされ、前記プロトタイプをテストすることができるようになる。
【００３１】
第４実施形態において、第１実施形態、第２実施形態及び第３実施形態のうちの二つ以上が論理演算（ＡＮＤ、ＯＲ、ＮＯＴ、ＸＯＲ、ＮＡＮＤ）によって組み合わせられた結果である組み合わせ要件を満足するかどうかに応じて、前記プロトタイプコントローラーが活性化されることもある。このとき、前記第１実施形態、第２実施形態及び第３実施形態のうちの二つ以上が論理演算（ＡＮＤ、ＯＲ、ＮＯＴ、ＸＯＲ、ＮＡＮＤ）によって組み合わせられた結果である組み合わせ要件を満足するかどうかに応じて、前記プロトタイプコントローラーが非活性化されることもある。
【００３２】
次に、図５を参照して、本実施形態によれば、プロトタイプとプロトタイプコントローラーとの間、プロトタイプコントローラーとアプリケーションとの間でコミュニケーションが行われることを説明する。図５に示すように、プロトタイプコントローラー２０とアプリケーション３０との間で、既に指定されたフォーマットのメッセージ５０を送受信することができる。
【００３３】
たとえば、アプリケーション３０がプロトタイプコントローラー２０側のデータ送受信ＡＰＩを呼び出してメッセージ５０を送受信することができる。
【００３４】
また、プロトタイプコントローラー２０とアプリケーション３０との間でも信号の送受信が行われる。プロトタイプコントローラー２０は、アプリケーション３０の画面の少なくとも一部の領域であるプロトタイプコントローラー領域上に積層された画面を有することにより、アプリケーション３０に対する入力イベントのうち、前記プロトタイプコントローラー領域に対応するものの提供を最優先的に受ける。
【００３５】
プロトタイプコントローラー２０は、前記提供された入力イベントをハンドリングする。前記入力イベントをハンドリングするというのは、プロトタイプ１０に伝達すること、アプリケーション３０にそのまま渡すこと、並びにプロトタイプ１０及びアプリケーション３０の両方ともに伝達することの中からどれを選択するかを決定することを意味する。たとえば、プロトタイプ領域１０ａに対するタッチ入力イベント４０はプロトタイプ１０に伝達し、プロトタイプ領域１０ａ外のアプリケーション領域のタッチ入力イベント４１はアプリケーション３０に渡す。
【００３６】
プロトタイプコントローラー２０は、前記入力イベントをトリガー（ＴＲＩＧＧＥＲ）の形式に変換した後、プロトタイプ１０に提供する。プロトタイプ１０は、オブジェクトに対するトリガー発生の際に、前記オブジェクトが見えるレスポンスを定義したものであるインタラクション（ｉｎｔｅｒａｃｔｉｏｎ）の集合である。プロトタイプコントローラー２０が、アプリケーション３０に対する入力イベントがプロトタイプ１０に提供されるべきであるものであれば、その入力イベントをトリガー形式に変換した後、プロトタイプ１０に提供することにより、プロトタイプ１０が前記アプリケーションに対する入力イベントに対するレスポンスを出力するようにする。前記動作を例として説明する。ユーザー端末がプロトタイプ領域に対するタッチ入力（ＴＡＰ）をセンシングした場合、前記ユーザー端末のオペレーティングシステムは、現在活性化されているアプリケーション３０に前記タッチ入力（ＴＡＰ）を提供する。プロトタイプコントローラー２０は、前記タッチ入力の提供を受け、前記タッチ入力がプロトタイプ１０に提供されるべきなのかどうかを判定する。前記タッチ入力がプロトタイプ領域１０ａ内の部位に対するものであるため、プロトタイプコントローラー２０は、プロトタイプ１０に前記タッチ入力を指すトリガーを提供する。プロトタイプ１０は、前記トリガーの提供を受け、前記トリガーの提供を受けるオブジェクトを選択し、前記オブジェクトの前記トリガーに対するレスポンスを出力する。
【００３７】
プロトタイプ１０は、プロトタイプコントローラー２０にリクエスト６０を提供することができる。例えば、リクエスト６０は、プロトタイプコントローラー２０の非活性化を要求するものであり得る。プロトタイプコントローラー２０は、アプリケーション３０のプログラムソースを用いた実現において、特定の状況になると終了できる。ところが、プロトタイプ領域１０ａがアプリケーション領域と同一であれば、アプリケーションに対するユーザー入力が不可能である場合がある。このような場合には、プロトタイプ１０に対する操作のみでプロトタイプコントローラー２０を非活性化させ、再度、既存アプリケーションの画面へ移動することができるだろう。
【００３８】
リクエスト６０は、プロトタイプコントローラー２０の領域に対する変更を要求することでもあり得る。つまり、プロトタイプコントローラー２０が入力イベントをトリガー形式に変換してプロトタイプ１０に伝達した結果、プロトタイプ１０がプロトタイプコントローラー２０の領域変更をリクエスト（６０）することができる。本実施例によれば、プロトタイプの位置変更またはメッセージをアプリケーションにパス（ｐａｓｓ）する領域までもプロトタイピングするようにすることができる。
【００３９】
再び図２を参照して、本実施形態に係るプロトタイプテスト方法の次の動作を説明する。段階Ｓ１１４で、アプリケーションのプロトタイプコントローラーがプロトタイプをロードする（Ｓ１１４）。前記プロトタイプコントローラーがアプリケーションからメッセージを受信することに応答して、プロトタイプをロードするための動作が実行できる。本実施形態について図３を参照して説明する。
【００４０】
段階Ｓ１１４０で、プロトタイプコントローラーがアプリケーションからメッセージを受信する。前記メッセージは、アプリケーションの状態、アプリケーションの転換後の画面コード、またはアプリケーションに対する入力イベントなどを含む。プロトタイプコントローラーは、前記メッセージ受信に応答して、段階Ｓ１１４１で、前記受信されたメッセージにマッチング（ｍａｔｃｈ）されたプロトタイプが存在するか否かを照会する。前記メッセージが最初に受信されたものであれば、前記受信されたメッセージにマッチングされたプロトタイプが存在しないだろう（Ｓ１１４２）。このときには、段階Ｓ１１４３で、プロトタイプコントローラーがプロトタイプを選択するためのユーザーインターフェース（ＵＩ）を出力する。前記ユーザーインターフェースを介してプロトタイプが選択された場合（Ｓ１１４４）、前記選択されたプロトタイプを前記受信されたメッセージにマッチングし、選択されたプロトタイプをロードする（Ｓ１１４５）。前記メッセージが以前に受信されたものであり、その際、特定のプロトタイプがマッチングされたことがあれば、そのマッチングされたプロトタイプが自動的にロードされる（Ｓ１１４２、Ｓ１１４６）。
【００４１】
前記プロトタイプコントローラーが、ロードされたプロトタイプを表示するプロトタイプ領域を割り当てる。前記プロトタイプコントローラーは、前記プロトタイプ領域を前記プロトタイプコントローラー領域と同様に割り当てるか、或いは前記プロトタイプコントローラー領域の一部を前記プロトタイプ領域として割り当てる。一実施形態において、プロトタイプの内部にプロトタイプ領域に対する情報が含まれ得る。前記プロトタイプ領域に対する情報は、例えば、プロトタイプコントローラー領域を基準とした相対座標の形で前記プロトタイプ領域を定義することができる。この場合、プロトタイプコントローラーは、前記プロトタイプ領域ごとに複数のバージョンが作成される必要のない効果がある。
【００４２】
一実施形態において、前記プロトタイプコントローラーは、プロトタイプストレージに格納された複数のプロトタイプのうち、前記ユーザー端末のディスプレイサイズにマッチングされるプロトタイプの少なくとも一つをロードすることができる。例えば、前記プロトタイプコントローラーは、前記ユーザー端末のディスプレイサイズ情報を取得し、前記プロトタイプを選択するためのユーザーインターフェース（ＵＩ）を介して、前記ディスプレイサイズにマッチングされるプロトタイプのみを表示するなどの方法によって、プロトタイプストレージに格納された複数のプロトタイプのうち、前記ユーザー端末のディスプレイサイズにマッチングされるプロトタイプがロードされるようにすることができる。
【００４３】
一実施形態において、図６に示すように、前記プロトタイプコントローラーが複数のプロトタイプ１０、１１を重ねて積層することもできる。このとき、前記プロトタイプコントローラーは、プロトタイプの優先順位を調整することが可能なＵＩを提供することができる。また、図７に示すように、少なくとも一部の領域は重ならないようにしたサイドプロトタイプ１２をさらにロードすることもできる。
【００４４】
再び図２を参照して、本実施形態に係るプロトタイプテスト方法の次の動作を説明する。
段階Ｓ１１６で、アプリケーションに対する入力イベントをプロトタイプコントローラーがハンドリングしてプロトタイプまたはアプリケーションへ伝達することにより、ロードされたプロトタイプをテストする。
【００４５】
既に説明したように、前記プロトタイプコントローラーが前記入力イベントをハンドリングするというのは、プロトタイプ１０に伝達すること、アプリケーション３０にそのまま渡すこと、プロトタイプ１０及びアプリケーション３０の両方ともに伝達することの中からどれを選択するかを決定することを意味する。例えば、図５において、プロトタイプ領域１０ａに対するタッチ入力イベント４０はプロトタイプ１０に伝達し、プロトタイプ領域１０ａ外のアプリケーション領域のタッチ入力イベント４１はアプリケーションに渡す。また、例えば、図６において、プロトタイプ領域１０ａに対するタッチ入力イベント４０は積層されたすべてのプロトタイプ１０、１１に伝達し、プロトタイプ領域１０ａ外のアプリケーション領域のタッチ入力イベント４１はアプリケーション３０に渡す。また、例えば、図７において、プロトタイプ領域に対するタッチ入力イベント４０は積層されたすべてのプロトタイプ１０、１１に伝達し、サイドプロトタイプ領域１２ａのタッチ入力イベント４２はサイドプロトタイプ１２に伝達し、プロトタイプ領域外のアプリケーション領域のタッチ入力イベント４１はアプリケーション３０に渡す。
【００４６】
一実施形態において、前記プロトタイプコントローラーが前記入力イベントをハンドリングするにあたり、タッチ入力イベントのように特定の位置座標と関連していないものは、ロードされたすべてのプロトタイプとアプリケーション３０の両方ともに伝達することにより、その入力イベントによるプロトタイプ及びアプリケーションのレスポンスを総合的にテストすることができるようにする。他の実施形態において、前記プロトタイプコントローラーが前記入力イベントをハンドリングするにあたり、タッチ入力イベントのように特定の位置座標と関連していないものは、ロードされたプロトタイプが存在する場合にはプロトタイプに伝達し、ロードされたプロトタイプが存在しない場合に限ってアプリケーション３０にすべて伝達することにより、プロトタイプ自体のレスポンスに集中してテストすることができるようにする。
【００４７】
一方、前記プロトタイプコントローラーが、プロトタイプロードを指し示すユーザー入力の提供を受けることに応答して、プロトタイプをロードするための動作が実行できる。本実施形態は、特定の状況に対する複数の互いに異なるプロトタイプが設けられた場合、プロトタイプを変えながらＵＩをテストする上で有用である。本実施形態について、図４を参照して説明する。
【００４８】
段階Ｓ１１６０で、プロトタイプコントローラーが、プロトタイプロード要求を指し示すユーザー入力の提供を受ける。プロトタイプコントローラーは、プロトタイプがロードされる前にはすべての入力イベントをそのままアプリケーションに伝達することができる。したがって、前記プロトタイプロードを指し示すユーザー入力は、前記アプリケーションから入力されないユーザー入力のいずれかであることが好ましい。
【００４９】
段階Ｓ１１６２で、プロトタイプコントローラーが、プロトタイプを選択するためのユーザーインターフェース（ＵＩ）を出力する。前記ユーザーインターフェースを介してプロトタイプが選択された場合、前記選択されたプロトタイプを前記受信したメッセージにマッチングし、選択されたプロトタイプをロードし（Ｓ１１６４）、既存にロードされたプロトタイプをアンロードする（Ｓ１１６６）。
【００５０】
再び図２に戻ってきて、次の動作を説明する。
段階Ｓ１１８で、プロトタイプコントローラーの非活性化が必要な状況であるか否かを判定する。どんな場合が、プロトタイプコントローラーの非活性化が必要な状況であるかについて、段階Ｓ１１０で既に説明したことがあるので、重複説明は省略する。プロトタイプコントローラーの非活性化が必要な状況である場合には、プロトタイプコントローラーが自らインスタンスを終了するか、或いはアプリケーションにメッセージを送信して終了を要求する（Ｓ１２０）。
【００５１】
図８は本発明の別の実施形態に係る既存のアプリケーションに連動するプロトタイプのテスト方法を示すフローチャートである。本実施形態は、図９のように、アプリケーション３０の上位層としてプロトタイプ１３を表示することを前提とする。
段階Ｓ２００で、アプリケーションをユーザー端末にインストールする。
段階Ｓ２０２で、プロトタイプ著作ツールを用いてプロトタイプを生成する。
段階Ｓ２０４で、生成されたプロトタイプをストレージに格納する。
段階Ｓ２０６で、アプリケーションを活性化する。
【００５２】
段階Ｓ２０８で、プロトタイプの積層、すなわちプロトタイプの出力が必要な状況であるか否かを判定する。本段階の判定基準について、図２の段階Ｓ１１０の動作についての説明を参照することができる。すなわち、前記アプリケーションが特定の画面に転換されるか、前記アプリケーションに特定の入力イベントが発生するか、或いは前記アプリケーションの状態が特定の状態に転換される場合には、プロトタイプの積層が必要な状況であると判定することができる。
【００５３】
段階Ｓ２１０で、プロトタイプをアプリケーションの上位層として表示する。
段階Ｓ２１２で、アプリケーションに対する入力イベントをプロトタイプがハンドリングすることにより、アプリケーションに対するプロトタイプテストが行われる。図９を参照して説明する。プロトタイプ１３がアプリケーション３０画面の一部の領域でアプリケーション３０の上位層として積層されているので、プロトタイプ領域に対するアプリケーションの入力イベント４３は、プロトタイプが提供を受け、前記入力イベントに対応するレスポンスを出力する。但し、透過領域１３ａに対するアプリケーションの入力イベント４５は、プロトタイプ１３がそのままアプリケーションに伝達することにより、アプリケーションの対応領域１３ｂが入力イベント４５の伝達を受けるようにする。プロトタイプ領域外の入力イベント４４はアプリケーションが提供を受ける。
【００５４】
一方、図１０に示すように、複数のプロトタイプ１４、１５をアプリケーションの上位層として重ねて積層することもできる。このときにも、透過領域１４ａ、１５ａに対するアプリケーションの入力イベント４６は、プロトタイプ１４，１５がそのままアプリケーションに伝達することにより、アプリケーションの対応領域が入力イベント４６の伝達を受けるようにする。このとき、一実施形態において、図１１に示すように、透過領域１５ａは複数のプロトタイプ１５、１６の一部のみに形成されることも可能である。このとき、透過領域１５ａに対する入力イベント４７の提供をアプリケーションが受けることができない。
【００５５】
一方、図１２に示すように、プロトタイプ１７にスクリーンショット領域１７ｃが形成できる。スクリーンショット領域１７ｃは、前記プロトタイプの表示時点の前記アプリケーションの画面のうち、前記スクリーンショット領域のイメージで満たされる領域である。図１２においてプロトタイプ１７がロードされる時点のアプリケーションの対応領域１７ｄのイメージが、プロトタイプ１７のスクリーンショット領域１７ｃのイメージとしてレンダリングされる。したがって、プロトタイプテストの際に、スクリーンショット領域１７ｃはプロトタイプがアプリケーションを隠さないように表示しながらも、入力イベントに対するレスポンスはプロトタイプで実現されるようにすることができる。
【００５６】
再び図８に戻って説明する。
段階Ｓ２１４で、プロトタイプの除去が必要な状況であるか否かを判断される。本段階の判定基準について、図２の段階Ｓ１１８の動作に関する説明を参照することができる。すなわち、前記アプリケーションがプロトタイプテスト対象画面から他の画面に転換されるか、前記アプリケーションにプロトタイプテスト対象イベントがそれ以上発生しないか、或いは前記アプリケーションの状態がプロトタイプテスト対象状態から他の状態に転換される場合には、プロトタイプテストが終了し、アプリケーション本来の機能が実行される。
【００５７】
今まで説明した本発明の実施形態に係る方法は、コンピュータ可読コードで実現されたコンピュータプログラムの実行によって実行できる。前記コンピュータプログラムは、インターネットなどのネットワークを介して第１コンピューティングデバイスから第２コンピューティングデバイスに伝送されて前記第２コンピューティングデバイスにインストールでき、これにより前記第２コンピューティングデバイスで使用できる。前記第１コンピューティングデバイス及び前記第２コンピューティングデバイスは、サーバー装置、クラウドサービスのためのサーバープールに属している物理サーバー、デスクトップＰＣなどの固定式コンピューティングデバイスをすべて含む。
【００５８】
前記コンピュータプログラムは、ＤＶＤ−ＲＯＭ、フラッシュメモリデバイスなどの記録媒体に格納されたものであってもよい。
【００５９】
以下、本発明の別の実施形態に係るプロトタイプテスト機能を行うユーザー端末の構成及び動作を、図１３を参照して説明する。本実施形態に係るユーザー端末の構成及び動作において、図１乃至図１２を参照して説明した方法に関連した実施形態が適用できることを留意する。
【００６０】
図１３に示すように、本実施形態に係るユーザー端末は、ディスプレイ（図示せず）、プロトタイプコントローラー１０４及びアプリケーション実行部１０６を含む。また、前記ユーザー端末は、プロトタイプデータ１０２を格納する格納手段をさらに含むことができる。例えば、前記格納手段は内蔵フラッシュメモリであり得る。
【００６１】
プロトタイプコントローラー１０４及びアプリケーション実行部１０６は、ＲＡＭ（図示せず）にロードされ、プロセッサー（図示せず）で実行される複数のオペレーション（ｏｐｅｒａｔｉｏｎ）であり得る。または、プロトタイプコントローラー１０４は、後述するプロトタイプコントローラーの機能を実行する第１プロセッサーを指し示し、アプリケーション実行部１０６は、アプリケーション本来の機能を実行する第２プロセッサーを指し示すことができる。
【００６２】
アプリケーション実行部１０６は、特定の条件の満足時にプロトタイプコントローラー１０４を活性化する。前記特定の条件は、前記アプリケーションがプロトタイプテスト対象画面に転換されるか、前記アプリケーションにプロトタイプテスト対象イベントが発生するか、或いは前記アプリケーションの状態がプロトタイプテスト対象状態に転換される場合などであり得る。
【００６３】
アプリケーション実行部１０６とプロトタイプコントローラー１０４は、ＡＰＩの呼び出しなどを介して、既に指定されたフォーマットのメッセージを送受信する。前記ＡＰＩは、プロトタイプコントローラー１０４から提供する関数であるか、或いはアプリケーション実行部１０６から提供する関数であり得る。
【００６４】
プロトタイプコントローラーは、活性化された後、アプリケーション実行部１０６によって生成及び表示される画面に、前記アプリケーションの少なくとも一部の領域に形成された最上段の透明画面を積層する。
【００６５】
プロトタイプコントローラー１０４は、活性化された後、プロトタイプデータ１０２を用いてプロトタイプをロードする。図１３に示されているのとは異なり、プロトタイプコントローラー１０４は、ネットワークインターフェース１１０を介して、外部装置に格納されたプロトタイプデータ（図示せず）を受信して、前記プロトタイプをロードすることができる。プロトタイプコントローラー１０４は、前記プロトタイプをロードして、前記アプリケーションの画面のうち、前記プロトタイプコントローラーに割り当てられたプロトタイプコントローラー領域の少なくとも一部の領域であるプロトタイプ領域上に表示できるようにセットする。
【００６６】
プロトタイプコントローラー１０４は、前記アプリケーションに対する入力イベントが生成されると、前記プロトタイプコントローラーが前記入力イベントのうちの少なくとも一部の提供を最優先的に受け、前記プロトタイプコントローラーが提供を受けた入力イベントを前記アプリケーションにそのまま伝達するか、或いは前記ロードされたプロトタイプに伝達する。
【００６７】
前記入力イベントは、センサー部１０８の各種センサーによって測定されたセンサー値を用いて生成されたものであるか、或いはネットワークインターフェース１１０を介して外部装置から受信したデータを用いて生成されたものであり得る。
【００６８】
今まで説明した本発明の実施形態に係る方法は、コンピュータ可読コードで実現されたコンピュータプログラムの実行によって行われ得る。前記コンピュータプログラムは、インターネットなどのネットワークを介して第１コンピューティングデバイスから第２コンピューティングデバイスに伝送されて前記第２コンピューティングデバイスにインストールでき、これにより前記第２コンピューティングデバイスで使用できる。前記第１コンピューティングデバイス及び前記第２コンピューティングデバイスは、サーバー装置、クラウドサービスのためのサーバープールに属している物理サーバー、デスクトップＰＣなどの固定式コンピューティングデバイスをすべて含む。
【００６９】
前記コンピュータプログラムは、ＤＶＤ−ＲＯＭ、フラッシュメモリデバイスなどの非一時的記録媒体に格納されたものであってもよい。
【図１】
2019053705.tif 000003
【図２】
2019053705.tif 000004
【図３】
2019053705.tif 000005
【図４】
2019053705.tif 000006
【図５】
2019053705.tif 000007
【図６】
2019053705.tif 000008
【図７】
2019053705.tif 000009
【図８】
2019053705.tif 000010
【図９】
2019053705.tif 000011
【図１０】
2019053705.tif 000012
【図１１】
2019053705.tif 000013
【図１２】
2019053705.tif 000014
【図１３】
2019053705.tif 000015
【手続補正書】
【提出日】平成30年12月18日(2018.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１７
【補正方法】変更
【補正の内容】
【請求項１７】
前記透過領域が透明な領域である、請求項１６に記載のプロトタイプテスト方法。