版管理システムに基づく 開発コミュニティ支援システム 佐々木 啓,松下 誠,井上克郎 (大阪大学大学院情報科学研究科) 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 発表の流れ 研究の背景と目的 開発支援システムCoxR 開発コミュニティーの分析手法の提案 まとめ・今後の課題 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 2 オープンソースソフトウェア開発 プロダクトを公開し並列に作業を行う開発手法 誰でも自由に開発作業に参加することができる 世界中に分散した開発者が並列に開発を行う (例) FreeBSD, Linux, Apache ソースコード管理 リビジョン情報取得 開発者 開発者 意思疎通 作業進捗状況 2015/10/1 版管理システム 電子メール アーカイブ dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 3 版管理システム 開発された各ファイルに対して作業履歴を管理するシステム 例) CVS, RCS, ClearCase, Visual SourceSafe, PVCS, etc. 各ファイルの作業履歴は,リポジトリと呼ばれるデータベース に個別に格納されている リポジトリに格納されている各ファイルの履歴はリビジョンという 単位で保存されている リポジトリ 1.1 1.1 1.2 1.2 1.22 1.44 1.23 リビジョン 番号 前リビジョンとの差分情報 更新日時 更新作業者 開発ログ(コメント) 1.45 リビジョン 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 4 版管理システムの持つ情報の利用 蓄積された開発履歴を閲覧する どのような開発が行われたか? 過去の有用な開発情報(タスク)を得ることが出来る これらの開発情報を,今後の開発・保守作業に役 立てコストを軽くすることは有効な手段である 版管理システムに蓄積された膨大な情報の中から ユーザが必要とするタスクを選び出すのが困難 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 5 開発者コミュニティ システム開発は複数の開発者が連携して行っている 電子メールや開発ログを元に,互いの情報(知識)の 交換を行っている 新規の開発者がシステムを開発・利用する際には, 履歴情報を参照したり,開発者コミュニティに問い合 わせる必要がある 開発が膨大になると,開発者コミュニティも膨大になり, 誰が有益な知識を持っているのか分かりにくい 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 6 ダイナミックコミュニティ 時々刻々と変化する情報ワークタスクを中心とした, 要求に応じて変化しうる知識ネットワーク ユーザの「タスク」に応じて,ユーザに対する「知識」を 提供するコミュニティが変動すると考えられる 版管理システムに蓄積された情報の中から, 過去の「知識」と行われた「タスク」を抽出できれば, ダイナミックコミュニティを発見できるのではないか 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 7 研究の目的 1. 開発支援システムCoxRの試作 – 蓄積された開発履歴情報の中からユーザの要求する 情報を抽出する 2. 開発コミュニティの分析 – – CoxRを分析ツールとして活用する 開発履歴情報の「開発者」に着目して,過去の有用 な情報を引き出したい 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 8 発表の流れ 研究の背景と目的 開発支援システムCoxR 開発コミュニティーの分析手法の提案 まとめ・今後の課題 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 9 開発支援システムCoxR CVSと電子メールの履歴情報から,必要な情報の特 定と,その関連情報を検索する開発支援システム CVS情報 ファイルパス リビジョン番号・差分情報 開発者名・更新日時 キーワード (開発ログ・ソースコード) 電子メール情報 送信者名・送信日時 キーワード (サブジェクト・メール本文) 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 10 CoxRの概要 検索要求 検索結果 データ表示部 検索要求の引渡し・結果の表示を行う user ソースコード片 ファイル名 類似リビジョン 開発者名 更新日時 開発ログ 開発者名 更新日時 キーワード 送信者 送信日時 CVS情報 電子メール情報 類似コード検索部 開発履歴データベース管理部 1. ソースコードによる検索 2. ファイル名・リポジトリ名検索 3.キーワード検索 4.ディレクトリ・メーリングリスト検索 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 11 CoxRの概要 検索結果 データ表示部 検索要求の引渡し・結果の表示を行う user 関連情報 ファイル名 類似リビジョン 開発者名 更新日時 開発ログ 開発者名 更新日時 キーワード 送信者 送信日時 CVS情報 電子メール情報 検索結果を用いて繰り返し検索を行うこ とで,関連情報の抽出が可能 ソースコード片 類似コード検索部 開発履歴データベース管理部 1. ソースコードによる検索 2. ファイル名・リポジトリ名検索 3.キーワード検索 4.ディレクトリ・メーリングリスト検索 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 12 関連性のある情報(1/2) CVS情報 ファイルパス・リビジョン番号 差分情報・開発者名 開発日時・キーワード (開発ログ・ソースコード) 電子メール情報 送信者名・送信日時 キーワード (サブジェクト・メール本文) 該当ファイルの履歴情報 開発者が同一人物である 同一時間帯に更新している キーワードが一致する 類似ソースコードを含む ログ中で一致する語句が多い 2015/10/1 送信者名が同一人物である 同一時間帯に送信している キーワードが一致する 本文で一致する語句が多い タイトルが類似している dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 13 関連性のある情報(2/2) 開発者 開発日時 キーワード 開発者はシステムの特定部分を開発している可能 性が高いと考える 開発者と開発日時がともに一致していれば,システ ム内でも,特に関連性が高いと考える 同じキーワード(開発ログ・ソースコード・サブジェクト・ 本文)が多く含まれていれば,関連性が高いと考える 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 14 発表の流れ 研究の背景と目的 開発支援システムCoxR 開発コミュニティーの分析手法の提案 まとめ・今後の課題 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 15 開発者に着目した分析の提案 複数の開発者が同時にシステム開発を行う 開発者は開発ごとに受け持つ役割が違うかも知れない 同じ開発者グループは,類似したシステムの開発も行って いるかも知れない 途中でシステムの開発者が変動しているかも知れない 意見交換によって設計方針の修正がされたかもしれない 開発者に着目して履歴情報を分析することで,過去の 開発情報に対して理解を深めることが出来ないか? 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 16 開発者コミュニティの分析 開発に携わった人の流れを分析する 各開発者ごとにシステム開発の流れを分析する 複数の開発者間でのシステム開発の流れを分析する 開発者間の知識のやりとりを分析する システム単位で開発履歴を抽出し,開発者の流れ を分析していく 開発者同士のつながりを分析することで, 履歴情報に新しい関連性を見つけ出す 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 17 分析方法 1. 開発者の役割を定義する分析 開発者はどのようにシステム開発を行っているのか? 複数の開発者間でどのように開発を分担しているの か? 2. 類似した開発過程の推移の分析 プログラムを作成した開発者の履歴を調べる 同じ開発者グループが行っている,類似したシステム開 発はないか? 3. 議論(トピックス)による分析 電子メールを対象として行う 誰がどのようなことについて議論しているのか? 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 18 開発者の役割を定義する分析 開発者がどのようにシステム開発を行ったのか? システムの特定部分を集中的に開発している 幅広くシステム開発に携わっている マニュアル作成を専門的に行う デバッグを専門的に行う 最近になって頻繁に開発を行っている 開発総数・開発時期・開発部分に応じて,それぞれ の役割を定義する 誰がどのような「知識」を持っているかを分析する 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 19 類似した開発推移の分析 開発者グループの開発推移から,それに類似した開 発部分を抽出することで,過去の「タスク」から今後 の「タスク」を予測する システムA 開発者A 開発者A 開発者A 開発者C 開発者A 2015/10/1 システムB 開発者B 開発者C 開発者A 開発者B 開発者C 開発者C 開発者A dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 20 議論(トピックス)をもとにした分析 議論を通して,開発者のタスクや知識を分析 議論の内容から,個々の開発者の知識や役割を分析で きるのではないか 実際にソースコードや開発コメントを分析するよりも,シス テム開発の理解が容易であると考える 重要な内容を議論しているものには重みをつける 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 21 分析データの活用(1/3) 開発履歴の中からユーザが必要とする「知識」や「タスク」を 有しているであろう開発者の候補を見つけ出す システムAの大まかな知識を持っているのは誰だろう? user システムの概要についての質問 システムA 各部分の開発リーダ 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 22 分析データの活用(2/3) 開発履歴の中からユーザが必要とする「知識」や「タスク」を 有しているであろう開発者の候補を見つけ出す システムAのデバッグを行ったのは誰だろう? user デバッグに関する質問 システムA システムのデバッガ 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 23 分析データの活用(3/3) 開発履歴の中からユーザが必要とする「知識」や「タスク」を 有しているであろう開発者の候補を見つけ出す システムAをこのように開発したらどうだろう? 意見交換 user システムA 開発を行うであろう開発者 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 24 発表の流れ 研究の背景と目的 開発支援システムCoxR 開発コミュニティーの分析手法の提案 まとめ・今後の課題 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 25 分析手法のまとめ 開発支援システムCoxR 開発履歴情報の中からユーザの必要とする情報を抽出 する さらに,抽出した情報に関連する情報を取り出す 開発者・開発日時・キーワード 開発コミュニティの分析 システム開発に携わった開発者に着目して分析する 開発者の役割を定義する分析 類似した開発推移の分析 議論(トピックス)をもとにした分析 開発履歴の中から「知識」と「タスク」を取り出す 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 26 今後の課題 システムの詳細な設計と共に実装を進める 実際に開発者の履歴情報を分析し,本システム の有効性について検証を行う 電子メール分析方法の実現 CVS情報の分析は,ある程度実現可能 送信者・送信日時・キーワードに加え,メール間の関 連を表す情報の提案 2015/10/1 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 27
© Copyright 2024 ExpyDoc