Download presentation
Presentation is loading. Please wait.
1
オープンソース開発の履歴情報を用いたコミュニティ検索支援システム
井上研究室 博士前期課程2年 佐々木 啓 2019/1/14 修士論文発表会
2
オープンソースソフトウェア開発 プロダクトを公開し並列に作業を行う開発手法
世界中に分散した開発者が互いに開発情報をやりとりする事で並列に開発作業を行う (例) FreeBSD, Linux, Apache ソース コード ソース コード ソース コード ソース コード ソースコード マニュアル 版管理システム CVS 開発者 電子メール 要求 要求 ↓ 修正・拡張 電子メール アーカイブ 開発者 バグ修正要求 機能拡張要求 障害管理システム GNATS 2019/1/14 修士論文発表会
3
システムに蓄積された情報の再利用 システムにはプロダクトの履歴情報や開発者情報が蓄積されている
プロダクトの作業内容 設計方針に関する知識 必要な作業や知識を,今後の開発に役立てることで,開発のコストを軽くすることが出来る 抱えているバグに対する対処方法の活用 新規にプロジェクトに参加する開発者のプロジェクト理解 プロダクトの機能の再利用 2019/1/14 修士論文発表会
4
使っているbktrデバイスドライバのエラーを修正したい
問題点1:システム間の関連の欠如 どこに必要な情報があるのか分からない 使っているbktrデバイスドライバのエラーを修正したい ユーザ 関連して修正すべきファイル デバイスドライバのエラーに関する議論 バグについての 対処方法 ソースコードの修正内容 もっとかく 版管理システム CVS 電子メール アーカイブ 障害管理システム GNATS 2019/1/14 修士論文発表会
5
問題点2:解決方法の相違 問題点が同じであっても,万人にとって同じ解決方法が有効であるとは限らない
求める人によって必要とする作業内容や知識は異なる その時々に応じて興味や関心は変わる 似たような修正事例を調べて直したい 使っているbktrドライバにエラーがある ドライバの処理に詳しい人を探したい 最新のドライバを手に入れたい 2019/1/14 修士論文発表会
6
研究の目的 既存のシステムに蓄積された過去の作業内容や知識を効率よく検出することで,開発者の開発コストを軽くしたい
システムの持つ情報を開発コミュニティとしてモデル化 CVS, ,GNATSを対象とする 開発コミュニティから情報の選定を行う手法の提案 手法に基づいたシステムの構築 ここ 2019/1/14 修士論文発表会
7
研究の手順 ステップ1 情報のモデル化 ステップ2 情報の選定手法の提案 ステップ3 システムの実装 2019/1/14 修士論文発表会
8
モデルの要素 人 = CVS,E-mailアーカイブ,GNATSに登録した開発者
Knowledge = CVS情報, ,GNATS情報 モデル化 ネットワークをつくるはなし 版管理システム CVS 電子メール アーカイブ 障害管理システム GNATS 2019/1/14 修士論文発表会
9
人,Knowledgeの抽出 Knowledge 人 開発者 協力者 ソースコード 開発のコメント CVS タイトル 本文 送信者 受信者
ファイルパス リビジョン番号 タグ・開発日時 開発者 協力者 ソースコード 開発のコメント CVS タイトル 本文 送信者 受信者 メッセージID 送信日時 基本情報 修正情報 次にKnowledgeの分類について説明します この図ではそれぞれの開発情報にどの様なものが含まれているかをあらわしています. CVS,電子メール,BTSとそれぞれに含まれる情報はこのようになっていますが ここでIntentionというのは開発の意図を表すものですのでログや またTaskは開発の成果ですのでソースコードやバグの修正履歴の情報などがこれに含まれます 次に、それぞれファイルパスやバグの管理番号などIntentionやTaskの情報を特定する情報をEntityと定義します 起草者 管理人 修正担当者 ファイル名 バグ管理番号 入力日時 最終更新時間 カテゴリー バグの種類 概要 対処方法 更新履歴 状態 GNATS 2019/1/14 修士論文発表会
10
モデル上のネットワーク 開発コミュニティ 人とKnowledge間には3つの関連が存在する 人とKnowledge 人と人
2019/1/14 修士論文発表会
11
関連の抽出(1/2) 人とKnowledgeの関連 人と人の関連
同じCVS情報, ,GNATS情報に含まれる人とKnowledge 人と人の関連 同じCVS情報, ,GNATS情報に関わった人 同じメーリングリストに属している人 同じディレクトリで開発を行った人 2019/1/14 修士論文発表会
12
関連の抽出(2/2) KnowledgeとKnowledgeの関連 直接関連のあるKnowledge 内容が類似するKnowledge
同じCVSの履歴情報 同一ディレクトリのファイル 同じ時刻に変更された やり取りされた電子メール 識別情報 内容が類似するKnowledge ソースコード キーワード GNATSの基本情報,修正情報 2019/1/14 修士論文発表会
13
研究の手順 構築した開発コミュニティから入力に応じて 該当する人とKnowledgeの集合を見つける ステップ1 情報のモデル化
ステップ1 情報のモデル化 ステップ2 情報の選定手法の提案 ステップ3 システムの実装 構築した開発コミュニティから入力に応じて 該当する人とKnowledgeの集合を見つける 2019/1/14 修士論文発表会
14
トピックコミュニティ トピック = 再利用や理解に用いたい作業や知識
トピックに関連する人とKnowledgeの集合は,開発コミュニティの部分集合として定めることができる トピックが同じでも求める人に応じて動的に変化する 開発コミュニティ 担当部分の エキスパート 修正内容 これをさがす ここでいっかいおわり トピックコミュニティ 2019/1/14 修士論文発表会
15
トピックコミュニティの選定手法 最初に着目すべきKnowledgeを選定する キーワード”bktr” ユーザはトピックを入力として与える
bktrドライバを用いてFreeBSDでTVを動作時にレジスタエラーが発生したためエラーを修正したい 変更したいソースコード ディレクトリ名,ファイル名 メーリングリスト名 バグの種類,情報 キーワード(必要な語句) 開発時刻 CVS:bktr_core.c 1.20 コメント:レジスタエラーを修正 キーワード”bktr” :タイトル bktr module unloding(2002年) 問題設定 ユーザ GNATS:概要(2000年) bktr option errorの修正 検索結果 2019/1/14 修士論文発表会
16
bktr module unloding(2002年)
トピックコミュニティの選定手法 最初に着目すべきKnowledgeを選定する ユーザはトピックを入力として与える 開発コミュニティは該当するKnowledgeをユーザに表示する ユーザがその中から基点となるKnowledgeを選定する bktr_card.cの1.20について調べたい CVS:bktr_core.c 1.20 コメント:レジスタエラーを修正 :タイトル bktr module unloding(2002年) ユーザ bktr_card.cの選定 GNATS:概要(2000年) bktr option errorの修正 2019/1/14 修士論文発表会
17
bktr_core.cを開発した開発者について調べたい
トピックコミュニティの選定手法 4. コミュニティは関連をユーザに表示する ユーザは関連を選定する コミュニティはKnowledgeや人をユーザに表示する ユーザは結果に対して必要なKnowledgeや人を選定する bktr_core.cを開発した開発者について調べたい 開発者fjoe bktr_core.c 協力者phk 検索結果 ユーザ 人とKnowledgeの関連を選定 協力者roger 2019/1/14 修士論文発表会
18
実際に開発した開発者fjoeをもとに調べたい
トピックコミュニティの選定手法 4. コミュニティは関連をユーザに表示する ユーザは関連を選定する コミュニティはKnowledgeや人をユーザに表示する ユーザは結果に対して必要なKnowledgeや人を選定する 開発者fjoe 実際に開発した開発者fjoeをもとに調べたい bktr_core.c 協力者phk 開発者fjoeを選定 ユーザ 協力者roger 2019/1/14 修士論文発表会
19
トピックコミュニティの選定手法 これを繰り返すことでトピックコミュニティを選定する ユーザ 関数yuv422_proの変数を修正
同時に更新されたCVS情報bktr_card.c 開発者fjoeがbktr_coreと同時に行った関連情報がみたい 開発者fjoe bktr_core.c 検索結果 ユーザ 人とKnowledgeの関連を選定 2019/1/14 修士論文発表会
20
トピックコミュニティの選定手法 これを繰り返すことでトピックコミュニティを選定する トピックコミュニティ ユーザ
関数yuv422_proの変数を修正 bktr_card.cと関連付けられているGnatsの識別情報を辿る 同時に更新されたCVS情報bktr_card.c 修正されたGNATS情報 PR:41437 概要:bktr_cardの関数yuv422_proの不具合 開発者fjoe bktr_core.c 修正に関する電子メール PR41437のせいでレジスタエラーが引き起こされている なかみ 検索結果 トピックコミュニティ ユーザ 実際に行われたbktr_card.cを入手することにより レジスタエラーの修正を行った KnowledgeとKnowledgeの関連 2019/1/14 修士論文発表会
21
研究の手順 FreeBSD開発のデータを対象にシステムを実装 ステップ1 情報のモデル化 ステップ2 情報の選定手法の提案
ステップ1 情報のモデル化 ステップ2 情報の選定手法の提案 ステップ3 システムの実装 FreeBSD開発のデータを対象にシステムを実装 2019/1/14 修士論文発表会
22
システムの実装 対象データ:1994年-2004年の開発情報 開発環境 開発言語 Perl,C 情報抽出部・関連抽出部 約5500行
CPU : Pentium4 1.5GHz RAM : 512MB(SDRAM) OS : Debian GNU/Linux 開発言語 Perl,C 情報抽出部・関連抽出部 約5500行 データ表示部 約4500行 CVS情報: FreeBSD開発のソースコードの履歴情報 ファイル数 57822, リビジョン数 情報: ソースツリーへ加えられた変更に関するメール 213723通( cvs-* に含まれるメールのみ) BTS情報: GNATSに報告されたバグ情報 82350件 2019/1/14 修士論文発表会
23
システムの概要 Web Server System Control CoxR-C 履歴情報DB 関連DB 関連抽出部 Query Word
キーワード, 開発者名,開発日時 CVS情報,GNATS情報 メーリングリスト名 Web Server 検索結果 ユーザ 選定 履歴情報DB System Control 該当する人,Knowledgeを 含む履歴情報 人とKnowledgeの関連 Knowledgeと Knowledgeの 関連 人と人の 関連 開発情報 抽出部 Knowledge 人 関連DB Knowledge 人 識別情報 CVS 関連抽出部 GNATS CoxR-C 関連抽出の流れ 情報探索の流れ データ抽出の流れ 2019/1/14 修士論文発表会
24
システムの評価 目的 実際のシステム利用履歴を分析することで,本システムを用いた有効な履歴情報,開発者情報の検索が行われているかを評価する 方法 FreeBSD開発のメーリングリストである,freebsd-hackers, freebsd-currentに対して本システムを告知し,利用を依頼した ユーザの利用履歴をログ解析することで追跡した 期間1月31日~2月11日 対象ユーザ:31名(延べユーザ79名) なにをしたのか 2019/1/14 修士論文発表会
25
基点となるKnowledge選定 Knowledgeの選定の定義 基点となるKnowledgeの選定を行ったユーザ
31名中18名 基点となるKnowledge選定の検索回数4回 (最小回数1回,最大回数9回) 選定された情報の種類 CVS情報 12回 情報 4回 GNATS情報 2回 2019/1/14 修士論文発表会
26
トピックコミュニティ検索 トピックコミュニティを検索したユーザ 平均閲覧情報 2回 18名中12名
同じシステムの人やKnowledgeを調べる開発者が多かった 平均閲覧情報 2回 人と人の関連 1回 人とKnowledgeの関連 8回 KnowledgeとKnowledgeの関連 13回 2019/1/14 修士論文発表会
27
評価 着目すべきKnowledgeの選定 トピックコミュニティ選定 より大規模な人数でさらなる利用事例の調査を行う必要がある
全体の56%が簡単な説明(告知文)のみで欲しい情報を選定することが出来た キーワード検索で絞り込んだ結果に対して,開発情報の検索(開発者や開発時間など)をもとに,検索した場合の選定回数が高かった トピックコミュニティ選定 Knowledgeを選定した開発者の67%(全体の39%)がトピックコミュニティを選定することが出来た KnowledgeとKnowledge,人とKnowledgeの関連選択が多かった 人と人の関連を辿ることは少なかった より大規模な人数でさらなる利用事例の調査を行う必要がある 2019/1/14 修士論文発表会
28
まとめ・今後の課題 オープンソースソフトウェア開発を対象とした,必要に応じた開発者と履歴情報を検索するトピックコミュニティ選定手法の提案とシステムの実装 キーワードの重み付け 類似した内容を示すキーワードに関連性を持たせる 開発者の役割の検討 利用状況に応じた探索を容易にする 他のユーザが着目したトピックコミュニティの活用 類似した情報を探している開発者に提案する 2019/1/14 修士論文発表会
29
おわり 2019/1/14 修士論文発表会
30
システムの検索方法 履歴情報による検索 類似ソースコードの検索 キーワード検索 ディレクトリ名,ファイル名(CVS)
メーリングリスト名 ( ) カテゴリー,class情報 (GNATS) 開発者名 開発時間 類似ソースコードの検索 ソースコード キーワード検索 キーワード 2019/1/14 修士論文発表会
31
検索結果画面 キーワード検索結果 類似コード検索結果 2019/1/14 修士論文発表会
32
関連情報(CVS情報) 類似性に基づく分類(キーワード) 開発内容に基づく分類 (該当するGNATS情報) 該当するCVS情報
2019/1/14 修士論文発表会
33
開発者の関連の分類 役割,重み付けの変更 関連する開発者 2019/1/14 修士論文発表会
34
トピックコミュニティ選定手法 ユーザ システム 必要なトピック 入力ワード 入力ワード 履歴情報 DB Human rel. DB
Knowledge Knowledge 選定した Knowledge Knowledge rel DB 関連の分類 選択した関連の分類 Human Knowledge DB 選択した関連の分類 関連する Knowledge 関連する Knowledge Human rel. DB 関連する人 関連する人 2019/1/14 修士論文発表会
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.