180 likes | 273 Views
ソフトウェア理解支援のための 閲覧状態復元機能付き Web ブラウザの試作. 大阪大学基礎工学部情報科学科 井上研究室 今枝 誉明. ソフトウェア開発の背景. ソフトウェア開発の際には,様々な情報を調べ,理解する必要がある リファレンス・マニュアル 過去のソフトウェアの開発情報 版管理システムのリポジトリ メーリングリストでの議論 バグ追跡システムに報告された バグ情報や解決法 複数の情報を同時に調べることが必要 メーリングリストの議論とバグ追跡システムの報告,等 情報は複雑に関わり合っている. Web インターフェースを備えた
E N D
ソフトウェア理解支援のための閲覧状態復元機能付き Web ブラウザの試作 大阪大学基礎工学部情報科学科 井上研究室 今枝 誉明
ソフトウェア開発の背景 • ソフトウェア開発の際には,様々な情報を調べ,理解する必要がある • リファレンス・マニュアル • 過去のソフトウェアの開発情報 • 版管理システムのリポジトリ • メーリングリストでの議論 • バグ追跡システムに報告された バグ情報や解決法 • 複数の情報を同時に調べることが必要 • メーリングリストの議論とバグ追跡システムの報告,等 • 情報は複雑に関わり合っている • Web インターフェースを備えた • 情報閲覧システムは多い
問題点 • 目的に応じて複数の閲覧システムを使い分ける必要がある • 階層が深くなったり,分岐が多くなったりすると,「同時に調べていた」という情報が失われてしまう 情報閲覧をサポートするインターフェースが必要
目的と方針 複雑かつ多数の情報を効率良く閲覧するためのツールを提供する • 「同時に調べていた」という情報を失わないようにしたい • 方針 • 複数のシステムを同時に扱える Web ブラウザ • Web インターフェースを備えた閲覧システムが多く存在しているため • ブラウザ上の全てのウィンドウの閲覧状態を記録しておく • 「同時に調べていた」情報を失わないため • 過去の閲覧状態を復元出来る
システムの概要 複数の情報を同時に閲覧するための Web ブラウザ MDI(Multiple Document Interface)を採用 • 主な機能 • 閲覧状態の記録 • 閲覧状態の復元 • 閲覧状態に対するマーク付け • 閲覧状態に対するキーワード検索
閲覧状態の記録 • ページの移動時等に,以下の項目を記録しておく • 起こった事柄 • ページの移動 • ウィンドウの開閉・移動・サイズ変更 • 操作対象となったウィンドウ • 時刻 • 開いていた各ウィンドウに関する情報 • 表示しているページの URL,タイトル • 位置,サイズ,スクロール位置 • ページから自動で抽出したキーワード
各機能の詳細 • 閲覧状態の復元 • 1つ前の閲覧状態に戻る/1つ先に進む • 記録した閲覧状態を,リスト一覧から選択して復元する • 閲覧状態に対するマーク付け • マーク一覧から選択して復元する • 閲覧状態に対するキーワード検索 • 指定されたキーワードをもつ閲覧状態を検索する • 検索結果から選択して復元する
ページをどのように 辿ってきたかを示す ツリービュー 検索 名前を付けて "OK"を押すことで マーク付け完了 キーワード"csh"で検索 "csh"をキーワードにもつ 閲覧状態が見つかった 現在の閲覧状態に マークを付ける 先ほど付けた マークを選択 "csh"をキーワードにもつ 閲覧状態を復元出来る マーク付けしたときの閲覧状態を復元出来る
使用例 • 開発経験の浅い人がソフトウェア理解を試みる • SPARS の Parser 部分をサンプルとする • main 関数から,以下の流れで辿っていく • コードのある部分 A を,A に関するマニュアルと共に参照 • マニュアルの必要な部分に目を通し,閉じた • コードを読み進め,別の部分 B を,B のマニュアルと共に参照 • コード A をまた参照する必要がでてきた • A を再び参照 • A に関するマニュアルはもう閉じてしまった! • 1.の状態に戻り,A の再調査 • その後,2.の状態に戻り B の調査を再開 閲覧状態の復元機能を用いる
これまでの 閲覧状態の 一覧を表示 「DB 書き出し関数の定義とマニュアルを同時に見ていた状態」 を復元し,作業を再開する 「yyparse とマニュアルを同時に見ていた状態」を復元
使用例に対する考察 • 情報閲覧の際に,閲覧状態復元機能を用いることで,同時に調べていた情報を失うことなく,作業を再開することができた • 従来のブラウザでは,履歴が上書きされてしまうために,作業の再開が不可能
まとめと今後の課題 • まとめ • ソフトウェア理解の際に必要となる情報を効率良く閲覧するための,閲覧状態を復元できる Web ブラウザを試作した • 実際の使用例を挙げ,閲覧状態の復元機能が有効に働くことを示した • 今後の課題 • 定量的な評価 • ページ間の関連抽出 • 内容を考慮する,閲覧時間により重み付けをする,等 • 不要な閲覧状態記録の削除機能
キーワード • 以下のものをキーワードとして扱っている • ページのタイトル • アンカーのテキスト • <a href=“foo.html”>foo</a> • “foo.html” に対して “foo” と付ける(リンク元のドキュメントではない) • アンカーの name 属性 • <a name=“bar”>bar</a> • meta タグが存在し,name 属性が keywords あるいは description の場合の content 属性の値 • <meta name=“keywords” content=“baz”> • <meta name=“description” content=“qux”>
ページの推薦機能 • 他の閲覧履歴を利用してページを推薦 • 「ブラウザを起動してから閉じるまで」で,1つの閲覧履歴データベースを作成 • 推薦値の算出には協調フィルタリングの手法を用いる サーバ 閲覧ページ情報 (URL,タイトル) 閲覧情報 書き出し Web ブラウザ 閲覧履歴 データベース 推薦値 算出 閲覧履歴 参照 推薦ページ情報 (推薦値,URL,タイトル)
協調フィルタリング • 大まかな流れは以下の通り • 利用者の評価の取得 • 評価: ページを参照していたら1,いなければ0 • 相関係数の算出 • 推薦値の算出 • 推薦の実行
相関係数の算出 • 2ユーザの「どちらか」が評価したページと, どちらも評価していないページについて計算
推薦値の算出 • 相関係数の2乗を重みとして加重平均 • U:ユーザaとの相関係数が0より大きい全てのユーザ