ソフトウェア理解支援のための 閲覧状態復元機能をもつ Web ブラウザの

Download Report

Transcript ソフトウェア理解支援のための 閲覧状態復元機能をもつ Web ブラウザの

ソフトウェア理解支援のための
閲覧状態復元機能付き Web ブラウザの試作
大阪大学基礎工学部情報科学科
井上研究室
今枝 誉明
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
1
ソフトウェア開発の背景
ソフトウェア開発の際には,様々な情報を調べ,理解する必
要がある
リファレンス・マニュアル
過去のソフトウェアの開発情報
版管理システムのリポジトリ
メーリングリストでの議論
バグ追跡システムに報告された
バグ情報や解決法
Web インターフェースを備えた
情報閲覧システムは多い
複数の情報を同時に調べることが必要
メーリングリストの議論とバグ追跡システムの報告,等
情報は複雑に関わり合っている
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2
問題点
目的に応じて複数の閲覧システムを使い分ける必
要がある
階層が深くなったり,分岐が多くなったりすると,「同
時に調べていた」という情報が失われてしまう
情報閲覧をサポートするインターフェースが必要
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
目的と方針
複雑かつ多数の情報を効率良く閲覧するための
ツールを提供する
「同時に調べていた」という情報を失わないようにしたい
方針
複数のシステムを同時に扱える Web ブラウザ
Web インターフェースを備えた閲覧システムが多く存在してい
るため
ブラウザ上の全てのウィンドウの閲覧状態を記録しておく
「同時に調べていた」情報を失わないため
– 過去の閲覧状態を復元出来る
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
システムの概要
複数の情報を同時に閲覧するための Web ブラウザ
MDI(Multiple Document Interface)を採用
主な機能
閲覧状態の記録
閲覧状態の復元
閲覧状態に対するマーク付け
閲覧状態に対するキーワード検索
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
閲覧状態の記録
ページの移動時等に,以下の項目を記録しておく
起こった事柄
ページの移動
ウィンドウの開閉・移動・サイズ変更
操作対象となったウィンドウ
時刻
開いていた各ウィンドウに関する情報
表示しているページの URL,タイトル
位置,サイズ,スクロール位置
ページから自動で抽出したキーワード
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
6
各機能の詳細
閲覧状態の復元
1つ前の閲覧状態に戻る/1つ先に進む
記録した閲覧状態を,リスト一覧から選択して復元する
閲覧状態に対するマーク付け
マーク一覧から選択して復元する
閲覧状態に対するキーワード検索
指定されたキーワードをもつ閲覧状態を検索する
検索結果から選択して復元する
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
7
ページをどのように
検索辿ってきたかを示す
名前を付けて
ツリービュー
キーワード"csh"で検索
"csh"をキーワードにもつ"OK"を押すことで
現在の閲覧状態に
閲覧状態が見つかった
マーク付け完了
先ほど付けた
"csh"をキーワードにもつ
マークを付ける
マークを選択
閲覧状態を復元出来る
マーク付けしたときの閲覧状態を復元出来る
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
8
使用例
開発経験の浅い人がソフトウェア理解を試みる
SPARS の Parser 部分をサンプルとする
main 関数から,以下の流れで辿っていく
1. コードのある部分 A を,A に関するマニュアルと共に参照
マニュアルの必要な部分に目を通し,閉じた
2. コードを読み進め,別の部分 B を,B のマニュアルと共に参照
コード A をまた参照する必要がでてきた
3. A を再び参照
A に関するマニュアルはもう閉じてしまった!
閲覧状態の復元機能を用いる
4. 1.の状態に戻り,A の再調査
5. その後,2.の状態に戻り B の調査を再開
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
9
これまでの
閲覧状態の
一覧を表示
「yyparse とマニュアルを同時に見ていた状態」を復元
「DB 書き出し関数の定義とマニュアルを同時に見ていた状態」
を復元し,作業を再開する
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
10
使用例に対する考察
情報閲覧の際に,閲覧状態復元機能を用いること
で,同時に調べていた情報を失うことなく,作業を再
開することができた
従来のブラウザでは,履歴が上書きされてしまうために,
作業の再開が不可能
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
11
まとめと今後の課題
まとめ
ソフトウェア理解の際に必要となる情報を効率良く閲覧するための,
閲覧状態を復元できる Web ブラウザを試作した
実際の使用例を挙げ,閲覧状態の復元機能が有効に働くことを
示した
今後の課題
定量的な評価
ページ間の関連抽出
内容を考慮する,閲覧時間により重み付けをする,等
不要な閲覧状態記録の削除機能
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
12
終わり
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
13
キーワード
以下のものをキーワードとして扱っている
ページのタイトル
アンカーのテキスト
<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”>
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
14
ページの推薦機能
他の閲覧履歴を利用してページを推薦
「ブラウザを起動してから閉じるまで」で,1つの閲覧
履歴データベースを作成
推薦値の算出には協調フィルタリングの手法を用い
る
Web ブラウザ
2005/2/24
閲覧ページ情報
(URL,タイトル)
サーバ
推薦値
推薦ページ情報 算出
(推薦値,URL,タイトル)
閲覧情報
書き出し
閲覧履歴
参照
閲覧履歴
データベース
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
15
協調フィルタリング
大まかな流れは以下の通り
1. 利用者の評価の取得
•
評価: ページを参照していたら1,いなければ0
2. 相関係数の算出
3. 推薦値の算出
4. 推薦の実行
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
16
相関係数の算出
2ユーザの「どちらか」が評価したページと,
どちらも評価していないページについて計算
a, i : ユーザ
vi , j : ユーザiの部品jに対する評価値
I i : ユーザiが評価(表示)した部品集合
I d : ユーザ
a, iのどちらも評価してい
ない部品集合
(| I d | 10000)
I  I a  Ii  I d
if j  I i
v
v'   i , j
 0 if j  I i
1
vi 
 v'
| I | jI i , j
c(a, i) 
 (v'
jI
 (v'
jI
a, j
a, j
va )(v'i , j vi )
va ) 2 (v'i , j vi ) 2
2005/2/24
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
17
推薦値の算出
相関係数の2乗を重みとして加重平均
U:ユーザaとの相関係数が0より大きい全てのユーザ
c(a, i)  if c(a, i)  0
c' (a, i)  
 0 if c(a, i)  0
c' (a, i)v'i , j

pa, j  iU
| c' (a, i) |
2005/2/24
iU
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
18