(57)【要約】【課題】小型の表示画面において、最適なユーザインターフェースになるような画面レイアウトを生成可能な情報処理装置、及びプログラムを提供する。【解決手段】表示手段を備えた情報処理装置において、前記表示手段に表示されるユーザの操作項目であるコントローラに関する情報を定義し、前記表示手段を入力領域、操作領域、遷移領域に分割し、当該分割された領域に対応するコントローラの名称を領域情報として定義し、当該定義された領域情報に基づいて、前記コントローラを前記入力領域、前記操作領域、前記遷移領域のいずれに配置するかを決定し、当該決定された配置に基づいて、前記分割された領域ごとにＦｉｔｔｓの法則を用いて前記コントローラの配置を決定し、当該決定された配置に基づいて前記コントローラに関する情報を更新する。【選択図】図３
2010204988.tif 000002
【特許請求の範囲】
【請求項１】
表示手段を備えた情報処理装置において、
前記表示手段に表示されるユーザの操作項目であるコントローラに関する情報を定義するコントローラ定義手段と、
前記表示手段を入力領域、操作領域、遷移領域に分割し、当該分割された領域に対応するコントローラの名称を領域情報として定義する領域定義手段と、
前記領域定義手段により定義された領域情報に基づいて、前記コントローラを前記入力領域、前記操作領域、前記遷移領域のいずれに配置するかを決定する領域決定手段と、
前記領域決定手段により決定された配置に基づいて、前記分割された領域ごとにＦｉｔｔｓの法則を用いて前記コントローラの配置を決定し、当該決定された配置に基づいて前記コントローラに関する情報を更新する更新手段と、
を備えたことを特徴とする情報処理装置。 
【請求項２】
前記コントローラの種類には、コマンドボタン、コンボボックスを含むことを特徴とする請求項１に記載の情報処理装置。 
【請求項３】
表示手段を備えた情報処理装置のコンピュータを、
前記表示手段に表示されるユーザの操作項目であるコントローラに関する情報を定義するコントローラ定義手段、
前記表示手段を入力領域、操作領域、遷移領域に分割し、当該分割された領域に対応するコントローラの名称を領域情報として定義する領域定義手段、
前記領域定義機能により定義された領域情報に基づいて、前記コントローラを前記入力領域、前記操作領域、前記遷移領域のいずれに配置するかを決定する領域決定手段、
前記領域決定機能により決定された配置に基づいて、前記分割された領域ごとにＦｉｔｔｓの法則を用いて前記コントローラの配置を決定し、当該決定された配置に基づいて前記コントローラに関する情報を更新する更新手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを開発するための情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ（ＰＣ）上でソフトウェアを開発するためのソフトウェア開発支援ツールが数多く販売されている。ソフトウェア開発支援ツール内の画面編集エディタを使用すると、ソフトウェアにおけるＧＵＩ（Graphical User Interface）部分を、マウスやトラックボール等の指示装置のみで視覚的に開発を行うことが可能である。
【０００３】
上記した開発支援ツールの中には、画面のレイアウトの簡易自動作成機能を備えたものが存在する。例えば、特許文献１には、画面帳票レイアウト作成時のタイトル、項目名等を自動生成可能とし、かつ項目の配置も水平配置、垂直配置、及び両者混在配置を可能とし、レイアウト作成工数を特段に削減することが可能な技術が記載されている。
【０００４】
また近年、デスクトップ型のＰＣを除いた情報処理装置は急速に小型化が進んでいる。小型化に伴い表示部も小型になるため、画面内に表示できる情報が限られており、ソフトウェアのユーザビリティの低下が問題となっている。
従来のソフトウェア開発支援ツールは、ＧＵＩを視覚的に開発し、それに伴うソースコードを自動生成することが可能である。しかしながら、ＧＵＩは開発者が指定した通りの画面を開発するため、ユーザビリティは開発者に依存してしまう。
また、従来のソフトウェアの開発工程は、すべての製造が完了してからテスト工程に入るため、そのテスト工程においてはじめてソフトウェアのＧＵＩを開発者以外の人間が評価することとなる。そのため、ユーザビリティに問題があると、製造工程へと逆戻りする問題がある。
【０００５】
上記した課題に対応したものとして、例えば、特許文献２には、表示画面上に一部が隠れたオブジェクト（項目）をカーソルにより指定可能とする技術が開示されている。具体的には、カーソルの移動情報からＦｉｔｔｓ（フィッツ）の法則を利用してターゲットのオブジェクトサイズを予想し、オブジェクト管理部の情報と比較してオブジェクトを決定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−１６１４８０号公報
【特許文献２】特開平６−２０８４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術では、画面レイアウトを自動生成する際に、画面名、データ項目名、データ項目の型、改行情報、書式情報などの定義情報を前もって作成しておくことによりレイアウトイメージを出力するようにしているので、ユーザが定義情報を作成するための工数が必要となる。また、作成されたレイアウトのユーザインターフェースについては、考慮されていない。
また、特許文献２に記載の技術では、あくまでも重複したオブジェクトのうち下になっているオブジェクトを指定可能とするものであり、複数のオブジェクトを効率的に画面上に再配置させるものではない。
【０００８】
本発明は、小型の表示画面において、最適なユーザインターフェースになるような画面レイアウトを生成可能な情報処理装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の課題を解決するために、
請求項１に記載の発明の情報処理装置は、表示手段を備えた情報処理装置において、前記表示手段に表示されるユーザの操作項目であるコントローラに関する情報を定義するコントローラ定義手段と、前記表示手段を入力領域、操作領域、遷移領域に分割し、当該分割された領域に対応するコントローラの名称を領域情報として定義する領域定義手段と、前記領域定義手段により定義された領域情報に基づいて、前記コントローラを前記入力領域、前記操作領域、前記遷移領域のいずれに配置するかを決定する領域決定手段と、前記領域決定手段により決定された配置に基づいて、前記分割された領域ごとにＦｉｔｔｓの法則を用いて前記コントローラの配置を決定し、当該決定された配置に基づいて前記コントローラに関する情報を更新する更新手段と、を備える。
【００１０】
請求項２に記載の発明は、請求項１に記載の情報処理装置において、前記コントローラの種類には、コマンドボタン、コンボボックスを含む。
【００１１】
請求項３に記載のプログラムは、表示手段を備えた情報処理装置のコンピュータを、前記表示手段に表示されるユーザの操作項目であるコントローラに関する情報を定義するコントローラ定義手段、前記表示手段を入力領域、操作領域、遷移領域に分割し、当該分割された領域に対応するコントローラの名称を領域情報として定義する領域定義手段、前記領域定義機能により定義された領域情報に基づいて、前記コントローラを前記入力領域、前記操作領域、前記遷移領域のいずれに配置するかを決定する領域決定手段、前記領域決定機能により決定された配置に基づいて、前記分割された領域ごとにＦｉｔｔｓの法則を用いて前記コントローラの配置を決定し、当該決定された配置に基づいて前記コントローラに関する情報を更新する更新手段、として機能させる。
【発明の効果】
【００１２】
本発明によれば、小型の表示画面において、Ｆｉｔｔｓの法則に従った最適なユーザインターフェースになるような画面レイアウトを生成可能な情報処理装置、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る情報処理装置１００の概略構成を示すブロック図である。
【図２】表示部１に表示される画面の一例について示した図である。
【図３】本実施形態に係る情報処理装置１００内で行われるコントローラ配置処理の一例について示したフローチャートである。
【図４】表示部１を入力領域、操作領域、遷移領域の３つの領域に分けた様子について示した図である。
【図５】リソースファイルの一例について示した図である。
【図６】入力領域配置決定処理の一例について示したフローチャートである。
【図７】定義ファイルの一例について示した図である。
【図８】操作・遷移領域配置決定処理の一例について示したフローチャートである。
【図９】各コントローラが最適なサイズ、位置に再描画される様子について示した図である。
【図１０】各コントローラが最適なサイズ、位置に再描画されるようにリソースファイルの内容が書き換えられる様子について示した図である。
【図１１】コントローラ再配置処理の一例について示したフローチャートである。
【図１２】ボタンのサイズについて示した図である。
【図１３】表示された画面の中央から操作を開始するときの様子について示した図である。
【図１４】Ｆｉｔｔｓの法則におけるＡ，Ｓ，Ｗの関係を説明するために示した図である。
【図１５】コントローラのサイズの最大値を算出する際に必要なダイアログの幅とコントローラの数とＳの関係を説明するために示した図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１５】
図１は、本実施形態に係る情報処理装置１００の概略構成を示すブロック図である。
図１に示すように、情報処理装置１００は、表示部１と、入力部２と、通信Ｉ／Ｆ（インターフェース）３と、フレームバッファ４と、記憶部５と、ＣＰＵ（Central Processing Unit）６と、ＲＡＭ（Random Access Memory）７と、ＲＯＭ（Read Only Memory）８と、を備えて構成される。
【００１６】
表示部１は、例えば、液晶ディスプレイ等で構成され、ＣＰＵ６からの表示制御指令に基づいて所定の画面を表示する。表示される画面は、例えば、図２に示したような画面である。図２に示したようなコマンドボタンやコンボボックスなどの、ユーザによる操作を受け付けるために表示される項目のことを、本発明ではコントローラと呼ぶ。
入力部２は、例えば、キーボード及びマウスで構成され、ユーザが情報を入力する際に使用される。ユーザは、ポインティングデバイスを、表示部１に表示された一つのコントローラを目標にカーソルを移動するような感覚で操作する。
【００１７】
通信Ｉ／Ｆ３は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）等の通信プロトコルに従って処理を行い、ネットワークＮを介して外部通信機器とデータの送受信を行う。
フレームバッファ４は、液晶ディスプレイに対するビデオ表示部分のメモリとして使われるＲＡＭのことであり、画面の１フレーム分をまるごとバッファリングするものである。
記憶部５は、例えばハードディスク等で構成され、ＯＳ（Operating System）、各種アプリケーションプログラム、及び各種データ等が記憶されている。また、表示部１に表示されるコントローラに関する情報（名称、表示位置、大きさ等）を定義したもの（リソースファイル）や、分割された領域（入力領域、操作領域、遷移領域）に対応するコントローラの名称を領域情報として定義したもの（定義ファイル）を記憶する。
【００１８】
ＣＰＵ６は、ＲＯＭ８に格納された処理プログラム等を読み出して、ＲＡＭ７に展開して実行することにより、情報処理装置１００全体の制御を行う。
ＲＡＭ７は、ＣＰＵ６により実行された処理プログラム等を、ＲＡＭ７内のプログラム格納領域に展開するとともに、入力データや上記処理プログラムが実行される際に生じる処理結果等をデータ格納領域に格納する。
ＲＯＭ８は、例えば、半導体メモリで構成され、処理プログラムやデータ等が予め記憶されている。ＲＯＭ８には、例えば、表示部１に表示する各コントローラの最適な配置を決定するためのコントローラ配置プログラム等が記憶されている。
【００１９】
また、ＣＰＵ６は、表示部１に表示されるコントローラに関する情報を記憶部５へ定義し、表示部１を入力領域、操作領域、遷移領域に分割し、当該分割された領域に対応するコントローラの名称を領域情報として記憶部５へ定義する。そして、定義された領域情報に基づいて、コントローラを入力領域、操作領域、遷移領域のいずれに配置するかを決定し、決定された配置に基づいて、分割された領域ごとにＦｉｔｔｓの法則を用いてコントローラの配置を決定し、当該決定された配置に基づいてコントローラに関する情報を更新する。
【００２０】
本実施形態に係る情報処理装置１００は、上記構成を備えたことにより、必要最小限の定義情報を定義するだけで、Ｆｉｔｔｓの法則に基づいた最適なユーザインターフェースになるような画面レイアウトを生成することができる。
従って、小型の表示画面に最適な画面レイアウトを容易に作成することが可能となる。また、開発者に依存しないユーザビリティを提供することができる。
以下、図３〜図１５を用いて、情報処理装置１００の動作を説明する。
【００２１】
図３は、本実施形態に係る情報処理装置１００内で行われるコントローラ配置処理の一例について示したフローチャートである。このコントローラ配置処理は、ＣＰＵ６がＲＯＭ８に格納されているコントローラ配置プログラムを実行することにより実現される。
【００２２】
図３に示すように、ステップＳ１では、入力領域配置決定処理が行われる。情報処理装置１００の表示部１は、図４に示すように、入力領域、操作領域、遷移領域の３つの領域に分かれている。入力領域配置決定処理とは、ソフトウェアの開発者が表示部１上に配置された各コントローラをそれぞれどの領域に配置すべきかを決定する処理である。
表示部１上に配置された各コントローラは、図５に示すようなリソースファイルの形で記憶部５に記憶される。操作領域及び遷移領域に配置されるコントローラはボタン形式であり、入力領域に配置されるコントローラはボタン形式以外の形式である。従って、リソースファイル内のＰＵＳＨＢＵＴＴＯＮで始まるコントローラ以外のコントローラを入力領域に配置するように決定する。
以下、入力領域配置決定処理について、図６のフローチャートを用いて詳細に説明する。この入力領域配置決定処理は、リソースファイルの先頭から順に各コントローラをチェックすることにより行う。
【００２３】
図６に示すように、ステップＳ１０１では、ＥＮＤに到達したか否かを判定する。ＥＮＤに到達した場合は、図３のステップＳ２へと移行し、ＥＮＤに到達していなかった場合は、次のステップＳ１０２へと移行する。
ステップＳ１０２では、ＰＵＳＨＢＵＴＴＯＮに到達したか否かを判定する。ＰＵＳＨＢＵＴＴＯＮに到達した場合は、ステップＳ１０１へと移行し、ＰＵＳＨＢＵＴＴＯＮに到達していなかった場合は、次のステップＳ１０３へと移行する。
ステップＳ１０３では、現在チェックしているコントローラを入力領域に配置するように決定する。
【００２４】
次に、図３のステップＳ２では、操作・遷移領域配置決定処理が行われる。操作領域及び遷移領域に配置されるコントローラはすべてボタン形式なので、図５に示したようなリソースファイル内のボタンコントローラ（ＰＵＳＨＢＵＴＴＯＮで始まるコントローラ）のキャプション（例えば“ＯＫ”、“Ｃａｎｃｅｌ”等）又は識別子（例えばＩＤＯＫ、ＩＤＣＡＮＣＥＬ等）を参照して、配置を判断する。
具体的には、図７に示すように、定義ファイルの中に操作領域及び遷移領域で使用するボタンコントローラのキャプションと識別子を予め定義しておく。そして、定義ファイルとリソースファイルとを比較し、各ボタンコントローラを操作領域（［ｏｐｅｒａｔｉｏｎ］）又は遷移領域（［ｔｒａｎｓｉｔｉｏｎ］）のどちらに配置するかを決定する。なお、定義ファイルは開発者が自由に編集可能とする。
以下、操作・遷移領域決定処理について、図８のフローチャートを用いて詳細に説明する。この操作・遷移領域配置決定処理は、入力領域配置決定処理同様、リソースファイルの先頭から順に各コントローラをチェックすることにより行う。
【００２５】
図８に示すように、ステップＳ２０１では、ＥＮＤに到達したか否かを判定する。ＥＮＤに到達した場合は、図３のステップＳ３へと移行し、ＥＮＤに到達していなかった場合は、次のステップＳ２０２へと移行する。
ステップＳ２０２では、ＰＵＳＨＢＵＴＴＯＮに到達したか否かを判定する。ＰＵＳＨＢＵＴＴＯＮに到達した場合は、次のステップＳ２０３へと移行し、ＰＵＳＨＢＵＴＴＯＮに到達していなかった場合は、ステップＳ２０１へと移行する。
ステップＳ２０３では、現在チェックしているコントローラのキャプション及び識別子を取得する。
ステップＳ２０４では、定義ファイル中の［ｏｐｅｒａｔｉｏｎ］に定義されているキーワードとキャプション及び識別子が一致するか否かを判定する。キャプション及び識別子が一致した場合は、次のステップＳ２０５へと移行し、キャプション及び識別子が一致しなかった場合は、ステップＳ２０６へと移行する。
ステップＳ２０５では、現在チェックしているコントローラを操作領域に配置するように決定する。
ステップＳ２０６では、定義ファイル中の［ｔｒａｎｓｉｔｉｏｎ］に定義されているキーワードとキャプション及び識別子が一致するか否かを判定する。キャプション及び識別子が一致した場合は、次のステップＳ２０７へと移行し、キャプション及び識別子が一致しなかった場合は、ステップＳ２０８へと移行する。
ステップＳ２０７では、現在チェックしているコントローラを遷移領域に配置するように決定する。
ステップＳ２０８では、現在チェックしているコントローラを入力領域に配置するように決定する。
【００２６】
次に、図３のステップＳ３では、コントローラ再配置処理が行われる。入力領域は主にリストやドロップダウン、エディットコントローラ等を配置するため、領域を広くとる必要がある。そこで、本実施形態では、図４に示したように、画面における入力領域、操作領域及び遷移領域の割合をそれぞれ５０％、２５％、２５％とする。
【００２７】
図９は、各コントローラが最適なサイズ、位置に再描画される様子について示した図である。
図９（ａ）に示すような各領域内の各コントローラに対し、Ｆｉｔｔｓの法則に基づいて各コントローラのサイズと位置を決定する。その結果に基づいてリソースファイルの内容を書き換え、図９（ｂ）に示すように各コントローラを最適なサイズ、位置に再描画する。
図１０に、各コントローラが最適なサイズ、位置に再描画されるようにリソースファイルの内容が書き換えられる様子について示す。図１０（ａ）が図９（ａ）に、図１０（ｂ）が図９（ｂ）にそれぞれ対応する。
以下、コントローラ再配置処理について、図１１を用いて詳細に説明する。
【００２８】
図１１に示すように、ステップＳ３０１では、タブオーダを取得する。各領域の各コントローラは、ここで取得されたタブオーダの順に描画される。そのため、開発者は予め入力領域に描画するコントローラのタブオーダを設定しておく必要がある。
ステップＳ３０２では、ステップＳ３０１で取得したタブオーダに基づいて描画開始コントローラを決定する。
ステップＳ３０３では、ステップＳ３０２で決定された描画開始コントローラと次に描画予定のコントローラとの距離及び当該描画予定のコントローラのサイズを取得する。
ステップＳ３０４では、Ｆｉｔｔｓの法則に基づいて最適なサイズ、位置にリソースを書き換える。以下、ステップＳ３０４で行われる処理について、図１２〜図１５を用いて具体的に説明する。
【００２９】
Ｆｉｔｔｓの法則は、数式１で表すことができる。
数式１において、Ｔはターゲットまでポインティングデバイスを移動するための時間を表すので、Ｔの値が小さいほど操作性が良いといえる。
［数式１］
Ｔ＝ａ＋ｂlog２（Ａ／Ｗ＋１）
Ｔ：ターゲットまでポインティングデバイスを移動するための時間
Ａ：ターゲット間距離（中心からの距離）
Ｗ：ターゲットのサイズ
ａ、ｂ：係数（一般的に、ａ＝５０，ｂ＝１５０）
【００３０】
まず、ボタンのサイズについて示した図１２を参照する。図１２（ａ）は、最適なボタンのサイズの一例であり、図１２（ｂ）は、ボタンのサイズの悪い例である。図１２（ｂ）に示すようにボタンのサイズが小さくなりすぎないよう、予めＦｉｔｔｓの法則におけるＷの値の最小値（Ｗｍｉｎ）を決定しておく。
画面が表示された後、表示された画面の中央から操作を開始するときの様子を、図１３に示す。図１３（ａ）と図１３（ｂ）とを比較して、図１３（ａ）の方がカーソルの移動距離が短いため、コントローラのサイズ（Ｗ）は可能な限り大きい方が使い勝手がよいことがわかる。
【００３１】
次に、Ｆｉｔｔｓの法則におけるＡ，Ｓ（ターゲット間の最短距離），Ｗの関係を図１４に示す。図１４を参照すると、Ａ＝Ｓ＋Ｗであることがわかり、数式１で示したＦｉｔｔｓの法則を、数式２のように書き換えることができる。
［数式２］
Ｔ＝ａ＋ｂlog２｛（Ｗ＋Ｓ）／Ｗ＋１｝
数式２によれば、Ｓの値を０に近づけるほどＴの値は小さくなり、操作性を向上させることができる。しかしながら、Ｓの値を０に近づけるほど視認性が低下し、コントローラ間の境界を見極めるのが困難となる。そこで、本発明では、Ｓの値として、プラットフォームに依存した標準ポインタの幅を使用する（例えば、ＷｉｎｄｏｗｓＸＰ（登録商標）の場合は１２ｐｉｘｅｌ）。
以上より、Ｆｉｔｔｓの法則をＴとＷの２つの変数で表現することが可能となる。
【００３２】
そして、コントローラのサイズの最大値を算出する際に必要なダイアログの幅とコントローラの数とＳの関係を図１５に示す。コントローラのサイズの最大値（Ｗｍａｘ）は、コントローラを配置するダイアログの幅により制限され、例えば、数式３を演算することで算出することができる。
［数式３］
Ｗｍａｘ＝｛ダイアログの幅−（コントローラ数−１）×Ｓ｝／コントローラ数
【００３３】
以上より、数式２にＷｍｉｎからＷｍａｘまでの値を代入し、最小となるＴを決定することで、最適な位置にコントローラを配置することができる。
【００３４】
次に、図１１のステップＳ３０５では、ＥＮＤに到達したか否かを判定する。ＥＮＤに到達した場合は、図３に示したコントローラ配置処理を終了し、ＥＮＤに到達していなかった場合は、ステップＳ３０３へと移行する。
【００３５】
このように、本実施形態に係る情報処理装置１００は、必要最小限の定義情報を定義するだけで、Ｆｉｔｔｓの法則に基づいた最適なユーザインターフェースになるような画面レイアウトを生成することができる。
従って、小型の表示画面に最適な画面レイアウトを容易に作成することが可能となる。また、画面レイアウトを自動生成するため、従来では開発者に依存していたユーザビリティを統一化することができる。しかも、画面レイアウトのＧＵＩをＦｉｔｔｓの法則に従って計量化して自動評価するため、従来のテスト工程から製造工程への逆戻りがなくなり、開発工数を削減することができる。
【００３６】
以上、本発明に係る実施形態に基づいて具体的に説明したが、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で変更可能である。
【００３７】
例えば、上記実施形態では、表示部１の画面における入力領域、操作領域及び遷移領域の割合をそれぞれ５０％、２５％、２５％としたが、３つの領域の割合に関しては特に制限はない。
【００３８】
その他、情報処理装置１００を構成する各装置の細部構成及び細部動作に関しても、本発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【符号の説明】
【００３９】
１００  情報処理装置
１  表示部
２  入力部
３  通信Ｉ／Ｆ
４  フレームバッファ
５  記憶部
６  ＣＰＵ
７  ＲＡＭ
８  ＲＯＭ
【図１】
2010204988.tif 000003
【図２】
2010204988.tif 000004
【図３】
2010204988.tif 000005
【図４】
2010204988.tif 000006
【図５】
2010204988.tif 000007
【図６】
2010204988.tif 000008
【図７】
2010204988.tif 000009
【図８】
2010204988.tif 000010
【図９】
2010204988.tif 000011
【図１０】
2010204988.tif 000012
【図１１】
2010204988.tif 000013
【図１２】
2010204988.tif 000014
【図１３】
2010204988.tif 000015
【図１４】
2010204988.tif 000016
【図１５】
2010204988.tif 000017