Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
奈良先端大 情報科学研究科
1,444 views
OSS開発におけるレビュアー間の合意形成の分析
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 28
2
/ 28
3
/ 28
4
/ 28
5
/ 28
6
/ 28
7
/ 28
8
/ 28
9
/ 28
10
/ 28
11
/ 28
12
/ 28
13
/ 28
14
/ 28
15
/ 28
16
/ 28
17
/ 28
18
/ 28
19
/ 28
20
/ 28
21
/ 28
22
/ 28
23
/ 28
24
/ 28
25
/ 28
26
/ 28
27
/ 28
28
/ 28
More Related Content
PDF
OSS Gateワークショップ(チュートリアル) - まとめ
by
Kouhei Sutou
KEY
継続的インテグレーションとテストの話
by
Preferred Networks
PDF
継続的デリバリーと読み解く Web 開発あるあるとその対策
by
Tetsuo Yamabe
PDF
DevOpsのはじめの一歩 〜監視の変遷〜
by
Akihiro Kuwano
PDF
Jenkinsを利用したCI、弊社導入事例
by
Ryoichi Obara
PDF
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
by
Junya Suzuki
PPTX
10分でわかるDevOps
by
Gosuke Miyashita
ODP
HudsonときどきMaven2
by
cactusman
OSS Gateワークショップ(チュートリアル) - まとめ
by
Kouhei Sutou
継続的インテグレーションとテストの話
by
Preferred Networks
継続的デリバリーと読み解く Web 開発あるあるとその対策
by
Tetsuo Yamabe
DevOpsのはじめの一歩 〜監視の変遷〜
by
Akihiro Kuwano
Jenkinsを利用したCI、弊社導入事例
by
Ryoichi Obara
jenkinsのすゝめ - 継続的インテグレーションと継続的デリバリー
by
Junya Suzuki
10分でわかるDevOps
by
Gosuke Miyashita
HudsonときどきMaven2
by
cactusman
Viewers also liked
PDF
Opsta github-hundson 20120201
by
Takashi Okamoto
PDF
Report for porting Tizen to Galaxy S2
by
Yuya Adachi
PDF
Tizen gbs (git build-system)
by
Yuya Adachi
PDF
スクラム適用報告
by
Eiichi Hayashi
PPTX
Speed up Continuous Delivery with BigData Analytics
by
Luca Milanesio
PDF
LibreOffice Conference 2016 Brno 参加レポート
by
Shinji Enoki
Opsta github-hundson 20120201
by
Takashi Okamoto
Report for porting Tizen to Galaxy S2
by
Yuya Adachi
Tizen gbs (git build-system)
by
Yuya Adachi
スクラム適用報告
by
Eiichi Hayashi
Speed up Continuous Delivery with BigData Analytics
by
Luca Milanesio
LibreOffice Conference 2016 Brno 参加レポート
by
Shinji Enoki
More from 奈良先端大 情報科学研究科
PPTX
テレコミュニケーションを支援してみよう
by
奈良先端大 情報科学研究科
PPTX
マイコンと機械学習を使って行動認識システムを作ろう
by
奈良先端大 情報科学研究科
PPTX
5G時代を支えるNFVによるネットワーク最適設計
by
奈良先端大 情報科学研究科
PPTX
21.Raspberry Piを用いたIoTアプリの開発
by
奈良先端大 情報科学研究科
PPTX
20. 地理ビッグデータ利活用: リスク予測型自動避難誘導,地理的リスク分析
by
奈良先端大 情報科学研究科
PPTX
11.実装の脆弱性を利用して強力な暗号を解読してみよう!
by
奈良先端大 情報科学研究科
PPTX
8. ミニ・スーパコンピュータを自作しよう!
by
奈良先端大 情報科学研究科
PPTX
16. マイコンと機械学習を使って行動認識システムを作ろう
by
奈良先端大 情報科学研究科
PPTX
15. テレイグジスタンスシステムを制作してみよう
by
奈良先端大 情報科学研究科
PPTX
14. ビデオシースルーHMDで視覚拡張の世界を体感しよう
by
奈良先端大 情報科学研究科
PPTX
19. 生物に学ぶ人工知能とロボット制御
by
奈良先端大 情報科学研究科
PPTX
13. SDRで学ぶ無線通信
by
奈良先端大 情報科学研究科
PPTX
18. 計測に基づいた写実的なコンピュータグラフィクスの生成法
by
奈良先端大 情報科学研究科
PPTX
21. 人の動作・行動センシングに基づく拡張現実感システムの開発
by
奈良先端大 情報科学研究科
PPTX
20. 友好的関係を構築する人と対話ロボットのコミュニケーション技術開発
by
奈良先端大 情報科学研究科
PPTX
9. マイコンと機械学習を使って行動認識システムを作ろう
by
奈良先端大 情報科学研究科
PPTX
6. 生物に学ぶ人工知能とロボット制御
by
奈良先端大 情報科学研究科
PPTX
14. モバイルエージェントによる並列分散学習システムの構築
by
奈良先端大 情報科学研究科
PPTX
17. 100台の小型ロボットを協調させよう
by
奈良先端大 情報科学研究科
PPTX
5. ミニ・スーパコンピュータを自作しよう!
by
奈良先端大 情報科学研究科
テレコミュニケーションを支援してみよう
by
奈良先端大 情報科学研究科
マイコンと機械学習を使って行動認識システムを作ろう
by
奈良先端大 情報科学研究科
5G時代を支えるNFVによるネットワーク最適設計
by
奈良先端大 情報科学研究科
21.Raspberry Piを用いたIoTアプリの開発
by
奈良先端大 情報科学研究科
20. 地理ビッグデータ利活用: リスク予測型自動避難誘導,地理的リスク分析
by
奈良先端大 情報科学研究科
11.実装の脆弱性を利用して強力な暗号を解読してみよう!
by
奈良先端大 情報科学研究科
8. ミニ・スーパコンピュータを自作しよう!
by
奈良先端大 情報科学研究科
16. マイコンと機械学習を使って行動認識システムを作ろう
by
奈良先端大 情報科学研究科
15. テレイグジスタンスシステムを制作してみよう
by
奈良先端大 情報科学研究科
14. ビデオシースルーHMDで視覚拡張の世界を体感しよう
by
奈良先端大 情報科学研究科
19. 生物に学ぶ人工知能とロボット制御
by
奈良先端大 情報科学研究科
13. SDRで学ぶ無線通信
by
奈良先端大 情報科学研究科
18. 計測に基づいた写実的なコンピュータグラフィクスの生成法
by
奈良先端大 情報科学研究科
21. 人の動作・行動センシングに基づく拡張現実感システムの開発
by
奈良先端大 情報科学研究科
20. 友好的関係を構築する人と対話ロボットのコミュニケーション技術開発
by
奈良先端大 情報科学研究科
9. マイコンと機械学習を使って行動認識システムを作ろう
by
奈良先端大 情報科学研究科
6. 生物に学ぶ人工知能とロボット制御
by
奈良先端大 情報科学研究科
14. モバイルエージェントによる並列分散学習システムの構築
by
奈良先端大 情報科学研究科
17. 100台の小型ロボットを協調させよう
by
奈良先端大 情報科学研究科
5. ミニ・スーパコンピュータを自作しよう!
by
奈良先端大 情報科学研究科
OSS開発におけるレビュアー間の合意形成の分析
1.
OSS開発におけるレビュアー間の 開発におけるレビュアー間の 合意形成の分析 奈良先端科学技術大学院大学 ○林宏徳 伊原彰紀 松本健一 林宏徳,
伊原彰紀, 林宏徳
2.
背景 • OSSユーザはバグを発見した時、OSSコミュニティに報告する バグ直して!! OSSコミュニティ 2
3.
背景 • OSSユーザはバグを発見した時、OSSコミュニティに報告する • 大規模OSSコミュニティには日々大量のバグ報告が届く 例)
Mozilla Project: 平均300件/日 • 開発者は大量のバグに対して,効率の良い修正を行う必要がある ・・・。 OSSコミュニティ 3
4.
バグ修正プロセス バグ修正プロセス 修正 報告者 管理人 修正者 レビュアー プロダクト 報告 割り当て 修正 検証 更新 平均149日 4
5.
バグ修正プロセス バグ修正プロセス コードの誤りを発見 発見 できない場合がある できない 報告者 管理人 修正者 レビュアー プロダクト 報告 割り当て 修正 検証 更新 平均149日 5
6.
バグ修正プロセス バグ修正プロセス 報告者 管理人 修正者 レビュアー プロダクト 報告 割り当て 修正 検証 更新 再修正 不具合の修正が不十分 不適切 不十分/不適切 不十分 不適切な場合 修正コストの増大 (平均,149日
→ 371 日) 6
7.
検証(レビュー) • 大規模な開発ではひとつのバグ修正に複数人のレビュ アーが関わる[Peter, 2013] •
OSS開発における協調作業には困難な側面もある[Abreu, 2009] 修正が承認される 承認される場合 1. 修正が承認される場合 OK!! OK!! 修正しました OK!! 修正者 レビュアー プロダクト 7
8.
検証(レビュー) • 大規模な開発ではひとつのバグ修正に複数人のレビュ アーが関わる[Peter, 2013] •
OSS開発における協調作業には困難な側面もある[Abreu, 2009] 修正が否決される 否決される場合 2. 修正が否決される場合 No!! No!! 修正しました No!! 修正者 レビュアー プロダクト 8
9.
検証(レビュー) • 大規模な開発ではひとつのバグ修正に複数人のレビュ アーが関わる[Peter, 2013] •
OSS開発における協調作業には困難な側面もある[Abreu, 2009] 3. 意見が分かれる場合 意見が分かれる場合 OK!! No!! 修正しました OK!! 修正者 レビュアー プロダクト 9
10.
検証(レビュー) • 本来は正しい意見を無視してプロダクトを更新した場合, 再修正が起こると予想される OK No!! OK 修正者 レビュアー プロダクト 仮説: 合意形成が得られなかったレビューには 再修正が多く発生する 10
11.
本研究のねらいとRQ 本研究のねらいと Goal • 再修正の発生を防ぐために,合意形成に着目し,レビュアーの活動 を理解する Research Questions 1. 何人のレビュアーがひとつのバグ修正に関わっているか? 何人のレビュアー 2. レビュアー間の合意形成は行われているか? 合意形成は行われているか? 3. レビュアー間の合意形成とバグの再修正は関係しているか? 合意形成とバグの再修正は関係しているか? 合意形成とバグ 11
12.
分析 12
13.
分析対象 プロジェクト:Openstack project レビューツール: Gerrit
Code Review 期間 :2010-2012 データ:2,539 件のレビュー記録 レビュアーは各自,投稿されたコードに 評価を付けることができる • コアレビュアー: [+2, +1, 0, -1, -2] • 一般レビュアー: [ +1, 0, -1 ] Gerrit Code Reviewの一画 面 13
14.
RQ1: 何人のレビュアーがひとつのバグ修正 に関わっているか? 動機 • どのように合意形成が行われているのかを明らかにする 分析方法 どれくらい議論している? •
各レビューに関する以下の 基本統計量を計測する • ファイル数 • レビュアー数 • レビュアーの発言数 ・・・ ・・ ・ ・・・ 何人? 何ファイルが 対象? 14
15.
RQ1: 何人のレビュアーがひとつのバグ修正 何人のレビュアーがひとつのバグ バグ修正 に関わっているか? • 1-3ファイルが一度にレビューされる ファイル •
およそ4人のレビュアーがひとつの不具合修正に関わる およそ4 最小値 中央値 平均値 最大値 ファイル数 0 1 2.93 164 レビュアー数 1 4 4.41 18 コメント数 0 4 6.37 62 15
16.
RQ2: レビュアー間の合意形成は行われている か? 動機 • レビューにおける合意形成の有無について理解する 分析方法 1. 2. 承認済みのレビューを対象に,各レビュアーの評価を収集する 成功/失敗に各レビューを分類する 合意形成
成功/失敗 OK!! OK!! OK!! 成功: 合意形成 成功 全ての評価に 負の評価(“-1”or “-2”)を含まない OK!! No!! OK!! 失敗: 合意形成 失敗 評価にひとつでも 負の評価(“-1”or “-2”)を含む 16
17.
RQ2: レビュアー間の合意形成は行われている か? レビュー件数 • 90%以上のレビューは合意に基づいているが,合意形成が行われない ままプロダクトに修正が反映されることもある 合意形成
成功 合意形成 失敗 17
18.
RQ3: レビュアー間の合意形成と不具合の 再修正は関係しているか? 再修正は関係しているか 動機 • 合意形成の観点から,再修正の発生を防止する手がかり 手がかりを調査する 手がかり 分析方法 •
RQ2の分析で分類されたレビューを“再修正の有無”について再度分 類する OK!! OK!! 再修正あり 再修正あり No!! OK!! 再修正なし 合意形成 成功 再修正なし 合意形成 失敗 18
19.
RQ3: レビュアー間の合意形成と不具合の 再修正は関係しているか? 再修正は関係しているか • 関係あり.再修正の発生率に有意な差(p>0.01)がみられた 合意形成
成功 OK!! 合意形成 失敗 OK!! OK!! L OK!! No!! OK!! 15.81%が再修正 25.00%が再修正 19
20.
議論内容の紹介 20
21.
合意形成に成功した議論の例 合意形成に成功した議論の例 形成に成功 パッチを投稿しました これで良いと思います Alex (修正者) Johannes(レビュアー) ダメです.デシリアライズにまだ 問題があるように思えます(以下略 Vish (レビュアー) パッチを再度投稿しました これならOKです! これなら
です! Alex 実際の議論 (ID: 5749) Vish 21
22.
合意形成に成功した議論の例 合意形成に成功した議論の例 形成に成功 パッチを投稿しました これで良いと思います Alex (修正者) Johannes(レビュアー) 再修正なし ֵ◌ ダメです.デシリアライズにまだ 問題があるように思えます(以下略 Vish (レビュアー) 再修正あり パッチを再度投稿しました これならOKです! これなら
です! Alex 実際の議論 (ID: 5749) Vish 22
23.
合意形成が失敗した議論の例 合意形成が失敗した議論の例 形成が失敗 パッチを投稿しました この書き方は良くない Peng (修正者) です.直しましょう 直しましょう. 直しましょう Willian(レビュアー) 過去にこのやり方でやっているし, 大丈夫じゃないですか? Peng 私にはなぜそうするのか理解で きません.こうなったら他の人 の意見を聞いてみましょう Willian このコードで
です このコードでOKです コードで Salvatore (レビュアー) 実際の議論 (ID: 5220) 23
24.
合意形成が失敗した議論の例 合意形成が失敗した議論の例 形成が失敗 パッチを投稿しました この書き方は良くない Peng (修正者) です.直しましょう 直しましょう. 直しましょう Willian(レビュアー) 再修正なし 過去にこのやり方でやっているし, 大丈夫じゃないですか? Peng 再修正あり 私にはなぜそうするのか理解で きません.こうなったら他の人 の意見を聞いてみましょう Willian このコードで
です このコードでOKです コードで Salvatore (レビュアー) 実際の議論 (ID: 5220) 24
25.
まとめ 25
26.
まとめ 目的:修正コスト増大を防ぐため,再修正を防ぐヒントを得る 目的 分析:レビュアーの合意形成を分析した 分析 結果:レビュアーの合意形成の失敗は再修正の予兆 合意形成の失敗は再修正の予兆である 結果 合意形成の失敗は再修正の予兆 衠 ֳ◌ OK! No!! OK! 報告者 管理人 修正者 報告 割り当て 修正 レビュアー レビュー プロダクト 更新 再修正 26
27.
展望 • 分析 • レビュアー間の議論を分類 •
対象プロジェクトの追加 • 合意形成の支援 • ツールの作成 • 議論ルールの作成 27
28.
DISCUSS Your Review until
Reaching Consensus!! 냰 Thank you.
Download