(57)【特許請求の範囲】
【請求項１】
ユーザの利用例を記載した階層化されたシナリオを分析するシナリオ分析装置であって、
前記シナリオと当該シナリオに関連付けられた機能の集合を入力する入力手段と、
前記シナリオ内での前記機能の出現階層と出現頻度に基づいて前記機能の優先度を求める優先度分析手段と、
前記シナリオ内において２つの機能がそれぞれ関連付けられた位置の距離に基づいて前記２つの機能間の関連度を求める関連度分析手段と、
前記機能毎に、前記優先度と前記関連度を出力する出力手段と、
を有することを特徴とするシナリオ分析装置。
【請求項２】
前記優先度が高く、他の機能との関連が多い機能は表示優先度を大きくし、前記関連度の高い機能同士は付随度を大きくするように表示優先度と付随度を求める表示推定手段を有し、
前記出力手段は、前記表示優先度と前記付随度をさらに出力することを特徴とする請求項１記載のシナリオ分析装置。
【請求項３】
前記シナリオには任意の箇所に重みが設定してあり、
前記優先度分析手段と前記関連度分析手段は、前記重みを加味して前記優先度と前記関連度を求めることを特徴とする請求項１又は２記載のシナリオ分析装置。
【請求項４】
それぞれに重みが設定された複数のシナリオを入力し、
前記優先度分析手段と前記関連度分析手段は、前記シナリオそれぞれで求めた前記優先度と前記関連度について、シナリオ毎の重みを加味して前記優先度と前記関連度を導出することを特徴とする請求項１乃至３のいずれかに記載のシナリオ分析装置。
【請求項５】
前記優先度分析手段と前記関連度分析手段が求めた前記優先度と前記関連度を調整する調整手段を有することを特徴とする請求項１乃至４のいずれかに記載のシナリオ分析装置。
【請求項６】
請求項１乃至５のいずれかに記載のシナリオ分析装置を構成する各手段としてコンピュータを機能させるためのシナリオ分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインタフェースの設計を補助する技術に関する。
【背景技術】
【０００２】
設計者がシステムのユーザインタフェースを設計する場合に、システムのユーザがユーザインタフェースをどのように利用するかを、物語（シナリオ）として記述し、そのシナリオを分析する手法がある（非特許文献１）。ユーザインタフェースを設計する際には、どのような機能を優先して大きく表示すべきか、すぐに呼び出せるようにすべきかといった「機能の優先度」と、ユーザが機能をどのように組み合わせて使うのかという「機能の関連度」を考慮することが重要であると指摘されている。これらを考慮しなければ、ユーザの使い方に即さない、使いにくいユーザインタフェースとなる。
【０００３】
一方で、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）を用いてシステムの動作を記述し、自動で分析を行うことでユーザインタフェースを設計する手法が存在する（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１４０８９３号公報
【非特許文献】
【０００５】
【非特許文献１】Koji Yanagida, et al., “Structured Scenario-Based Design Method”, HCII 2009, p.374-380
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、自動でユーザインタフェースを実現することは可能であるが、設計者がユーザインタフェースを調整する際に、ＵＭＬという形式言語を読むための専門知識がなければ正しい分析は困難である。加えて、ＵＭＬはシステムかどのように動作するかを記述できるだけで、ユーザがどのように使うのかを記述することはできない。すなわち、機能の優先度と関連度の分析には適していない。また、非特許文献１の技術では、シナリオから機能の優先度と関連度を読み取ることは難しい作業である。
【０００７】
本発明は、上記に鑑みてなされたものであり、シナリオからユーザインタフェースの設計に必要な情報を得ることを目的とする。
【課題を解決するための手段】
【０００８】
第１の本発明に係るシナリオ分析装置は、ユーザの利用例を記載した階層化されたシナリオを分析するシナリオ分析装置であって、前記シナリオと当該シナリオに関連付けられた機能の集合を入力する入力手段と、前記シナリオ内での前記機能の出現階層と出現頻度に基づいて前記機能の優先度を求める優先度分析手段と、前記シナリオ内において２つの機能がそれぞれ関連付けられた位置の距離に基づいて前記２つの機能間の関連度を求める関連度分析手段と、前記機能毎に、前記優先度と前記関連度を出力する出力手段と、を有することを特徴とする。
【０００９】
上記シナリオ分析装置において、前記優先度が高く、他の機能との関連が多い機能は表示優先度を大きくし、前記関連度の高い機能同士は付随度を大きくするように表示優先度と付随度を求める表示推定手段を有し、前記出力手段は、前記表示優先度と前記付随度をさらに出力することを特徴とする。
【００１０】
上記シナリオ分析装置において、前記シナリオには任意の箇所に重みが設定してあり、前記優先度分析手段と前記関連度分析手段は、前記重みを加味して前記優先度と前記関連度を求めることを特徴とする。
【００１１】
上記シナリオ分析装置において、それぞれに重みが設定された複数のシナリオを入力し、前記優先度分析手段と前記関連度分析手段は、前記シナリオそれぞれで求めた前記優先度と前記関連度について、シナリオ毎の重みを加味して前記優先度と前記関連度を導出することを特徴とする。
【００１２】
上記シナリオ分析装置において、前記優先度分析手段と前記関連度分析手段が求めた前記優先度と前記関連度を調整する調整手段を有することを特徴とする。
【００１３】
第２の本発明に係るシナリオ分析プログラムは、上記シナリオ分析装置を構成する各手段としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、シナリオからユーザインタフェースの設計に必要な情報を得ることができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態におけるシナリオ分析装置の構成を示す機能ブロック図である。
【図２】階層化されたシナリオとシナリオにひも付けられた機能の例を示す図である。
【図３】上記のシナリオをＸＭＬで階層構造を保持して表現した例を示す図である。
【図４】上記のシナリオをツリー構造で表現した例を示す図である。
【図５】優先度を計算する処理の流れを示すフローチャートである。
【図６】関連度を計算する処理の流れを示すフローチャートである。
【図７】優先度と関連度を出力する処理の流れを示すフローチャートである。
【図８】優先度と関連度をＸＭＬ形式で出力した出力例を示す。
【図９】第２の実施の形態におけるシナリオ分析装置の構成を示す機能ブロック図である。
【図１０】表示方法処理の流れを示すフローチャートである。
【図１１】機能の優先度、関連度を調整する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を用いて説明する。
【００１７】
［第１の実施の形態］
図１は、第１の実施の形態におけるシナリオ分析装置の構成を示す機能ブロック図である。同図に示すシナリオ分析装置１は、分析部２、出力部３、および情報保持部４を備える。シナリオ分析装置１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはシナリオ分析装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。以下、各部について説明する。
【００１８】
分析部２は、優先度分析部２１と関連度分析部２２を有し、階層的に詳細化されたシナリオとシナリオにひも付けされた機能の集合を入力して、シナリオで記載されたシステムの主となる機能であるか否かを表す機能の優先度と、機能をどのように組み合わせて使うのかを表す機能の関連度を分析する。
【００１９】
優先度分析部２１は、機能の出現階層と出現頻度に基づいて機能の優先度を推定して情報保持部４に保存する。第１に、シナリオにおいて、上位階層で抽出されている機能ほど機能の優先度が高いと判定する。第２に、シナリオにおいて、同一機能が複数箇所で出現する場合、出現回数が多い機能ほど優先度が高いと判定する。
【００２０】
関連度分析部２２は、シナリオ内において２つの機能がそれぞれひも付けられた位置の距離に基づいて２つの機能間の関連度を推定して情報保持部４に保存する。シナリオ内の文章的に近い位置にある機能ほど関連度が高いと判定する。同一機能が複数箇所に存在する場合には、それぞれの箇所における機能の関連度を算出し、それらを組み合わせて最終的な機能の関連度を推定する。
【００２１】
出力部３は、入力されたシナリオ、機能の集合、分析部２で分析された優先度と関連度を情報保持部４から読み出し、機能毎に、優先度と関連度を所定のフォーマットでディスプレイなどに出力する。
【００２２】
情報保持部４は、入力されたシナリオ、機能の集合、分析部２で分析された優先度と関連度を保存する。
【００２３】
次に、本実施の形態におけるシナリオ分析装置１で分析するシナリオについて説明する。
【００２４】
図２に、本実施の形態におけるシナリオ分析装置１で分析する階層化されたシナリオと機能の例を示す。このシナリオと機能は、予め設計者が記述しておくものである。シナリオには、どういうシーンで、どのような流れで、どのように利用するのか、といったユーザの利用例が記述されている。図２では、カウントダウンとカウントアップのシーンが記述されている。カウントダウンのシーンについて、プレゼンタイマーの起動と設定、使用、終了までの流れに沿って利用方法が記述されている。カウントアップのシーンの詳細は省略している。また、図２のシナリオ中に、機能がひも付けられた文の最後の括弧内に下線を付して機能名を記述している。
【００２５】
図３に、図２のシナリオをＸＭＬで階層構造を保持して表現した例を示す。シナリオ分析装置１は、図３に示すようなＸＭＬ形式のシナリオを入力して分析を行う。図３の例では、ｓｅｃｔｉｏｎタグを入れ子構造にしてシナリオの階層構造を保持している。具体的には、カウントダウンのｓｅｃｔｉｏｎタグで囲った中に、プレゼンタイマーの起動と設定、使用、終了の各ｓｅｃｔｉｏｎが記述されている。シナリオの本文は、ｓｃｅｎａｒｉｏタグで囲った中に記述されている。また、機能として抽出された文は、本文中の該当箇所をｆｕｎｃｔｉｏｎタグで囲い、ｆｕｎｃｔｉｏｎタグ内のｎａｍｅで機能の名前（機能名）が記述されている。
【００２６】
図４は、図２のシナリオをツリー構造で表現した例を示す図である。図４では、ｒｏｏｔを頂点（第１階層）とし、ｓｅｃｔｉｏｎを階層的に表現した。図４の第２階層の左側のｓｅｃｔｉｏｎがカウントダウンのシーンに相当する。カウントダウンのシーンの下には、第３階層の３つのｓｅｃｔｉｏｎがある。各ｓｅｃｔｉｏｎの下のノード一つ一つがシナリオ中の一文に対応し、機能がひも付けられた文のノードは●で表現した。なお、このツリーのｒｏｏｔやｓｅｃｔｉｏｎに対して重み付けを行い、その重みを優先度分析や関連度分析に用いることもできる。図４では、第３階層の一番左のｓｅｃｔｉｏｎに重み＝２を設定した。図３のＸＭＬでは、ｓｃｅｎａｒｉｏタグ内のｗｅｉｇｈｔ＝２で重みが設定されている。
【００２７】
次に、本実施の形態におけるシナリオ分析装置１の処理について説明する。
【００２８】
まず、優先度を計算する処理について説明する。
【００２９】
図５は、優先度を計算する処理の流れを示すフローチャートである。
【００３０】
まず、シナリオと機能の集合を読み込む（ステップＳ１１）。図３に示すように、シナリオ内に機能が記載されている場合は、読み込んだシナリオから機能を抽出する。
【００３１】
そして、分析対象の機能を一つ選択し（ステップＳ１２）、選択した機能の優先度を計算する（ステップＳ１３）。優先度の計算については後述する。
【００３２】
求めた優先度を情報保持部４に保存し（ステップＳ１４）、未分析の機能がある場合は（ステップＳ１５のＹＥＳ）、ステップＳ１２に戻り次の機能について処理を行う。
【００３３】
ここで、優先度の計算について説明する。
【００３４】
優先度の計算では、機能の出現階層と出現位置の２種類のパラメータを組み合わせて優先度を求める。第１に、シナリオにおいて、上位階層で抽出されている機能ほど機能の優先度が高いと判定する。第２に、シナリオにおいて、同一機能が複数箇所で出現する場合、出現回数が多い機能ほど優先度が高いと判定する。
【００３５】
例えば、抽出された階層をＬａｙｅｒ（１≦Ｌａｙｅｒ）、抽出回数をＴｉｍｅ（１≦Ｔｉｍｅ）と定め、優先度Ｐｒｉｏｒｉｔｙを次式で求める。
【００３６】
Priority = k1*(1 / Layer) + k2*Time
（係数ｋ１，ｋ２∈実数）
なお、親ノードやルートに重みが設定されている場合は係数ｋ１，ｋ２を調整する。
【００３７】
また、複数のシナリオが存在する場合は、各シナリオで機能の優先度を求め、各シナリオで求めた優先度に重みを加味して平均をとり優先度を導出する。
【００３８】
続いて、関連度を計算する処理について説明する。
【００３９】
図６は、関連度を計算する処理の流れを示すフローチャートである。
【００４０】
まず、シナリオと機能の集合を読み込む（ステップＳ２１）。
【００４１】
そして、分析対象の機能を一つ選択するとともに（ステップＳ２２）、比較対象の機能を一つ選択し（ステップＳ２３）、選択した２つの機能間の関連度を計算する（ステップＳ２４）。関連度の計算については後述する。
【００４２】
求めた関連度が所定の閾値以上であれば、関連度ありとして情報保持部４に保存する（ステップＳ２５）。
【００４３】
未比較の機能がある場合は（ステップＳ２６のＹＥＳ）、ステップＳ２３に戻り次の比較対象の機能を選択する。未比較の機能がなく（ステップＳ２６のＮＯ）、未分析の機能がある場合は（ステップＳ２７のＹＥＳ）、ステップＳ２２に戻り次の機能について処理を行う。
【００４４】
ここで、関連度の計算について説明する。
【００４５】
関連度の計算では、シナリオ内の文章的に近い位置にある機能ほど関連度が高いと判定する。加えて、同一機能が複数箇所に存在する場合には、それぞれの箇所における関連度を算出し、それらを組み合わせて最終的な関連度を求める。
【００４６】
例えば、２つの機能ｆｕｎｃｔｉｏｎ＿Ａ，ｆｕｎｃｔｉｏｎ＿Ｂを比較するときを考える。同じｓｅｃｔｉｏｎ中の文章を句点で分割し、先頭から文を数えた位置をｐｏｓｉｔｉｏｎ、機能が抽出された文までの階層をｌａｙｅｒと定める。
【００４７】
２つの機能が同じｓｅｃｔｉｏｎ内に所属している場合の関連度ｉｎ＿ｒｅｌａｔｉｏｎ＿ＡＢは次式で求める。
【００４８】
in_relation_AB = k3*function_A.layer + k4*1 / |function_A.position - function_B.position|
（係数ｋ３，ｋ４∈実数）
２つの機能が異なるｓｅｃｔｉｏｎに所属している場合の関連度ｏｕｔ＿ｒｅｌａｔｉｏｎ＿ＡＢは次式で求める。
【００４９】
out_relation_AB = k5*1 / (function_A.layer + function_B.layer)
（係数ｋ５∈実数）
なお、親ノードやルートに重みが設定されている場合は係数ｋ３，ｋ４，ｋ５を調整する。
【００５０】
また、同一機能がシナリオ内の複数箇所にある場合には、平均をとるなどして、最終的な機能の関連度を導出する。
【００５１】
さらに、複数のシナリオが存在する場合は、各シナリオで機能の関連度を求め、各シナリオで求めた関連度に重みを加味して平均をとり関連度を導出する。
【００５２】
続いて、求めた優先度と関連度を出力する処理について説明する。
【００５３】
図７は、優先度と関連度を出力する処理の流れを示すフローチャートである。
【００５４】
まず、情報保持部４から機能の情報を読み出す（ステップＳ３１）。
【００５５】
出力する機能を一つ選択し（ステップＳ３２）、選択した機能の優先度を出力し（ステップＳ３３）、選択した機能と関連のある機能を関連度とともに出力する（ステップＳ３４）。
【００５６】
未出力の機能がある場合は（ステップＳ３５のＹＥＳ）、ステップＳ３２に戻り、次の機能について処理を行う。
【００５７】
図８に、優先度と関連度をＸＭＬ形式で出力した出力例を示す。図８に示す例では、シーン毎に機能を選択して出力した。機能名をｆｕｎｃｔｉｏｎタグ内のｎａｍｅで記述し、ｆｕｎｃｔｉｏｎタグで囲った中にその機能の優先度と関連度を記述した。優先度はｐｒｉｏｒｉｔｙタグで囲って記述し、関連度については、ｒｅｌａｔｉｏｎタグで関連のある機能名を囲い、ｒｅｌａｔｉｏｎタグ内のｖａｌｕｅで関連度を記述した。なお、優先度、関連度について同様の情報を保持できる形式であれば、ＸＭＬ形式に限るものではない。
【００５８】
以上説明したように、本実施の形態によれば、階層化されたシナリオとシナリオにひも付けられた機能を入力し、優先度分析部２１がシナリオにおける機能の出現階層と出現頻度の組み合わせで機能の優先度を求め、関連度分析部２２かシナリオ内での機能間の出現位置の距離で機能の関連度を求めることにより、専門知識が無くても理解できるシナリオを用いて、ユーザインタフェースの設計に必要な情報を手早く取得することが可能となる。その結果、短期間に繰り返しユーザインタフェースの検討を濃密に行うことが可能となる。
【００５９】
［第２の実施の形態］
図９は、第２の実施の形態におけるシナリオ分析装置の構成を示す機能ブロック図である。同図に示すシナリオ分析装置１は、表示方法推定部２３、調整用インタフェース５をさらに備える。以下、表示方法推定部２３と調整用インタフェース５について説明する。
【００６０】
表示方法推定部２３は、機能の優先度と関連度を用いて、優先度の高い機能はできる限り常に表示するか、呼び出すステップ数が少なくなるように表示し、関連度の高い機能はまとめて表示するように、表示優先度と付随度を算出する。画面サイズなどの制約がある場合は、優先度を元にして、何を優先させて表示するか、また関連度を元にして、最低限、何の機能が一緒にあるべきかを判定する。
【００６１】
例えば、図２で示したシナリオにおいて、時間表示機能を例にとると、時間表示機能が最も優先度が高いので、優先して表示されるべきと判定する。また、関連度から時間指定機能、ベル機能などを付随させるべきと判定する。逆に、一時停止機能やリセット機能は必ずしも優先しなくて良いと判定する。
【００６２】
図１０は、表示方法推定部２３の処理の流れを示すフローチャートである。
【００６３】
まず、情報保持部４から処理対象の機能の一覧を読み出す（ステップＳ４１）。
【００６４】
処理対象の機能を一つ選択し（ステップＳ４２）、選択した機能の優先度と関連度を情報保持部４から読み出して（ステップＳ４３）、表示方法を推定する（ステップＳ４４）。表示方法の推定については後述する。
【００６５】
処理していない機能がある場合は（ステップＳ４５のＹＥＳ）、ステップＳ４２に戻り次の機能について処理を行う。
【００６６】
ここで、表示方法の推定について説明する。
【００６７】
表示方法の推定では、優先度が高く、他の機能との関連が多い機能は表示優先度を高め、関連度の高い機能同士はまとめて表示するように表示優先度と付随度を算出する。
【００６８】
例えば、機能の優先度をｐｒｉｏｒｉｔｙ、機能の関連度をｒｅｌａｔｉｏｎ＿ｉとして、機能の表示優先度ｄｉｓｐｌａｙ＿ｐｒｉｏｒｉｔｙを次式で求める。
【００６９】
display_priority = k6*priority + k7*Σ[i=1..n] relation_i
（係数ｋ６，ｋ７∈実数）
また、機能の付随度ｌｉｎｋ＿ｐｒｉｏｒｉｔｙは、機能間の関連度と付随する機能の優先度を用いて次式で求める。
【００７０】
link_priority = k8*relation + k9*priority
（係数ｋ８，ｋ９∈実数）
なお、機能は優先度が高い機能に付随する、とし、ｌｉｎｋ＿ｐｒｉｏｒｉｔｙが所定の閾値以上であれば、付随する機能であるとする。
【００７１】
以上の計算で求めた表示優先度と付随度を出力部３に送信する。あるいは、情報保持部４に保存する。
【００７２】
出力部３では、表示優先度の高い機能から順に機能の情報を出力し、さらに、その機能に付随する機能の情報を、付随度が高い順に出力する。
【００７３】
調整用インタフェース５は、情報保持部４が保持する機能の優先度、関連度を調整するためのインタフェースを提供する。分析部２の分析結果が設計者の意図と異なる場合には、調整用インタフェース５を用いて情報保持部４が保持する機能の優先度、関連度を修正できる。
【００７４】
図１１は、調整用インタフェース５を用いて機能の優先度、関連度を調整する処理の流れを示すフローチャートである。
【００７５】
まず、設計者は、調整対象の機能を一つ選択する（ステップＳ５１）。
【００７６】
調整用インタフェース５は、情報保持部４から選択された機能の情報を読み出す（ステップＳ５２）。
【００７７】
設計者は、読み出された優先度、関連度を調整する（ステップＳ５３）。
【００７８】
優先度、関連度の調整が完了すると、調整用インタフェース５は、情報保持部４の情報を更新する（ステップＳ５４）。
【００７９】
以上説明したように、本実施の形態によれば、表示方法推定部２３が機能の優先度と関連度を用いて、優先的に表示すべき度合いを示す表示優先度と付随して表示すべき度合いを示す付随度を算出することにより、ユーザインタフェースの設計に役立つ情報を得ることができる。
【符号の説明】
【００８０】
１…シナリオ分析装置
２…分析部
２１…優先度分析部
２２…関連度分析部
２３…表示方法推定部
３…出力部
４…情報保持部
５…調整用インタフェース
【図１】
0005657587.tif 000002
【図２】
0005657587.tif 000003
【図３】
0005657587.tif 000004
【図４】
0005657587.tif 000005
【図５】
0005657587.tif 000006
【図６】
0005657587.tif 000007
【図７】
0005657587.tif 000008
【図８】
0005657587.tif 000009
【図９】
0005657587.tif 000010
【図１０】
0005657587.tif 000011
【図１１】
0005657587.tif 000012