[[PSS/ロードマップ]] #contents * 背景 [#e9369967] 2006/06/15 現在の最新版である Ver.8.1.0 では、スマート学習をはじめ、オプションの切り替え機能など、実に様々な機能が搭載されている。 しかし、これらの機能は「利用者変更機能」との整合性がとれていない。 これは、現在までの様々な機能追加において、「利用者変更機能」を考慮していなかったためである。 現状ではあくまでも「利用者変更機能」は「利用者毎の履歴を切り替えるための機能」であるが、ユーザが期待しているのは「利用者を切り替える機能」であり、明らかに機能不足(名が体を表していない)である。 そこで、各種機能との整合性を確保するために、「利用者変更機能」の再構築を行う。 * 現状での問題点と要望 [#mcb66ee0] 現状での問題点・要望をまとめると下表のようになる。 |項番|機能|問題点・要望|実装上の問題|h |1|スマート学習リスト|利用者を変更してもスマート学習リストが切り替わらない|スマート学習リストが利用者毎に用意されていない| |2|オプション切り替え機能|利用者の変更時に、オプションも自動的に切り替わって欲しい|「利用者とオプションファイルとの対応付け」が必要| |3|スキン機能|利用者の変更時に、スキンも自動的に切り替わって欲しい|2を実装すれば実現可能| |4|学習モード|利用者の変更時に、学習モードも自動的に切り替わって欲しい|利用者毎の「学習モード」を保存する機能が必要。| * 設計 [#t2d475f5] ** 実装手順 [#waffba4d] 下記の手順で実装を行っていく。 + 「スマート学習リスト」関連 ++ スマート学習リストを利用者毎に用意する(新たなテーブルが必要か?) ++ 利用者変更時に、スマート学習リストID(問題集ID)を自動的に切り替え、スマート学習リストを再読込するルーチンを追加する。 + 「学習モード」関連 ++ 利用者切り替え時に、学習モードも切り替える。 + 「オプション切り替え機能」「スキン機能」関連 ++ 利用者とオプションファイルとの対応表を新たに作る。 ++ 利用者変更画面に「自動切り替え先オプションファイル」のような項目を追加する。 ++ 利用者変更時に「自動切り替え先オプションファイル」が(その利用者に)指定されていれば、オプションファイルを自動的に再読込する。~ (これにより、スキンも自動的に切り替わる) ** 利用者変更画面 [#u946441f] 「実装手順」から「利用者変更画面」について検討する。 まず、利用者のエントリー毎に「プロパティ」を設定できるようにする。 「プロパティ」には、 - 利用者に関連づけられた「オプションファイル名」 - デフォルトの学習モード の項目があれば十分。 欲を言えば、この画面に「総学習時間」や「平均学習時間」、学習数などを表示できる と面白いかもしれないが、それは別の画面(統計、のような名前か?)に表示すべきだ ろう。 実際にはこれらに加えて、 - スマート学習リストのフォルダのID - 現在のスマート学習リストの問題集ID ** スマート学習関連 [#gaed0939] ''基本方針'' 利用者毎に「ユーザIDに対応した既定のパス」でスマート学習リストを割り当てる。 例えば、 SmartLearning/user1/1 SmartLearning/user2/1 SmartLearning/user3/1 のようなパスを割り当てる。 項目としては、 - 「ユーザのスマート学習リストが格納されているフォルダのID」 - 「ユーザの(現在の)スマート学習リストの問題集ID」 の2つを保存する。 ''データベーススキーマアップデート時の処理'' 既存の利用者毎に下記の処理を行う + 「ユーザIDに対応した既定のパス」でスマート学習リストを生成する。 + 「従来のスマート学習リスト」を「ユーザのスマート学習リスト」にコピーする。 + user_property テーブルに「ユーザIDに対応したスマート学習リストID」を追加する。 ''起動時の処理'' 現在は、スマート学習リストIDは「決め打ち」だが、これを「動的に取得する」ように修正する。 これは、「user_propertyテーブル」からユーザIDに対応するスマート学習リストIDを取得する形になる。 もし、「ユーザIDに対応するスマート学習リストID」が存在しない場合は、自動的に「既定のパス」でスマート学習リストを生成し、その問題集IDを利用する。 ''利用者切り替え時の処理'' 利用者変更画面で OK ボタン押下後の処理は下記の通り。 + スマート学習リストを再読込する処理を行う。 ''利用者新規作成時の処理'' 利用者変更画面で「利用者の新規作成」を行ったときの処理は下記の通り。 + user_property テーブルの「スマート学習リストID」項目には、"" を割り当てる。 実際に必要になった際に、動的に「既定のパス」でスマート学習リストが生成され、その問題集IDが利用されることになる。 ** 問題点いろいろ [#obe6f5ad] - 学習モードをどこに保存し、切り替えるのか?~ 現状では、学習モードは「前回の終了時のモード」をレジストリに記録している。~ 最もわかりやすいのは、~ 利用者毎に『デフォルトの学習モード』を設定できるようにする~ ことか? * 各ユーザ毎のオプションデータ割り当て [#a5eaa9ac] 各ユーザ(利用者)に別々のオプションデータを(強制的に)割り当て、切り替える機能を搭載する。 ''起動時の処理シーケンス'' + レジストリ読み込み(システム項目) ++ オプションファイル用フォルダパスの解決 ++ カレントユーザ名解決 + (DBから)カレントユーザに対応するオプションファイル名の取得 ++ 対応ファイルなし:パス生成、保存 + オプションファイル読み込み