版管理システムに基づく 開発コミュニティ支援システム 佐々木 啓,松下 誠,井上克郎 (大阪大学大学院情報科学研究科) 2015/11/6 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University.

Download Report

Transcript 版管理システムに基づく 開発コミュニティ支援システム 佐々木 啓,松下 誠,井上克郎 (大阪大学大学院情報科学研究科) 2015/11/6 dyncミーティング Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University.

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