PSS/ロードマップ

背景

2006/06/15 現在の最新版である Ver.8.1.0 では、スマート学習をはじめ、オプションの切り替え機能など、実に様々な機能が搭載されている。 しかし、これらの機能は「利用者変更機能」との整合性がとれていない。

これは、現在までの様々な機能追加において、「利用者変更機能」を考慮していなかったためである。

現状ではあくまでも「利用者変更機能」は「利用者毎の履歴を切り替えるための機能」であるが、ユーザが期待しているのは「利用者を切り替える機能」であり、明らかに機能不足(名が体を表していない)である。

そこで、各種機能との整合性を確保するために、「利用者変更機能」の再構築を行う。

現状での問題点と要望

現状での問題点・要望をまとめると下表のようになる。

項番機能問題点・要望実装上の問題
1スマート学習リスト利用者を変更してもスマート学習リストが切り替わらないスマート学習リストが利用者毎に用意されていない
2オプション切り替え機能利用者の変更時に、オプションも自動的に切り替わって欲しい「利用者とオプションファイルとの対応付け」が必要
3スキン機能利用者の変更時に、スキンも自動的に切り替わって欲しい2を実装すれば実現可能
4学習モード利用者の変更時に、学習モードも自動的に切り替わって欲しい利用者毎の「学習モード」を保存する機能が必要。

設計

実装手順

下記の手順で実装を行っていく。

  1. 「スマート学習リスト」関連
    1. スマート学習リストを利用者毎に用意する(新たなテーブルが必要か?)
    2. 利用者変更時に、スマート学習リストID(問題集ID)を自動的に切り替え、スマート学習リストを再読込するルーチンを追加する。
  2. 「学習モード」関連
    1. 利用者切り替え時に、学習モードも切り替える。
  3. 「オプション切り替え機能」「スキン機能」関連
    1. 利用者とオプションファイルとの対応表を新たに作る。
    2. 利用者変更画面に「自動切り替え先オプションファイル」のような項目を追加する。
    3. 利用者変更時に「自動切り替え先オプションファイル」が(その利用者に)指定されていれば、オプションファイルを自動的に再読込する。
      (これにより、スキンも自動的に切り替わる)

利用者変更画面

「実装手順」から「利用者変更画面」について検討する。

まず、利用者のエントリー毎に「プロパティ」を設定できるようにする。

「プロパティ」には、

  • 利用者に関連づけられた「オプションファイル名」
  • デフォルトの学習モード

の項目があれば十分。

欲を言えば、この画面に「総学習時間」や「平均学習時間」、学習数などを表示できる
と面白いかもしれないが、それは別の画面(統計、のような名前か?)に表示すべきだ
ろう。

実際にはこれらに加えて、

  • スマート学習リストのフォルダのID
  • 現在のスマート学習リストの問題集ID

スマート学習関連

基本方針

利用者毎に「ユーザIDに対応した既定のパス」でスマート学習リストを割り当てる。

例えば、

SmartLearning/user1/1
SmartLearning/user2/1
SmartLearning/user3/1

のようなパスを割り当てる。

項目としては、

  • 「ユーザのスマート学習リストが格納されているフォルダのID」
  • 「ユーザの(現在の)スマート学習リストの問題集ID」

の2つを保存する。

データベーススキーマアップデート時の処理

既存の利用者毎に下記の処理を行う

  1. 「ユーザIDに対応した既定のパス」でスマート学習リストを生成する。
  2. 「従来のスマート学習リスト」を「ユーザのスマート学習リスト」にコピーする。
  3. user_property テーブルに「ユーザIDに対応したスマート学習リストID」を追加する。

起動時の処理

現在は、スマート学習リストIDは「決め打ち」だが、これを「動的に取得する」ように修正する。

これは、「user_propertyテーブル」からユーザIDに対応するスマート学習リストIDを取得する形になる。

もし、「ユーザIDに対応するスマート学習リストID」が存在しない場合は、自動的に「既定のパス」でスマート学習リストを生成し、その問題集IDを利用する。

利用者切り替え時の処理

利用者変更画面で OK ボタン押下後の処理は下記の通り。

  1. スマート学習リストを再読込する処理を行う。

利用者新規作成時の処理

利用者変更画面で「利用者の新規作成」を行ったときの処理は下記の通り。

  1. user_property テーブルの「スマート学習リストID」項目には、"" を割り当てる。

実際に必要になった際に、動的に「既定のパス」でスマート学習リストが生成され、その問題集IDが利用されることになる。

問題点いろいろ

  • 学習モードをどこに保存し、切り替えるのか?
    現状では、学習モードは「前回の終了時のモード」をレジストリに記録している。
    最もわかりやすいのは、
     利用者毎に『デフォルトの学習モード』を設定できるようにする
    ことか?

各ユーザ毎のオプションデータ割り当て

各ユーザ(利用者)に別々のオプションデータを(強制的に)割り当て、切り替える機能を搭載する。

起動時の処理

  1. システムオプションの読み込み(レジストリ)
    1. オプションファイル用フォルダパスの解決
    2. カレントユーザ名解決
  2. ユーザオプションの読み込み(レジストリ)
  3. 「オプションファイル名設定済み」フラグが Off なら、各ユーザにオプションファイルを設定する
    1. 各ユーザのオプションファイルが設定されていなければ、下記の処理を行う。
      1. ユーザに対応するオプションファイルパスを生成(userXX.ini)。
      2. ユーザオプションをそのオプションファイルに保存する。
  4. (DBから)カレントユーザに対応するオプションファイル名の取得
  5. オプションファイルの読込み

終了時の処理

  1. オプションファイルの保存
  2. ユーザ項目のレジストリ保存
  3. システム項目のレジストリ保存

利用者切り替え時の処理

  1. 切り替え前のユーザに対応するオプションファイルの保存
  2. 切り替え後のユーザに対応するオプションファイルの読み込み

利用者新規作成時の処理

  1. 新しいユーザに対応するオプションファイル名の生成
  2. そのファイルに現在のユーザオプションを保存する (つまり、新規作成を行ったときの利用者のオプションが、新規ユーザに引き継がれる)
このエントリーをはてなブックマークに追加

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-07-12 (水) 19:25:59 (4847d)