(57)【特許請求の範囲】
【請求項１】
コンピュータが、フォーム・アクセス・イベントに応答して、前記フォーム・アクセス・イベントにより参照されたグラフィカル・ユーザ・インターフェース・フォーム（ＧＵＩフォーム）に関連する複数のフィールドに関するフォーム利用履歴情報を分析するステップと、
前記ＧＵＩフォームに関連する前記複数のフィールドそれぞれに関する利用の特徴を前記フォーム利用履歴情報内で特定するステップと、
前記複数のフィールドそれぞれに関する前記特定された利用の特徴に基づいて、前記ＧＵＩフォームを自動的に変更するステップであって、他のサブセットと比較してより高い利用の特徴で特定された複数のフィールドのサブセットを前記ＧＵＩフォーム中のタブ化された部分に分割することを含む、ステップと、
前記変更されたＧＵＩフォームを前記コンピュータのディスプレイに表示するステップと、
表示された前記変更後のＧＵＩフォーム中の前記複数のフィールドのうちの少なくとも１つに関連する前記特定された利用の特徴を表す表示を用いて、前記複数のフィールドのうちの前記少なくとも１つをグラフィックで強調表示するステップと、
を含む、方法。
【請求項２】
前記分析するステップは、前記ＧＵＩフォームに関連する前記複数のフィールドそれぞれに関連する情報エントリ・イベントを前記フォーム利用履歴情報内で特定するステップと、前記複数のフィールドそれぞれに関して、当該フィールドに関連する前記特定された情報エントリ・イベントを合計するステップを含み、
前記特定するステップは、前記複数のフィールドそれぞれに関連する前記合計された情報エントリ・イベントの数に基づき、ランクと、前記複数のフィールドそれぞれとを関連付けるステップを含み、
前記変更するステップは、前記複数のフィールドそれぞれに関連付けられた前記ランクに基づいて、前記フォームを自動的に変更するステップを含む、請求項１に記載の方法。
【請求項３】
前記変更するステップは、前記複数のフィールドそれぞれに関する前記特定された利用の特徴に基づいて、前記フォーム内の前記複数のフィールドのレイアウトを変更するステップを含む、請求項１に記載の方法。
【請求項４】
前記変更するステップは、
前記ＧＵＩフォーム内の前記複数のフィールドのうちの他のフィールドよりも多く使用されている前記複数のフィールドの前記サブセットを優先するステップと、
前記ＧＵＩフォーム内で、前記複数のフィールドの前記優先されたサブセットに関して、表示位置を変更するステップと、
前記複数のフィールドの前記優先されたサブセット内で、フィールドの順序を、前記複数のフィールドの前記優先されたサブセット内の前記フィールドの相対的な優先順位に基づいて変更するステップと、を含む、請求項１に記載の方法。
【請求項５】
前記ＧＵＩフォームに関連する前記複数のフィールドの前記サブセットに関連するフォーム・ユーザのグループを特定するステップをさらに含み、
前記優先するステップは、フォーム・ユーザの前記特定されたグループに対して、前記ＧＵＩフォーム内で前記複数のフィールドの前記サブセットを優先するステップを含む、請求項４に記載の方法。
【請求項６】
前記変更するステップは、前記ＧＵＩフォームに関連する前記複数のフィールドそれぞれに関する前記特定された利用の特徴に、フォーム変更ルールを適用するステップと、前記適用されたフォーム変更ルールに基づいて、前記フォームを自動的に変更するステップを含む、請求項１に記載の方法。
【請求項７】
フォーム定義と、前記フォームに関連する実行可能コードとのうちの１つに、前記自動的に変更されたフォームに基づき動作するよう変更を加えるステップをさらに含み、
前記変更するステップは、前記変更を加えられた定義を使用して前記フォームをレンダリングするステップと、前記フォームに関連する前記変更を加えられた実行可能コードを実行するステップとのうちの１つを含む、請求項１に記載の方法。
【請求項８】
ディスプレイとプロセッサを含むシステムであって、前記プロセッサは、
フォーム・アクセス・イベントに応答して、前記フォーム・アクセス・イベントにより参照されたグラフィカル・ユーザ・インターフェース・フォーム（ＧＵＩフォーム）に関連する複数のフィールドに関するフォーム利用履歴情報を分析するステップと、
前記ＧＵＩフォームに関連する前記複数のフィールドそれぞれに関する利用の特徴を前記フォーム利用履歴情報内で特定するステップと、
前記複数のフィールドそれぞれに関する前記特定された利用の特徴に基づいて、前記ＧＵＩフォームを自動的に変更するステップであって、他のサブセットと比較してより高い利用の特徴で特定された複数のフィールドのサブセットを前記ＧＵＩフォーム中のタブ化された部分に分割することを含む、ステップと、
前記変更されたＧＵＩフォームを前記ディスプレイに表示するステップと、
表示された前記変更後のＧＵＩフォーム中の前記複数のフィールドのうちの少なくとも１つに関連する前記特定された利用の特徴を表す表示を用いて、前記複数のフィールドのうちの前記少なくとも１つをグラフィックで強調表示するステップと、を実行するようにプログラムされている、システム。
【請求項９】
フォーム・アクセス・イベントに応答して、前記フォーム・アクセス・イベントにより参照されたグラフィカル・ユーザ・インターフェース・フォーム（ＧＵＩフォーム）に関連する複数のフィールドに関するフォーム利用履歴情報を分析するステップと、
前記ＧＵＩフォームに関連する前記複数のフィールドそれぞれに関する利用の特徴を前記フォーム利用履歴情報内で特定するステップと、
前記複数のフィールドそれぞれに関する前記特定された利用の特徴に基づいて、前記ＧＵＩフォームを自動的に変更するステップであって、他のサブセットと比較してより高い利用の特徴で特定された複数のフィールドのサブセットを前記ＧＵＩフォーム中のタブ化された部分に分割することを含む、ステップと、
前記変更されたＧＵＩフォームを前記コンピュータのディスプレイに表示するステップと、
表示された前記変更後のＧＵＩフォーム中の前記複数のフィールドのうちの少なくとも１つに関連する前記特定された利用の特徴を表す表示を用いて、前記複数のフィールドのうちの前記少なくとも１つをグラフィックで強調表示するステップと、をコンピュータに実行させる、プログラム。
【請求項１０】
請求項１〜７のいずれかに記載の方法の各ステップをコンピュータに実行させる、プログラム。
【請求項１１】
請求項１〜７のいずれかに記載の方法の各ステップを実行する手段を備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィカル・ユーザ・インターフェース・フォームの開発に関する。特に、本発明は、利用パターンに基づく自動フォーム・レイアウトに関する。
【背景技術】
【０００２】
グラフィカル・ユーザ・インターフェース（ＧＵＩ）フォームは、コンピューティング・アプリケーションの入出力機能を提供する。入力機能は、テキスト・エントリ・フィールド、ドロップ・ダウン・リスト、ラジオ・ボタン、チェック・ボックス、およびその他の入力フィールドなどのフォーム・フィールドを含む。ユーザがＧＵＩフォームと対話すると、種々の入力フィールドに関連する選択または入力が検出される。出力がコンピューティング・デバイスによって生成される。出力は、同じＧＵＩフォームによって表示されることも、または別のＧＵＩフォームによって表示されることもある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、利用パターンに基づく自動フォーム・レイアウトを提供することである。
【課題を解決するための手段】
【０００４】
方法は、グラフィカル・ユーザ・インターフェース・フォームに関連する複数のフィールドに関するフォーム利用履歴情報を、コンピュータ・プロセッサを用いて分析するステップと、フォームに関連する複数のフィールドそれぞれに関する利用の特徴をフォーム利用履歴情報内で特定するステップと、複数のフィールドそれぞれに関する特定された利用の特徴に基づいてフォームを自動的に変更するステップと、変更されたフォームをコンピューティング・デバイスのディスプレイ上に表示するステップを含む。
【０００５】
システムは、ディスプレイおよびプロセッサを含み、プロセッサは、グラフィカル・ユーザ・インターフェース・フォームに関連する複数のフィールドに関するフォーム利用履歴情報を分析し、フォームに関連する複数のフィールドそれぞれに関する利用の特徴をフォーム利用履歴情報内で特定し、複数のフィールドそれぞれに関する特定された利用の特徴に基づいてフォームを自動的に変更し、変更されたフォームをディスプレイ上に表示するようプログラムされている。
【０００６】
コンピュータ・プログラムは、グラフィカル・ユーザ・インターフェース・フォームに関連する複数のフィールドに関するフォーム利用履歴情報を分析するステップ、フォームに関連する複数のフィールドそれぞれに関する利用の特徴をフォーム利用履歴情報内で特定し、複数のフィールドそれぞれに関する特定された利用の特徴に基づいてフォームを自動的に変更するステップ、変更されたフォームをコンピューティング・デバイスのディスプレイ上に表示するステップ、をコンピュータに実行させる。
【図面の簡単な説明】
【０００７】
【図１】本主題の実施形態による、利用パターンに基づく自動フォーム・レイアウトのためのシステムの実装例のブロック図である。
【図２】本主題の実施形態による、利用パターンに基づく自動フォーム・レイアウトを実行することができるコンピューティング・デバイスの実装例のブロック図である。
【図３】本主題の実施形態による、利用パターンに基づく自動フォーム・レイアウト分析に基づく強調表示の、考えられる一形態を示すグラフィカル・ユーザ・インターフェース（ＧＵＩ）の実装例の図である。
【図４】本主題の実施形態による、利用パターンに基づく自動フォーム・レイアウト分析に基づいた、図３のＧＵＩの考えられる再編成の１つを示すＧＵＩの実装例の図である。
【図５】本主題の実施形態による、利用パターンに基づく自動フォーム・レイアウトのプロセスの実装例のフロー・チャートである。
【図６】本主題の実施形態による、利用パターンに基づく自動フォーム・レイアウトに基づき、フォーム・フィールドに優先順位を付けてＧＵＩフォームに変更を加えるプロセスの実装例のフロー・チャートである。
【発明を実施するための形態】
【０００８】
以下に記載されている例は、当業者が本発明を実施できるように必要な情報を示し、本発明を実施する最良の形態を示す。添付の図面を踏まえて以下の記載を読むと、当業者には本発明の概念が理解され、本願明細書で特に扱っていない、当該概念の応用が分かる。当然のことながら、こうした概念および応用は、本開示および添付の特許請求の範囲に記載の範囲に入る。
【０００９】
本願明細書に記載されている主題は、利用パターンに基づく自動フォーム・レイアウトを提供する。コンピューティング・デバイスが、グラフィカル・ユーザ・インターフェース（ＧＵＩ）フォームに関連するテキスト・エントリ・フィールドなどの複数のフィールドに関してフォーム利用履歴情報（ｈｉｓｔｏｒｉｃａｌ  ｆｏｒｍ  ｕｓａｇｅ  ｉｎｆｏｒｍａｔｉｏｎ）を分析する。ＧＵＩフォームに関連する複数のフィールドそれぞれに関する利用の特徴（ｕｓａｇｅ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ）または傾向（ｔｒｅｎｄ）、あるいはその両方がフォーム利用履歴情報内で特定される。ＧＵＩフォームの表示されるバージョンが、複数のフィールドそれぞれに関する特定された利用の特徴または傾向、あるいはその両方に基づき自動的に変更される。変更されたＧＵＩフォームが、コンピューティング・デバイスのディスプレイ上に表示される。
【００１０】
本主題は、例えば、自動コード生成前の自動変更、または本質的に自動変更をより永続的にする他の変更の確認のために、コンピューティング・デバイスにより検出される開発者対話によってフォーム・レイアウトを改善するべく、フォーム開発者によって使用されることができる。さらに、本主題は、フォーム内のフィールド位置変更のためのコード変更およびコード変更のコンパイルまたは解釈のサポートを含め、フォームまたは複数フォームのセットの使用の対話型セッション中にフォーム・レイアウトを自動的に変更するために、アプリケーションのランタイム中に使用されることができる。
【００１１】
フォーム利用履歴情報の分析、およびＧＵＩフォームに関連する複数のフィールドそれぞれに関する利用の特徴または傾向あるいはその両方の特定に関して、利用パターンがフォーム利用履歴情報から抽出されることができる。フォーム利用履歴情報の抽出は、フォーム利用についての統計を抽出することを含むことができ、改善されたフォーム設計およびレイアウトの提案を開発者に示すために、現在のデータ・モデルおよびフォーム・レイアウトからの情報が活用される。さらに、上記のように、所定のユーザまたは所定のユーザ・グループに対してフォームを変更するよう、変更が完全に自動化されることができる。
【００１２】
実世界の利用データおよびフォーム・メタデータを使用して、開発者にフォーム設計のフィードバックが提供されることができる。より頻繁に使用されるフォーム・フィールドを特定するために、使用された（例えば、ユーザによりテキストが入力された）フィールドが特定され、その利用情報が記録されることができる。さらに、使用がより少ないフォーム・フィールドを特定するために、使用されなかった、またはほとんど使用されなかったフィールドが特定され、その利用情報が記録される。利用情報の記録は、日付またはタイムスタンプ、あるいはその両方に基づくことができ、利用情報記録時点の関連したフォーム・エントリ・レコードの状態に基づくことができる。利用情報は、メモリまたはデータベースに記憶され、本願明細書に記載される、利用パターンに基づく自動フォーム・レイアウトに使用されるようコンパイルされることができる。
【００１３】
フォーム利用レコードは、各フォームに対し単一のレコードとして記憶され処理されること、または複数のフォームが単一の利用レコードに関連付けられることができる。レコードはステートフルとすることができ、本願明細書に記載される処理は、本主題の範囲を逸脱することなく、状態遷移機械によって実装されることができる。
【００１４】
本主題の使用のさらなる例として、以下でさらに詳しく記載するように、コンピューティング・デバイスにより検出される開発者対話を介して、フォーム開発者がフォーム・レイアウトを改善することができ、これには、特定された利用の特徴または傾向あるいはその両方の視覚表現を示すよう特定のフィールドに関連するとよい視覚的な合図（ｖｉｓｕａｌ  ｃｕｅｓ）が含まれる。さらなる開発者対話が、視覚的フォーム開発環境内で移動、再編成、またはその他の方法で変更されるべきフォーム・フィールドを特定するために検出されることができる。
【００１５】
視覚的フォーム開発環境内での開発対話中でも、ランタイム自動処理中でも、特徴または傾向データあるいはその両方の可視化が、様々な方法で実行され得る。例えば、既存のフォーム上でフォーム・フィールドを徐々に目立たなくする方法が利用されることができ、これは、フィールド・ラベルにグレイ効果を加えて、次にユーザがフォーム・フィールドを再編成できるようにすること、または特定の期間目立たないようにした後にフォーム・フィールドを自動的に再編成することによる。さらに、利用の多いフィールドの周りを囲むボックスまたは色付きボックスを自動的に描き、続いてユーザがフォーム・フィールドを再編成できるようにすること、または特定期間の強調表示後にフォーム・フィールドを自動的に再編成することによって、利用の多いフィールドの強調表示が利用されることができる。フォーム利用の特徴または傾向、あるいはその両方の強調表示の例は、他にも多数考えられ、すべて本主題の範囲内と見なされる。本願明細書に記載される使用パターンに基づく自動フォーム・レイアウトを実行するために、新たなフォーム・レイアウトが提示されるとよく、提示されたレイアウトを承認または却下するユーザ入力が検出および処理されることができる。
【００１６】
さらに、フォーム・フィールドのグループ分けが保持され、グループ内でフィールドの順序が変更されることができる。特定のフィールドまたは複数フィールドのグループが静的なもの（例えば不変または固定）として指定されることができ、その一方で、他のフィールドまたはフィールドのグループは動的および可変とすることができる。フィールドのグループは、利用がより多いフィールド用、または利用がより少ないフィールド用など、複数タブに分けられることができる。さらに、利用がより多いフィールドは、徐々に昇格し、フォームの先頭または中央へ向かってさらに移動され、それぞれのフィールドに対するアクセスが改善されることができ、その一方で、利用のより少ないフィールドは、フォーム上の下の方の位置またはより周辺的な位置へ移動されることができる。
【００１７】
フォーム・ユーザはさらに、本願明細書に記載される利用パターンに基づく自動フォーム・レイアウトに関し、特定の基準を指定できてもよい。基準は、フォーム変更に関し自動的に適用されるべきフォーム変更ルール（ｆｏｒｍ  ｃｈａｎｇｅ  ｒｕｌｅ）に組み込まれることができる。基準の例には、例えば、所定の状態に関して入力されるフィールド、すなわち状態遷移（例えば、フォーム・エントリ・プロセスの所定の状態から別の状態へ）が含まれ得る。さらなる基準には、所定のタイム・フレーム中に入力されたフィールド（例えば、最近６ヶ月に入力されたフィールド）、レコードに関して特定のフィールド値で入力されたフィールド（例えば、レコードの「製品」フィールドが特定の値である場合）、およびユーザの範囲またはグループによって頻繁に入力されるフィールドが含まれ得る。そのほか多数の基準の例が考えられ、すべて本主題の範囲内と見なされる。
【００１８】
上記の説明は、全般的にフォーム利用履歴情報の分析に基づく本主題の使用に関するが、本主題はさらに、そのようなフォーム利用履歴情報を用いずに使用されることができる。そのような実装では、フォーム・ユーザ（例えば開発者または一般ユーザ）が、コンピューティング・デバイスに、フィールドのどれが、いつどの状態で使用されるかの予想について、既定値を供給することができる。こうした予想は、実際のフォーム利用に基づき時間をかけて改善されることができ、履歴情報が、処理を改善するために時間をかけて集められることができる。よって、本主題は、フォーム利用履歴情報を作成するために使用されることができる。
【００１９】
さらに、ユーザおよび開発者が、リアルタイムでフォームを動的に調節するために入力を提供することができる。よって、フォームは、ユーザにより供給される値に基づき変更を加えられることができる。例えば、企業の情報技術部門内でフォームが使用され、重大性の高い不具合チケットが受け取られると、所定の重大性に関連するフォーム・フィールドが、より高く自動的にランク付けされることができ、関連フォーム・フィールドを強調表示するため、またはその可視性を高めるためにフォーム・レイアウトが自動的に変更されることができる。そのような実装では、問題識別子、担当専門家、問題レポート情報、およびその他関連したフィールドなどのフォーム・フィールドが優先されて、関連したフィールドまたは複数フォームのフォーム・レイアウトに自動的に変更が加えられ、レポートされた問題に対処するよう指定された担当専門家によるフォームの処理を促進することができる。そのほか多数の、動的フォーム・レイアウトの変形が考えられ、すべて本主題の範囲内と見なされる。
【００２０】
本願明細書に記載される、利用パターンに基づく自動フォーム・レイアウトは、リアルタイムで実行され、利用パターンに基づくフォーム・レイアウトの迅速な変更を可能にする。本記載では、リアルタイムは、記載される主題のユーザが満足できる、情報処理の適度なレスポンス・タイムを提供するよう十分に短い時間の、任意のタイム・フレームを含むものとする。さらに、「リアルタイム」という用語は、「ニア・リアルタイム」と一般に呼ばれるものも含むものとする。これは概して、記載される主題のユーザが満足できる、オンデマンド式の情報処理の適度なレスポンス・タイムを提供するよう十分に短い時間の任意のタイム・フレームを意味する（例えば、一秒以下または数秒以内）。こうした用語は、正確に定義するのは難しいが、当業者には十分理解される。
【００２１】
図１は、利用パターンに基づく自動フォーム・レイアウトのシステム１００の実装例のブロック図である。コンピューティング・デバイス１０２は、ネットワーク１０４を介してサーバ１０６と通信する。サーバ１０６との通信は、例えば、サーバ上に記憶されているアプリケーションとのユーザ対話のために、アプリケーション・フォームを取得することを含むことができる。さらに、サーバ１０６との通信は、所定の実装に応じて、フォーム利用データベース１０８内に記憶されているフォーム利用履歴情報に関連する作成、アクセス、取得アクティビティも含むことができる。
【００２２】
図２〜図６に関連して以下にさらに詳しく記載するように、コンピューティング・デバイス１０２は、処理対象フォームに対して、開発またはランタイム中の、利用パターンに基づく自動フォーム・レイアウトを提供する。この利用パターンに基づく自動フォーム・レイアウトは、フォーム利用履歴情報に基づくものであり、本願明細書に記載される自動処理を受けて、徐々に改善されたフォーム・レイアウトを提供する。利用パターンに基づく自動フォーム・レイアウトはさらに、フォーム利用履歴情報の作成およびアーカイバルに関する処理を含むことができる。
【００２３】
なお、コンピューティング・デバイス１０２は、コンピューティング・デバイス１０２を種々の位置へ移動させるユーザの能力、または航空機、電車、自動車、もしくはその他の移動車両などの移動可能なプラットフォームとのコンピューティング・デバイス１０２の関連により、移動可能なコンピューティング・デバイスとすることができる。なお、さらに、コンピューティング・デバイス１０２は、上記に記載され、以下にさらに詳しく記載されているように、情報の処理ができる任意のコンピューティング・デバイスとすることができる。例えば、以下にさらに詳しく記載するように、コンピューティング・デバイス１０２は、パーソナル・コンピュータ（例えばデスクトップ、ラップトップ、パームなど）もしくはハンドヘルド・デバイス（例えばセルラ電話、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、電子メール・デバイス、音楽録音・再生デバイスなど）、または情報を処理することができるその他任意のデバイスなどのデバイスを含み得る。
【００２４】
ネットワーク１０４は、意図された目的に適した任意の形態の相互接続を含むことができ、これには、イントラネットなどのプライベート・ネットワークもしくはインターネットなどのパブリック・ネットワーク、モジュール間直接相互接続、ダイヤルアップ、ワイヤレス、または各デバイスを相互接続できるその他任意の相互接続メカニズムが含まれる。
【００２５】
図２は、利用パターンに基づく自動フォーム・レイアウトを実行できるコンピューティング・デバイス１０２の実装例のブロック図である。中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）２００は、コンピューティング・デバイス１０２内で、コンピュータ命令の実行、計算、およびその他の機能を提供する。ディスプレイ２０２は、コンピューティング・デバイス１０２のユーザに視覚情報を提供し、入力デバイス２０４は、ユーザに入力機能を提供する。
【００２６】
ディスプレイ２０２は、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、投影、タッチ・スクリーン、またはその他のディスプレイ要素もしくはパネルなどの任意のディスプレイ・デバイスを含むことができる。入力デバイス２０４は、コンピュータ・キーボード、キーパッド、マウス、ペン、ジョイスティック、またはその他、ユーザがディスプレイ２０２上の情報と対話し、それに応答することができる任意のタイプの入力デバイスを含むことができる。
【００２７】
通信モジュール２０６は、利用パターンに基づく自動フォーム・レイアウトを実行するために、コンピューティング・デバイス１０２がサーバ１０６などのシステム１００内の他のモジュールと通信できるようにする、相互接続機能を提供する。通信モジュール２０６は、相互接続機能を提供するために使用可能な任意の電気、プロトコル、およびプロトコル変換機能を含むことができる。なお、図および記載を簡略化するために、通信モジュール２０６はコンポーネント・レベル・モジュールとして示されているが、通信モジュール２０６は、上記に記載され以下にさらに詳しく記載されているように、通信モジュール２０６の機能を実行するために使用される、任意のハードウェア、プログラムされたプロセッサ（単数または複数）およびメモリを含むことができる。例えば、通信モジュール２０６は、通信モジュール２０６と関連した通信および電気制御動作を実行するための、特定用途向け集積回路（ＡＳＩＣ）という形態のさらなるコントローラ回路、プロセッサ、アンテナ、または個別集積回路およびコンポーネント、あるいはそのいずれかの組み合わせを含むことができる。さらに、通信モジュール２０６は、必要に応じて、割り込みレベル、スタック・レベル、およびアプリケーション・レベル・モジュールを含むことができる。さらに、通信モジュール２０６は、通信モジュール２０６に関連した処理動作を実行するために記憶、実行、およびデータ処理に使用される任意のメモリ・コンポーネントを含むことができる。通信モジュール２０６はさらに、本主題の範囲から逸脱せずに、記載される他の回路の一部を形成し得る。
【００２８】
メモリ２０８は、コンピューティング・デバイス１０２内でグラフィカル・ユーザ・インターフェース（ＧＵＩ）フォームに関連するフィールドに関する特定された利用の特徴または傾向あるいはその両方などの情報を記憶する、フォーム情報記憶領域２１０を含む。以下でさらに詳しく記載するように、フォーム情報記憶領域２１０内に記憶されたフォーム情報は、フォーム設計者にフィードバックを提供するため、またはアプリケーションのランタイム処理中にフォームを自動的に変更するために、各フィールドに関する特定された利用の特徴または傾向あるいはその両方に基づきＧＵＩフォームの表示されるバージョンを自動的に変更するよう使用される。
【００２９】
当然のことながら、メモリ２０８は、意図された目的に適し、必要に応じて分散した、またはローカルの揮発性および不揮発性メモリの任意の組み合わせを含むことができ、説明を簡略化するために本例の中では示されていない他のメモリ・セグメントを含むことができる。例えば、メモリ２０８は、コード記憶領域、コード実行領域、およびデータ領域を、本主題の範囲から逸脱することなく含み得る。
【００３０】
利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４も示されている。利用分析モジュール２１２は、上記に記載され、以下でさらに詳しく記載されているように、コンピューティング・デバイス１０２にフォーム利用履歴情報の作成および処理機能を提供する。フォーム・レイアウト・モジュール２１４は、コンピューティング・デバイス１０２の利用パターンに基づく自動フォーム・レイアウトを実装する。
【００３１】
なお、図および記載を簡略化するために、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４はコンポーネント・レベル・モジュールとして示されているが、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は、上記に記載され、以下でさらに詳しく記載されているように、これらモジュールの機能を実行するために使用される任意のハードウェア、プログラムされたプロセッサ（単数または複数）、およびメモリを含むことができる。例えば、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は、各デバイスと関連した通信および電気制御動作を実行するための、特定用途向け集積回路（ＡＳＩＣ）という形態のさらなるコントローラ回路、プロセッサ、または個別集積回路およびコンポーネント、あるいはそのいずれかの組み合わせを含むことができる。さらに、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は、必要に応じて割り込みレベル、スタック・レベル、およびアプリケーション・レベル・モジュールも含むことができる。さらに、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は、モジュールに関連した処理動作を実行するために、記憶、実行、およびデータ処理に使用される任意のメモリ・コンポーネントを含むことができる。
【００３２】
なお、さらに、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は、本主題の範囲から逸脱することなく、記載される他の回路の一部を形成することができる。さらに、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は代わりに、メモリ２０８内に記憶されたアプリケーションとして実装されることができる。そのような実装では、利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は、本願明細書に記載される機能性を実行するようＣＰＵ２００によって実行される命令を含むことができる。ＣＰＵ２００は、こうした命令を実行して、上記に記載され、以下でさらに詳しく記載されている処理機能をコンピューティング・デバイス１０２に提供することができる。利用分析モジュール２１２およびフォーム・レイアウト・モジュール２１４は、割り込みサービス・ルーチン（ＩＳＲ：ｉｎｔｅｒｒｕｐｔ  ｓｅｒｖｉｃｅ  ｒｏｕｔｉｎｅ）の一部、オペレーティング・システムの一部、ブラウザ・アプリケーションの一部、または独立したアプリケーションの一部を、本主題の範囲から逸脱することなく形成し得る。
【００３３】
タイマ／クロック・モジュール２１６が示されているが、これは上記で説明され以下でさらに詳しく説明されるように、フォーム・フィールドの相対的利用がより多いもしくはより少ない時間またはタイム・フレームなど、タイミングおよび日付情報を判断するために使用される。よって、利用分析モジュール２１２は、本願明細書に記載される、利用パターンに基づく自動フォーム・レイアウトなどの情報処理動作に、タイマ／クロック・モジュール２１６から得られた利用情報を活用することができる。
【００３４】
フォーム利用データベース１０８がコンピューティング・デバイス１０２と関連して示されているが、これは上記に記載され、以下でさらに詳しく記載されているように、コンピューティング・デバイス１０２の、利用パターンに基づく自動フォーム・レイアウトに関連した情報の記憶機能を提供する。よって、図１の例は、ネットワーク１０４を介して相互接続されたフォーム利用データベース１０８を示しているが、図２の例は、フォーム利用データベース１０８を、本主題の範囲から逸脱することなくローカル・データベースとすることもできるということを示す。
【００３５】
ＣＰＵ２００、ディスプレイ２０２、入力デバイス２０４、通信モジュール２０６、メモリ２０８、利用分析モジュール２１２、フォーム・レイアウト・モジュール２１４、タイマ／クロック・モジュール２１６、およびフォーム利用データベース１０８は、相互接続２１８を介して相互接続されている。相互接続２１８は、システム・バス、ネットワーク、またはその他、各目的に適した相互接続を各コンポーネントに提供できる任意の相互接続を含むことができる。
【００３６】
コンピューティング・デバイス１０２は、記載されている特定のコンポーネントとともに示されており、それを有するが、本主題の範囲から逸脱することなく、他のモジュールおよびコンポーネントがコンピューティング・デバイス１０２に関連することができる。さらに、コンピューティング・デバイス１０２は、説明を簡略化するために単一デバイスとして記載されているが、コンピューティング・デバイス１０２内のコンポーネントは、本主題の範囲から逸脱することなく同じ場所に配置されることも、または分散させてネットワークを介して相互接続することもできるということに注目されたい。分散型構成の場合、ディスプレイ２０２および入力デバイス２０４が販売時点情報管理デバイス、売店、またはその他の位置に配置されることができ、その一方でＣＰＵ２００およびメモリ２０８がローカルまたはリモート・サーバに配置されることができる。コンピューティング・デバイス１０２のコンポーネントに関してはその他多数の可能な構成が考えられ、すべて本主題の範囲内と見なされる。さらに、当然のことながら、フォーム利用データベース１０８は独立したコンポーネントとして示されているが、フォーム利用データベース１０８内に記憶されている情報はさらに、本主題の範囲から逸脱することなくメモリ２０８内に記憶されることができる。したがって、コンピューティング・デバイス１０２は、多数の形態をとり得、多数のプラットフォームと関連することができる。
【００３７】
以下に記載される図３および図４は、本主題に関連した利用パターンに基づく自動フォーム・レイアウトを実行するために、コンピューティング・デバイス１０２などのデバイスにより自動的に変更または作成、あるいはその両方が行われることができる例示グラフィカル・ユーザ・インターフェース（ＧＵＩ）を表す。そのほか多数の例示ＧＵＩの変形が考えられ、すべて本主題の範囲内と見なされる。
【００３８】
図３は、ＧＵＩ３００の実装例の図であり、利用パターンに基づく自動フォーム・レイアウト分析に基づいた強調表示の考えられる形態を示す。ＧＵＩ３００にあるように、メイン・タブ３０２、注タブ３０４、解決タブ３０６、添付タブ３０８、履歴タブ３１０、および顧客タブ３１２が示されている。当然のことながら、これらタブ３０２〜３１２はそれぞれ、ＧＵＩ３００内の異なるフォームを表す。さらに、当然のことながら、こうしたタブそれぞれの入力デバイス２０４などを介した選択が、関連した各フォームを表示するようコンピューティング・デバイス１０２によって検出されることができる。本例では、メイン・タブ３０２に関連するフォーム３１４のみがＧＵＩ３００内に示されている。
【００３９】
フォーム３１４内にはいくつかのテキスト・エントリ・フィールドが示されている。ＩＤフィールド３１６、状態フィールド３１８、見出しフィールド３２０、プロジェクト・フィールド３２２、キーワード・フィールド３２４、重大性フィールド３２６、優先順位フィールド３２８、症状フィールド３３０、および説明フィールド３３２が示されている。当然のことながら、この例示フォーム３１４は、プロジェクト・エラー追跡のため、または別の目的のために、本主題の範囲から逸脱することなくユーザ・インターフェース・アプリケーションに関連付けられ得る。
【００４０】
いくつかの星の絵が示されているが、これはフィールドのいくつかに関する特定された利用の特徴または傾向あるいはその両方を表す。フォーム３１４にあるように、星３３４には数字の１（１）があり、それがフォーム３１４の最も使用されているフィールドであるということを表す。星３３６には数字の２（２）があり、それがフォーム３１４の２番目に多く使用されているフィールドであるということを表す。同じく、星３３８には数字の３（３）があり、星３４０には数字の４（４）があり、星３４２には数字の５（５）があり、それぞれ、これらがフォーム３１４の３番目、４番目、５番目に多く使用されているフィールドであるということを表す。よって、示されている星３３４〜３４２はそれぞれ、フォーム３１４の各フィールドに関するフォーム利用履歴情報の分析に基づく、その利用ランキングに関連した数字を有する。
【００４１】
当然のことながら、フォーム３１４にはさらなるフィールドがあるが、本例では、星３３４〜３４２に関連する各フィールドが、本例の説明には十分な数の強調表示フィールドを提供する。なお、さらに当然のことながら、さらなるフィールドが強調表示されて、さらなる利用の特徴または傾向あるいはその両方を示すことができる。さらに、例えば当該フィールドの周りを囲むボックスまたは色付きボックスを自動的に描画するなど、強調表示の他の変形が使用されることができる。さらにその他、強調表示の多数の変形が考えられる。よって、星３３４〜３４２の使用は、単に本強調表示例の説明を簡略化するためのものであり、本例のその他多数の変形が、本主題の範囲から逸脱することなく可能である。
【００４２】
図４は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）４００の実装例の図であり、利用パターンに基づく自動フォーム・レイアウト分析に基づいた、図３のＧＵＩ３００の考えられる再編成の１つを示す。ＧＵＩ４００にあるように、新たな最多使用タブ４０２が、図３のＧＵＩ３００に追加されている。新たなフォーム４０４が最多使用タブ４０２に関連付けられている。
【００４３】
ラジオ・ボタンの列４０６は、フォーム４０４の様々な再編成を選択するためのＧＵＩ構成要素を表す。ラジオ・ボタンの列４０６は、自分の最多使用ラジオ・ボタン４０８、チームの最多使用ラジオ・ボタン４１０、およびプロジェクトの最多使用ラジオ・ボタン４１２を含む。よって、種々のラジオ・ボタン４０８〜４１２の選択の検出に応答して、コンピューティング・デバイス１０２は、各ユーザまたはユーザ・グループごとの利用履歴分析に基づきフォーム４０４を再編成することができる。
【００４４】
フォーム４０４にあるように、図３に関連して記載された最多使用フィールドを表すプロジェクト・フィールド３２２、状態フィールド３１８、見出しフィールド３２０、キーワード・フィールド３２４、および説明フィールド３３２がフォーム４０４上に表示されている。なお、さらに、プロジェクト・フィールド３２２、状態フィールド３１８、見出しフィールド３２０、キーワード・フィールド３２４、および説明フィールド３３２は、本願明細書に記載されている、利用パターンに基づく自動フォーム・レイアウト分析に基づいて判断されたランキングの各順序で表示されている。よって、フォーム４０４は、自動的にフォーム・レイアウトを再編成するランタイム構成オプションに応答して、またはそのような再編成をリクエストする開発者からの入力デバイス２０４などを介した入力の検出に応答して自動的に作成され図３のＧＵＩ３００に追加された、新たなフォームを表す。
【００４５】
なお、本例は、より利用の多いフォーム・フィールドを含む自動作成されたフォームの、考えられる一実装を示す。さらに、本例は、利用ランキングに基づきフォーム・フィールドを順番に並べる、フォーム再編成の考えられる一実装を示す。なお、これらの例の変形は多数考えられ、すべて本主題の範囲内と見なされる。
【００４６】
以下で説明される図５および図６は、本主題に関連した利用パターンに基づく自動フォーム・レイアウトを実行するために、コンピューティング・デバイス１０２などのデバイスにより実行されることができる例示プロセスを表す。その他多数の、例示プロセスの変形が考えられ、すべて本主題の範囲内と見なされる。例示プロセスは、利用分析モジュール２１２、フォーム・レイアウト・モジュール２１４などのモジュールによって実行されること、またはそのようなデバイスに関連したＣＰＵ２００によって実行されること、あるいはその両方が可能である。なお、説明を簡略化するために、以下に記載される例示プロセスの中では、タイムアウト手順およびその他のエラー制御手順は示されていない。しかし、当然のことながら、そのような手順はすべて本主題の範囲内と見なされる。
【００４７】
図５は、利用パターンに基づく自動フォーム・レイアウトのプロセス５００の実装例のフロー・チャートである。ブロック５０２にて、プロセス５００は、グラフィカル・ユーザ・インターフェース（ＧＵＩ）フォームに関連する複数のフィールドに関するフォーム利用履歴情報を、コンピュータ・プロセッサを用いて分析する。ブロック５０４にて、プロセス５００は、ＧＵＩフォームに関連する複数のフィールドそれぞれに関する利用の特徴をフォーム利用履歴情報内で特定する。ブロック５０６にて、プロセス５００は、複数のフィールドそれぞれに関する特定された利用の特徴に基づき、ＧＵＩフォームを自動的に変更する。ブロック５０８にて、プロセス５００は、変更されたＧＵＩフォームをコンピューティング・デバイスのディスプレイ上に表示する。
【００４８】
図６は、フォーム・フィールドを優先し、利用パターンに基づく自動フォーム・レイアウトに基づきＧＵＩフォームに変更を加える、プロセス６００の実装例のフロー・チャートである。決定点６０２にて、プロセス６００は、フォーム・アクセス・イベントが検出されたかどうかについて判断する。フォーム・アクセス・イベントには、例えば、フォームを含むアプリケーションを開くこと、１つのアプリケーション・フォームから別のアプリケーション・フォームへ変更すること（例えば、タブを使ったＧＵＩ構成要素の中でタブを選択することによってなど）、開発目的でフォーム開発ツールを介してフォームにアクセスすること、またはその他任意のフォーム・アクセス・イベントが含まれ得る。フォーム・アクセス・イベントが検出されたと判断されると、プロセス６００はブロック６０４にて、フォーム・フィールドに関して利用の特徴（例えば傾向）を特定するための分析用にフォーム利用履歴情報を受け取る。
【００４９】
ブロック６０６にてプロセス６００は、フォーム利用履歴情報の中で、ＧＵＩフォームに関連する各フォーム・フィールドに関して、情報エントリ・イベント（ｉｎｆｏｒｍａｔｉｏｎ  ｅｎｔｒｙ  ｅｖｅｎｔ）を特定および合計する。ブロック６０８にてプロセス６００は、各フィールドに関連する合計した情報エントリ・イベントの数に基づき、ランクと各フォーム・フィールドとを関連付ける。
【００５０】
決定点６１０にて、プロセス６００は、ＧＵＩフォームに関連するフィールドの任意のサブセットが、他のフィールドまたはフィールドのサブセットよりも使用されているかどうかについて判断する（例えば、使用の多いサブセット）。より使用が多いサブセットを示す、フィールドの少なくとも１つのサブセットがあれると判断されれば、プロセス６００はブロック６１２にて、ＧＵＩフォーム内で、フィールドの任意の特定されたサブセット（単数または複数）を優先する。優先には、例えば、所定のフォーム・フィールドに関連するフラグまたは他の標示をセットして、各優先を特定することが含まれ得る。
【００５１】
決定点６１０にて、より使用の多いサブセットを表すフィールドの少なくとも１つのサブセットがないと判断された場合、または、優先がブロック６１２にて完了した場合、プロセス６００は決定点６１４にて、ＧＵＩフォーム内の任意の優先されたサブセット（単数または複数）に関連するフォーム・ユーザのグループが特定されているかどうかについて判断する。例えば、ユーザのグループは、プロジェクト・チーム、友人のグループ、同じ雇用主に関連する個人のグループ、またはその他の特定可能なグループとすることができる。ユーザの少なくとも１つのグループが、フィールドの優先されたサブセットに関連して特定されていると判断されると、プロセス６００はさらにブロック６１６にて、特定されたフォーム・ユーザのグループに対し、ＧＵＩフォーム内でフィールドのサブセットを優先する。上述の優先と同様に、所定のグループに対する優先に関してフォーム・フィールド間の相対的優先を示すために、フラグまたはその他の標示が使用されることができる。複数のグループが特定され、各グループそれぞれに対してカスタマイズされた形でフォーム・フィールドが優先されることができる。さらに、当然のことながら、グループに対してフォーム・フィールドのサブセットを優先することに関しては、その他多数の可能性があり、すべて本主題の範囲内と見なされる。
【００５２】
決定点６１４にて、フィールドの優先されるサブセットに関連してユーザの少なくとも１つのグループが特定されていないと判断された場合、またはブロック６１６にて、さらなる優先が完了すると、プロセス６００は決定点６１８にて、特定された優先に基づくＧＵＩフォームに対する変更を管理するためにフォーム変更ルールが利用可能かどうかについて判断する。フォーム変更ルールが、特定された優先に基づくＧＵＩフォームに対する変更を管理するために利用可能であると判断されると、プロセス６００はブロック６２０にて、ＧＵＩフォームに関連するフィールドのサブセットそれぞれに関し、特定された利用の特徴または傾向あるいはその両方にフォーム変更ルールを適用する。
【００５３】
例えば、フォーム変更ルールは、フィールドの優先されるサブセット（単数または複数）（例えば、使用の多いフィールドまたは１つ以上のグループに対して優先されるフィールドあるいはその両方）を選択するため、およびＧＵＩフォーム内での複数のフィールドのサブセット（単数または複数）の表示位置を位置変更するため、またはフィールドのサブセット（単数または複数）内での各フィールドの相対的優先順位に基づくフィールドのサブセット（単数または複数）内でのフィールドの順序変更のため、あるいはそのいずれかの組み合わせのためのルールを含み得る。別の例として、フォーム・フィールドが並べ替えられることができる。フォーム変更ルールの作成および処理には、その他多数の可能性があり、すべて本主題の範囲内と見なされる。
【００５４】
決定点６１８にて、特定された優先に基づくＧＵＩフォームに対する変更を管理するために、フォーム変更ルールが利用可能でないと判断された場合、または、ブロック６２０でルールの適用が完了すると、プロセス６００は決定点６２２にて、指定された優先に基づき、フィールドの優先されるサブセットのいずれかを分割するかどうかについて判断する。例えば、図４に関連して上述した、最多使用タブ４０２を使用してインデックス付けされたフォーム４０４など、特定されたグループに対して優先されるフィールドのサブセットが、独立したフォーム、またはフォームの独立したタブ・セクション内にフィールドのサブセットを配置することによって、分割されることができる。なお、当然のことながら、優先されるフォーム・フィールドの分割には多数の可能性があり、すべて本主題の範囲内と見なされる。フィールドの優先されるサブセットのいずれかを、ＧＵＩフォームのタブ・セクションへ分割するよう決定点６２２にて判断されると、プロセス６００はブロック６２４にて、フィールドの別のサブセットと比べてより多い利用の特徴により特定されたフィールドのサブセットを分割する。
【００５５】
フィールドの優先されるサブセットのいずれも、ＧＵＩフォームのタブ・セクションに分割しないと決定点６２２にて判断された場合、またはブロック６２４にて、より多い利用の特徴により特定されたフォーム・フィールドのサブセットの分割が完了すると、プロセス６００は決定点６２６にて、ＧＵＩフォームのフィールドのいずれかに注を付ける（例えば強調表示）かどうかについて判断する。ＧＵＩフォームのフィールドのいずれかに注を付ける（例えば強調表示）と判断されると、プロセス６００はブロック６２８にて、フォーム・フィールド（単数または複数）に注を付ける（例えば強調表示）。注および強調表示は、例えば、利用の特徴または傾向あるいはその両方をランク付けし、数値で特定することを含め、図３に関連して上述した星３３４〜３４２、またはその他のグラフィック・アイコンもしくは記号のうちの１つなどによって、フォーム・フィールドにグラフィックにより印を付けることを含むことができる。注および強調表示はさらに、例えばＧＵＩフォーム内のフィールドの少なくとも１つを、フィールドに関連する特定された利用の特徴を用いてグラフィックで注を付けること、および１つ以上のフィールドの周りにボックスを配置することによって徐々に目立たなくすること、徐々に目立たせること、または強調表示することを含み得る。例えば、フィールドの使用が徐々に減っていると検出されるにつれて、当該フィールドをフォーム内のより下の位置へ、またはフォームの独立したタブ部分へ移動させることによって目立たなくすることができる。同じく、フィールドの使用が徐々に増えていると検出されるにつれて、当該フィールドを、フォーム内のより上の位置へ、またはフォームの優先タブ部分へ移動させることによって目立たせることができる。特定された利用の特徴または傾向あるいはその両方に基づき注を付けること、および強調することに関しては、その他多数の可能性があり、すべて本主題の範囲内と見なされる。
【００５６】
決定点６２６にて、フォームのフィールドのいずれにも注を付けず、強調表示しないと判断された場合、またはブロック６２８にて注を付けることおよび強調表示することが完了すると、プロセス６００は決定点６３０にて、ＧＵＩフォームのフィールドのレイアウトを変更するかどうかについて判断する。例えば、プロセス６００は、フィールドそれぞれの優先順位、または特定された利用の特徴、あるいはその両方に基づき、ＧＵＩフォーム内でのフィールドのレイアウトを変更することができる。プロセス６００は、特定された利用の特徴に関連する優先順位が付いたランキングに基づき、ＧＵＩフォームのフィールドのレイアウトをさらに変更することができる。レイアウトに対する変更は、フィールドを移動させること、フィールドを並べ替えること、またはそのほか、特定された利用の特徴に基づきフィールドを目立たせるため、または目立たなくするための任意の変更を含み得る。特定された利用の特徴または傾向、あるいはその両方に基づきＧＵＩフォームのフィールドのレイアウトを変更することに関しては、その他多数の可能性があり、すべて本主題の範囲内と見なされる。ＧＵＩフォームのフィールドのレイアウトを変更すると判断されると、プロセス６００はブロック６３２にて、フォーム・フィールドのレイアウトを変更する。なお、上述のように、特定のフィールドは固定されていることもあり、並べ替えられないこともある。さらに、フィールドのグループは、所定の実装に基づき、所定のグループ内では並び替え可能であるが、グループからは移動できないよう構成されることができる。この場合もやはり、フォーム・フィールドの固定およびグループ化に関しては多数の可能性があり、すべて本主題の範囲内と見なされる。
【００５７】
決定点６３０にて、フォーム・フィールドのレイアウトを変更しないと判断された場合、またはブロック６３２にてフォーム・フィールドのレイアウトが変更されると、プロセス６００はブロック６３４にて、自動的に変更されたＧＵＩフォームに基づき動作するようＧＵＩフォームに変更を加える。例えば、プロセス６００は、本主題の範囲から逸脱することなく、既存のフォーム実行可能コードにより利用されるフォーム定義に変更を加えることができる。そのような実装では、既存の実行可能コードは、変更を加えられたフォーム定義を使用して各ＧＵＩフォームをレンダリングすることができる。あるいは、プロセス６００は、ＧＵＩフォームに関連する実行可能コードに変更を加えることができる。さらに、当然のことながら、実行可能コードの変更のための処理はさらに、所定の実装に応じて、変更を加えられたコードの、実行または解釈のためのコンパイル、アセンブル、ビルド、またはその他の形での準備を含むことができる。そのような実装では、ブロック６３４での処理はさらに、ＧＵＩフォームに関連する変更を加えられた実行可能コードを実行することを含むことができる。その他多数の、フォーム変更のための処理の変形が考えられ、すべて本主題の範囲内と見なされる。プロセス６００は、ブロック６３６にて、変更されたＧＵＩフォームを表示し、決定点６０２へ戻り別のフォーム・アクセス・イベントを待つ。
【００５８】
よって、プロセス６００は、フォームに関連するフィールドに関するフォーム利用履歴情報を受け取り、分析する。プロセス６００はさらに、フォームに関連するフィールドそれぞれに関する利用の特徴または傾向あるいはその両方をフォーム利用履歴情報内で特定する。プロセス６００は、すべてのユーザにわたり、またはユーザの特定されたグループ間で、利用に基づいてフィールドを優先およびグループ化し、各フィールドに関する特定された利用の特徴に基づいてフォームの表示バージョンを自動的に変更する。自動変更は、利用の特徴または傾向あるいはその両方に基づき、フィールドにグラフィックで注を付けること、フィールドを分割すること、フォームのレイアウトを変更すること、およびフォームに自動的に変更を加えることを含む。
【００５９】
図１〜図６に関連して上述したように、例示システムおよびプロセスは、利用パターンに基づく自動フォーム・レイアウトを提供する。利用パターンに基づく自動フォーム・レイアウトに関連するその他多数の変形およびさらなる動作が考えられ、すべて本主題の範囲内と見なされる。
【００６０】
上記の教示を考慮すると、当業者は、上記の例のいくつかは、ＣＰＵ２００のようなプログラムされたプロセッサの使用に基づくことを認識するだろう。なお、本発明は、他の実施形態が、特殊用途ハードウェアまたは専用プロセッサ、あるいはその両方などの、ハードウェア・コンポーネント等価物を使用して実装することができ、上記の例示実施形態には限定されない。同様に、汎用コンピュータ、マイクロプロセッサを用いるコンピュータ、マイクロコントローラ、光コンピュータ、アナログ・コンピュータ、専用プロセッサ、特定用途向け回路、または専用ハード・ワイヤード・ロジック、あるいはそのいずれかの組み合わせを、別の等価な実施形態を構成するために使用することができる。
【００６１】
当業者は、本発明の各側面は、システム、方法またはコンピュータ・プログラムとして具現化することができることを理解するだろう。したがって、本発明の各側面は、全部がハードウェアの実施形態、全部がソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）という形態をとることができ、またはソフトウェアおよびハードウェアを組み合わせた実施形態の形態をとることができる。これらはすべて、概して「回路」、「モジュール」または「システム」と本願の明細書において呼ばれることもある。さらに、本発明の各側面は、コンピュータ可読媒体（単数または複数）上にコンピュータ可読プログラム・コードが具現化された１つ以上のコンピュータ可読媒体（単数または複数）において具現化されるコンピュータ・プログラムの形態をとることができる。
【００６２】
１つ以上のコンピュータ可読媒体（単数または複数）の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線もしくは半導体システム、装置、もしくはデバイス、またはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のより具体的な例（包括的ではないリスト）には、１つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶デバイス、磁気記憶デバイス、または前述のものの任意の適切な組み合わせが含まれると考えられる。本文書の文脈の中では、コンピュータ可読記憶媒体は、命令実行システム、装置またはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形媒体とすることができる。
【００６３】
コンピュータ可読信号媒体は、例えば、ベースバンドに、または搬送波の一部としてコンピュータ可読プログラム・コードが具現化された伝搬されるデータ信号を含むことができる。上記の伝搬される信号は、限定はされないが、電磁気、光学、またはその任意の適切な組み合わせを含む、様々な形式のうちのいずれかをとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、命令実行システム、装置またはデバイスによって、またはそれに関連して使用されるプログラムの伝達、伝搬、または移送ができる任意のコンピュータ可読媒体とすることができる。
【００６４】
コンピュータ可読媒体上に具現化されたプログラム・コードが、限定はされないが、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、ＲＦなど、または前述のものの任意の適切な組み合わせを含む、任意の適切な媒体を使用して伝送され得る。
【００６５】
本発明の各側面の動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋または同様のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれることができる。プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されても、部分的にユーザのコンピュータ上で実行されても、または部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で実行されても、または完全にリモート・コンピュータもしくはサーバ上で実行されることができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）もしくは広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続されること、または外部コンピュータに接続されることができる（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）。
【００６６】
本発明の各側面は、本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラムのフロー・チャート図またはブロック図、あるいはその両方を参照して以下に記載されている。当然のことながら、フロー・チャート図またはブロック図、あるいはその両方の各ブロック、およびフロー・チャート図またはブロック図、あるいはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装されることが可能である。当該コンピュータ・プログラム命令が、マシンを生じるよう、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供され、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサによって実行されて、フロー・チャートまたはブロック図あるいはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実装する手段を作るようにすることができる。
【００６７】
コンピュータまたはその他のプログラム可能データ処理装置に特定の形で機能するよう指示することができる、当該コンピュータ・プログラム命令はさらに、コンピュータ可読記憶媒体に記憶されて、コンピュータ可読記憶媒体に記憶された命令が、フロー・チャートまたはブロック図あるいはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実装する命令を含む製品を生じるようにすることができる。
【００６８】
コンピュータ・プログラム命令はさらに、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイス上にロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップを実行させてコンピュータに実装されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フロー・チャートまたはブロック図あるいはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実装するためのプロセスを提供するようにすることができる。
【００６９】
図面のフロー・チャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラムの考えられる実装のアーキテクチャ、機能性および動作を示す。この関連で、フロー・チャートまたはブロック図内の各ブロックは、指定される論理関数（単数または複数）を実装する１つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの一部分を表すことができる。さらに、いくつかの代わりの実装では、ブロック内に示されている機能は、図面に示されているのとは異なる順序で生じることができるということに注目されたい。例えば、関係する機能性に応じて、連続して示されている２つのブロックが実際には実質的に同時に実行されてもよく、またはブロックは逆の順序で実行されることがあってもよい。なお、さらに、ブロック図またはフロー・チャート図あるいはその両方の各ブロック、およびブロック図またはフロー・チャート図あるいはその両方の複数ブロックの組み合わせは、指定された機能または動作を実行する特殊用途ハードウェアを基礎とするシステムにより実装されること、または特殊用途ハードウェアと、コンピュータ命令との組み合わせにより実装されることが可能である。
【００７０】
プログラム・コードの記憶または実行、あるはその両方に適したデータ処理システムは、システム・バスを介してメモリ要素に直接または間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、大容量記憶装置、および、実行中にコードが大容量記憶装置から読み出されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的な記憶装置となるキャッシュ・メモリを含み得る。
【００７１】
入出力、すなわちＩ／Ｏデバイス（次に限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）は、直接、または介在するＩ／Ｏ制御装置を介してシステムに結合されることができる。
【００７２】
さらにネットワーク・アダプタがシステムに結合され、データ処理システムを、介在するプライベートまたはパブリック・ネットワークを介して他のデータ処理システムまたはリモート・プリンタまたは記憶デバイスに結合できるようにすることができる。モデム、ケーブル・モデムおよびイーサネット（Ｒ）カードは、現在利用可能な種類のネットワーク・アダプタのごく一部である。
【００７３】
本願明細書で使用される専門用語は、特定の実施形態を説明するためのものでしかなく、本発明の限定となることは目的としていない。本願明細書で使用される、単数形「１つの（ａ、ａｎおよびｔｈｅ）」は、文脈によりそうでないことが明確に示されていない限り、複数形も含むものとする。さらに、当然のことながら、「含む（ｃｏｍｐｒｉｓｅｓ）」または「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」、あるいはその両方は、本明細書で使用されるとき、記載された機能、整数、ステップ、動作、構成要素、またはコンポーネント、あるいはそのいずれかの組み合わせの存在を指定するが、１つ以上の他の機能、整数、ステップ、動作、構成要素、コンポーネント、またはそのグループ、あるいはそのいずれかの組み合わせの存在または追加を除外するものではない。
【００７４】
以下の特許請求の範囲のミーンズまたはステップ・プラス・ファンクション構成要素すべての対応する構造、材料、動作、および等価物は、明確に請求されている他の請求される構成要素とともに機能を実行する任意の構造、材料、または動作を含むものとする。本発明の記載は、例証および説明のために示されたものであるが、包括的であることも、開示された形式の発明に限定することも目的としていない。当業者には、本発明の範囲および意図から逸脱することのない、多数の変更および変形が明らかであろう。実施形態は、本発明の原理および実際の応用を最もよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。
【図１】
0005876648.tif 000002
【図２】
0005876648.tif 000003
【図３】
0005876648.tif 000004
【図４】
0005876648.tif 000005
【図５】
0005876648.tif 000006
【図６】
0005876648.tif 000007