(57)【要約】【課題】入力項目の選択の際に手戻りの発生頻度を抑制すること。【解決手段】複数の入力項目を有する画面の設計を支援する設計支援装置は、前記複数の入力項目の各々の選択回数、前記複数の入力項目の各々について当該入力項目への入力に要した入力時間、および、前記複数の入力項目の各々の選択頻度のうち、少なくとも一つのデータを、入力項目ごとに生成する第１の生成処理と、前記第１の生成処理によって前記入力項目ごとに生成されたデータに基づいて、前記入力項目への値の入力において手戻りの発生度合の高さを示す第１のスコアを前記入力項目ごとに算出する第１の算出処理と、前記第１の算出処理によって前記入力項目ごとに算出された第１のスコアを出力する出力処理と、を実行する。【選択図】図１１
2015210556.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力項目を有する画面の設計を支援する設計支援装置であって、
前記設計支援装置は、プログラムを実行するプロセッサと、前記プログラムを格納するメモリと、を備え、
前記プロセッサは、
前記複数の入力項目の各々の選択回数、前記複数の入力項目の各々について当該入力項目への入力に要した入力時間、および、前記複数の入力項目の各々の選択頻度のうち、少なくとも一つのデータを、入力項目ごとに生成する第１の生成処理と、
前記第１の生成処理によって前記入力項目ごとに生成されたデータに基づいて、前記入力項目への値の入力において手戻りの発生度合の高さを示す第１のスコアを前記入力項目ごとに算出する第１の算出処理と、
前記第１の算出処理によって前記入力項目ごとに算出された第１のスコアを出力する出力処理と、
を実行することを特徴とする設計支援装置。
【請求項２】
前記プロセッサは、
前記複数の入力項目の中の第１の入力項目に入力された値と第２の入力項目に入力された値との間で遵守すべき制約条件を遵守できない前記第１の入力項目および前記第２の入力項目の組み合わせの選択回数と、前記組み合わせにおいて前記第１の入力項目への入力に要した入力時間と、のうち少なくとも１つのデータを、前記組み合わせごとに生成する第２の生成処理と、
前記第１の生成処理によって生成されたデータと、前記第２の生成処理によって生成されたデータと、に基づいて、前記第１の入力項目への値の入力において手戻りの発生度合の高さを示す第２のスコアを前記組み合わせごとに算出する第２の算出処理と、を実行し、
前記出力処理では、前記プロセッサは、前記第２の算出処理によって前記組み合わせごとに算出された第２のスコアを出力することを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記出力処理では、前記プロセッサは、前記第１のスコアを出力せずに、前記第２のスコアを出力することを特徴とする請求項２に記載の設計支援装置。
【請求項４】
前記プロセッサは、
前記第１の入力項目に入力された値と前記複数の入力項目の中の前記第１の入力項目以外の他の入力項目に入力され得る値との間で前記制約条件を遵守するか否かを判断する判断処理を実行し、
前記第２の生成処理では、前記プロセッサは、前記判断処理によって前記制約条件を遵守できないと判断された前記第１の入力項目と前記第２の入力項目の組み合わせの選択回数と、前記組み合わせにおいて前記第１の入力項目への入力に要した入力時間と、のうち少なくとも一つのデータを、前記組み合わせごとに生成することを特徴とする請求項２または３に記載の設計支援装置。
【請求項５】
複数の入力項目を有する画面の設計を支援する設計支援方法であって、
メモリに格納されたプログラムを実行するプロセッサが、
前記複数の入力項目の各々の選択回数、前記複数の入力項目の各々について当該入力項目への入力に要した入力時間、および、前記複数の入力項目の各々の選択頻度のうち、少なくとも一つのデータを、入力項目ごとに生成する第１の生成処理と、
前記第１の生成処理によって前記入力項目ごとに生成されたデータに基づいて、前記入力項目への値の入力において手戻りの発生度合の高さを示す第１のスコアを前記入力項目ごとに算出する第１の算出処理と、
前記第１の算出処理によって前記入力項目ごとに算出された第１のスコアを出力する出力処理と、
を実行することを特徴とする設計支援方法。
【請求項６】
複数の入力項目を有する画面の設計支援をプロセッサに実行させる設計支援プログラムであって、
前記プロセッサに、
前記複数の入力項目の各々の選択回数、前記複数の入力項目の各々について当該入力項目への入力に要した入力時間、および、前記複数の入力項目の各々の選択頻度のうち、少なくとも一つのデータを、入力項目ごとに生成する第１の生成処理と、
前記第１の生成処理によって前記入力項目ごとに生成されたデータに基づいて、前記入力項目への値の入力において手戻りの発生度合の高さを示す第１のスコアを前記入力項目ごとに算出する第１の算出処理と、
前記第１の算出処理によって前記入力項目ごとに算出された第１のスコアを出力する出力処理と、
を実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面の設計を支援する設計支援装置、設計支援方法、および設計支援プログラムに関する。
【背景技術】
【０００２】
近年コンピュータシステムはいたる箇所で利用されるようになり、それに伴いＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）上で多数の入力項目を持つ画面も増えている。ＧＵＩ上の入力項目は、複数の入力項目間で不整合が生じないような制約事項が設けられている場合があるため、入力時に手戻りが発生することがしばしばある。従来は、効果的なＧＵＩ改善方法が存在せず、手戻りが発生しやすい入力項目の特定が困難である。
【０００３】
入力を支援するために、各項目へのデータ入力時にサーバへデータ送信を行ってデータの整合性チェックを行うという方式もあるが、それを画面設計の改善に結びつけるという試みは行われていない。また、アクセス履歴を保存する既存の方法としては、下記特許文献１がある。特許文献１の従来技術は、複数のデータベース間で互いにリンクしている表に対するアクセス履歴をクライアント装置上に保持し、アクセス履歴およびリンク元の表を再表示させる。
【０００４】
また、入力項目に応じて画面設計を行う既存の方法としては、下記特許文献２がある。特許文献２の従来技術は、データベースの項目ごとに、当該項目の入力のために必要な情報を保持した項目オブジェクトを準備し、前記データベースにアクセスするための画面情報を生成し出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−８２０６５号公報
【特許文献２】特開２００１−３２５０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、複数の入力項目の組み合わせの中から、利用者が入力しにくい入力項目の組み合わせを特定することができない。したがって、上述した従来技術で画面設計をおこなうと、利用者が利用する際に、入力項目の組み合わせによって手戻りが発生する頻度が高くなるという問題がある。
【０００７】
本発明は、上述した課題を解決するためのものであり、入力項目の選択の際に手戻りの発生頻度を抑制することができる画面の設計支援をおこなうことを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の一側面となる設計支援装置、設計支援方法、および設計支援プログラムは、前記複数の入力項目の各々の選択回数、前記複数の入力項目の各々について当該入力項目への入力に要した入力時間、および、前記複数の入力項目の各々の選択頻度のうち、少なくとも一つのデータを、入力項目ごとに生成する第１の生成処理と、前記第１の生成処理によって前記入力項目ごとに生成されたデータに基づいて、前記入力項目への値の入力において手戻りの発生度合の高さを示す第１のスコアを前記入力項目ごとに算出する第１の算出処理と、前記第１の算出処理によって前記入力項目ごとに算出された第１のスコアを出力する出力処理と、を実行することを特徴とする。
【発明の効果】
【０００９】
本発明の代表的な実施の形態によれば、入力項目の選択の際に手戻りの発生頻度を抑制することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】設計支援システムのシステム例を示す説明図である。
【図２】設計支援システムのデータ収集処理を示すフローチャートである。
【図３】Ｗｅｂブラウザに表示されるＷｅｂ画面の一例を示す説明図である。
【図４】バリデーション処理部が保持する制約条件一覧情報の一例を示す説明図である。
【図５】図２に示したバリデーション（ステップＳ２０６）の詳細な処理手順例を示すフローチャートと不整合検出テーブルを示す説明図である。
【図６】図１に示した収集ＤＢに格納されたＤＢテーブルの記憶内容例を示す説明図である。
【図７】集計データの記憶内容例を示す説明図である。
【図８】単一選択スコア集計データの一例を示す説明図である。
【図９】複数選択スコア集計データの一例を示す説明図である。
【図１０】選択データ解析サーバでの解析結果の表示画面例を示す説明図である。
【図１１】選択データ解析サーバによる解析所零手順例を示すフローチャートである。
【図１２】図１に示したコンピュータのハードウェア構成例を示すブロック図である。
【図１３】図９の選択項目に対する不整合項目の項目数を任意の数に拡張する場合のデータ構造の例である。
【発明を実施するための形態】
【００１１】
以下では「プログラム」を主語（動作主体）として実施形態における各処理について説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。以下、本発明を実施する場合の実施形態を、図面を用いて詳細に説明する。
【００１２】
＜システム構成例＞
図１は、設計支援システムのシステム例を示す説明図である。設計支援システムは、クライアントＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０１と、Ｗｅｂシステム１０３と、選択データ格納システム１０９と、処理結果表示ＰＣ１１３と、を有する。なお、
これらのうちいずれか２以上の組み合わせは、同一のコンピュータでもよい。また、本実施例では、Ｗｅｂ画面の画面設計を支援するため、Ｗｅｂシステム１０３が含まれているが、Ｗｅｂ画面に限らず、Ｗｅｂを利用しないソフトウェアの画面設計を支援することとしてもよい。その場合、Ｗｅｂシステム１０３ではなく、画面設計の支援対象となるソフトウェアの画面を利用するシステムとなる。
【００１３】
クライアントＰＣ１０１は、Ｗｅｂブラウザ１０２を有する。Ｗｅｂシステム１０３は、Ｗｅｂサーバ１０４と、ＡＰ（Ａｐｐｌｉｃａｔｉｏｎ）サーバ１０５と、アプリケーションＤＢ（Ｄａｔａｂａｓｅ）１０８と、を有する。ＡＰサーバ１０５は、アプリケーション処理部１０６と、バリデーション処理部１０７と、を有する。選択データ格納システム１０９は、選択データ収集サーバ１１０と、選択データ解析サーバ１１１と、収集ＤＢ１１２と、を有する。処理結果表示ＰＣ１１３は、結果表示Ｗｅｂブラウザ１１４を有する。
【００１４】
Ｗｅｂブラウザ１０２は、Ｗｅｂサーバ１０４にアクセスする。当該アクセスがあると、ＡＰサーバ１０５のアプリケーション処理部１０６は、アプリケーションＤＢ１０８の中からアクセスの要求に応じたＷｅｂページを取得する。Ｗｅｂサーバ１０４は、当該取得されたＷｅｂページをＷｅｂブラウザ１０２に送信する。Ｗｅｂブラウザ１０２は、受信されたＷｅｂページをクライアントＰＣ１０１の画面上に表示する。
【００１５】
また、Ｗｅｂシステム１０３では、Ｗｅｂサーバ１０４がＷｅｂブラウザ１０２からの項目入力に関するアクセスを受けると、ＡＰサーバ１０５がアプリケーションＤＢ１０８に項目への入力値を格納する。バリデーション処理部１０７は、以前に入力した他の項目の入力値と新たな入力値の間で不整合が発生していないかを検証し、その検証結果と項目入力された項目名を選択データ収集サーバ１１０に転送する。
【００１６】
選択データ収集サーバ１１０は、バリデーション処理部１０７から受信したデータを収集ＤＢ１１２に格納する。選択データ解析サーバ１１１は、結果表示Ｗｅｂブラウザ１１４からのアクセスを受けると、収集ＤＢ１１２内のデータを取り出して解析を行い、その処理結果を結果表示Ｗｅｂブラウザ１１４に通知する。なお、Ｗｅｂブラウザ１０２からの入力項目への入力開始から入力完了までの一連のアクセスをトランザクションという。
【００１７】
＜データ収集フロー＞
図２は、設計支援システムのデータ収集処理を示すフローチャートである。まず、Ｗｅｂブラウザ１０２は、ユーザからの入力データを受け付ける（ステップＳ２０１）。入力データは１つの項目に値が入力される都度、Ｗｅｂブラウザ１０２からＷｅｂシステム１０３に転送される。入力データには、トランザクションを識別する一意な値（以下、「トランザクションＩＤ」と称す）と、項目入力された項目名と、項目への入力値と、を含む。
【００１８】
つぎに、ＡＰサーバ１０５は、Ｗｅｂブラウザ１０２からのデータを受信した時刻であるアクセス時刻を取得する（ステップＳ２０２）。ＡＰサーバ１０５は、Ｗｅｂブラウザ１０２からの受信データの種類を判定する（ステップＳ２０３）。受信データが入力画面の表示に該当するアクセスであった場合（ステップＳ２０３：Ｎｏ）、ＡＰサーバ１０５は、トランザクションごとにステップＳ２０２で取得したアクセス時刻を記録する（ステップＳ２０５）。なお、あるトランザクションについてすでにアクセス時刻が記録されている場合は、アクセス時刻は最新のアクセス時刻に上書きされる。
【００１９】
項目入力に関するアクセスであった場合（ステップＳ２０３：Ｙｅｓ）、ＡＰサーバ１０５は、入力時間を取得する（ステップＳ２０４）。入力時間は、ＡＰサーバ１０５に記録されている処理対象のトランザクションに関する前回のアクセス時刻から、ステップＳ２０２で今回取得されたアクセス時刻までの経過時間である。そして、ＡＰサーバ１０５は、ステップＳ２０２で取得したアクセス時刻を記録または上書きする（ステップＳ２０５）。
【００２０】
つぎに、バリデーション処理部１０７は、バリデーションを実行する（ステップＳ２０６）。バリデーションとは、Ｗｅｂブラウザ１０２からの受信データである入力項目の入力値と、バリデーション処理部１０７によってアプリケーションＤＢ１０８に格納済みの他の入力項目の入力値との間で不整合が発生していないかを検証する処理である。バリデーション処理部１０７は、不整合である場合、他の入力項目をある入力項目に対する不整合項目として保持する。
【００２１】
また、アプリケーション処理部１０６は、Ｗｅｂブラウザ１０２からの受信データをアプリケーションＤＢ１０８に格納する（ステップＳ２０７）。バリデーション処理部１０７は、トランザクションを識別する一意な値と、項目入力された項目名と、項目への入力時間と、バリデーションチェックにより不整合を検出した場合はその不整合が発生した項目名とを、選択データ収集サーバ１１０に転送し、選択データ収集サーバ１１０は、転送されてきたデータを収集ＤＢ１１２に格納する（ステップＳ２０８）。
【００２２】
また、アプリケーション処理部１０６は、バリデーション処理部１０７におけるバリデーション（ステップＳ２０６）で不整合が検出されたか否かを判断する（ステップＳ２０９）。不整合が検出されなかった場合（ステップＳ２０９：Ｎｏ）、ステップＳ２１１に移行する。一方、不整合が検出された場合（ステップＳ２０９：Ｙｅｓ）、アプリケーション処理部１０６は、受信データについて不整合が発生した他の項目がある旨を示す不整合通知をＷｅｂブラウザ１０２に通知する（ステップＳ２１０）。
【００２３】
クライアントＰＣ１０１での画面上のデータの入力は、画面内のすべての項目へ不整合なくデータが入力されて登録ボタンが押下されるまで（ステップＳ２１１：Ｎｏ）、繰り返し受け付けられる（ステップＳ２０１）。Ｗｅｂブラウザ１０２は、画面の登録ボタンの押下を検出した場合（ステップＳ２１１：Ｙｅｓ）、Ｗｅｂブラウザ１０２は、Ｗｅｂシステム１０３に登録完了要求を送信する（ステップＳ２１２）。Ｗｅｂシステム１０３は、Ｗｅｂブラウザ１０２からの登録完了要求を受信した場合、各項目に最終的に入力された値で確定する（ステップＳ２１３）。これにより、一連の処理を終了する。
【００２４】
＜画面例＞
図３は、Ｗｅｂブラウザ１０２に表示されるＷｅｂ画面の一例を示す説明図である。図３のＷｅｂ画面３００は、商品発注画面である。Ｗｅｂ画面には、入力項目群３０１の一例として、商品コード３０３、価格３０４、個数３０５、発送元３０６、発送先３０７、納入期限３０８、発注部門コード３０９、発注担当者コード３１０、管理コード３１１がある。各入力項目は、ここでは、一例としてプルダウン形式の入力項目であるが、プルダウンには限定されない。例えば、任意の値を入力できる入力欄でもよく、また、複数選択可能なラジオボタンでもよい。
【００２５】
また、各入力項目は任意の値を入力可能なわけではなく、入力項目間で様々な制約条件が存在する。例えば、「商品コード３０３ごとに発注可能な個数３０５に最大値や最小値が存在する」、「発送元３０６と発送先３０７の組み合わせにより納入期限３０８に入力可能な最短の値が変化する」、「価格３０４で発注できるかどうかは発注部門コード３０９と発注担当者コード３１０の組み合わせで定まる発注権限の範囲内に限定される」、などである。なお、制約条件の詳細については、図４で説明する。
【００２６】
また、Ｗｅｂ画面には登録ボタンがある。登録ボタンの押下が検出されるまで（ステップＳ２１１：Ｎｏ）、Ｗｅｂブラウザ１０２は、入力データに同一のトランザクションＩＤを埋め込む。登録ボタンの押下の検出後（ステップＳ２１１：Ｙｅｓ）にあらたにデータ入力が受け付けられた場合（ステップＳ２０１）、あらたなトランザクションＩＤが入力データに埋め込まれる。
【００２７】
また、Ｗｅｂブラウザ１０２においていずれかの入力項目に値が入力された場合（ステップＳ２０１）、トランザクションＩＤと、項目入力された入力項目名と、入力項目への入力値と、を含む入力データがＷｅｂシステムに送信される。
【００２８】
このように、各入力項目に値を入力する都度、Ｗｅｂシステム１０３へのデータ送信とＡＰサーバ１０５によるバリデーションチェックが実行される。入力項目群３０１上のすべての入力項目に不整合がない状態であれば、登録ボタン３０２が押下可能な状態になり、登録ボタン３０２を押下（ステップＳ２１１：Ｙｅｓ）により最終的に入力された各入力項目での値により発注情報が登録される（ステップＳ２１３）。
【００２９】
＜バリデーションで利用される制約条件＞
図４は、バリデーション処理部１０７が保持する制約条件一覧情報の一例を示す説明図である。制約条件一覧情報４００は、図２のバリデーション（ステップＳ２０６）で利用される。制約条件一覧情報４００は、１以上の制約条件を有する。図４では、一例として９個の制約条件４０１〜４０９が設定される。制約条件４０１〜４０９は、Ｗｅｂブラウザ１０２からの受信データを登録するために、複数の入力項目に入力された値の間で満たさなければならない条件である。
【００３０】
各制約条件４０１〜４０９は、たとえば、真偽判定可能な式である。矢印を含む制約条件４０１〜４０７において、矢印の始端側（左側）を前提条件、矢印の終端側（右側）を制約内容と称す。制約条件４０１〜４０７の場合、前提条件が成立した場合に制約内容が満たされているか否かが判断される（論理式Ａ⇒Ｂは¬Ａ∨Ｂと等価である）。制約条件４０８，４０９は、論理演算子で表現された制約条件である。入力データは、すべての制約条件４０１〜４０９を満足する必要がある。なお、制約条件４０１〜４０７は、前提条件が成立した場合に制約内容を満足すればよい。
【００３１】
制約条件群４１１は、商品コード３０３が選択された場合に価格３０４が満たさなければならない制約条件４０１，４０２である。例えば、商品コード３０３として『Ａ０００１』が選択された場合は、価格３０４の値として許されるのは５００以上２０００以下の数値（単位は、たとえば、円。以下同様。）に限られる（制約条件４０１）。
【００３２】
制約条件群４１２は、商品コード３０３が選択された場合に個数３０５が満たさなければならない制約条件４０３，４０４である。例えば、商品コード３０３として『Ａ０００１』が選択された場合は、個数３０５の値として許されるのは２０以上５００以下の数値に限られる（制約条件４０３）。
【００３３】
制約条件群４１３は、発注部門コード３０９が選択された場合に価格３０４および個数３０５が満たさなければならない制約条件４０５〜４０７である。例えば、発注部門コード３０９として『Ｄ１』が選択された場合は、価格３０４と個数３０５を乗算した値は８００００以下の数値に限られる（制約条件４０５）。
【００３４】
制約条件群４１４は、必須入力項目およびその項目に入力可能な値についての制約条件４０８，４０９である。例えば、商品コード３０３は入力必須項目であり、『Ａ０００１』または『Ａ０００２』の値の入力に限られる。また、発注部門コード３０９は入力必須項目であり、『Ｄ１』、『Ｄ２』または『Ｄ３』の値の入力に限られる。
【００３５】
すなわち、すべての制約条件４０１〜４０９が満たされた場合に限り、バリデーション処理部１０７は、その入力済の入力項目のデータが整合状態にあると判断する。これにより、図３のＷｅｂ画面３００において、データの登録が可能、すなわち、登録ボタン３０２が押下可能な状態となる。一方、１つでも満たされない制約条件４０１〜４０９があった場合はデータが不整合状態にあるため、バリデーション処理部１０７は、その入力済の入力項目の値が不整合状態にあると判断する。
【００３６】
制約条件４０１〜４０９を組み合わせた場合の一例を示す。例えば、価格３０４を『１０００』、個数３０５を『２００』と入力して他の入力項目は未入力とする。このとき、制約条件４１４を満足する条件は、商品コード３０３が『Ａ０００１』または『Ａ０００２』のいずれかであり、かつ、発注部門コード３０９が『Ｄ１』、『Ｄ２』または『Ｄ３』のいずれかであることである。しかし、制約条件群４１３の制約内容はいずれも満たさないため、制約条件群４１３を満足するためには、そのいずれの前提条件も満たさないことが必要である（発注部門コード≠Ｄ１、発注部門コード≠Ｄ２、発注部門コード≠Ｄ３）。しかし、これは制約条件群４１４と矛盾する。このように、制約条件群４１４に関する入力項目は全て未入力であるにも関わらず、制約条件群４１４を満たすことができなくなる。このように、未入力の入力項目のみに関する制約条件の存在が、不整合の判定理由となる場合がある。
【００３７】
制約条件一覧情報４００を用いたバリデーションは、形式的にはＳａｔｉｓｆｉａｂｉｌｉｔｙ  Ｍｏｄｕｌｏ  Ｔｈｅｏｒｉｅｓ（ＳＭＴ）問題としての決定問題に帰着される。下記式（１）において、Ｓを真とする条件の組み合わせが少なくとも１通り存在するならＳは充足可能なため入力済項目は整合状態にあり、Ｓを真とする条件の組み合わせが一切存在しない場合は、Ｓは充足不能なため入力済項目は不整合状態にあることが分かる。
【００３８】
【数１】
2015210556.tif 000003
【００３９】
ただし、Ｃｉは項番ｉの制約条件、ｉは制約条件の項番、Ｆｊは項番ｊの入力済項目の条件、ｊは入力済項目に関する制約条件の項番、Ｉは制約条件の項番の集合、Ｊは入力済項目の項番の集合である。
【００４０】
例えば、図４の制約条件４０１〜４０９において、商品コード３０３を『Ａ』、価格３０４を『Ｐ』、個数３０５を『Ｎ』、発注部門コード３０９を『Ｄ』とすると、式（１）は下記式（２）で表現される。
【００４１】
【数２】
2015210556.tif 000004
【００４２】
次に、図４に関する入力項目に対して商品コード３０３を『Ａ０００１』、価格３０４を『１５００』と入力しており、他の入力項目は未入力とする。その場合、入力済み項目の制約条件は下記式（３）で表現される。
【００４３】
【数３】
2015210556.tif 000005
【００４４】
これらの等式からＳの充足可能性を判定することで、与えられた条件下におけるバリデーションが可能である。ＳＭＴ問題の充足可能性を効率的に判定する手法としては、ｌａｚｙ  ａｐｐｒｏａｃｈという手法を用いたＳＭＴソルバや、与えられた入力式を多くのＳＡＴソルバ（充足可能性判定ツール）の入力形式である和積標準形に一旦変換してから任意のＳＡＴソルバを用いるｅａｇｅｒ  ａｐｐｒｏａｃｈと呼ばれる手法がある。一般的に、制約条件が複雑であればｌａｚｙ  ａｐｐｒｏａｃｈを利用することになり、逆に制約条件が単純であれば、ｅａｇｅｒ  ａｐｐｒｏａｃｈのメリットが相対的に大きくなる。
【００４５】
上記の例の場合、さらに、未入力項目に対して例えば個数３０５を『２０』、発注部門コード３０９を『Ｄ１』と選択したと仮定すると、Ｓの値を真とすることができる。したがって、Ｓは充足可能であり、入力値に不整合は生じていないと判定できる。一方、商品コード３０３に『Ａ０００１』、価格３０４に『１５００』、個数３０５に『２００』を入力した場合、未入力項目に対してどのように入力したとしてもＳの値を真とすることができない。したがってＳは充足不能であり、この場合、バリデーション処理部１０７は、入力項目に不整合が生じていると判断する。
【００４６】
＜バリデーション＞
図５は、図２に示したバリデーション（ステップＳ２０６）の詳細な処理手順例を示すフローチャートと不整合検出テーブルを示す説明図である。バリデーション（ステップＳ２０６）では、上述したＳＭＴ問題による形式手法を用いることで、図４の制約条件４０１〜４０９が複雑かつ大量にある場合にも、厳密かつ効率的にバリデーションの実施が可能である。しかし、現実的には多くの場合一画面に存在する入力項目の数は限られており、また値の入力途中の段階においては必ずしも判定の厳密さが要求されるとは限らない。その場合にどのようにバリデーションを行うのかを示したのがフローチャート５０１である。フローチャート５０１は、図２のアクセス時刻記録（ステップＳ２０５）が実行される都度、実行される処理を示す。
【００４７】
なお、形式手法であるＳＭＴソルバを利用した場合も、ステップＳ５０４における値の選択方法が高度に効率的で、調べる必要のない値の組み合わせを一度に検出可能な点以外は、ＳＭＴソルバの処理の流れは本質的にはフローチャート５０１と同一である。
【００４８】
また、不整合管理テーブル５０２は、項目名５１３とフラグ５１４とを有する。不整合管理テーブル５０２は、もしバリデーション（ステップＳ２０６）の判定結果が不整合であった場合に、どの入力項目の組み合わせで不整合が生じたのかを検出するためのテーブルである。項目名５１３は、図３の各入力項目を表すカラムであり、フラグ５１４は、どの項目名５１３により不整合が生じたかを判定するためのカラムである。
【００４９】
フローチャート５０１において、バリデーション（ステップＳ２０６）を開始すると、まず、バリデーション処理部１０７は、不整合管理テーブル５０２のフラグ５１４をすべて「１」で初期化する（ステップＳ５０３）。
【００５０】
つぎに、バリデーション処理部１０７は、選択済みの入力項目の値と現時点で未選択の入力項目の値との組み合わせを設定する（ステップＳ５０４）。具体的には、たとえば、バリデーション処理部１０７は、現時点で未選択の入力項目の値として、未選択の入力項目のうち一時的に値が割り当てられていないいずれか１項目について、複数の選択肢の中のいずれかの値を選択する。このバリデーション処理部１０７により選択された、１項目の未選択の入力項目は一時的に値が割り当てられた状態となり処理を続行する。後述する制約を満たす値を割り当てる処理（ステップＳ５１５）を繰り返すことにより、一時的に値が割り当てられた未選択の入力項目の項目数は増加する。一方、後述する制約条件を満たすかの判定（ステップＳ５０６）にてこの一時的な値の割り当ての元では制約条件を満たさない（ステップＳ５０７：Ｎｏ）と判定された場合に、一時的な値の割り当てはキャンセルされてバリデーション処理部１０７により一時的に値が割り当てられていた未選択の入力項目のうち、最後に割り当てられた未選択の入力項目の値は未選択状態に戻る。
【００５１】
たとえば、図３のＷｅｂ画面において、入力項目群３０１のいずれも未選択である場合に、Ｗｅｂシステム１０３が、入力データとして商品コード３０３の値として『Ａ０００１』を取得した場合、バリデーション処理部１０７は、たとえば、未選択項目である価格３０４の選択肢のいずれかを選択して、商品コード３０３の値『Ａ０００１』と組み合わせる。未選択項目である個数３０５、未選択項目である発送元３０６、未選択項目である発送先３０７、未選択項目である納入期限３０８、未選択項目である発注部門コード３０９、未選択項目である発注担当者コード３１０、および、未選択項目である管理コード３１１の値については、『未確定』という状態のままである。
【００５２】
たとえば、価格３０４〜管理コード３１１の各々の選択肢の数がそれぞれａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈ個である場合、選択済みの入力項目の値と現時点で未選択の入力項目の値との組み合わせは、ａ×ｂ×ｃ×ｄ×ｅ×ｆ×ｇ×ｈ通り存在する（ａ〜ｈは１以上の整数）。ステップＳ５０４では、バリデーション処理部１０７は、順次未選択項目に値を割り当てるにあたり、最大でａ×ｂ×ｃ×ｄ×ｅ×ｆ×ｇ×ｈ通りの探索空間の中から組み合わせを設定することになる。
【００５３】
なお、このあとさらに、Ｗｅｂシステム１０３が、入力データとして価格３０４の値として『１５００』を取得した場合、バリデーション処理部１０７は、たとえば、未選択項目である個数３０５の選択肢のいずれかを選択して、商品コード３０３の値『Ａ０００１』および価格３０４の値『１５００』と組み合わせることになる。未選択項目である発送元３０６、未選択項目である発送先３０７、未選択項目である納入期限３０８、未選択項目である発注部門コード３０９、未選択項目である発注担当者コード３１０、および、未選択項目である管理コード３１１の値については、『未確定』という状態のままである。
【００５４】
また、入力項目の選択肢の数が限られていれば、バリデーション処理部１０７は未選択の入力項目から選択するが、未選択項目が選択肢でなく数値の入力である場合は、選択肢の数は増大するため、その未選択項目への入力が許容される値のうち、最小値、最大値、または中央値などの複数種類の代表値を選択肢とすればよい。
【００５５】
つぎに、バリデーション処理部１０７は、ステップＳ５０４で設定された組み合わせについて制約条件の検査が試行済みであるか否かを判断する（ステップＳ５０５）。上記の商品コード３０３の値『Ａ０００１』が入力された例では、バリデーション処理部１０７は、ａ×ｂ×ｃ×ｄ×ｅ×ｆ×ｇ×ｈ通りの探索空間についてすべて試行されたか否かを判断する。
【００５６】
すべての組み合わせについて試行済みである場合（ステップＳ５０５：Ｙｅｓ）、バリデーション処理部１０７は、不整合管理テーブル５０２のフラグ５１４の値を読み取る（ステップＳ５１１）。そのフラグ５１４の値が「１」の状態にある入力項目の組み合わせが、入力済項目の条件下で未選択項目にどのように値を入力しても必ず不整合となる項目の組である。この場合、バリデーション結果は「不整合」という判定結果となり、バリデーション処理部１０７は、その不整合状態を構成する入力項目の組み合わせを不整合通知として出力する（ステップＳ５１２）。これにより、バリデーション（ステップＳ２０６）が終了する。
【００５７】
一方、すべての組み合わせについて試行済みでない場合（ステップＳ５０５：Ｎｏ）、バリデーション処理部１０７は、制約条件一覧情報４００から未選択の制約条件を選択し、ステップＳ５０４で設定された組み合わせが当該選択した制約条件を充足するか検査する（ステップＳ５０６）。制約条件を構成する項目に『未確定』状態の値が存在しても、制約条件を満たすと判定できることがある。たとえば、変数Ａ＝『真』、変数Ｂ＝『未確定』、の場合、制約条件を表す論理式Ａ∨ＢはＢの値に関わらず真となる。当該選択した制約条件を満たさない場合（ステップＳ５０７：Ｎｏ）、バリデーション処理部１０７は、選択した制約条件に含まれない入力項目の項目名について、不整合管理テーブル５０２の該当するフラグ５１４の値を「１」から「０」に更新する（ステップＳ５０８）。そして再度、バリデーション処理部１０７は、あらたな組み合わせを設定する（ステップＳ５０４）。
【００５８】
一方、ステップＳ５０７において、当該選択した制約条件を満たす場合（ステップＳ５０７：Ｙｅｓ）、バリデーション処理部１０７は、制約条件一覧情報のすべての制約条件について検査済みであるか否かを判断する（ステップＳ５０９）。制約条件を構成する項目に『未確定』状態の値が存在しても、制約条件を満たさないと判定できることがある。たとえば、変数Ａ＝『偽』、変数Ｂ＝『未確定』、の場合、制約条件を表す論理式Ａ∧ＢはＢの値に関わらず偽となる。すべての制約条件について検査済みでない場合（ステップＳ５０９：Ｎｏ）、ステップＳ５０６に戻り、未検査の制約条件が選択される。
【００５９】
一方、ステップＳ５０７において、当該選択した制約条件を満たすか満たさないか決定不能な場合（ステップＳ５０７：決定不能）、バリデーション処理部１０７は、当該選択した制約条件を満たすように制約条件に出現する未選択項目に一時的に値を割り当てる（ステップＳ５１５）。なお、決定不能とは、当該選択した制約条件に含まれる『未確定』の値の設定方法により制約条件が真または偽のいずれにもなりうる状態のことである。たとえば、変数Ａ＝『偽』、変数Ｂ＝『未確定』、の場合、制約条件を表す論理式Ａ∨Ｂの真偽値は、Ｂの値が『真』の場合と『偽』の場合で結果が異なるため、一意に判定することはできない。したがって、この場合は制約条件は決定不能であり、制約条件が真となるように、一時的にＢ＝『真』と割り当てる処理を行う。
【００６０】
一方、ステップＳ５０９において、すべての制約条件について検査済みであると判断された場合（ステップＳ５０９：Ｙｅｓ）、バリデーション結果は「整合」という判定結果となり、バリデーション処理部１０７は、当該判定結果を出力する（ステップＳ５１０）。これにより、バリデーション（ステップＳ２０６）が終了する。
【００６１】
＜収集ＤＢ１１２等の記憶内容例＞
図６は、図１に示した収集ＤＢ１１２に格納されたＤＢテーブル６００の記憶内容例を示す説明図である。ＤＢテーブル６００には、選択データ収集サーバ１１０から送られてきたデータが格納される。収集ＤＢ１１２は、トランザクションＩＤ６０１と、実行回数６０２と、選択項目６０３と、入力時間６０４と、不整合項目６０５とを有し、Ｗｅｂブラウザ１０２からの受信データごとにエントリを構成する。
【００６２】
トランザクションＩＤ６０１は、ユーザがＷｅｂブラウザ１０２上でデータ入力処理を開始してからデータの登録が完了するまでの一連のトランザクション処理を識別するためのＩＤである。実行回数６０２は、単一のトランザクションＩＤ６０１において各エントリが何回目の入力操作に関する受信データであるかを表す整数値である。
【００６３】
選択項目６０３は、Ｗｅｂブラウザ１０２において、実行回数６０２で特定される入力回数目に選択された入力項目である。入力時間６０４は、選択項目６０３への１入力項目の入力にかかった時間を秒単位で表した数値である。具体的には、たとえば、ステップＳ２０４で取得される入力時間である。なお、入力操作を中断して別作業を行ったために入力時間６０４の数値が適切な値よりも大きくなってしまう可能性があるため、１入力項目当たりの入力時間の最大値を、例えば３０秒など予め定義しておき、この最大値を超えた場合は定義した最大値を入力時間としてもよい。
【００６４】
不整合項目６０５は、トランザクションＩＤ６０１と実行回数６０２で識別される選択項目６０３の入力項目への値の入力時に、それまでに入力した他の入力項目の値との間で不整合が生じた場合、他のどの入力項目と不整合を起こしたのかを示す情報である。具体的には、たとえば、ステップＳ５１２で出力される不整合項目の組み合わせのうち選択項目６０３を除いた不整合項目の項目名が不整合項目６０５として格納される。不整合が生じても不整合項目が一意ではなかった場合は、不整合が発生したことを示す識別子が格納される。不整合が生じなかった場合は、不整合項目６０５は空欄である。
【００６５】
このようなＤＢテーブル６００において、３行目のエントリは、３回目（実行回数６０２の値「３」）の受信データに含まれる選択項目「個数」は、トランザクションＩＤ「Ｔ０００１」において選択された入力項目であり、Ｗｅｂブラウザ１０２において当該選択項目の入力までに入力時間「４」がかかり、選択項目「個数」との不整合項目が「発注部門コード」であることを示す。
【００６６】
図７は、集計データの記憶内容例を示す説明図である。集計データ７００は、収集ＤＢ１１２に格納されたＤＢテーブル６０１のデータを集計する途中段階のデータである。集計データ７００は、単一選択項目についての集計データである。集計データ７００は、選択データ解析サーバ１１１によって集計され、例えば選択データ解析サーバ１１１内のメモリ上に格納される。
【００６７】
集計データ７００は、トランザクションＩＤ７０１と、選択項目７０２と、選択回数７０３と、平均入力時間７０４と、入力時間割合７０５と、を有し、選択項目７０２ごとにエントリを構成する。集計データ７００は、図６のＤＢテーブル６００に対して、トランザクションＩＤ６０１ごとに選択項目６０３で示される値の出現回数および平均入力時間を集計したデータである。トランザクションＩＤ７０１は、トランザクションＩＤ６０１に対応する。選択項目７０２は、選択項目６０３に対応する。
【００６８】
選択回数７０３は、ＤＢテーブル６００においてトランザクションＩＤ６０１および選択項目６０３が共通する実行回数６０２の総和である。たとえば、図６において、トランザクションＩＤ６０１が『Ｔ０００１』で、かつ、選択項目６０３が『価格』であるエントリは、実行回数６０２が『２』、『５』、および『７』である３個のエントリである。したがって、トランザクションＩＤ７０１が『Ｔ０００１』で、かつ、選択項目７０２が『価格』であるエントリの選択回数７０３は『３』である。
【００６９】
平均入力時間７０４は、ＤＢテーブル６００においてトランザクションＩＤ６０１および選択項目６０３が共通する入力時間６０４の平均値である。たとえば、図６において、トランザクションＩＤ６０１が『Ｔ０００１』で、かつ、選択項目６０３が『価格』であるエントリの入力時間６０４はそれぞれ、『５』、『９』、および『１４』である。したがって、トランザクションＩＤ７０１が『Ｔ０００１』で、かつ、選択項目７０２が『価格』であるエントリの平均入力時間７０４は、『５』、『９』、および『１４』の平均値『９．３』である。
【００７０】
入力時間割合７０５は、トランザクションＩＤ６０１ごとの操作時間のばらつきを抑えるために、同一のトランザクションＩＤ７０１内に存在するすべての平均入力時間７０４の平均値で、平均入力時間７０４を除算した値である。たとえば、トランザクションＩＤ７０１が『Ｔ０００１』で、かつ、選択項目７０２が『価格』であるエントリの平均入力時間７０４は『９．３』である。また、トランザクションＩＤ７０１が『Ｔ０００１』のエントリの平均入力時間７０４である『９．３』、『８．３』、『４．０』、『６．０』、および『７．０』の平均値は、『６．９２』である。したがって、トランザクションＩＤ７０１が『Ｔ０００１』で、かつ、選択項目７０２が『価格』であるエントリの入力時間割合７０５は、平均入力時間７０４である『９．３』を、平均値『６．９２』で除算した『１．３４』である。
【００７１】
このような集計データ７００において、１行目のエントリは、トランザクションＩＤ７０１が『Ｔ０００１』の選択項目７０２が『価格』は、『Ｔ０００１』で３回選択され（選択回数７０３）、Ｗｅｂブラウザ１０２での平均入力時間７０４は『９．３』である。また、入力時間割合７０５が『１．３４』であり、１よりも大きいため、『Ｔ０００１』の平均入力時間よりも入力に時間がかかっていることを示す。
【００７２】
図８は、単一選択スコア集計データの一例を示す説明図である。単一選択スコア集計データ８００は、選択データ解析サーバ１１１において単一選択スコアを集計する過程のデータである。単一選択スコア集計データ８００は、例えば、選択データ解析サーバ１１１内のメモリ上に格納される。
【００７３】
単一選択スコア集計データ８００は、選択項目８０１と、平均選択回数８０２と、平均入力時間割合８０３と、選択頻度８０４と、単一選択スコア８０５と、を有し、選択項目８０１ごとにエントリを構成する。選択項目８０１は、全トランザクションＩＤ７０１の選択項目７０２を集約した入力項目である。平均選択回数８０２は、すべてのトランザクションＩＤ７０１のうち選択項目７０２が同一である選択回数７０３を平均した値である。平均入力時間割合８０３は、すべてのトランザクションＩＤ７０１のうち選択項目７０２が同一である選択項目７０２が同一である入力時間割合７０５を平均した値である。
【００７４】
選択頻度８０４は、選択項目８０１の値が集計データ７００内の選択項目７０２に存在する件数を、トランザクションＩＤ７０１に存在する重複を除いた値の件数で除算した数値である。選択項目８０１の値が集計データ７００内の選択項目７０２に存在する件数とは、集計データ７００における選択項目８０１の値である入力項目の全トランザクションでの出現回数である。トランザクションＩＤ７０１に存在する重複を除いた値の件数とは、トランザクションＩＤ７０１の種類数である。たとえば、集計データ７００において、トランザクションＩＤ７０１が『Ｔ００１』、『Ｔ００１』、『Ｔ００１』、『Ｔ００２』、『Ｔ００３』、『Ｔ００３』である場合、エントリ数は６であるが、トランザクションＩＤ７０１の種類は『Ｔ００１』、『Ｔ００２』、『Ｔ００３』の３個である。
【００７５】
選択頻度８０４の値が高ければ全トランザクション内でよく利用される選択項目であることを示す。例えば、図８で選択項目８０１の『発送元』が、トランザクションＩＤ７０１にて１回以上選択された割合（選択頻度８０４）は、８６％であることが読み取れる。
【００７６】
単一選択スコア８０５は、Ｗｅｂブラウザ１０２において、選択項目８０１の値である入力項目について入力の手戻りの発生度合の高さを示す指標値である。値が高いほど入力の手戻りが発生しやすいことを示す。
【００７７】
単一選択スコア８０５は、たとえば、予め係数ｋ１、係数ｋ２、係数ｋ３を定義し、平均選択回数８０２をｋ１乗した数値と、平均入力時間割合８０３をｋ２乗した数値と、選択頻度８０４をｋ３乗した数値とを、乗算した数値である。また、各係数ｋ１〜ｋ３について、係数をｋ１＞ｋ３＞ｋ２と定義することで、入力項目での入力手戻り回数、入力項目の利用頻度、入力項目への入力時間、の順でスコアに重み付けを行うことが可能である。なお、係数ｋ１〜ｋ３は、０以上の数値である。
【００７８】
一例として、ｋ１＝３、ｋ２＝１、ｋ３＝２と定義することで、単一選択スコア８０５を効果的に算出可能である。たとえば、図８で選択項目８０１が『商品コード』の場合は、単一選択スコア８０５の値が『４．６』である。
【００７９】
単一選択スコア８０５は、たとえば、ｘ∈Ｘとした場合に下記式（４）で表現される。
【００８０】
【数４】
2015210556.tif 000006
【００８１】
図９は、複数選択スコア集計データの一例を示す説明図である。複数選択スコア集計データ９００は、選択データ解析サーバ１１１において複数選択スコアを集計する過程の一例を示したデータである。複数選択スコア集計データ９００は、例えば、選択データ解析サーバ１１１内のメモリ上に格納される。
【００８２】
複数選択スコア集計データ９００は、選択項目９０１と、不整合項目９０２と、合計選択回数９０３と、平均入力時間９０４と、選択回数割合９０５と、入力時間割合９０６と、複数選択スコア９０７と、を有し、選択項目９０１ごとにエントリを構成する。
【００８３】
選択項目９０１は、図８の選択項目８０１に対応する。不整合項目９０２は、選択項目９０１についてバリデーションにより不整合と判断された入力項目であり、図６の不整合項目６０５に対応する。合計選択回数９０３は、選択項目９０１の値（入力項目）と不整合項目９０２の値（不整合項目）との組み合わせの出現回数である。
【００８４】
平均入力時間９０４は、選択項目９０１の値（入力項目）と不整合項目９０２の値（不整合項目）との組み合わせにおける選択項目９０１の入力に要した入力時間の平均値である。すなわち、図６の選択項目６０３および不整合項目６０５が共通するエントリにおける入力時間６０４の平均値である。
【００８５】
選択回数割合９０５は、選択項目９０１での合計選択回数９０３の割合を示す。具体的には、選択回数割合９０５は、選択項目９０１の合計選択回数９０３を、同一の選択項目９０１の合計選択回数９０３の平均値で除算した値である。たとえば、選択項目９０１が『商品コード』である場合、不整合項目９０２である『価格』との組み合わせにおける『商品コード』の選択回数割合９０５は、選択項目９０１が『商品コード』で不整合項目９０２が『価格』である場合の合計選択回数９０３である『１９７』を、選択項目９０１が『商品コード』の合計選択回数９０３である『１９７』、『１７４』、および『７８』の平均値『１４９．７』で除算した値である。
【００８６】
入力時間割合９０６は、選択項目９０１での平均入力時間９０４の割合を示す。具体的には、入力時間割合９０６は、選択項目９０１の平均入力時間９０４を、同一の選択項目９０１における平均入力時間９０４の平均値で除算した値である。たとえば、選択項目９０１が『商品コード』である場合、不整合項目９０２である『価格』との組み合わせにおける『商品コード』の入力時間割合９０６は、選択項目９０１が『商品コード』で不整合項目９０２が『価格』である場合の平均入力時間９０４である『４．２』を、選択項目９０１が『商品コード』の平均入力時間９０４である『４．２』、『４．５』、および『３．７』の平均値『４．１３』で除算した値である。
【００８７】
複数選択スコア９０７は、Ｗｅｂブラウザ１０２において、選択項目９０１の値である入力項目と不整合項目９０２の値である入力項目との組み合わせについて入力の手戻りの発生度合の高さを示す指標値である。値が高いほど選択項目９０１と不整合項目９０２の組への入力で手戻りの発生度合いが高いことを示す。
【００８８】
複数選択スコア９０７は、予め係数ｋ４、係数ｋ５を定義し、選択回数割合９０５をｋ４乗した数値と、入力時間割合９０６をｋ５乗した数値と、図８の単一選択スコア８０５の数値とを、乗算した数値である。係数をｋ4＞ｋ５と定義することで、入力項目での入力手戻り回数、入力項目への入力時間の順でスコアに重み付けを行うことが可能である。
【００８９】
一例として、係数はｋ４＝２、ｋ５＝０．５と定義することで、効果的なスコアを導出可能である。たとえば、図９で選択項目９０１が『商品コード』、不整合項目９０２が『価格』であるエントリの場合は、複数選択スコア９０７の値が『８．０』となる。
【００９０】
複数選択スコア９０７は、たとえば、ｘ∈Ｘ、ｙ∈Ｙとした場合に下記式（５）で表現される。
【００９１】
【数５】
2015210556.tif 000007
【００９２】
図１０は、選択データ解析サーバ１１１での解析結果の表示画面例を示す説明図である。図１０の表示画面１０００は、結果表示Ｗｅｂブラウザ１１４に表示される。表示画面１０００には、単一選択項目表１００１と複数選択項目表１００２とが表示される。
【００９３】
単一選択項目表１００１は、図８の単一選択スコア集計データ８００を元に、図３の入力項目群３０１の入力項目を入力時の手戻りの大きさ順に表示した情報である。単一選択項目表１００１は、選択項目１００３と単一選択スコア１００４とを有する。選択項目１００３および単一選択スコア１００４は、それぞれ単一選択スコア集計データ８００の選択項目８０１および単一選択スコア８０５に対応する。
【００９４】
複数選択項目表１００２は、図９の複数選択スコア集計データ９００を元に、図３の入力項目群３０１の入力項目を入力時の手戻りの大きさ順に表示した情報である。複数選択項目表１００２は、選択項目１００５と、不整合項目１００６と、複数選択スコア１００７とを有する。選択項目１００５、不整合項目１００６、および複数選択スコア１００７は、それぞれ複数選択スコア集計データ９００の選択項目９０１、不整合項目９０２、複数選択スコア９０７に対応する。
【００９５】
単一選択項目表１００１および複数選択項目表１００２は、入力項目の入力に要した時間、入力失敗の回数、入力頻度に基づき、手戻りの大きさを算出した情報であり、単一選択スコア１００４および複数選択スコア１００７の値が高い選択項目１００３、１００５はユーザビリティに問題があることを示す。
【００９６】
一例として、単一選択項目表１００１において、選択項目１００３が「個数」であるエントリは、単一選択スコア１００４が最大（３４．３）のため、最も手戻りが大きい入力項目であることがわかる。また、別の例として、複数選択項目表１００２において、選択項目１００５が「個数」であり、かつ、不整合項目１００６が「価格」であるエントリは、複数選択スコア１００７が最大（９６．８）のため、先に「価格」を入力して後から「個数」を入力するのは、最も手戻りが大きい入力手順であることがわかる。
【００９７】
なお、表示画面１０００において、単一選択項目表１００１と複数選択項目表１００２のうち少なくとも一方が表示されればよい。
【００９８】
＜選択データ解析サーバ１１１による解析処理手順例＞
図１１は、選択データ解析サーバ１１１による解析所零手順例を示すフローチャートである。ます、選択データ解析サーバ１１１は、収集ＤＢ１１２のＤＢテーブル６００を読み込み（ステップＳ１１０１）、単一選択項目の集計データ７００を生成する（ステップＳ１１０２）。つぎに、選択データ解析サーバ１１１は、単一選択項目のスコア集計を実行する（ステップＳ１１０３）。具体的には、たとえば、選択データ解析サーバ１１１は、図８に示した単一選択スコア集計データ８００を生成することにより、単一選択スコア８０５を算出する。
【００９９】
また、選択データ解析サーバ１１１は、ＤＢテーブル６００と単一選択項目の集計データ７００とを用いて、複数選択項目の集計データを生成する（ステップＳ１１０４）。そして、選択データ解析サーバ１１１は、複数選択項目のスコア集計を実行する（ステップＳ１１０５）。具体的には、たとえば、選択データ解析サーバ１１１は、図９に示した複数選択スコア集計データ９００を生成することにより、複数選択スコア９０７を算出する。
【０１００】
このあと、選択データ解析サーバ１１１は、ステップＳ１１０３またはステップＳ１１０５で得られた解析結果を出力する（ステップＳ１１０６）。具体的には、たとえば、選択データ解析サーバ１１１は、当該解析結果を処理結果表示ＰＣ１１３に送信することにより、結果表示Ｗｅｂブラウザ１１４に、図１０に示したような解析結果を表示させる。これにより、一連の処理を終了する。
【０１０１】
上記解析結果に基づく画面設計の改善の方法としては、例えば、選択項目１００５と不整合項目１００６の入力項目の組み合わせについて、入力の順番やＷｅｂ画面３００上への入力項目の配置位置の変更、各入力項目の入力方法の変更、各入力項目を一体化した入力項目への変更、などが考えられる。このように、スコアの高い選択項目の画面設計を率先して改善することで、ユーザの画面操作において入力手戻りを最小限にすることができ、ユーザビリティの向上を図ることができる。
【０１０２】
＜ハードウェア構成例＞
図１２は、図１に示した各装置１０１、１０３、１０９，１１３（以下、総称して、コンピュータ１２００）のハードウェア構成例を示すブロック図である。コンピュータ１２００は、プロセッサ１２０１と、記憶デバイス１２０２と、入力デバイス１２０３と、出力デバイス１２０４と、通信インターフェース（通信ＩＦ１２０５）と、を有する。プロセッサ１２０１、記憶デバイス１２０２、入力デバイス１２０３、出力デバイス１２０４、および通信ＩＦ１２０５は、バスにより接続される。プロセッサ１２０１は、コンピュータ１２００を制御する。記憶デバイス１２０２は、プロセッサ１２０１の作業エリアとなる。また、記憶デバイス１２０２は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス１２０２としては、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリがある。入力デバイス１２０３は、データを入力する。入力デバイス１２０３としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス１２０４は、データを出力する。出力デバイス１２０４としては、たとえば、ディスプレイ、プリンタがある。通信ＩＦ１２０５は、ネットワークと接続し、データを送受信する。
【０１０３】
＜データ構造の拡張例＞
図１３は、図９の選択項目９０１に対する不整合項目９０２の項目数を任意の数に拡張する場合のデータ構造の例である。図９では、選択項目９０１と不整合項目９０２を合わせた計２項目間での複数選択スコアの算出を行っているが、図１３の例では２項目に限定されるものではなく、任意の数の入力項目間で発生した不整合の場合にも、以下の拡張により対応することができる。
【０１０４】
不整合項目一覧情報１３０１は、選択項目９０１に値を入力した際に不整合が発生した複数の入力項目をリストの集合として管理する例であり、各リストはインデックス番号１３０２と、不整合項目リスト１３０３とを有する。
【０１０５】
選択データ解析サーバ１１１は、不整合項目リスト１３０３に、特定の選択項目の入力時点にて発生した全ての不整合項目を格納し、当該不整合項目が格納されたリストをインデックス番号１３０２で管理する。
【０１０６】
拡張された複数選択スコア集計データ１３０４は、複数選択スコア集計データ９００を修正したデータであり、不整合項目９０２の列を不整合項目リスト１３０６で置換しており、不整合項目リスト１３０６の値はインデックス番号１３０２を示す値である。選択データ解析サーバ１１１は、ＤＢテーブル６００の不整合項目６０５についても、上記と同様にリストで管理する。これにより、選択データ解析サーバ１１１は、１件の選択項目６０３に対して任意の数の不整合項目の値を格納可能なように修正を実施する。選択項目１３０５は選択項目９０１に対応する。
【０１０７】
複数選択スコア１３０７は、選択項目１３０５と、不整合項目リスト１３０６のインデックス番号に対応する不整合項目リスト１３０３が示す複数の不整合項目と、の組み合わせへの入力時の手戻りを数値化した情報である。複数選択スコア１３０７が高いほど手戻りが大きいことを示す。複数選択スコア１３０７の演算方法は、図９で説明した複数選択スコア９０７の場合と同様である。
【０１０８】
以上のように、本実施例では、バリデーション処理部１０７が行った入力やり直しを含む全てのバリデーション履歴を選択データ収集サーバ１１０が収集ＤＢ１１２に保存し、そのデータを選択データ解析サーバ１１１が解析して入力項目間の制約条件を遵守するために特に手戻りの割合が高い入力項目の組み合わせを特定する。これにより、ＧＵＩ画面設計の改善に必要な情報を提供することが可能になる。
【０１０９】
なお、本実施例では、商品発注画面での例を示しているが、これに限られるものではなく、顧客情報登録画面、勤休情報入力画面など、入力項目が複数あり入力できる値に互いに制約がある任意の画面全般に適用が可能である。その他、具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【０１１０】
１０９  選択データ格納システム
１１０  選択データ収集サーバ
１１１  選択データ解析サーバ（設計支援装置）
３００  Ｗｅｂ画面
３０１  入力項目群
４００  制約条件一覧情報
６００  ＤＢテーブル
７００  集計データ
８００  単一選択スコア集計データ
９００  複数選択スコア集計データ
１０００  表示画面
１００１  単一選択項目表
１００２  複数選択項目表
【図１】
2015210556.tif 000008
【図２】
2015210556.tif 000009
【図３】
2015210556.tif 000010
【図４】
2015210556.tif 000011
【図５】
2015210556.tif 000012
【図６】
2015210556.tif 000013
【図７】
2015210556.tif 000014
【図８】
2015210556.tif 000015
【図９】
2015210556.tif 000016
【図１０】
2015210556.tif 000017
【図１１】
2015210556.tif 000018
【図１２】
2015210556.tif 000019
【図１３】
2015210556.tif 000020