Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.

Slides:



Advertisements
Similar presentations
協調フィルタリングに基づく ソフトウェア開発技術の推薦 ソフトウェアサイエンス研究会@信州大学 2005 年 6 月 23 日 奈良先端科学技術大学院大学 情報科学研究科 秋永 知宏,大杉 直樹,柿元 健,角田 雅照, 門田 暁人,松本 健一.
Advertisements

静岡大学情報学研究科 戸根木千洋 ユーザーイメージ収集 インターフェースの開発. 2 目次 背景と目的 研究の構成 研究の詳細 イメージ収集インターフェースの提案 映画イメージ収集システムの開発 システムの評価 今後の課題.
嗜好ベクトルの近似による サービス享受条件の自動設定 立命館大学大学院 理工学研究科 データ工学研究室 ◎川成宗剛,山原裕之, 原田史子, 島川博光 2007 年 9 月 6 日.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 保守支援を目的とした コードクローン情報検索ツール.
ユーザーイメージ収集 インターフェイスの開発
ソースコードの編集内容を入力とした ソフトウェア部品の自動検索
データモデリング 推薦のための集合知プログラミング.
利用実績に基づくソフトウェア部品検索システムSPARS-J
中間発表用スライド 田中健太.
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
ソフトウェア工学サマースクール(3) ソフトウェア工学の新潮流(1) リポジトリマイニング
卒業論文 最終発表 WWW情報検索 ナビゲーションシステムの設計と実装
秘匿積集合プロトコルを利用した プライバシ協調フィルタリングの提案
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
Graduate School of Information Science and Technology, Osaka
川口真司 松下誠 井上克郎 大阪大学大学院情報科学研究科
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
Javaクラスの利用関係を用いた ソフトウェア部品のカテゴリ階層構築法
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
リファクタリング中に生じる コンパイルエラーの自動解消手法
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
ソフトウェア部品分類手法への コンポーネントランク法の応用
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
Javaプログラムの変更を支援する 影響波及解析システム
利用実績に基づくソフトウェア部品検索システムSPARS-J
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
TIME SIGNAL: 集合知を利用した赤信号点灯時間の取得手法
コンポーネントランク法を用いたJavaクラス分類手法の提案
Javaを対象としたソフトウェア部品 検索システムSPARS-Jの実験的評価
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
言語XBRLで記述された 財務諸表の分析支援ツールの試作
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
エピソード記憶に訴えるBookmarkless Bookmarkの実現
コード片に共通した特性を自動抽出する ソースコード閲覧ツールの試作
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
ソフトウェア保守のための コードクローン情報検索ツール
早稲田大学大学院 基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
オープンソースソフトウェアに対する コーディングパターン分析の適用
メソッドの同時更新履歴を用いたクラスの機能別分類法
A-17 検索履歴のプライバシーを秘匿した ユーザクラスタリング
自然言語処理2015 Natural Language Processing 2015
ソースコードの編集状況に応じた ソフトウェア部品の自動推薦システム
ソフトウェア理解支援を目的とした 辞書の作成法
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
コードクローン解析に基づく デザインパターン適用候補の検出手法
自然言語処理2016 Natural Language Processing 2016
関数の変更履歴と呼び出し関係に 基づいた開発履歴理解支援システム
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
P2Pによる協調学習システム 唐澤 信介   北海道工業大学 電気工学専攻.
Presentation transcript:

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための 協調フィルタリング手法の提案と実 現 市井誠 † 山本哲男 †† 横森励士 † 井上克郎 † † 大阪大学 大学院情報科学研究科 †† 立命館大学 情報理工学部 情報システム学科

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 2 ソフトウェア部品検索システム 過去に開発された大量のソフトウェア資産 企業内で開発 Web 上で公開 再利用や理解を支援するツールが必要 部品数が多いために把握が困難 部品に詳しい人が不在 ソフトウェア部品検索システム ソフトウェア資産をデータベースに登録 キーワード入力等により部品を検索・取得

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 3 Java ソフトウェア部品検索システム SPARS-J Java のクラスを部品とし,キーワード入力により 検索 パッケージブラウザ 利用関係の表示

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 4 研究の目的 ユーザの目的に応じた部品を取得するには労力が必 要 SPARS-J では,検索語に対して検索結果を返す 検索語は,ユーザの目的の一部しか表現してない ユーザの目的を満たすには,検索結果の選別や,検索の 繰り返しが必要  過去のユーザの検索履歴が利用できないだろうか? システムは,それぞれのユーザの目的で利用されている 過去に同じ目的で検索したユーザがいるかもしれない そのユーザが利用した部品を提示することで,ユーザの 労力を減らせる 協調フィルタリングの手法により,ユーザ の目的に応じた部品を推薦する

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 5 協調フィルタリング (1/2) 大量のアイテムの中から,ユーザから得た情報を もとに 推薦アイテムを決定する手法 書店などのオンラインショップで利用されている amazon.co.jp

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 6 協調フィルタリング (2/2) 32?42 1? ABCDE 531?? 1 アイテ ム ユー ザ 評価 D 推薦 好みが似てい る 1. ユーザから,各アイテムに対する評価を得る 2. ユーザの評価をもとに,アイテムを推薦する 1. 評価の類似度の高いユーザを求める 2. 類似度の高いユーザの評価をもとに,推薦するアイテムを決定 23 検索目的 ソフトウェア部品 履歴 セッション

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 7 概念の対応 「ユーザ」 → 「セッション」 セッション:システムの使用開始から終了まで 同じユーザでも,場合により検索目的が異なる 目的が異なれば,異なるユーザとして扱う必要がある システムの使用を終了した段階で目的を終えたと判断 する 「評価」 → 「履歴」 履歴を暗黙的な評価と見なす 表示した部品に,評価値 1 をつける 表示していない部品は評価値 0 明示的に評価を入力するのは,労力が必要

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 8 提案手法の手順 ユーザの履歴を,セッションごとに取得する 対象となるセッションへ推薦する部品を求め る

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 9 部品データベース 履歴データベース ユーザ Web ブラウザ a b c d e : 表示済 部品 セッションの追加 履歴の記録 履歴の取得

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 10 部品の推薦 : 表示済 ユーザ Web ブラウザ 部品データベース 履歴データベース a b c d e 部品 各セッションとの相 関係数を求める 各部品の推薦値を求 める 推薦する部品を利用 者に提示する ???? “?” に入る値を推測 セッション e との 相関係数 ???? 推薦値 各セッションでの評価 値の加重平均 値が高ければ推薦

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 11 履歴データ ベース SPARS-J への実装 ( システム構成 ) 推薦部 ユーザ 部品データ ベース 部品検索部 検索・表示 部品登録部 履歴の取得 部品の推薦 部品の登録 追加実装部分

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 12 SPARS-J への実装 ( スクリーン ショット ) セッション中で表示した部品 推薦部品 推薦部品 (ZipEntry との利用関係別 )

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 13 適用実験の概要 (1/2) 目的 推薦機能が検索効率の改善に役立つかど うか検証する 内容 SPARS-J を利用しての Java プログラム 作成 スケルトンコードの未実装部分の記述 SPARS-J で検索したソースコードを参考 に 練習課題および,課題 1 ~課題 4 の 5 課題 被験者 井上研究室の学生・研究員 8 名 4 名ずつの 2 グループに分け,比較 SPARS-J データベース JDK , Web 上から収集したソースなど約 35,000 クラス 履歴データベースは空の状態から開始 被験者 参照してコード記述 部品の検索・取 得

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 14 適用実験の概要 (2/2) 手順 評価項目 検索時間 作業時間全体から コーディング時間を引いたもの 適合率 表示した部品のうち,プログラムに利用できる部品の割合 これらを,推薦機能を利用する場合 / 利用しない場合で比較 グループ 1 グループ 2 1 練習課題 2 課題 1, 課題 2 課題 3, 課題 4 3 課題 1, 課題 2 SPARS-J と課題に慣れる グループ分けの参考にする 推薦機能 無し 推薦機能 有り

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 15 実験結果と考察 (1/2) グルー プ 1 グルー プ 2

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 16 実験結果と考察 (2/3) 推薦機能 有り 推薦機能 無し 課題 1 では大きな差が見られる 経験者のいない課題であり,推薦の有効性を示唆 課題 3 では差が見られない 課題分野の知識のある被験者の存在 推薦機能の有無による差が見られない被験者の存 在

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 17 実験結果と考察 (3/3) 効率の上がっていない被験者が存在する 「表示済み部品は推薦しない」という方針が原 因 該当する被験者の検索行動 : まず様々な部品に軽く目を通し,後半はそれらを見直 しながら有効な部品を絞り込んでいく 利用できる部品は,序盤で履歴に入ってしまい,ほ とんど推薦されない  推薦機能を有効に利用できていなかった 表示済み部品の推薦も行うよう,修正が必要 表示済み部品の推薦については,ユーザが有無を選 択できる様なインターフェースが好ましい

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 18 まとめと今後の課題 まとめ ソフトウェア部品を対象とした推薦手法を提案し, SPARS-J に実装した 適用実験により,ユーザの検索効率の向上が確認された 今後の課題 精度の向上 履歴の重み付けなど ユーザーインターフェースの改良 表示済み部品の扱い 検索画面などからのシームレスな利用 より大規模な実験