(57)【特許請求の範囲】
【請求項１】
グラフィカルユーザインタフェース（ＧＵＩ）を持つアプリケーションソフトウェアを実行する処理部を備えた情報処理システムのＧＵＩカスタマイズ方法であって、
前記処理部は、
前記ソフトウェアの操作履歴から使用者の前記ＧＵＩの使用状況を抽出し、
前記ソフトウェアの複数の前記使用者を、前記ＧＵＩの使用状況の類似度に基づいてクラスタリングし、
前記クラスタリングの結果に基づき複数の前記使用者を分割した複数のクラスタ各々を代表するＧＵＩの使用状況に基づき、前記ソフトウェアのＧＵＩを変更し、
特定の使用者の前記ＧＵＩの使用状況と、前記クラスタ各々を代表するＧＵＩの使用状況とを比較することにより、前記特定の使用者を前記複数のクラスタのいずれかに分類し、
前記特定の使用者が分類された前記クラスタの前記ＧＵＩに基づき、前記特定の使用者の前記ソフトウェアのＧＵＩを変更する、
ことを特徴とするＧＵＩカスタマイズ方法。
【請求項２】
請求項１に記載のＧＵＩカスタマイズ方法であって、
前記処理部は、
前記ソフトウェアの複数の前記使用者を、前記ソフトウェアを用いた作業の所定の条件に基づき複数のカテゴリに分割し、
分割された前記複数のカテゴリ各々において、前記複数の使用者の前記クラスタリングを実行する、
ことを特徴とするＧＵＩカスタマイズ方法。
【請求項３】
請求項２に記載のＧＵＩカスタマイズ方法であって、
前記処理部は、
前記所定の条件として、前記使用者が前記ソフトウェアを用いた結果の品質と所要時間で判定されるスキルレベルを用いる、
ことを特徴とするＧＵＩカスタマイズ方法。
【請求項４】
請求項２に記載のＧＵＩカスタマイズ方法であって、
前記処理部は、
前記ソフトウェアを用いた前記作業を、作業対象の属性により分類した複数の作業分類毎に、前記ソフトウェアの複数の前記使用者を、前記複数のカテゴリに分割する、
ことを特徴とするＧＵＩカスタマイズ方法。
【請求項５】
請求項３に記載のＧＵＩカスタマイズ方法であって、
前記処理部は、
前記使用者が前記ソフトウェアを用いた前記結果を検証し、
前記検証の結果を、作業目標値と比較することにより前記スキルレベルを判定し、判定された前記スキルレベルと特定の関係にあるスキルレベルを有する前記カテゴリに、前記使用者を対応付けする、
ことを特徴とするＧＵＩカスタマイズ方法。
【請求項６】
請求項５に記載のＧＵＩカスタマイズ方法であって、
前記処理部は、
前記特定の関係として、前記使用者の前記スキルレベルより少なくとも１段階上位のスキルレベルを有する前記カテゴリを対応付けする関係を用いる、
ことを特徴とするＧＵＩカスタマイズ方法。
【請求項７】
ＧＵＩを持つアプリケーションソフトウェアを実行する処理部と記憶部とを備えた情報処理システムであって、
前記処理部は、
前記ソフトウェアの操作履歴から使用者の前記ＧＵＩの使用状況を抽出し、
前記ソフトウェアの複数の前記使用者を、前記ＧＵＩの使用状況の類似度に基づいてクラスタリングし、
前記クラスタリングの結果に基づき複数の前記使用者を分割した複数のクラスタ各々を代表するＧＵＩの使用状況に基づき、前記ソフトウェアのＧＵＩを調整して前記記憶部に記憶し、
特定の使用者の前記ＧＵＩの使用状況と、前記クラスタ各々を代表するＧＵＩの使用状況とを比較することにより、前記特定の使用者を前記複数のクラスタのいずれかに分類し、
前記特定の使用者が分類された前記クラスタの前記ＧＵＩに基づき、前記特定の使用者の前記ソフトウェアのＧＵＩを変更する、
ことを特徴とする情報処理システム。
【請求項８】
請求項７に記載の情報処理システムであって、
前記処理部は、
前記ソフトウェアの複数の前記使用者を、前記ソフトウェアを用いた作業の所定の条件に基づき複数のカテゴリに分割し、
分割された前記複数のカテゴリ各々において、前記複数の使用者の前記クラスタリングを実行する、
ことを特徴とする情報処理システム。
【請求項９】
請求項８に記載の情報処理システムであって、
前記処理部は、
前記所定の条件として、前記使用者が前記ソフトウェアを用いた結果の品質と所要時間で判定されるスキルレベルを用いる、
ことを特徴とする情報処理システム。
【請求項１０】
請求項８に記載の情報処理システムであって、
前記処理部は、
前記ソフトウェアを用いた前記作業を、作業対象の属性により分類した複数の作業分類毎に、前記ソフトウェアの複数の前記使用者を、前記複数のカテゴリに分割する、
ことを特徴とする情報処理システム。
【請求項１１】
請求項９に記載の情報処理システムであって、
前記処理部は、
前記使用者が前記ソフトウェアを用いた前記結果を検証し、
前記検証の結果を、作業目標値と比較することにより前記スキルレベルを判定し、判定された前記スキルレベルと特定の関係にあるスキルレベルを有する前記カテゴリに、前記使用者を対応付けする、
ことを特徴とする情報処理システム。
【請求項１２】
請求項１１に記載の情報処理システムであって、
前記処理部は、
前記特定の関係として、前記使用者の前記スキルレベルより少なくとも１段階上位のスキルレベルを有する前記カテゴリを対応付けする関係を用いる、
ことを特徴とする情報処理システム。
【請求項１３】
請求項７に記載の情報処理システムであって、
前記情報処理システムは、ネットワークを介してクライアント端末に接続される、前記処理部と前記記憶部とを備えたサーバ装置を備え、
前記クライアント端末はウインドウシステムを有し、前記ネットワークを介して、前記特定の使用者のために変更された前記ソフトウェアのＧＵＩに基づき、前記ウインドウシステムを制御する、
ことを特徴とする情報処理システム。
【請求項１４】
ＧＵＩを持つアプリケーションソフトウェアを実行する処理部と記憶部とを備えた情報処理システムの前記処理部で実行されるプログラムであって、
前記処理部を、
前記ソフトウェアの操作履歴から使用者の前記ＧＵＩの使用状況を抽出し、
前記ソフトウェアの複数の前記使用者を、前記ＧＵＩの使用状況の類似度に基づいてクラスタリングし、
前記クラスタリングの結果に基づき複数の前記使用者を分割した複数のクラスタ各々を代表するＧＵＩの使用状況に基づき、前記ソフトウェアのＧＵＩを調整して前記記憶部に記憶し、
特定の使用者の前記ＧＵＩの使用状況と、前記クラスタ各々を代表するＧＵＩの使用状況とを比較することにより、前記特定の使用者を前記複数のクラスタのいずれかに分類し、
前記特定の使用者が分類された前記クラスタの前記ＧＵＩに基づき、前記特定の使用者の前記ソフトウェアのＧＵＩを変更するよう実行させる、
ことを特徴とするプログラム。
【請求項１５】
請求項１４に記載のプログラムであって、
前記処理部を、
前記ソフトウェアの複数の前記使用者を、前記ソフトウェアを用いた作業の所定の条件に基づき複数のカテゴリに分割し、
分割された前記複数のカテゴリ各々において、前記複数の使用者の前記クラスタリングを実行させる、
ことを特徴とするプログラム。
【請求項１６】
請求項１５に記載のプログラムであって、
前記処理部を、
前記所定の条件として、前記使用者が前記ソフトウェアを用いた結果の品質と所要時間で判定されるスキルレベルを用いるよう実行させる、
ことを特徴とするプログラム。
【請求項１７】
請求項１５に記載のプログラムであって、
前記処理部を、
前記ソフトウェアを用いた前記作業を、作業対象の属性により分類した複数の作業分類毎に、前記ソフトウェアの複数の前記使用者を、前記複数のカテゴリに分割するよう実行させる、
ことを特徴とするプログラム。
【請求項１８】
請求項１７に記載のプログラムであって、
前記処理部を、
前記使用者が前記ソフトウェアを用いた前記結果を検証し、
前記検証の結果を、作業目標値と比較することにより前記スキルレベルを判定し、判定された前記スキルレベルと特定の関係にあるスキルレベルを有する前記カテゴリに、前記使用者を対応付けするよう実行させる、
ことを特徴とするプログラム。
【請求項１９】
請求項１８に記載のプログラムであって、
前記処理部を、
前記特定の関係として、前記使用者の前記スキルレベルに対応する前記カテゴリとは異なる前記カテゴリを対応付けする関係を用いるよう実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム上で稼動するアプリケーションソフトウェアのグラフィカルユーザインタフェース（ＧＵＩ：Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）技術に関し、特に、作業の状況や使用者のスキルレベルに応じて、ＧＵＩをカスタマイズする技術に関する。
【背景技術】
【０００２】
近年の計算機の高性能化に伴い、計算機上で稼動するアプリケーションソフトウェアもより高機能、かつ複雑な処理を行えるようになっている。特に、アプリケーションソフトウェアをインタラクティブに操作することによって所望の処理を実現する作業では、ＧＵＩを用いた操作が主流になっている。ＧＵＩは、画面表示されたメニューやアイコン等の画像オブジェクトをマウス等で直接操作する直感的なユーザインタフェースである。ＧＵＩを用いれば、そのアプリケーションソフトウェアに不慣れなユーザでも、ＧＵＩオブジェクトの位置や形状、他のアプリケーションソフトウェアとの類似性等に基づいて、ある程度操作方法を予測することができる。
【０００３】
しかし、そのアプリケーションソフトウェアの機能に特有の操作やコマンドを、効率よく実行するためには、経験や教育に基づいた操作方法の学習が必要である。特に、複雑な操作が必要なアプリケーションソフトウェアや、専門的な知識を要求する作業を行うアプリケーションソフトウェアでは、操作方法の習得に時間がかかる。
【０００４】
例えば、半導体集積回路や建築、機械設計等で用いるＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）ツールは、極めて専門的な分野の作業を対象とするアプリケーションソフトウェアである。ＣＡＤは、様々な設計対象や目標条件設定に対応するために、機能が豊富で操作項目も多岐にわたる。このように複雑な処理を実行可能なアプリケーションソフトウェアの操作を行うためには、対象分野に対する広範な知識や、操作ノウハウの蓄積が求められ、初級者には操作習熟のハードルが高い。
【０００５】
一方で、作業対象や目標条件を限定して作業を行う場合、必ずしもアプリケーションソフトウェアの全ての機能を使用しない場合がある。このような状況では、その作業におけるスキルレベルの低い使用者は、操作時に使用すべき機能の選択に迷ったり、誤って目的以外の機能を呼び出したりすることにより、作業効率が低下するという問題があった。また、例えば、スキルレベルの低い使用者は、マウスを用いたオブジェクト選択による機能呼び出しを主に行い、スキルレベルの高い使用者は、バインドキーを用いた機能呼び出しを主に行う等、操作方法が使用者によって異なる場合があった。
【０００６】
アプリケーションソフトウェアを用いた作業の目的が、所望の品質を持つ作業結果を得ることであるとすると、所望の品質にできるだけ短い時間で到達するためには、使用者の作業スキルレベルに応じて、アプリケーションソフトウェアの操作を効率よく行う手段を提供することが有効である。
【０００７】
これに対し、例えば特許文献１や２には、ユーザのアプリケーションソフトウェア操作への習熟度を、キー打鍵速度やマウス操作速度、機能選択頻度等の操作の状況を分析することによって判定し、これに基づいて習熟度ごとに予め定めたＧＵＩを提示する方法が開示されている。
【０００８】
また、特許文献３には、ユーザの操作の特徴を機能選択頻度や迷い等から判定し、これに基づいてＧＵＩをカスタマイズする方法が開示されている。
【０００９】
特許文献４には、ユーザが既存アプリケーションソフトウェアに対し行ったＧＵＩカスタマイズの傾向をルール化し、当該ユーザが新規アプリケーションソフトウェアを使用する際に、ルールを用いてＧＵＩをカスタマイズする方法が開示されている。
【００１０】
対象とするアプリケーションソフトウェアを用いて作業を行った場合の、使用者の作業スキルレベルを判定する方法としては、例えば特許文献５に、設計ツールを用いたＬＳＩ設計におけるユーザの設計技術を、テスト用設計課題に対する解答を評価基準（ゲート数、タイミング違反、タイミング収束性、動作周波数、消費電力、解答時間）に基づいて評価することによって判定する方法が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開０３−１７７８５４号公報
【特許文献２】特開平１１−３９１２７号公報
【特許文献３】特開２００８−９７４６６号公報
【特許文献４】特開平８−２９２８６４号公報
【特許文献５】特開２００４−１１０３３３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１および２に記載の方法は、使用者によるＧＵＩ操作状況を予め設定したアプリケーションソフトウェア操作の習熟度と対応づけているが、アプリケーションソフトウェア操作の習熟度とアプリケーションソフトウェアを用いた作業の効率（作業の品質と作業にかかった時間）を関係付ける方法が開示されていないという問題があった（第１の課題）。
【００１３】
また、いずれも判定した習熟度毎に予め定めておいたカスタマイズ設定を用いてカスタマイズするものであり、使用者のＧＵＩオブジェクト毎の操作状況に対応してカスタマイズ設定を決定する方法が開示されていないため、習熟度に応じて各ＧＵＩオブジェクトをきめ細かくカスタマイズすることができないという問題があった（第２の課題）。
【００１４】
特許文献３および４は、いずれもユーザ本人による操作傾向や、カスタマイズ傾向に基づいてカスタマイズを行うため、カスタマイズ設定を客観的な基準に基づいて決定することができないという問題があった（第３の課題）。
【００１５】
上記の従来技術は、いずれも使用者によるＧＵＩ操作の状況に基づいてＧＵＩのカスタマイズを行うものであり、アプリケーションソフトウェアを用いた作業の内容や、使用者の作業スキルレベルに基づいてＧＵＩをカスタマイズするものではなかった。
【００１６】
特許文献５記載の方法は、使用者の作業スキルレベルを、テスト問題の設計結果（設計回路、レイアウト等）の品質（検証結果）や作業時間に基づいて決定するが、その結果をツールの操作性向上に反映することを想定していないため、複数の評価基準を用いてスキルレベルを定量化する方法が開示されていないという問題があった（第４の課題）。
【００１７】
本発明の目的は、これらの課題を解決することのできる情報処理システムのＧＵＩカスタマイズ方法、システム及びプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
上記の目的を達成するため、本発明においては、ＧＵＩを持つソフトウェアを実行する処理部を備えた情報処理システムのＧＵＩのカスタマイズを行うため、処理部が、ソフトウェアの操作履歴から使用者の使用状況を抽出し、ソフトウェアの複数の使用者を使用状況の類似度に基づいてクラスタリングし、クラスタリングの結果に基づき複数の使用者を分割した複数のクラスタ各々を代表する使用状況に基づきソフトウェアのＧＵＩを変更し、特定の使用者の使用状況と、クラスタ各々を代表する使用状況とを比較することにより、特定の使用者を複数のクラスタのいずれかに分類し、特定の使用者が分類されたクラスタのＧＵＩに基づき、特定の使用者のソフトウェアのＧＵＩをカスタマイズするＧＵＩカスタマイズ方法、情報処理システム、及びプログラムを構成する。
【００１９】
また、上記の目的を達成するため、本発明においては、ＧＵＩを持つソフトウェアを実行する処理部を備えた情報処理システムのＧＵＩのカスタマイズを行うため、処理部は、ソフトウェアの複数の使用者を、ソフトウェアを用いた作業を作業対象の属性により分類した複数の作業分類毎に、当該ソフトウェアを用いて作業を実行した際の使用者のスキルレベルに基づき複数のカテゴリに分割し、分割された複数のカテゴリ各々に対して、ソフトウェアのＧＵＩを調整し、調整されたＧＵＩに基づき、複数のカテゴリ各々に分類される使用者のＧＵＩをカスタマイズするＧＵＩカスタマイズ方法、情報処理システム、及びプログラムを構成する。
【００２０】
すなわち、本発明の好適な形態においては、第１、および第４の課題を解決するために、アプリケーションソフトウェアを用いた作業の効率を、作業の内容に応じて、作業結果の品質（性能値）と作業の目標値（制約条件）との比較、および所要時間（作業に必要とされた時間）により計算し、これに基づいて判定した使用者のスキルレベルに応じてＧＵＩをカスタマイズする。
【００２１】
また、第２の課題を解決するために、使用者のスキルレベル毎に、アプリケーションソフトウェアを使用する複数の使用者群の使用状況（どの使用者がどのＧＵＩオブジェクトをどのように使用したか）を抽出し、使用状況からＧＵＩの各オブジェクトのカスタマイズ設定を決定する。
【００２２】
さらに、第３の課題を解決するために、対象使用者のＧＵＩカスタマイズ設定を、当該使用者よりスキルレベルの高い使用者群の使用状況に基づいて決定する。
【００２３】
より具体的な実施形態においては、使用者のスキルレベルを、作業結果の品質や作業時間に基づいて判定する方法を設けた。アプリケーションソフトウェアの使用者群を作業の内容やスキルレベルに応じて複数のカテゴリに分類する方法を設けた。使用者のＧＵＩ操作履歴を収集し、これに基づいて操作傾向を分析してＧＵＩの使用状況を抽出する方法を設けた。対象アプリケーションソフトウェアの使用者群を、分類したカテゴリ毎に、使用状況に基づいてクラスタリングする方法を設けた。上記クラスタリング方法に基づいてクラスタリングしたクラスタ毎に、使用状況に基づいてＧＵＩのカスタマイズ方法を設定する方法を設けた。ＧＵＩカスタマイズ対象の使用者を、使用状況の類似度に基づいて、上記クラスタリング方法に基づいてクラスタリングしたクラスタのひとつに分類し、そのクラスタに対して設定されたＧＵＩカスタマイズ方法を適用することにより、使用者のＧＵＩをカスタマイズする方法を設けた。
【発明の効果】
【００２４】
本発明のＧＵＩカスタマイズ方法により、計算機等の情報処理装置上で稼動するアプリケーションソフトウェアのＧＵＩを、使用者の作業スキルレベルに応じて最適にカスタマイズすることによって、アプリケーションソフトウェアを用いた作業の効率を向上させることが可能になる。
【００２５】
また、本発明は、使用者によるアプリケーションソフトウェアを用いた作業結果、作業時間、および使用者によるアプリケーションソフトウェアのＧＵＩ操作履歴を用いてＧＵＩをカスタマイズするものであり、アプリケーションソフトウェアの内部情報を必要としない。またアプリケーションソフトウェアの改造が必須ではない。したがって、本発明の方法は、複数のアプリケーションソフトウェアへの適用や、アプリケーションソフトウェアがバージョンアップ等により変更された場合においても適用が容易である。
【図面の簡単な説明】
【００２６】
【図１】第１の実施例に係るシステム構成の一例を示す情報処理装置のブロック図である。
【図２】第１の実施例に係る、ＧＵＩカスタマイズプログラムの処理の流れを示した図である。
【図３】第１の実施例に係る、作業内容の分類例を示す図である。
【図４】第１の実施例に係る、使用者の作業スキルレベル判定処理部の一構成を示す図である。
【図５】第１の実施例に係る、性能検証結果の一例を示す図である。
【図６】第１の実施例に係る、回路作成ツールを用いて回路設計を行う際の作業条件の一例を示す図である。
【図７】第１の実施例に係る、スキルレベルの判定条件の一例を示す図である。
【図８】第１の実施例に係る、スキルレベルを判定する処理のフローを示す図である。
【図９】第１の実施例に係る、アプリケーションソフトウェアのＧＵＩ画面の一例を示す図である。
【図１０】第１の実施例に係る、ＧＵＩ使用状況抽出処理部の構成を表す図である。
【図１１】第１の実施例に係る、使用者i、作業分類ｊにおける使用状況の一例を示す図である。
【図１２】第１の実施例に係る、使用状況の別の例を示す図である。
【図１３】第１の実施例に係る、使用者カテゴリ分類部の処理を説明する図である。
【図１４】第１の実施例に係る、使用者クラスタリング処理部の処理を説明する図である。
【図１５】第１の実施例に係る、クラスタリング部における処理を説明する図である。
【図１６】第１の実施例に係る、類似度判定処理部の処理を説明する図である。
【図１７】第１の実施例に係る、ＧＵＩカスタマイズ方法設定部の処理を説明する図である。
【図１８】第１の実施例に係る、クラスタｉに属する使用者群の使用状況のリストを示す図である。
【図１９】第１の実施例に係る、クラスタｉの使用状況を計算した結果を示す図である。
【図２０】第１の実施例に係る、ＧＵＩのカスタマイズ方法を設定した例を示す図である。
【図２１】第１の実施例に係る、ＧＵＩカスタマイズ処理部の処理を説明する図である。
【図２２】第１の実施例に係る、情報処理装置でＧＵＩを表示、制御する処理を説明する図である。
【図２３】第１の実施例に係る、アプリケーションソフトウェアのＧＵＩをカスタマイズする方法を示した図である。
【図２４】第１の実施例に係る、ＧＵＩカスタマイズ部の構成を示す図である。
【図２５】第１の実施例に係る、サーバ−クライアント型情報処理装置におけるＧＵＩカスタマイズ方法の例を示す図である。
【図２６】第１の実施例に係る、サーバ−クライアント型情報処理装置におけるＧＵＩカスタマイズ方法の別の例を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するために好適な形態の例について、図面を参照しながら説明する。以下の説明において、「スキルレベル」とは、作業結果の品質（性能値）および所要時間（作業に必要とされた時間）に基づき判定される使用者・作業者のレベルを言う。なお、情報処理装置で実行される各種のプログラムあるいはその機能を、処理、手段、あるいは処理部と称する場合がある。例えば、「スキルレベル判定プログラム」を「スキルレベル判定処理」、「スキルレベル判定手段」、あるいは「スキルレベル判定処理部」と呼ぶ場合があるので留意されたい。
【実施例１】
【００２８】
図１は、第１の実施例に係る、計算機等の情報処理装置で実施するためのシステム構成の例を表す図である。
【００２９】
図１の１０１は、ＥＷＳ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｗｏｒｋｓｔａｔｉｏｎ）や、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ装置等の計算機システムを表している。１０１は、少なくとも種々の演算を実行する処理部としてのプロセッサ１０２、計算機を制御するソフトウェアであるオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、ＧＵＩの制御を行うウインドウシステム（Ｗｉｎｄｏｗ  Ｓｙｓｔｅｍ）、アプリケーションソフトウェア等の各種ソフトウェアの実行イメージ、データ等を格納するメモリ１０３、ソフトウェアのファイルやデータ等を格納するハードディスク等の記憶装置１０４、ユーザインタフェースとして表示装置１０５、キーボード１０６、マウス１０７等を接続して制御する入出力制御部（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）１０８を有し、これらの間の通信はバス１０９を介して行われる。メモリ１０３と記憶装置１０４は、計算機システムの記憶部を構成する。
【００３０】
なお、オペレーティングシステムやアプリケーション等のソフトウェアやデータは、通常は、計算機システムの電源を遮断しても記憶した内容を保持することが可能な記憶装置１０４にファイルとして格納し、計算機システムが動作する際にメモリ１０３に読み込むことにより実行される。本実施例においてもこれらの動作は通常の計算機システムと同様であるが、本実施例の説明には用いないため図示していない。また、計算機システム１０１は、上記ＥＷＳ、ＰＣ、サーバ装置等の計算機システムの通常動作に必要なその他のハードウェア、ソフトウェアを備えているものとするが、本実施例の説明には用いないため図示していない。
【００３１】
メモリ１０３には、少なくとも本実施例のＧＵＩカスタマイズ方法の適用対象であるアプリケーションソフトウェア１１０、アプリケーションソフトウェアを用いて使用者が作業した結果を検証する手段の例である検証ソフトウェア１１１、本実施例のＧＵＩカスタマイズを実行するＧＵＩカスタマイズプログラム１１２の実行イメージが格納される。また、オペレーティングシステム１３１や、ウインドウシステム１３２も格納される。
【００３２】
ＧＵＩカスタマイズプログラム１１２には、アプリケーションソフトウェア１１０の使用者の作業スキルレベルを判定するスキルレベル判定処理部１１３、作業時間を測定する作業時間測定部１１４、アプリケーションソフトウェアのＧＵＩ使用状況を抽出するＧＵＩ使用状況抽出処理部１１５、使用者を複数のカテゴリに分類する使用者カテゴリ分類部１２９、使用者を使用状況に基づいてクラスタリングする使用者クラスタリング処理部１１６、アプリケーションソフトウェア１１０のＧＵＩカスタマイズ方法を設定するＧＵＩカスタマイズ方法設定部１１７、ＧＵＩカスタマイズの対象となる使用者と、使用者クラスタのＧＵＩ使用状況の類似度を判定する類似度判定処理部１１８、ＧＵＩカスタマイズを実行するＧＵＩカスタマイズ処理部１１９が含まれる。
【００３３】
また、記憶装置１０４には、少なくともアプリケーションソフトウェア１１０を用いた作業の結果１２０、作業結果を検証ソフトウェアで検証した結果１２１、作業の性能目標や制約等の作業条件１２２、検証結果１２１からアプリケーションソフトウェア使用者のスキルレベル判定を行う際の判定条件１２３、判定条件１２３に基づいて判定した使用者のスキルレベル１２４、アプリケーションソフトウェア１１０を用いた作業にかかった作業時間１２５、使用者の分類結果である使用者カテゴリ１３０、使用者のＧＵＩ使用状況１２６、使用者のクラスタリング結果である使用者クラスタ１２７、ＧＵＩカスタマイズ方法１２８が格納され、それぞれはＧＵＩカスタマイズプログラム１１２の動作に応じて生成、更新、メモリへの読み込みが行われる。
【００３４】
プロセッサ１０２は、少なくとも中央演算処理部（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を有し、メモリ１０３にアクセスしてオペレーションシステム等の制御ソフトウェアを介してアプリケーションソフトウェア１１０や検証ソフトウェア１１１、ＧＵＩカスタマイズプログラム１１２を実行し、ソフトウェアの命令に従って、Ｉ／Ｏ制御部１０８を介して画像や文字のディスプレイモニタ等の表示装置１０５への表示、および使用者がキーボード１０６やマウス１０７等の入力デバイスを用いて入力した情報の取得を行う。
【００３５】
図２は、図１のＧＵＩカスタマイズプログラム１１２の処理の流れを示した図である。１１０は、本実施例のＧＵＩカスタマイズ方法を適用する対象のアプリケーションソフトウェアを表している。本ソフトウェアを、ＧＵＩを介してインタラクティブに操作することにより、ある使用者ｉがある作業分類ｊの作業を行った結果として、作業結果２０１を出力する。ここで、作業分類とは、アプリケーションソフトウェアを用いた全ての作業を、その作業の対象や作業内容の種類等の作業対象の属性に基づいて分類したものである。
【００３６】
検証ソフトウェア１１１は、作業結果２０１の性能を検証するための手段として用いられるものであり、作業結果２０１に対し品質や性能を検証し、検証結果２０２を出力する。図１の作業結果１２０、検証結果１２１は、本アプリケーションソフトウェアを使用する他の使用者の作業結果、および検証結果のうち、本実施例で使用する分のデータを集めたものに相当する。
【００３７】
スキルレベル判定処理部１１３は、使用者ｉ、作業分類ｊにおける検証結果２０２、作業時間測定部１１４が、アプリケーションソフトウェア１１０の起動や作業結果の出力を監視することによって測定した作業時間、作業する上での目標値や制約条件として設定した作業条件２０４、およびスキルレベル判定条件２０５を用いて、使用者ｉ、作業分類ｊのスキルレベルを判定する。この処理を、本実施例を実施する上で使用する全ての使用者、作業分類分について行い、スキルレベル１２４を求める。
【００３８】
ＧＵＩ使用状況抽出処理部１１５は、使用者がアプリケーションソフトウェア１１０のＧＵＩを操作した状況を、アプリケーションソフトウェア１１０のＧＵＩ情報を監視することによって取得し、これを分析することによって使用状況を抽出する。２０６は、使用者ｉ、作業分類ｊについてＧＵＩ使用状況を抽出した結果である。使用状況についても、本実施例を実施する上で使用する全ての使用者、作業分類分について抽出し、使用状況１２６を求める。
【００３９】
使用者カテゴリ分類部１２９は、全使用者、全作業分類分のスキルレベル１２４に基づいて、各作業分類の作業を実施した使用者群を複数のカテゴリに分類する。図２では、説明のため、作業分類ｊに対する分類を行った結果についてのみを、使用者カテゴリ２１０として示した。実際には、すべての作業分類を対象に処理を行う。図２の使用者カテゴリ２１０には、作業分類ｊの作業を行った使用者群を、スキルレベルに基づいて分類したカテゴリと、各カテゴリに属する使用者群のリストが格納される。言い換えるなら、使用者を分類する各カテゴリは、作業対象の属性による複数の作業分類と、作業分類各々における複数のスキルレベルに基づき決定されると言うことができる。
【００４０】
使用者クラスタリング処理部１１６は、使用者カテゴリ２１０の各カテゴリに属する使用者群を、使用状況１２６に格納されている各使用者の使用状況の類似度に基づいてクラスタリングする。図２では、説明のために、作業分類ｊについてクラスタリングを行った結果をクラスタ２０７として図示しているが、実際のクラスタリング処理はすべての作業分類について実施する。
【００４１】
ＧＵＩカスタマイズ方法設定部１１７は、クラスタリング結果２０７の各クラスタについて、そのクラスタを代表する使用状況を求め、これを記憶装置１０４のＧＵＩカスタマイズ方法１２８に、各カテゴリに対応したＧＵＩカスタマイズ方法２０８として設定する。後で説明するように、ＧＵＩカスタマイズ処理部１１９は、使用者ｉが作業分類ｊの作業を行う際のＧＵＩカスタマイズ方法２１１を決定し、これに基づいてＧＵＩをカスタマイズするものとする。なお、本説明では図示の便宜上、同じインデクスi、ｊを用いたが、実際の処理ではクラスタリング対象として用いた使用者と異なる新たな使用者をＧＵＩカスタマイズの対象としても良い。その場合は、新たな使用者が属する作業分類の使用者カテゴリを対象に、使用者クラスタリング処理以降の処理を行う。
【００４２】
類似度判定処理部１１８は、使用者ｉ、作業分類ｊの使用状況と、クラスタリング結果２０７の各クラスタの代表点との類似度を判定し、これに基づいて使用者ｉがどのクラスタに属するかを決定し、類似クラスタ２０９とする。この時、ＧＵＩカスタマイズ対象の使用者と類似度判定対象のクラスタは、異なるカテゴリに属するという制約条件をつけることも可能である。その場合は、例えば、使用者のスキルレベルより少なくとも１段階上位のスキルレベルを有するカテゴリなど、使用者よりスキルレベルの高いカテゴリを選択する等、ＧＵＩカスタマイズ対象の使用者と類似度判定対象のクラスタが属するカテゴリの対応付けの規則を設定する。
【００４３】
ＧＵＩカスタマイズ処理部１１９は、類似クラスタ２０９におけるＧＵＩカスタマイズ方法を２１１から選択し、これに基づいてＧＵＩカスタマイズ処理、すなわち、ＧＵＩを調整、変更、設定、生成するなどの処理を実行し、その結果を出力する。
【００４４】
図３に、アプリケーションソフトウェアを用いて作業を行う際の、作業内容の分類の一例を示す。図３の分類３０１は、アプリケーションソフトウェアとして、ＬＳＩ設計作業を行うための設計ツールを想定した場合の分類例である。分類３０１では、各作業分類は、作業対象、回路規模（ゲート）、作業内容、設計ポリシによって分類される。
【００４５】
例えば、設計ツールの場合の作業対象は、アナログＬＳＩ、ディジタルＬＳＩ等といった設計するＬＳＩの種別とする。また、具体的な設計は、回路の大きさを表す回路規模や、回路作成やレイアウト作成等、どのような作業を行うかに基づく作業内容、面積優先、消費電力優先等、設計を行う上で重視する設計ポリシ等に基づいて分類し、アプリケーションソフトウェアの使用者がどの作業分類の作業を行っているかに基づいて、使用者を分類する。
【００４６】
なお作業を分類する際に、各作業区分に分類された使用者数が少ない場合等を考慮し、細分する度合いを調整してもよい。また、作業を細分化せず全体を1分類として本実施例を適用することも可能である。
【００４７】
図４に、図１、図２の使用者の作業スキルレベル判定処理部１１３の構成の詳細を示す。図４は、図３に示したある作業分類の作業ｊを、使用者ｉが、アプリケーションソフトウェアを使用して実施した場合のスキルレベル判定処理の構成である。
【００４８】
図４において、１１０は、本実施例のＧＵＩカスタマイズ方法を適用する対象のアプリケーションソフトウェア（アプリソフト）を表しており、使用者が、本ソフトウェアを、ＧＵＩを介してインタラクティブに操作することによって作業を行った結果として、使用者ｉ、作業分類ｊの作業結果２０１を出力する。また、検証ソフトウェア１１１は、作業結果２０１の性能を検証するための手段として用いられるものであり、作業結果２０１に対し品質や性能を検証し、検証結果２０２を出力する。
【００４９】
例えば、ＬＳＩ設計作業の場合、回路作成ツールや、レイアウト作成ツール等がアプリケーションソフトに相当する。また、回路シミュレーションツールや、物理検証ツールが検証ソフトウェアに相当する。アプリケーションソフトウェアが回路作成ツールである場合は、作業結果２０１は、作成した回路の接続関係や回路部品の定数等を記述したネットリストとなる。検証ソフトウェア１１１は、作業結果２０１を検証し、回路シミュレーションや物理検証機能によって、回路の性能を見積もり、これらを検証結果２０２として出力する。
【００５０】
図５にその検証結果の一例を示す。検証結果５０１は、その検証項目としては、作成した回路の消費電力（ｐ）や、面積（ａ）、ファンアウト数（ｆ）、配線長（ｌ）、遅延時間（ｄ）等がある。検証結果５０１では、各項目の検証結果の値をそれぞれ、Vp[mW]、Va[mm2]、Vf[個]、Vl[mm]、Vd[ps]としている。この他、例えば作成する回路の目的に応じて動作周波数や、ゲイン、過渡応答特性等、様々な検証項目があるが、ここでは説明が煩雑になるため割愛する。検証ソフトウェアの実行は、人手によるインタラクティブな操作に基づいて行うか、検証パラメータを指定してバッチ処理として行う。
【００５１】
図４の作業時間測定部１１４は、アプリケーションソフトウェア使用者が、アプリケーションソフトウェアを使用して作業を行うのに費やした作業時間（ｔ）２０４を測定する。作業時間の測定方法としては、例えば、アプリケーションソフトウェアが起動した時間を作業開始時間、作業結果がファイルとして出力された時間を作業終了時間とし、その時間差を計算する。アプリケーションソフトウェアの起動時間は、計算機のオペレーションシステムに用意されているプロセス監視機能等を用いて検知することができる。また、作業結果が出力された時間は、オペレーションシステムに用意されているファイルの生成や更新、アクセスを監視する機能を用いて検知することができる。なお、作業終了時間は、例えば検証ソフトウェアが作業結果ファイルにアクセスした時間としても良い。また、作業時間のうち、アプリケーションソフトウェアのＣＰＵ占有率が一定以下の時間をアイドル時間として除外する等により、作業時間測定の精度を高めることができる。
【００５２】
図４のスキルレベル判定処理部１１３は、検証ソフト１１１の検証結果２０２、作業条件２０３、および作業時間２０４に基づいて検証結果評価部４０１において検証結果を評価する。
【００５３】
図６に、回路作成ツールを用いて回路設計を行う場合の作業条件２０３の一例を６０１として示す。例えば、作業条件６０１において、図５で例示した検証項目のそれぞれに対し、目標値、あるいは制約条件として性能値の許容範囲が決められる。図６の作業条件６０１では、消費電力（ｐ）、面積（ａ）、配線長（ｌ）、遅延時間（ｄ）がそれぞれCp[mW]、Ca[mm2]、Cl[mm]、Cd[ps]未満、また、ファンアウト数（ｆ）がCf[個]より多い、といった条件が設定されている。
【００５４】
図４において、検証結果評価部４０１は、性能の評価関数f(p,a,f,l,d,．．．,t)に基づいて、検証結果の性能値、作業条件、作業時間から性能ＰＦ＝f(・)を計算する。評価関数f(・)は、例えば以下の数式１で表現される。
f(p,a,f,l,d,．．．,t) = (αp×(Cp-Vp)/Cp
＋αa×(Ca-Va)/Ca
＋αf×Vf/Cf＋αl×(Cl-Vl)/Cl
＋αd×(Cd-Vd)/Cd＋．．．)×T/t      ・・・・（数式１）
ここで、αは設計ポリシに基づいた各検証項目の優先度に応じて調整するものとする。また、Ｔは対象とする作業分類における標準的な作業時間として設定する。
【００５５】
図４のスキルレベル判定部４０２は、検証結果評価部４０１において評価された作業結果の性能を、予め定めた判定条件２０５に基づいて判定し、使用者ｉが作業分類ｊの作業を行った場合のスキルレベル（ＳＬ）４０３を判定する。なお、作業結果２０１、検証結果２０２、作業条件２０３、作業時間２０４、判定条件２０５、スキルレベル４０３は、それぞれ使用者ｉ、作業分類ｊにおける結果であり、図１の作業結果１２０、検証結果１２１、作業条件１２２、作業時間１２５、判定条件１２３、スキルレベル１２４のサブセットである。
【００５６】
図７にスキルレベルの判定条件の一例７０１を示す。使用者のスキルレベル（ＳＬ）は、作業結果の性能ＰＦの値によって決定する。例えば、ＰＦが閾値Ｔｈ２より大きく、Ｔｈ３以下であった場合、その作業を行ったアプリケーションソフトウェア使用者のスキルレベルは３と判定される。
【００５７】
図８に、図４の構成に基づいて上記で説明した、スキルレベルを判定する処理のフローを示す。まず、スキルレベル判定処理部１１３が動作を開始すると、８０１において、図３に基づいた作業分類リスト８０２から作業分類ｊを指定する。また、アプリケーションソフトウェアの使用者として予め登録しておいた使用者のリストから使用者ｉを指定する。次に、８０５においてアプリケーションソフトウェアの動作を監視し、使用者ｉがアプリケーションソフトウェアを使用して作業分類ｊの作業を行った際（８０６）に、図４の作業時間測定部１１４の説明で述べた方法を用いて使用者ｉの作業時間を測定する。測定した作業時間２０４は、作業分類、使用者毎にファイル等の形態で記憶装置に格納する。
【００５８】
使用者ｉが作業を行っているかどうかは、例えば使用者ｉがアプリケーションソフトを使用する際に入力したＩＤで特定する。また、作業分類ｊの作業を行っているかは、使用者iが予め申告しておくか、作業開始時に作業分類番号を入力する手段を設けることによって特定することができる。あるいは、アプリケーションソフトウェア上で設定されたパラメータを用いて判定しても良い。８０８においては、８０６で使用者が作業を行った結果２０１に基づいて、８０７で使用者等が検証ソフトウェアを用いて使用者ｉ、作業分類ｊの作業結果を検証することによって得た検証結果２０２、および作業条件２０３、作業時間２０４から評価関数ｆ（・）の値を計算し、作業結果の性能を評価する。８０９では、評価した性能を判定条件２０５に基づいて判定することによりスキルレベル４０３を決定し、記憶装置に格納する。
【００５９】
８０１〜８０９のフローを、ＧＵＩカスタマイズ処理に用いる全ての登録使用者、登録作業分類に対して実行し、対象アプリケーションソフトウェアを使用する全使用者群のスキルレベルを判定する。
【００６０】
図９は、本実施例の適用対象となるアプリケーションソフトウェアのＧＵＩ画面の一例を示す図である。
【００６１】
図９の例では、アプリケーションソフトウェアのＧＵＩ画面は、計算機のＧＵＩ環境であるウインドウシステムの中の１つのウインドウとして、計算機に接続された表示装置であるディスプレイに表示される。９０１は、アプリケーションソフトウェアのＧＵＩ画面として表示されたウインドウである。９０１の中には、アプリケーションソフトウェアのタイトルを表示するエリア９０２、ＧＵＩオブジェクトであるメニューを表示するエリア９０３、ボタンを表示するエリア９０４、例えば画像や文字等を表示、編集するためのフィールド９０５がある。メニューやボタン等のＧＵＩオブジェクトには、通常、アプリケーションソフトウェアを操作するためのコマンド等が割り当てられている。使用者は、マウス等のポインティングデバイスを操作してカーソル９０６を移動させ、メニューやボタンを選択することによってアプリケーションソフトウェアのコマンドを実行する。
【００６２】
図９の例では、Ｅｄｉｔメニュー９０７を開き、その中のＰｒｏｐｅｒｔｉｅｓ項目に対し、さらに階層的に用意されているサブメニュー９０８を開いて、Ｏｂｊｅｃｔｓ項目を選択した状態を示している。ＧＵＩの操作方法としては、マウス等のポインティングデバイスを用いてカーソルを移動させ、ＧＵＩオブジェクトを選択する方法の他に、各ＧＵＩオブジェクトに直接特定のキーを割り当て、キーボードからそのキーを入力することによってＧＵＩオブジェクトを選択する方法もある。
【００６３】
例えば、アプリケーションソフトウェアとしてＬＳＩ設計ツールを想定した場合、RF回路設計等のアナログ回路設計を対象とする作業分類では，周波数特性や、ノイズ特性、利得（損失）、パワー、遅延時間等の機能要件や、消費電力やチップ面積等の実装条件を満足し、またプロセスのバラツキや、配線容量や配線抵抗等の寄生素子の影響を考慮して目標値や制約条件等の作業条件を設定し、設計を行うことが必要である。作業条件を満たす回路を設計するためには、回路素子の定数のみでなく種々の物理特性をパラメータとして設定する必要がある。ＬＳＩ設計ツールには、通常、これらのパラメータを設定するための機能を割り当てるため、メニュー項目やボタン、テキスト入力ボックス等、多数のＧＵＩオブジェクトが用意されている。設定項目は多岐にわたるが、実際には、設計ポリシや考慮すべき目標値の設定によっては、設定するパラメータの多くをデフォルト値のまま使用しても問題ない場合がある。しかし、使用者のスキルレベルによっては、多数のＧＵＩオブジェクトから、実際に設定すべき項目を見つけ出して選択するのは難しい。このような場合に、設定すべき項目が対応づけられたＧＵＩオブジェクトを強調し、設定する必要がないＧＵＩオブジェクトを非表示にするか、選択不可にする等のカスタマイズを行うことにより、使用者の迷いや、選択間違いを減らし、ＧＵＩ操作を効率化することが可能になる。
【００６４】
図１０は、アプリケーションソフトウェア使用者のＧＵＩ使用状況を抽出する、図２のＧＵＩ使用状況抽出処理部１１５の構成を表す図である。ＧＵＩ使用状況抽出処理部１１５は、使用者ｉが作業分類ｊの作業を行うために、本実施例の適用対象であるアプリケーションソフトウェア１１０のＧＵＩを操作した履歴を、ＧＵＩ操作履歴収集部１００１で収集する。ＧＵＩ操作履歴は、ＧＵＩオブジェクトの表示や、入力デバイスを制御するＧＵＩ情報監視機能を用いて、アプリケーションソフトウェアが発行したＧＵＩオブジェクト表示命令や、ＧＵＩオブジェクトに対してマウスやキーボード等の入力デバイスが選択等の操作を行った情報を、アプリケーションソフトウェアが取得するための操作命令を監視し、その内容を検出することによって収集する。ＧＵＩ情報監視機能は、代表的なウインドウシステムでは予め開発用に用意されている。
【００６５】
ＧＵＩ操作履歴収集部１００１は、マウス操作検知部１００２、キー入力検知部１００３、およびオブジェクト選択検知部１００４で構成され、各々が検知した情報を履歴として収集する。マウス操作検知部１００２は、使用者がＧＵＩオブジェクト上へのマウスカーソルの移動や、オブジェクトの選択（シングルクリック）、オブジェクトの実行（ダブルクリック）等の操作を検知する。キー入力検知部１００３は、使用者がキーボードを用いて入力したキーの情報を検知する。オブジェクト選択検知部１００４は、ＧＵＩオブジェクトがマウスやキー入力によって選択、あるいは実行されたことを検知する。
【００６６】
操作傾向分析部１００５は、ＧＵＩ操作履歴収集部１００１によって収集されたＧＵＩ操作履歴に基づいて、使用者が、ＧＵＩオブジェクトに対応付けられたアプリケーションの機能を、どのような操作によって実行したか等のＧＵＩ操作の傾向を分析し、これに基づいて使用者ｉ、作業分類ｊの使用状況１００６を出力する。１００６は、図１における使用者使用状況１２６のサブセットである。
【００６７】
図１１の１１０１は、図１０の使用者ｉ、作業分類ｊにおける機能毎の使用状況１００６の例である。ここでは、作業を行った時間の中で、ＧＵＩオブジェクトに対応付けられたアプリケーションソフトウェアの機能を実行するために、使用者がオブジェクトを選択した方法として、メニューやボタンを、マウスを用いて選択した頻度、キーボードを用いたキー入力によって選択した頻度を計測し、使用状況としている。
【００６８】
図１２の１２０１は、使用状況１００６の別の例である。図１２では、作業全体を通したマウスクリック数、キーストローク数、マウスカーソル軌跡長を計測し、これを使用状況としている。
【００６９】
図１３は、図２の使用者カテゴリ分類部１２９の処理を説明する図である。使用者カテゴリ分類部１２９は、作業分類ｊに属する全使用者を、スキルレベルのランク（１、２、．．．ｉ、．．．）をカテゴリとして、各使用者のスキルレベル１３０１に基づいて例えばカテゴリ１としてスキルレベル１の使用者群、カテゴリ２としてスキルレベル２の使用者群、．．．カテゴリｉとしてスキルレベルｉの使用者群、．．．のようにそれぞれのカテゴリに区分し、カテゴリ毎に使用者のリスト１３０２〜１３０４を作成して作業分類ｊの使用者カテゴリ２１０とする。図１３では、作業分類ｊの作業を例に説明したが、実際には上記の処理を全ての作業分類について実行する。
【００７０】
カテゴリ区分の方法としては、上記で説明した方法以外に、例えば、同一スキルレベルであっても使用者の属性（所属、作業従事経験等）、使用端末のハードウェア制約が異なる等の条件により、さらにカテゴリを分割することも可能である。逆に、作業分類ｊに属する使用者群を区分せず、全ての使用者群を単一カテゴリと置くことも可能である。その場合は、スキルレベルによらず、作業分類に応じてＧＵＩをカスタマイズすることになる。
【００７１】
図１４は、図２の使用者クラスタリング処理部１１６の処理を説明する図である。ここでも、作業分類ｊを例に処理の流れを説明するが、実際の処理は全ての作業分類に対して実行する。図の例では、使用者状況分類部１４０１は、使用者カテゴリ分類部１２９によって分類された作業分類ｊの使用者カテゴリ２１０と、作業分類ｊに属する使用者の使用状況１４０２から、使用者の使用状況を各カテゴリに分類する。作業分類ｊの作業を行った全使用者１〜ｎの使用状況データ１４０２は、使用者カテゴリ２１０のカテゴリ毎の使用者リストに基づいて、複数のカテゴリ１４０３，１４０４，１４０５．．．に分類される（作業分類ｊのカテゴリ毎の使用状況１４０６）。なお、使用状況データ１４０２は、図１における使用者使用状況１２６のサブセットである。この例では、カテゴリ１に属する使用者を３、１７、カテゴリ２に属する使用者を５，２３、．．．、カテゴリｉのカテゴリに属する使用者を８、５１、．．．などとしたが、これは説明をわかりやすくするための仮想的な例である。
【００７２】
クラスタリング部１４０７は、作業分類ｊのカテゴリ毎の使用状況１４０６のそれぞれのカテゴリに対し、使用者をその使用状況の類似度に基づいたクラスタリングによって、複数のクラスタ１４０８、１４０９、１４１０、．．．に分類する（作業分類ｊのカテゴリ毎のクラスタ１４１１）。
【００７３】
図１５は、図１４のクラスタリング部１４０７における処理を説明する図である。図は、カテゴリｉの使用状況を対象にクラスタリングを行った例である。クラスタリング部では、例えば、使用者kの使用状況を特徴ベクトルＶｋとして次の数式２で表す。
Vk = (CF1k,AF1k,CF2k,AF2k,CF3k,AF3k,…)               ・・・・（数式２）
CFlk：使用者kの機能Fl（l=1,2,．．．）における使用頻度
AFlk：使用者kの機能Fl（l=1,2,．．．）の選択方法
（メニュー：１、ボタン：２、キー：３）
全使用者の特徴ベクトルを対象に、例えばk-means法等のクラスタリング手法を用いて、使用者の使用状況の類似度に基づき、各使用者をクラスタリングする。ただし、ベクトルの次元が大きい場合は、主成分分析等の分析手法や、使用頻度の高い機能や選択方法のみをベクトル要素として選択する等により次元数を縮退してもよい。図１５の例では、クラスタリング処理によって使用者群を６つのクラスタに分類している。
【００７４】
なお、図１４、および図１５では、各カテゴリの使用者を使用状況の類似度に基づいてクラスタリングし、使用者を複数のクラスタに区分した例を示したが、クラスタ数を１とする、すなわち実質クラスタリングを行わない場合も考えられる。これは、そのカテゴリに属する使用者数が少ない場合や、そのカテゴリに属する全ての使用者の使用状況が類似している等の条件を満たす場合等である。この場合は、クラスタ数＝１として以下の処理を実行することが可能である。
【００７５】
図１６は、図２の類似度判定処理部１１８の処理を説明する図である。類似度判定処理部１１８は、ＧＵＩカスタマイズ対象の使用者ｘの使用状況１６０１と、選択したカテゴリのクラスタ１６０２に対し、使用状況を表す特徴ベクトルの類似度判定を行うことによって、使用者ｘが選択したカテゴリのどのクラスタに属するかを判定する。
【００７６】
図１６の例では、作業分類ｊの作業において、使用者ｘのスキルレベルＳＬ＝２に対し、スキルレベルＳＬ＝３のカテゴリを選択し、類似度判定を行い、使用者ｘが属するクラスタとしてクラスタ５が選択されたことを示している。類似度判定の方法としては、例えば、各クラスタ毎の代表ベクトルと、使用者ｘの特徴ベクトルの距離を計算し、距離が最も近い代表ベクトルが属するクラスタを使用者ｘの使用状況に最も近い使用状況のクラスタとする。代表ベクトルには、各クラスタに属する要素の平均ベクトルや、重心に最も近い要素のベクトル等を用いる。
【００７７】
使用者ｘのスキルレベルＳＬ＝２に対し、スキルレベルＳＬ＝３のカテゴリを選択することにより、使用状況の近いＧＵＩ操作を行うより高いスキルレベルの使用者のＧＵＩ操作を踏襲することが可能になり、その結果、使用者ｘの操作効率、およびスキルレベルが向上する効果が期待できる。
【００７８】
この他、類似度判定方法として、類似度が最も高いクラスタ以外のクラスタを選択することも可能である。これにより、これまで使用者ｘが行っていたＧＵＩ操作の傾向とは異なるＧＵＩが選択され、使用者ｘに新たなＧＵＩ操作方法を習得させる効果が期待できる。この場合は、同じスキルレベルのカテゴリを選択してもよい。
【００７９】
上記処理によって選択したクラスタに基づいてＧＵＩをカスタマイズした後、一定回数作業を実施した後、スキルレベル判定を行い、ＧＵＩカスタマイズの効果が現れていない場合は、クラスタ選択方法や類似度判定方法を変更することも可能である。また、スキルレベルが上がった場合には、さらに１段階上のスキルレベルのカテゴリを対象に類似度判定を行い、新たなＧＵＩカスタマイズを行う等、定期的に上記の処理を行ってＧＵＩカスタマイズ方法を変更することにより、使用者のスキルアップに応じてより高度なＧＵＩカスタマイズを行うことが可能になる。スキルレベル判定のタイミングは、作業が完了した時点でも良いが、作業途中の版の段階の検証結果を評価し、作業結果の性能向上曲線の形状をスキルレベル判定に用いることで判定精度を向上することも可能である。
【００８０】
図１７は、図２のＧＵＩカスタマイズ方法設定部１１７の処理を説明する図である。ＧＵＩカスタマイズ方法設定部１１７は、使用者群のクラスタ毎のＧＵＩ使用状況に基づいてＧＵＩのカスタマイズ方法を設定する。図１７の例では、図１３で例示した作業分類ｊにおけるクラスタｉおける使用状況１３０６に対し、使用状況からＧＵＩカスタマイズ方法１７０１を設定している。
【００８１】
図１８は、図１７におけるクラスタｉに属する使用者群の使用状況の内容である。使用者毎にＧＵＩオブジェクトに対応付けられた機能と、作業時間の間にＧＵＩオブジェクトを選択した手段、およびその頻度が集計されている。図１８の例では、１８０１が使用者８の使用状況、１８０２が使用者５１の使用状況を表している。
【００８２】
図１９の１９０１は、図１８の使用状況のリストから、クラスタｉの使用状況を計算した結果である。各機能に対し、クラスタｉに属する使用者群の平均選択頻度、選択手段としてマウス操作を行った比率、キー操作を行った比率を計算している。
【００８３】
図２０の２００１は、図１９のクラスタｉの使用状況に基づいて、ＧＵＩのカスタマイズ方法を設定した例を示す。図１９の平均頻度に基づいて、例えば平均頻度が０．３未満の場合は、そのオブジェクトを隠蔽する、２０．０未満の場合は通常表示する、２０．０以上の場合は強調表示する等のルールに基づいて、各ＧＵＩオブジェクトのカスタマイズ方法を設定する。
【００８４】
隠蔽方法としては、例えば非表示にする、グレイアウトする、選択不可にする等を行う。強調方法としては、例えば文字を太字にする、点滅する、サイズを大きくする、表示位置を上位にする等を行う。
【００８５】
また、マウス操作の比率が高い機能については、マウスカーソルを誘導して選択しやすくする、逆に比率が低い機能は選択しにくくする等を行う。また、キー操作の比率が高い機能については、対応付けられたキーの情報をヒントとして、吹き出し表示する等を行う。
【００８６】
なお、上記の例では、カスタマイズ方法を使用状況に基づいて自動的に設定する方法を示したが、各カテゴリ、各クラスタ毎に、使用状況や使用者の属性、使用端末のハードウェア制約等に基づいて、カスタマイズ方法をヒューリスティックに決定することも可能である。
【００８７】
図２１は、図１、図２のＧＵＩカスタマイズ処理部１１９の処理を説明する図である。ＧＵＩカスタマイズ方法選択部２１０１は、図１６で説明した類似度判定処理部１１８によって対応付けられた、ＧＵＩカスタマイズ適用対象の使用者が属するカテゴリ、およびクラスタに基づいて、ＧＵＩカスタマイズ方法２１０２から該当するクラスタのＧＵＩカスタマイズ方法２１０３を選択する。
【００８８】
ＧＵＩカスタマイズ部２１０４は、選択したＧＵＩカスタマイズ方法２１０３を、アプリケーションソフトウェア１１０のＧＵＩに適用し、ＧＵＩをカスタマイズする。なお、ＧＵＩカスタマイズ方法をアプリケーションソフトウェアのＧＵＩに適用する方法については、図２４のＧＵＩカスタマイズ適用部として詳細に説明するためここでは図示説明しない。
【００８９】
次に、本実施例において、計算機等の情報処理システムでＧＵＩを表示、制御する処理を図２２〜図２４に従い説明する。
【００９０】
一般に、ＧＵＩ環境を有する計算機では、オペレーティングシステムの上にＧＵＩの表示、操作を制御するウインドウシステムを持ち、ＧＵＩを有するアプリケーションソフトウェアは、ウインドウシステム上のウインドウとして表示装置のモニタに表示される。使用者は、モニタを見ながら、マウスを用いてカーソルの制御やオブジェクトの選択、実行等、また、キーボードを用いてアプリケーションソフトウェアのＧＵＩオブジェクトを操作する。
【００９１】
図２２において、ＧＵＩ環境を有する計算機システムのアプリケーションソフトウェア（アプリソフト）１１０は、目的作業を行うためのアプリケーション機能２２０１と、ＧＵＩの制御を行うＧＵＩ制御部２２０２を有する。ＧＵＩ制御部２２０２は、アプリケーション機能に使用者がインタラクティブにアクセスするために、模式的に示した経路２２０９を通じて、ウインドウシステム１３２の画面への描画や、使用者のＧＵＩ操作情報の取得を行う。
【００９２】
アプリケーションの描画要求や、ＧＵＩ操作情報は、ウインドウシステム１３２との間で描画命令や操作命令をやりとりすることによって実行される。ＧＵＩ制御部２２０２が生成する描画命令や操作命令は、ウインドウシステム１３２に用意されているＧＵＩライブラリ２２０３を、アプリケーションソフトウェア１１０から呼び出すことによってウインドウシステム１３２に伝えられる。ウインドウシステム１３２は、表示部２２０４を介してモニタ２２０５にアプリケーションソフトウェアの描画情報を表示する。また、操作部２２０６を介してキーボード２２０７やマウス２２０８を用いて入力された操作情報をアプリケーションソフトウェアに伝える。
【００９３】
図２３は、図２２のような構成の計算機システムにおいて、本実施例に係る、アプリケーションソフトウェア（アプリソフト）１１０のＧＵＩをカスタマイズする方法を模式的に示した図である。図２３において、アプリケーションソフトウェア１１０がＧＵＩライブラリ２２０３を呼び出した際に、オペレーティングシステム上のプログラムである、上述したＧＵＩカスタマイズ部２１０４を含むＧＵＩカスタマイズ適用部２３０１がそれを検知し、ウインドウシステム１３２の代わりに呼び出されたＧＵＩライブラリを取得し、ＧＵＩカスタマイズ方法２１０３に基づいてカスタマイズした後、カスタマイズ後のＧＵＩライブラリ情報をウインドウシステム１３２に伝える。
【００９４】
ウインドウシステム１３２は、カスタマイズされた描画情報をモニタ２２０５に表示する。また、キーボード２２０７やマウス２２０６の操作情報を、ウインドウシステム１３２が取得し、アプリケーションソフトウェア１１０に伝える前に、ＧＵＩカスタマイズ適用部２３０１がその情報を取得し、ＧＵＩカスタマイズ方法２１０３に基づいてカスタマイズした後、アプリケーションソフトウェアに伝える。なお、ＧＵＩオブジェクトの表示や、入力デバイスを制御する描画命令や操作命令の呼び出しは、ＧＵＩライブラリ２２０３の呼び出しを監視する機能を用いて検出することによって収集する。ＧＵＩライブラリ２２０３の呼び出しを監視する機能は、代表的なウインドウシステムでは予め開発用に用意されている。なお、アプリケーションソフトウェア１１０を直接改造することが可能な場合は、アプリケーションソフトウェア１１０のＧＵＩ制御部２２０２の中に、ＧＵＩカスタマイズ適用部２３０１の機能を実装しても良い。
【００９５】
図２４は、図２３に示したＧＵＩカスタマイズ適用部２３０１の一構成例を示す図である。アプリケーションソフトウェア（アプリソフト）１１０がＧＵＩライブラリを呼び出すことによって発行した描画命令は、描画命令検出部２４０１において取得され、ＧＵＩカスタマイズ適用部２３０１に含まれるＧＵＩカスタマイズ部２１０４に送られる。ＧＵＩカスタマイズ部２１０４は、ＧＵＩカスタマイズ方法２１０３に基づいて、検出された描画命令が、カスタマイズ対象の描画命令であるかを判定し、カスタマイズ対象の描画命令であった場合に、描画命令改変部２４０２においてカスタマイズする。描画命令通知部２４０３は、カスタマイズした描画命令を基にＧＵＩライブラリ呼び出しを行ってウインドウシステム１３２に伝える。
【００９６】
ウインドウシステム１３２が取得した使用者の操作情報は、操作命令検出部２４０４において取得され、ＧＵＩカスタマイズ部２１０４に送られる。ＧＵＩカスタマイズ部２１０４は、ＧＵＩカスタマイズ方法２１０３に基づいて、検出された操作命令が、カスタマイズ対象の操作命令であるかを判定し、カスタマイズ対象の操作命令であった場合に、操作命令改変部２４０５においてカスタマイズする。操作命令通知部２４０６は、カスタマイズした操作命令をアプリケーションソフトウェアに伝える。
【００９７】
以上、第１の実施例に係る情報処理システムとして説明してきた、図１、および図２２〜２４に係るシステムは、アプリケーションソフトウェア、ウインドウシステム、ＧＵＩカスタマイズプログラムがいずれも同一の情報処理装置上に存在し、その情報処理装置に表示装置やキーボード、マウス等の入力装置が接続されている場合の例である。
【実施例２】
【００９８】
情報処理システムの構成としては、サーバ上にアプリケーションを搭載し、クライアント端末側からアプリケーションソフトウェアを起動してクライアント端末の表示装置にアプリケーションソフトウェアの画面情報を表示し、クライアント端末に接続されたキーボードやマウス等のユーザインタフェース装置を用いてアプリケーションソフトウェアを操作する、サーバ−クライアント型構成の実行形態もある。この場合、サーバとクライアント端末の間は、通信ネットワークで接続し、描画情報や操作情報等のデータ通信を行う。このような実施形態では、アプリケーションソフトウェアを各使用者の端末にインストールする必要がないため、サーバ側でアプリケーションの管理を行うことが可能である。また、サーバ機能を外部のデータセンタ等に設置し、使用者がクライアント端末からデータセンタにアクセスしてアプリケーションを使用するＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）やＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）と呼ばれるサービス形態もある。このような情報処理システム形態においても、本発明を適用することが可能である。
【００９９】
図２５を用い、第２の実施例として、サーバクライアント型の情報処理システムの場合のＧＵＩカスタマイズ方法の実施例を説明する。図２５の情報処理システムでは、アプリケーションソフトウェア（アプリソフト）１１０、ＧＵＩカスタマイズ方法２１０３、およびＧＵＩカスタマイズ適用部２３０１をサーバ２５０１側に搭載し、カスタマイズ後の描画情報をクライアント端末２５０２のウインドウシステム１３２に通信ネットワーク２５０３を介して送信する。また、クライアント端末２５０２上のマウス２２０８やキーボード２２０７の操作情報をサーバに送信し、サーバ側でカスタマイズしてアプリケーションに通知する。
【０１００】
また、図２６に示すように、実施例２を変形した情報処理システムとして、クライアント端末２６０２側にＧＵＩカスタマイズ方法２１０３、およびＧＵＩカスタマイズ適用部２３０１を搭載し、クライアント端末側でカスタマイズ処理を行っても良い。この場合は、サーバ２６０１側から描画情報をクライアント端末に通信ネットワーク２６０３を介して送信し、クライアント端末側でカスタマイズを行う。また、クライアント端末側でカスタマイズした操作情報をサーバ２６０１に送信し、アプリケーションソフトウェアに通知する。さらに、クライアント端末側からサーバ側にカスタマイズ前のマウス操作やキー操作等の操作情報を送信し、サーバ側に搭載したＧＵＩ使用状況抽出処理部１１５において、クライアント端末から送られてきた操作情報を収集して使用者の使用状況を抽出する。また、使用状況が変化した場合や、使用者の作業が変わった等により作業分類が変化した等により、ＧＵＩカスタマイズ方法が更新された場合は、サーバ側からクライアント端末側に更新されたＧＵＩカスタマイズ方法を送信する。
【０１０１】
以上、説明した種々の実施例の方法を用いることにより、アプリケーションソフトウェアのＧＵＩを、使用者の状況やスキルレベルに応じてカスタマイズすることが可能となる。なお、上述の説明では、アプリケーションソフトウェアを用いた作業結果の検証手段として、検証ソフトウェアを例として用いたが、例えば、作業結果をエキスパートの使用者が評価する方法や、作業結果をインタネット等に公開し、照会数や人気投票等によって評価することも可能である。特にアプリケーションソフトウェアがビデオやオーディオ、画像等の編集ソフト等、作業結果の品質が芸術性等定量的に検証することが難しい尺度で判断されるものである場合は、このようなネットワークを介した人手による評価結果を検証結果とすることができる。
【産業上の利用可能性】
【０１０２】
本発明は、計算機等の情報処理システム上で稼動するアプリケーションソフトウェアのＧＵＩ技術に関し、特に、作業の状況や使用者のスキルレベルに応じて、ＧＵＩをカスタマイズする技術として有用である。
【符号の説明】
【０１０３】
１０１…計算機システム
１０２…プロセッサ
１０３…メモリ
１０４…記憶装置
１０５…表示装置
１０６…キーボード
１０７…マウス
１０８…Ｉ／Ｏ制御部
１０９…バス
１１０…アプリケーションソフトウェア
１１１…検証ソフトウェア
１１２…ＧＵＩカスタマイズプログラム
１１３…スキルレベル判定処理部
１１４…作業時間測定部
１１５…ＧＵＩ使用状況抽出処理部
１１６…使用者クラスタリング処理部
１１７…ＧＵＩカスタマイズ方法設定部
１１８…類似度判定処理部
１１９…ＧＵＩカスタマイズ処理部
１２０…作業結果
１２１…検証結果
１２２…作業条件
１２３…判定条件
１２４…スキルレベル
１２５…作業時間
１２６…使用者使用状況
１２７…使用者クラスタ
１２８…ＧＵＩカスタマイズ方法
１２９…使用者カテゴリ分類部
４０１…検証結果評価部
４０２…スキルレベル判定部
１００１…ＧＵＩ操作履歴収集部
１００２…マウス操作検知部
１００３…キー入力検知部
１００４…オブジェクト選択検知部
１００５…操作傾向分析部
１４０１…使用状況分類部
１４０７…クラスタリング部
２１０１…ＧＵＩカスタマイズ方法選択部
２１０４…ＧＵＩカスタマイズ部
２３０１…ＧＵＩカスタマイズ適用部
２４０１…描画命令検出部
２４０２…描画命令改変部
２４０３…描画命令通知部
２４０４…操作命令検出部
２４０５…操作命令改変部
２４０６…操作命令通知部。
【図１】
0005400599.tif 000002
【図２】
0005400599.tif 000003
【図３】
0005400599.tif 000004
【図４】
0005400599.tif 000005
【図５】
0005400599.tif 000006
【図６】
0005400599.tif 000007
【図７】
0005400599.tif 000008
【図８】
0005400599.tif 000009
【図９】
0005400599.tif 000010
【図１０】
0005400599.tif 000011
【図１１】
0005400599.tif 000012
【図１２】
0005400599.tif 000013
【図１３】
0005400599.tif 000014
【図１４】
0005400599.tif 000015
【図１５】
0005400599.tif 000016
【図１６】
0005400599.tif 000017
【図１７】
0005400599.tif 000018
【図１８】
0005400599.tif 000019
【図１９】
0005400599.tif 000020
【図２０】
0005400599.tif 000021
【図２１】
0005400599.tif 000022
【図２２】
0005400599.tif 000023
【図２３】
0005400599.tif 000024
【図２４】
0005400599.tif 000025
【図２５】
0005400599.tif 000026
【図２６】
0005400599.tif 000027