(57)【要約】【課題】リアルタイム習熟支援システムを提供する。【解決手段】習熟対象ソフトウェアに習熟することをリアルタイムに支援するリアルタイム習熟支援システムであって、利用者に対する問題を生成する問題生成手段と、前記問題生成手段の生成する問題を利用者に表示する表示手段と、前記習熟対象ソフトウェアの状態に関するデータを取得する制御プログラムを有する制御手段と、前記制御手段の出力を受け、前記制御プログラムが直接取得することのできるデータを記憶する操作性記憶部と、少なくとも前記制御プログラムが直接取得することができないデータを記憶する非操作性記憶部と、前記操作性記憶部に記憶されたデータと非操作性記憶部に記憶されたデータを用い、前記利用者の問題に対する操作についての判定をリアルタイムに行なう判定手段と、を含む。【選択図】図１
2019008190.tif 000002
【特許請求の範囲】
【請求項１】
習熟対象ソフトウェアに習熟することをリアルタイムに支援するリアルタイム習熟支援システムであって、
利用者に対する問題を生成する問題生成手段と、
前記問題生成手段の生成する問題を利用者に表示する表示手段と、
前記習熟対象ソフトウェアの状態に関するデータを取得する制御プログラムを有する制御手段と、
前記制御手段の出力を受け、前記制御プログラムが直接取得することのできるデータを記憶する操作性記憶部と、
少なくとも前記制御プログラムが直接取得することができないデータを記憶する非操作性記憶部と、
前記操作性記憶部に記憶されたデータと非操作性記憶部に記憶されたデータを用い、前記利用者の問題に対する操作についての判定をリアルタイムに行なう判定手段と、
を含むリアルタイム習熟支援システム。
【請求項２】
前記非操作性記憶部に記憶されたデータが圧縮されており、前記判定手段が、圧縮されたデータの解凍を行なう解凍手段を含むことを特徴とする請求項１に記載のリアルタイム習熟支援システム。
【請求項３】
前記制御プログラムが直接取得できないデータが図形のプロパティを含む、請求項１又は２に記載のリアルタイム習熟支援システム。
【請求項４】
前記判定手段が、リアルタイムの判定を行なう場合に、利用者が入力操作を行っている間は判定を行なわないことを特徴とする請求項１〜３のいずれか一項に記載のリアルタイム習熟支援システム。
【請求項５】
習熟対象ソフトウェアに習熟することをリアルタイムに支援するリアルタイム習熟支援システムの動作方法であって、
利用者に対する問題を生成するステップと、
前記生成した問題を利用者に表示するステップと、
前記習熟対象ソフトウェアの状態に関するデータを制御プログラムが取得するステップと、
前記制御プログラムが直接取得することのできるデータを操作性記憶部に記憶するステップと、
少なくとも前記制御プログラムが直接取得することができないデータを非操作性記憶部に記憶するステップと、
前記操作性記憶部に記憶されたデータと非操作性記憶部に記憶されたデータを用い、前記利用者の問題に対する操作についての判定を行なうステップと、
を含むリアルタイム習熟支援システムの動作方法。
【請求項６】
前記非操作性記憶部に記憶されたデータが圧縮されており、前記判定を行なうステップが、圧縮されたデータの解凍を行なうステップを含むことを特徴とする請求項５に記載のリアルタイム習熟支援システムの動作方法。
【請求項７】
前記制御プログラムが直接取得できないデータが図形のプロパティを含む、請求項５又は６に記載のリアルタイム習熟支援システムの動作方法。
【請求項８】
前記判定を行なうステップが、リアルタイムの判定を行なう場合に、利用者が入力操作を行っている間は判定を行なわないことを特徴とする請求項５〜７のいずれか一項に記載のリアルタイム習熟支援システムの動作方法。
【請求項９】
請求項５〜８のいずれかの一項に記載の方法を実行するためのプログラム。
【請求項１０】
コンピュータを、習熟対象ソフトウェアに習熟することをリアルタイムに支援するリアルタイム習熟支援システムとして機能させるプログラムであって、
コンピュータを、
利用者に対する問題を生成する問題生成手段と、
前記問題生成手段の生成する問題を利用者に表示する表示手段と、
前記習熟対象ソフトウェアの状態に関するデータを取得する制御プログラムを有する制御手段と、
前記制御手段の出力を受け、前記制御プログラムが直接取得することのできるデータを記憶する操作性記憶部と、
少なくとも前記制御プログラムが直接取得することができないデータを記憶する非操作性記憶部と、
前記操作性記憶部に記憶されたデータと非操作性記憶部に記憶されたデータを用い、前記利用者の問題に対する操作についての判定をリアルタイムに行なう判定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、習熟対象ソフトウェアについて利用者の習熟度を高めるためのリアルタイム習熟支援システムに係る。
本明細書にいう「習熟支援システム」とは、習熟対象ソフトウェアに対して利用者が実際の操作をし、利用者が操作に応じた応答を得ることにより、利用者の習熟対象ソフトウェアへの習熟を支援するシステムをいう。単に使い方を学習するための「学習支援システム」や、利用者の操作を評価するだけの「評価システム」とは異なる概念であるが、形式的に「学習支援システム」や「評価システム」の体裁をとっていても、習熟対象ソフトウェアに対して利用者が実際の操作をし、利用者が操作に応じた応答を得ることにより、利用者の習熟対象ソフトウェアへの習熟を支援するシステムは、「習熟支援システム」にあたる。
【０００２】
本明細書にいう「リアルタイム習熟支援システム」とは、利用者による習熟対象ソフトウェアの操作について、リアルタイムに判定することができる習熟支援システムをいう。判定ボタンの有無は問わないが、利用者が判定ボタンを押したときにのみ判定を行なうものは、本明細書にいう「リアルタイム習熟支援システム」ではない。
【０００３】
なお、表面的な体裁としては試験システムであっても、単に利用者の能力について試験をするだけではなく、習熟対象ソフトウェアに対して利用者が実際の操作をし、利用者による習熟対象ソフトウェアの操作について、試験中にリアルタイムに判定することができ、利用者が操作に応じた応答を得ることにより、試験中にも習熟対象ソフトウェアに対する習熟度を高めることができるようなシステムは、「リアルタイム習熟支援システム」にあたる。
【０００４】
本明細書にいう「習熟対象ソフトウェア」とは、利用者の習熟の対象となるソフトウェアであって、習熟支援システムには含まれないものをいう。典型例は、ワードプロセッサーソフトウェア、表計算ソフトウェア、プレゼンテーションソフトウェア、描画ソフトウェアなどの市販のソフトウェアである。
【背景技術】
【０００５】
従来、習熟対象ソフトウェアについては、マニュアルや使い方の本などにより、操作方法を知識として学習するのが主流であった。
しかし、出願人は、「習うより慣れろ」とのコンセプトの下、習熟対象ソフトウェアを実際に操作した場合に、習熟対象ソフトウェアとは別の制御プログラムが、利用者の操作に応じた応答をコンピュータ上で表示して、利用者の習熟を促すソフトウェア「ナレロー」（登録商標）を開発した。
【０００６】
なお、「習熟支援システム」ではないが、利用者が作成したファイルの評価を行なう「評価システム」として、特開２００１−２５６０８８号公報に記載された「ファイル作成能力自動評価装置」がある。しかし、「習熟支援システム」においては、習熟対象ソフトウェアがプロセスとして走っているにもかかわらず、習熟対象ソフトウェアによる動作に任せるだけではなく、利用者の操作に応じた応答を返し、利用者の習熟対象ソフトウェアへの習熟を支援しなければならないため、複雑なソフトウェアが必要になる。この点もあって、「習熟支援システム」としては、出願人が開発した「ナレロー」以外に、背景技術は見当たらない。
【０００７】
従来の「習熟支援システム」（ナレロー）は、習熟対象ソフトウェアとは別の制御プログラムにより、利用者の入力を受け、利用者の習熟対象ソフトウェアの操作が適切なものであるかを判定していた。従来の「習熟支援システム」においては、制御プログラムが、習熟対象ソフトウェアのオブジェクト（習熟対象ソフトウェアで操作中の文書に含まれる図形等のオブジェクトを含む）を取得し、判定時点でのオブジェクトのプロパティに基づいて判定をすることが当然の前提とされ、その点について当業者は疑問を持たなかった。
【０００８】
また、従来の「習熟支援システム」（ナレロー）においては、制御をさらに複雑にするリアルタイムでの判定は考えられておらず、利用者が判定ボタンを押したときにのみ判定を行なうことが当然の前提とされ、その点について当業者は疑問を持たなかった。
【０００９】
また、従来の「習熟支援システム」の判定は、ＶＢＡ（Visual Basic for Application）やＣＯＭ（Component Object Model）を用いて、習熟対象ソフトウェアのオブジェクトやプロパティにアクセスし、習熟対象ソフトウェアを制御することにより行われていた。
【００１０】
ＶＢＡは、ＭｉｃｒｏｓｏｆｔのＷｏｒｄ，Ｅｘｃｅｌ，ＰｏｗｅｒＰｏｉｎｔ等のアプリケーションソフトウェアを制御する目的のプログラムであり、これらアプリケーションソフトウェアの上で動作する。外部のプログラムからこれらアプリケーションソフトウェアを制御する手段としてＣＯＭがある。
【００１１】
ところが、ＶＢＡやＣＯＭを用いても、アプリケーションソフトウェアの仕様上、オブジェクトやプロパティのすべてが直接取得できるとは限らない。そのようなアプリケーションソフトウェアの例として、ＭｉｃｒｏｓｏｆｔのＷｏｒｄ，Ｅｘｃｅｌ，ＰｏｗｅｒＰｏｉｎｔが挙げられる。
【００１２】
しかしながら、従来の「習熟支援システム」においても、オブジェクトやプロパティのすべてが直接取得できるとは限らないアプリケーションソフトウェアを習熟対象ソフトウェアとしつつ、提示する問題の構成上、直接取得できないオブジェクトやプロパティについて判定しなければ正しく正誤判定ができない問題を提示する必要があることがある。その場合、従来の「習熟支援システム」では、そのようなオブジェクトやプロパティを取得することをあきらめ、そのようなオブジェクトやプロパティについて正しい値となっていると仮定して正誤判定をしていた。このように構成したとしても、従来の「習熟支援システム」では、利用者が判定ボタンを押下した時点で正誤判定され、利用者が入力している間は正誤が表示されないので、特に問題はなかった。しかし、問題への解答の入力の途中で正誤判定を行うリアルタイム判定では、そのようなオブジェクトやプロパティについて判定しなければ正しく正誤判定ができない問題を出題した場合、そのようなオブジェクトやプロパティに関し、誤った値が入力されている場合のみならず、利用者がこれから入力しようと考えている場合であっても、正解として表示されることとなり、利用者をミスリードするという問題が生ずる。
【００１３】
以上のようなことから、「リアルタイム習熟支援システム」は、従来の技術において全く存在せず、関連する先行技術が存在しない状況となっている。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の課題は、従来技術には全く存在しなかった、「リアルタイム習熟支援システム」を提供することである。
【課題を解決するための手段】
【００１５】
本発明は、習熟対象ソフトウェアに習熟することをリアルタイムに支援するリアルタイム習熟支援システムであって、利用者に対する問題を生成する問題生成手段と、前記問題生成手段の生成する問題を利用者に表示する表示手段と、前記習熟対象ソフトウェアの状態に関するデータを取得する制御プログラムを有する制御手段と、前記制御手段の出力を受け、前記制御プログラムが直接取得することのできるデータを記憶する操作性記憶部と、少なくとも前記制御プログラムが直接取得することができないデータを記憶する非操作性記憶部と、前記操作性記憶部に記憶されたデータと非操作性記憶部に記憶されたデータを用い、前記利用者の問題に対する操作についての判定をリアルタイムに行なう判定手段とを含む。
【００１６】
また、本発明は、習熟対象ソフトウェアに習熟することをリアルタイムに支援するリアルタイム習熟支援システムの動作方法であって、利用者に対する問題を生成するステップと、前記生成した問題を利用者に表示するステップと、前記習熟対象ソフトウェアの状態に関するデータを制御プログラムが取得するステップと、前記制御プログラムが直接取得することのできるデータを操作性記憶部に記憶するステップと、少なくとも前記制御プログラムが直接取得することができないデータを非操作性記憶部に記憶するステップと、前記操作性記憶部に記憶されたデータと非操作性記憶部に記憶されたデータを用い、前記利用者の問題に対する操作についての判定を行なうステップとを含む。なお、リアルタイム習熟支援システムの動作方法は、各ステップの順序どおりである必要はなく、他のステップの有無等に関わらず、各ステップを含んでいればよい（たとえば、「操作性記憶部に記憶されたデータと非操作性記憶部に記憶されたデータを用い」は、一つの問題で両者を同時に用いる必要はなく、複数の問題において用いていてもよい）。また、リアルタイム習熟支援システム及びその動作方法は、プログラムや、プログラムを記憶した記憶媒体を、コンピュータに適用することで実現してもよい。
【発明の効果】
【００１７】
本発明によれば、従来技術には全く存在しなかった、「リアルタイム習熟支援システム」を提供することができるという効果がある。
本発明が「リアルタイム習熟支援システム」を提供することにより、以下のような派生的な効果が得られる。
【００１８】
自学自習では、先生が指導する学校での授業とは異なり、先生による学習者への動機づけや強制力が働かないため、学習を途中で挫折することなく最後まで継続してやり通すことができるかどうかは、学習者の学習意欲に依存するところが大きい。すなわち、学習者の自立した学習意欲の持続が重要となる。自学自習の学習環境において学習者の学習意欲の維持こそが学習効果を高めるために重要である。学習者の学習意欲を高めるために「ゲーミフィケーション」と呼ばれるゲームの要素を取り入れた手法が用いられ学習意欲の向上に成果を上げている。リアルタイム習熟支援システムを実現することで、習熟支援システムにおいても、ゲーミフィケーションを取り入れることができ学習者の学習意欲の向上の効果が期待できる。また、利用者の操作に即応した正誤の評価が行われるため、自らの操作への没入感（対象に意識が注がれ他の事が気にならなくなる様子や、その度合いのこと）や集中力が高まり学習意欲の向上が期待できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態であるリアルタイム習熟支援システム１００の概念図である。
【図２】本発明の一実施形態であるリアルタイム習熟支援システム１００を使用した状態における画面の一例の概念図である。
【図３】本発明の一実施形態であるリアルタイム習熟支援システム１００の判定ボタンによる判定の処理の一例のフローチャートである。
【図４】本発明の一実施形態であるリアルタイム習熟支援システム１００のリアルタイムの判定の処理の一例のフローチャートである。
【図５】本発明の一実施形態であるリアルタイム習熟支援システム１００におけるＣＯＭを使ったＯｆｆｉｃｅの起動の一例を示すプログラムである。
【図６】本発明の一実施形態であるリアルタイム習熟支援システム１００におけるＣＯＭを使ったプロパティの取得の一例を示すプログラムである。
【図７】本発明の一実施形態であるリアルタイム習熟支援システム１００におけるＸＭＬファイルの一例を示すプログラムである。
【図８】従来の習熟支援システムにおける作業状態の取得の一例を示すフローチャートである。
【図９】本発明の一実施形態であるリアルタイム習熟支援システム１００における作業状態の取得の一例を示すフローチャートである。
【図１０】本発明の一実施形態であるリアルタイム習熟支援システム１００を使用した場合の作業前の状態の画面の一例の概念図である。
【図１１】本発明の一実施形態であるリアルタイム習熟支援システム１００を使用した場合の作業後の状態の画面の一例の概念図である。
【図１２】本発明の一実施形態であるリアルタイム習熟支援システム１００を使用した場合のＸＭＬファイルの一例を示すテキストである。
【図１３】本発明の一実施形態であるリアルタイム習熟支援システム１００を使用した場合の作業前と作業後のＸＭＬファイルの比較の一例を示す概念図である。
【図１４】本発明の一実施形態であるリアルタイム習熟支援システム１００を使用した場合の作業状態の取得の一例を示す概念図である。
【図１５】各種のプログラム言語とＣＯＭとの関係を示す一般的な説明図である。
【発明を実施するための形態】
【００２０】
本発明のリアルタイム習熟支援システムの一実施形態として、プレゼンテーションソフトウェアの習熟に関するリアルタイム習熟支援システムを例に挙げて説明する。なお、ここで説明する実施形態は、本発明の実施の一例であり、本発明を実施例に限定するものではない。
【００２１】
図１は、プレゼンテーションソフトウェア（たとえばＭｉｃｒｏｓｏｆｔのＰｏｗｅｒＰｏｉｎｔ）の習熟に関するリアルタイム習熟支援システム１００を示す概念図である。図１を参照して、システムの概略について以下に説明する。
【００２２】
入力部１０１は、利用者が実際にリアルタイム習熟支援システム１００に操作を行なう部分である。入力部１０１の具体例としては、キーボード、マウス、音声入力装置等が挙げられる。
【００２３】
制御部１０２は、「制御手段」の一例であり、習熟対象のプレゼンテーションソフトウェアとは別のプログラムである制御プログラムを含んでおり、入力部１０１からの利用者の操作を受けて動作する。本明細書における「制御手段」とは、習熟支援システムを制御する部分をいう。
【００２４】
制御プログラムを作成する言語の一例としては、ＭｉｃｒｏｓｏｆｔのＶＢ（Visual Basic）がある。ここで言うＶＢとは、前述のＶＢＡとは別の種類のプログラム言語である。ＶＢＡは、ＭｉｃｒｏｓｏｆｔのＷｏｒｄ，Ｅｘｃｅｌ，ＰｏｗｅｒＰｏｉｎｔ等のソフトウェアを制御することを目的とする、ＶＢと同様の記述方法の言語であり、これらのソフトウェアとは別のプログラムであるが、これらのソフトウェアの上で実行される。一方、ＶＢは、汎用的なプログラムを作成するための言語であり、特定の目的のために利用される言語ではない。
【００２５】
なお、制御プログラムは、作成する言語の制限はなく、Ｃ＃やＣ＋＋などの汎用の言語で作成することもできる。
図１５は、各種のプログラム言語とＣＯＭとの関係を示す、一般的な説明図である。
【００２６】
制御プログラムは、習熟対象ソフトウェアを構成するオブジェクトモデルにアクセスして、習熟対象ソフトウェアを制御することができる。このオブジェクトモデルにアクセスする方法の例としては、たとえば、習熟対象ソフトウェアの上で動作するＶＢＡによる方法や、習熟対象ソフトウェアの外部で動作するプログラムからＣＯＭを介して行う方法がある。なお、制御プログラムが、習熟対象ソフトウェアを制御する方法は、ＶＢＡによる方法とＣＯＭを介して行なう方法に限られない。
【００２７】
操作性記憶部１０３は、「操作性記憶部」の一例であり、利用者が操作した習熟対象ソフトウェアの状態に関するデータとして、制御プログラムが直接取得することのできるデータであるオブジェクトのプロパティを記憶する記憶部である。本明細書における「操作性記憶部」とは、制御プログラムが直接取得することのできるデータを記憶する部分をいう。
【００２８】
本明細書において「制御プログラムが直接取得することのできる」とは、習熟対象ソフトウェアの状態に関するデータ（オブジェクト、プロパティなど）を、制御プログラムが、オブジェクトを操作して取得できることをいう。
【００２９】
一例を挙げれば、制御プログラムが、ＣＯＭを用いて、ＰｏｗｅｒＰｏｉｎｔを制御する場合、制御プログラムは、ＰｏｗｅｒＰｏｉｎｔオブジェクトを操作して、ＰｏｗｅｒＰｏｉｎｔのスライドに含まれるオブジェクトのプロパティを取得することができる（図５、図６）。このように制御プログラムがＣＯＭを用いて取得できることが、「制御プログラムが直接取得することのできる」の一例である。しかしながら、先で述べたように、ＣＯＭを用いても、すべてのオブジェクトのプロパティを取得できるわけではない。取得できない例は、後で説明する。
【００３０】
操作性記憶部１０３としては、メモリ、ハードディスク、クラウド上の記憶装置など、任意の記憶手段を用いることができる。
表示部１０４は、リアルタイム習熟支援システム１０１の出力を表示する部分である。表示部１０４の具体例としては、ディスプレイ、プロジェクター、インターネットを通じて遠隔接続された端末等が挙げられる。
【００３１】
問題生成部１０５は、利用者に提示する問題を生成する部分である。問題生成部１０５は、その内部に含まれるデータベース、又は、ネットワーク等を介して接続される外部のデータベースに記憶された複数の問題から問題を選択することで、利用者に提示する問題を生成してもよいし、データベースに記憶された問題を修正するなどして問題をその場で作成して利用者に提示する問題を生成してもよい。また、利用者の選択に応じて利用者に提示する問題を生成してもよいし、ランダムな順序で問題を生成してもよい。問題生成部１０５により生成された問題は、表示部１０４に表示される。
【００３２】
非操作性記憶部１０６は、非操作性記憶部の一例であり、操作性記憶部１０３とは異なる記憶部であり、制御部１０２の制御プログラムが直接取得することができないデータを含むデータを記憶する記憶部である。本明細書における「非操作性記憶部」とは、少なくとも制御プログラムが直接取得することができないデータを記憶する部分である。本明細書において「制御プログラムが直接取得することができないデータ」とは、「制御プログラムが直接取得することのできるデータ」にあたらないデータをいう。
【００３３】
一例を挙げると、制御プログラムが、習熟対象ソフトウェアにおいて利用者が操作をした内容をファイルにセーブし、当該ファイルを解析して得られるデータは、習熟対象ソフトウェアの仕様上、角丸四角形の角の丸みのプロパティは直接取得できないようになっているため、後述の角丸四角形の角の丸みを示す値のように、「制御プログラムが直接取得することができないデータ」を含んでいることがある。
【００３４】
非操作性記憶部１０６としては、メモリ、ハードディスク、クラウド上の記憶手段など、任意の記憶手段を用いることができる。また、非操作性記憶部１０６と操作性記憶部１０３は、同じ記憶装置（たとえばハードディスク）の異なる部分（たとえば異なるファイル）であってもよい。
【００３５】
判定部１０７は、「判定手段」の一例であり、少なくとも非操作性記憶部１０６の記憶内容を用いて、利用者の習熟対象ソフトウェアへの操作が適切なものか否かを判定する部分である。本明細書における「判定手段」とは、利用者の習熟対象ソフトウェアへの操作についての判定を行なう部分をいう。
【００３６】
たとえば、習熟対象ソフトウェアについて、「角丸四角形を挿入し、角の丸みを変更してください」という問題に対して判定を行なう場合、従来の制御プログラムでは、図形オブジェクトを取得して判定を行なおうとする。しかし、図形オブジェクトには、図形の種類を示すプロパティや、図形の大きさや位置を示すプロパティは保持されているが、角丸四角形の角の丸みを示すプロパティは、習熟対象ソフトウェアの仕様上は直接取得できないため、制御部１０２は、「角丸四角形を挿入し、角の丸みを変更してください」という問題に対して、判定を行なうことはできない。そうすると、先に述べたように、このようなプロパティを解析する必要のある問題を作ることはできないという限界があった。
【００３７】
判定部１０７が、非操作性記憶部１０６のデータを利用して判定を行うことで、これまで不可能であった判定が可能となる。
なお、本実施例では、習熟支援システムには多数の問題が収録されており、判定部１０７は、出題される問題に応じて、操作性記憶部１０３の記憶内容と、非操作性記憶部１０６の記憶内容のいずれか一方、あるいは、双方を用いて判定を行なうことができる。
【００３８】
非操作性記憶部１０６に記憶されるデータの一例としては、習熟対象ソフトウェアにおいて利用者が操作をした内容を、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬの形式でセーブしてできるファイル（Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬに基づいて作られたファイルは複数のＸＭＬファイルから成り立っており、これらをＺＩＰで圧縮することにより１つの文書としている。）の圧縮されたデータが挙げられる。この場合、判定部１０７は、圧縮ファイルを解凍する解凍手段を用いる。たとえば、判定部１０７が、ＺＩＰファイルなどの圧縮ファイルの解凍プログラム（実行ファイルのほか、ＤＬＬ、制御プログラムの中のルーチン等を含む）を用いることが考えられる。なお、本明細書の「解凍」とは、圧縮されたデータを圧縮されていない状態にすることをいう。
【００３９】
この例では、判定部１０７は、圧縮ファイルを解凍して、ＸＭＬファイルを解析する。解析の一例としては、角丸四角形の角の丸みを示す値に関する属性を検索して分析することで、「角丸四角形を挿入し、角の丸みを変更してください」という問題に対して、判定を行なうことができる。なお、判定や解析には、制御プログラムを用いてもよいし、別のプログラムを用いてもよい。
【００４０】
このように、非操作性記憶部１０６の記憶内容を用いることで、従来の習熟支援システムでは判定が不可能であった、「角丸四角形を挿入し、角の丸みを変更してください」という問題に対して、判定を行なうことができる。
【００４１】
判定部１０７は、リアルタイム判定を実現するために、利用者が習熟対象ソフトウェアに行った作業状態をリアルタイムに取得し、評価基準を満たすかどうかを監視することができる。本実施例では、ポーリング（polling）という技術を応用することにより作業状態のリアルタイム監視を実現する。
【００４２】
具体的には、本実施例では、判定部１０７が定期的に利用者の作業状態を取得し、評価基準を満たしているかを調べることができる。判定間隔を短くすることによりリアルタイム性を高めることができるが、パソコンへの負荷が高くなる。
【００４３】
そこで、他の実施例として、次のような工夫により、リアルタイム性を高めると同時に、パソコンへの負荷を低下させることもできる。利用者がマウスやキーボードなどにより、入力操作を行っている間は判定を行わず、利用者が入力操作を行っていない場合に判定を行うのである。
【００４４】
たとえば、利用者が入力操作をしているかどうかを監視し、入力操作を行っている場合は判定を中断する。利用者が一定時間入力操作を行っていない場合に判定を再開するのである。
【００４５】
図２は、リアルタイム習熟支援システム１０１の画面の一例の概念図である。図２を参照して、画面の一例について以下に説明する。
習熟対象ソフトウェアのウィンドウ２０１は、習熟対象ソフトウェアの画面出力をするウィンドウである。実際の画面出力は、習熟対象ソフトウェアの動作に依存する。
【００４６】
問題用のウィンドウ２０２は、利用者に出題する問題を表示する。この例では、左上の完成例を参考にして、「角丸四角形を挿入し、角の丸みを変更してください」という問題を出題している。
【００４７】
判定結果のウィンドウ２０３は、利用者の操作に対する判定結果を表示する。この例では、利用者の操作により描かれた中央の四角形が、左上の完成例の角の丸さが正しい角丸四角形になっていないため、判定結果は誤答と判断され、判定結果として×が表示されている。
【００４８】
習熟対象ソフトウェアのメニュー２０４は、習熟対象ソフトウェアの各種のコマンドを表示する。利用者は任意のコマンドや操作を実行でき、習熟対象ソフトウェアに実際に慣れることができる。
【００４９】
リアルタイム習熟支援システムのメニュー２０５は、リアルタイム習熟支援システム１０１の各種のコマンドを表示する。利用者は、問題に対する解説の表示を要求したり、判定を要求したり、別の問題に移るなど、各種の操作を行なうことができる。
【００５０】
図３は、判定ボタンを用いた判定において、利用者がアプリケーションに対して行った操作が正しいかどうか判定する処理の一例のフローチャートである。リアルタイム習熟支援システム１０１は、正解がわからない場合などに判定ボタンを押下するようにするよう構成することもでき（なお、判定ボタンによる判定を併用する場合も、判定ボタンを押す前に判定を行なうものは、リアルタイム判定にあたる）、また、出題する問題に応じてリアルタイムではない判定（判定ボタンを押した場合にのみ判定）も併用することができる。図３を参照して、処理の一例について以下に説明する。
【００５１】
ステップＳ１では、課題となる問題文を表示する。
ステップＳ２では、問題に対応する習熟対象ソフトウェア（一例としてＯｆｆｉｃｅ）を起動し、Ｏｆｆｉｃｅオブジェクトを取得する。例えば、ＰｏｗｅｒＰｏｉｎｔに関する問題である場合は、ＰｏｗｅｒＰｏｉｎｔを起動し、Ｅｘｃｅｌに関する問題の場合は、Ｅｘｃｅｌを起動する。
【００５２】
ステップＳ３では、利用者のマウスやキーボードの入力状態を取得する。
ステップＳ４では、利用者が、判定ボタンを押下するかを判定する。
ステップＳ５では、利用者が行った作業状態を取得する。
【００５３】
ステップＳ６では、利用者が行った作業状態と評価基準を比較する。
利用者の作業状態が、正しいかどうかの判定は、あらかじめ設定されている評価基準と利用者の作業状態を比較し、評価基準を満たしていれば正しいと判断する。一つの問題に複数の判定基準を設けることができる。複数の判定基準が設けられている場合、すべての判定基準で正解でなくても部分的に正解であれば部分点が与えられるようにしてもよい。たとえば、部分点を画面に表示し、利用者が続けて解答操作をするか（ステップＳ３に移行）、次の問題に移るか（ステップＳ８に移行）を選択するように促してもよい。
【００５４】
ステップＳ７では、ステップＳ６での比較に基づいて判定を行い、判定結果を表示する。不正解の場合は、ステップＳ３に戻る。正解の場合は、ステップＳ８に移る。
ステップＳ８では、この問題が最後の問題か判断する。最後の問題でない場合は、ステップＳ１に戻り次の問題を表示する。最後の問題である場合は、終了する。
【００５５】
図４は、リアルタイムの判定の処理の一例のフローチャートである。ステップＳ３〜Ｓ１０が判定プロセスである。図３の判定ボタンを用いた判定と異なるところを説明する。ステップＳ３では、利用者のマウスやキーボード等による入力状態を取得して、入力がない時間の情報を取得する。ステップＳ４では、利用者が操作を行っている途中かどうかを判断し、操作の途中である場合は、ステップＳ５で判定を一時中断する。一定の時間入力がない場合には、ステップＳ６で判定を再開する。ステップＳ７では、判定間隔（例えば２秒間）のあいだ判定を待機し、判定間隔が経過したら次のステップＳ８に進む。ステップＳ８では、利用者の作業状態を取得し、ステップＳ９では作業状態と評価基準との比較を行う。ステップＳ１０では、ステップＳ９の比較に基づいて判定を行い、正解の場合は結果を表示し次のステップＳ１１に進む。以降は図３と同様である。ステップＳ１０の判定の結果が不正解の場合は、ステップＳ３に戻り判定を繰り返す。
【００５６】
以上の処理のフローは一例である。たとえば、アプリケーションは先に起動されていてもよい。また、一定の判定間隔を用いる必要はないし、利用者がマウスやキーボード等の入力操作をしている場合に判定を中断しなくてもよい。また、利用者は、適宜、リアルタイム習熟支援システム１０１のメニューを用いて、問題に対する各種の解説を見たり、別の問題に移動したりすることができる。
【００５７】
ステップＳ８のユーザー（利用者）の作業業態を取得するステップの詳細について、従来の習熟支援システム（ナレロー）と比較して説明する。
一般的に、利用者がＯｆｆｉｃｅを使って行った作業状態を取得する場合、すでに述べたようにＶＢＡと呼ばれるＯｆｆｉｃｅの自動化を行うプログラム言語を用いる。従来の習熟支援システムにおいては、当初はＶＢＡを用いていたが、個々の習熟対象ソフトウェアごとにプログラムを作成しなければならなかったため、汎用のプログラム言語であるＶＢを用い、ＣＯＭという外部から習熟対象ソフトウェアを制御する技術を用いて、複数の種類の習熟対象ソフトウェアに対応できるようにしている。
【００５８】
ＣＯＭとは、マイクロソフトが提唱するソフトウェアの再利用を目的とした技術のことである。アプリケーションソフトウェア間での通信や、オペレーティングシステムとアプリケーションソフトウェアとのＡＰＩ(Application Programming Interface)に用いられる。
【００５９】
図５はＣＯＭを使ってＯｆｆｉｃｅ（ここではＰｏｗｅｒＰｏｉｎｔ）を起動するプログラムの一例である。変数ＡｐｐにＯｆｆｉｃｅオブジェクト（ここではＰｏｗｅｒＰｏｉｎｔオブジェクト）が格納される。この変数Ａｐｐを操作することで、ＰｏｗｅｒＰｏｉｎｔの属性（プロパティ）を取得することができる。
【００６０】
図６は、ＣＯＭを使ってＯｆｆｉｃｅオブジェクトのプロパティを使って作業状態を取得する例である。このプログラムでは「ＰｏｗｅｒＰｏｉｎｔのスライドに挿入されている図形の種類（ShapeオブジェクトのAutoShapeTypeプロパティ）」を取得している。これにより利用者がどの種類の図形を挿入したかという作業状態を取得できる。
【００６１】
しかしながら、この作業状態の取得方法では、習熟対象ソフトウェアの仕様上、オブジェクトやプロパティが取得できない場合があるため、作業状態の取得に制約があり、評価基準の設定や判定にも制約がある。
【００６２】
本実施例では、この作業状態の取得方法では取得できない作業状態を取得する新しい方法として、ファイルへの保存という追加の工程を敢えて行い、さらに、ファイル名を変更し、ファイルを解凍するという工程を加えている。
【００６３】
まず、本実施例による作業状態の取得方法について説明する。
Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ はデータを格納するにあたり独自のバイナリ形式を用いてきたが、２００７年１月３０日に発売されたＯｆｆｉｃｅ２００７からは、ＸＭＬで記述された規格を標準ファイル形式として採用した。それがＯｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬである。
【００６４】
Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬに基づいて作られたファイルは複数のＸＭＬファイルから成り立っており、これらをＺＩＰ形式で圧縮することにより１つの文書としている。
Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬに基づいて作られたファイルをＺＩＰ形式で解凍を行えば、ファイルを構成している複数のＸＭＬファイルを取得することができる。
【００６５】
例えば、ＰｏｗｅｒＰｏｉｎｔのファイルである”test.pptx”に拡張子“.zip“を付与し”test.pptx.zip”と名前を変更する。Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬは、ＺＩＰ形式であるのでＺＩＰ形式に対応した解凍ソフトウェアなどでこのファイルを解凍すると、複数のＸＭＬファイルで構成されていることがわかる。図７は、ＸＭＬファイルの構成を表している。
【００６６】
図８は、従来の習熟支援システムにおける作業状態の取得の一例を示すフローチャートである。Ｏｆｆｉｃｅオブジェクトやプロパティから作業状態を取得する。なお、本実施例においても、出題する問題に応じて、図８の作業状態の取得のフローチャートを用いることができる。
【００６７】
図９は、本実施例における作業状態の取得の一例を示すフローチャートである。ステップＳ１では、Ｏｆｆｉｃｅの文書をファイルに保存している。保存されたファイルは、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬ形式である。ステップＳ２では、ＺＩＰファイルにファイル名を変更している。なお、ファイル名を変更しないで解凍してもよい。ステップＳ３では、ＺＩＰファイルの解凍を行い、解凍によってＸＭＬファイルを取得している。ステップＳ４では、ＸＭＬファイルを解析して作業状態を取得している。
【００６８】
本実施例によれば、従来の習熟支援システムでは不可能であった作業状態が取得可能になる。
次に、本実施例の前提となる評価基準の取得方法について説明する。なお、このような評価基準の取得方法を用いるのは、Ｏｆｆｉｃｅ  Ｏｐｅｎ  ＸＭＬ形式で保存された文書ファイルには、文書の内容そのもの以外に、文書の作成者の情報や文書の作成日時などの情報も含まれるため、文書の作成者や作成日時が異なる場合には、文書の内容そのものが一致していても、文書ファイルは異なるものとなるからである。たとえば、正解の文書ファイルと利用者の作成した文書ファイル同士を単純に比較することによって評価するとした場合、利用者が正しく解答した場合でも、正解の文書ファイルと利用者が作成した文書ファイルは、一致しないから、正解として判定できないことになる。両者の差異について、分析をして判定することも考えられるが、リアルタイム性が低くなりうる。そこで、本実施例では、リアルタイム性を高められるような評価基準を予め作成している。
【００６９】
評価基準とは、正解と判定するための条件のことで、一つの問題に複数の評価基準を設けることができる。
評価基準は、正解となる作業を行なった文書ファイルであるＸＭＬファイルを解析して取得する。ＸＭＬは、要素、属性および値で構成されている。正解となる作業を行なった文書ファイルの中から、正解となる作業に関する作業状態が記述されている要素を検索し、得られた要素の属性または値を取得するのである。即ち、オブジェクトやプロパティとして取得することはできなくとも、ＸＭＬの要素、属性および値として取得することができるのである。
【００７０】
正解となる作業状態がどの要素に記述されているかを見つけることは時間がかかる。なぜなら文書ファイルは、サイズが大きいからである。
そこで、正解となる作業を行う前と作業を行った後の作業状態とを比較して、差分（異なる部分）がどこなのかを調べることで目的とする要素を見つけることができる。
【００７１】
評価基準を取得する例を示す。角丸四角形の角の丸みを示す評価基準を取得するものとする。図１３の左側が「作業前」、右側が「作業後」のＸＭＬファイルである。「作業前」では、角丸四角形の丸みに関する操作を行っていないため要素自体が存在していない。「作業後」の太字部分は角丸四角形の丸みに関する操作に関する要素が記述されている。このように「作業前」と「作業後」とを比較することで、どの要素に評価基準に必要な値が記述されているかの候補を絞り込むことができるのである。
【００７２】
この例では、「作業後」の太字部分、即ち、name属性が“““adj“である““a:gd“要素に、属性“fmla“の値が“val 4598“であると記述されていることがわかる。
要素の場所は、ＸＰａｔｈ（XML Path Language）と呼ばれる言語構文で記述することもできる。ＸＰａｔｈは、ＸＭＬに準拠した文書の特定の部分を指定する言語構文である。例えば、““\ppt\slides\slide1.xml,/p:sld/p:cSld[1]/p:spTree[1]/p:sp[1]/p:spPr[1]/a:prstGeom[1]/a:avLst[1]/a:gd[1]“は、前述の「作業後」の太字部分の要素の場所をＸＰａｔｈで記述する例である。
【００７３】
このようにＸＰａｔｈを用いて表現すると、“\ppt\slides\slide1.xml,/p:sld/p:cSld[1]/p:spTree[1]/p:sp[1]/p:spPr[1]/a:prstGeom[1]/a:avLst[1]/a:gd[1]“で場所が指定され、name属性が“adj“である要素の属性“fmla“の値が“val 4598“であるという条件が評価基準となる。
【００７４】
次に、本実施例による判定について説明する。
利用者の作業状態が、正しいかどうかの判定は、あらかじめ設定されている評価基準と利用者の作業状態を比較し、評価基準を満たしていれば正しいと判断される。複数の評価基準が設けられている場合は、個々の評価基準に基づいて判定が行われ、すべての評価基準で正解でなくても部分的に正解であれば部分点が与えられる。
【００７５】
本実施例の（１）評価基準（２）利用者の作業状態の取得（３）判定について、具体例を使って説明する。
ここでは、「ＰｏｗｅｒＰｏｉｎｔのスライド１の図形「角丸四角形」の角を尖らせよ」という問題を例として使う。図２と同様の問題について、図１０は作業前の状態を示しており、図１１は作業後の状態を示している。
【００７６】
（１）評価基準
前述の通り、角丸四角形の角の丸みを示す評価基準は、ＸＰａｔｈを用いると、“\ppt\slides\slide1.xml,/p:sld/p:cSld[1]/p:spTree[1]/p:sp[1]/p:spPr[1]/a:prstGeom[1]/a:avLst[1]/a:gd[1]“で場所が指定され、name属性が“““adj“である要素の属性“fmla“の値が“val 4598“であるということとなる。
【００７７】
評価基準に許容範囲を設けることが必要となる場合がある。例えば、利用者が評価基準の値と完全に一致するように操作することは困難である場合である。このような場合には、たとえば、角の丸みの許容範囲を＋−５０とし、利用者の操作が許容範囲に収まれば正解とするのである。
【００７８】
（2）利用者の作業状態の取得
利用者の作業状態の取得方法は、前述の「本実施例による作業状態の取得方法」で述べた通りであるが、取得する必要がある作業状態は、評価基準に関するもののみである。即ち、“\ppt\slides\slide1.xml,/p:sld/p:cSld[1]/p:spTree[1]/p:sp[1]/p:spPr[1]/a:prstGeom[1]/a:avLst[1]/a:gd[1]“というＸＰａｔｈで場所が指定され、name属性が“““adj“である要素の属性“fmla“の値を取得する。
【００７９】
図１４は、利用者の作業状態の取得の一例を表しており、太字部分が評価基準に関するものである。値が“val 4578“であることがわかる。
（３）判定
利用者の作業状態の値は、“val 4578“であるが、評価基準の値“val 4598“とは完全には一致しない。ここでは許容範囲が＋−５０に設定されており、この範囲には収まるので正解と判定される。
【００８０】
このようにＸＭＬファイルを解析することにより、従来の習熟支援システムではできなかった角丸四角形の角の丸さに関する判定が可能になる。
以上の説明は、習熟支援システムの一例であり、当業者は他にも様々な実施態様において本発明の実施をすることができる。本明細書のいかなる記載も、本発明について当業者が実施可能な様々な実施態様（均等論の範囲も含む）を、権利範囲から除外する意思の表明と解釈されてはならない。
【００８１】
他の実施形態の一例を挙げると、習熟支援システムは、１つのコンピュータシステムで動作する場合だけではなく、ネットワークで接続された複数のコンピュータで動作する実施態様も、当業者には当然に想定できる。たとえば、問題生成部１０５をサーバ上のコンピュータで実行して、ネットワークを通じてクライアント側の端末の表示部１０４に問題を表示することも可能である。
【００８２】
なお、コンピュータを、習熟支援システムとして動作させるプログラムについても、スタンドアローンのコンピュータ上での動作をさせるプログラムのほか、ネットワーク対応、クラウド対応にすることも当業者は当然に想定できる。
【符号の説明】
【００８３】
１０１  入力部
１０２  制御部
１０３  操作性記憶部
１０４  表示部
１０５  問題生成部
１０６  非操作性記憶部
１０７  判定部
２０１  習熟対象ソフトウェアのウィンドウ
２０２  問題生成部のウィンドウ
２０３  判定結果のウィンドウ
２０４  習熟対象ソフトウェアのメニュー
２０５  リアルタイム習熟支援システムのメニュー
【図１】
2019008190.tif 000003
【図２】
2019008190.tif 000004
【図３】
2019008190.tif 000005
【図４】
2019008190.tif 000006
【図５】
2019008190.tif 000007
【図６】
2019008190.tif 000008
【図７】
2019008190.tif 000009
【図８】
2019008190.tif 000010
【図９】
2019008190.tif 000011
【図１０】
2019008190.tif 000012
【図１１】
2019008190.tif 000013
【図１２】
2019008190.tif 000014
【図１３】
2019008190.tif 000015
【図１４】
2019008190.tif 000016
【図１５】
2019008190.tif 000017
【手続補正書】
【提出日】平成29年8月10日(2017.8.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
前記判定手段が、利用者が入力操作を行っている間は判定を行なわないことを特徴とする請求項１〜３のいずれか一項に記載のリアルタイム習熟支援システム。