學術產出-學位論文
文章檢視/開啟
書目匯出
-
題名 軟體典藏庫資料分析:以GitHub為例
Data Analysis for Software Repository: A Case Study of GitHub作者 劉耀文
Liu, Yao Wen貢獻者 徐國偉
Hsu, Kuo Wei
劉耀文
Liu, Yao Wen關鍵詞 社群網絡
軟體典藏庫
資料分析
Social Network
Software Repository
Data Analysis日期 2015 上傳時間 2-十一月-2015 15:01:18 (UTC+8) 摘要 GitHub是2008年開始發展,提供線上源碼託管服務的網路平台。除了提供使用者建立組織、專案和存取軟體庫之外,更提供一些網站社交功能,包括允許使用者追蹤其他用戶、加入專案組織與關注軟體庫的動態,並且對於軟體源碼的修改和針對程式錯誤(bug)提出評論等,使用者或組織成員透過平台上版本控管服務來共同開發軟體專案,並透過GitHub提供的社交服務來完成溝通與協調。本研究針對GitHub資料集進行整體性的觀察與分析,透過不同的社群網絡指標與分析方法,發現GitHub平台上的協同合作與社交活動。舉例來說,為了找出GitHub上網路的彈性,我們使用度分布,還有近距中間度及參與中間度的值。同時,我們針對使用者或專案之間的互動情形來分析關聯性,並以平台上不同的操作事件來觀察使用者是否偏好某些行為,抑或是某些事件之間是否會互相影響。研究目標希望能透過GitHub平台所取得的部分資料,來推論GitHub上的真實情況。希望透過專案之間的關聯性,來找出平台上最具影響力的專案或使用者;也將針對程式語言與公司組織的關聯性,觀察技術之間的可替代性,與公司之間的相互合作的情況。同時以GitHub平台上不同操作事件之間的相關性,觀察出何種操作行為會影響使用者進行貢獻(提交源碼)。另一方面,本研究將以專案的吸引力與黏著度等角度,來針對GitHub平台上的專案進行分析。針對這兩種維度進行觀察,期望進一步得知專案的貢獻程度,與專案隨著時間的所產生的變化。換言之,本研究方法將針對資料集中所有專案進行演進的推論,區分出專案演進的四個階段(活躍期、流動期、穩定期、衰退期),並分析出目前GitHub上專案所處於的階段,最後研究出各階段轉換所可能的機率為何,進一步推論出專案未來演進的趨勢。最後,本研究提出了其他延伸之議題,例如重新定義專案演進階段、選擇適合的專案成員與專案的推薦等,以提供未來可行的研究方向。
GitHub began to develop in 2008, providing an online open source hosting platform. In addition to providing user-created organizations, projects and software repositories, it also provides more social features, including allowing users to track other users, join the dynamic project or organization, watch software repositories, modify the source code for the software, and make comments for the program error (bug). In this study, we analyze of GitHub data sets; by using different network indicators and analysis methods in order to find collaboration and social activities on GitHub plat-form. For example, in order to find flexibility of networks on GitHub, we analyze degree distributions and values of closeness centrality as well as betweenness centrality. At the same time, we investigate the interaction between GitHub users and projects in order to analyze the correlation between them. On the other hand, we analyze attraction and adhesion of the projects on GitHub platform. By using these two indicators, we can get the degree of contribution of the pro-jects, and the changes of the projects over time. We consider the four stages of evolution (active, flow period, stable, recession) of the projects on GitHub. Finally, we study the probability of transition of the all stages, and further we infer the trend of the future evo-lution of the projects on GitHub.Finally, this study could be extended and used to support other studies. For example, we can redefine the evolution stage of a project, select members for the project, and rec-ommend the project.參考文獻 [1] Fitzgerald Brian, "Software Crisis 2.0," IEEE Computer Society, pp. 91-93, 2012.[2] Huzefa Kagdi; Michael L. Collard; Jonathan I. Maletic, "A survey and taxonomy of approaches for mining software repositories in the context of software evolution," Journal of Software Maintenance and Evolution: Research and Practice, pp. 77–131, 2007. [3] João Brunet; Gail C. Murphy; Ricardo Terra; Jorge Figueiredo; Dalton Serey, "Do Developers Discuss Design?," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp.340–343, 2014. [4] Karan Aggarwal; Abram Hindle; Eleni Stroulia, "Co-evolution of Project Documen-tation and Popularity within Github," In Proceedings of the 11th Working Confer-ence on Mining Software Repositories, pp. 1-4, 2014. [5] Daniel Pletea; Bogdan Vasilescu; Alexander Serebrenik, "Security and Emotion: Sentiment Analysis of Security Discussions on GitHub," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 1-4, 2014. [6] Rohan Padhye; Senthil Mani; Vibha Singhal Sinha, "A Study of External Commu-nity Contribution to Open-Source Projects on GitHub," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 332-335, 2014. [7] Jyoti Sheoran; Kelly Blincoe; Eirini Kalliamvakou; Daniela Damian; Jordan Ell, "Understanding “Watchers” on GitHub," In Proceedings of the 11th Working Con-ference on Mining Software Repositories, pp. 336-339, 2014. [8] Emitza Guzman; David Azócar; Yang Li, "Sentiment Analysis of Commit Comments in GitHub: An Empirical Study," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 352-355, 2014. [9] Nicholas Matragkas; James R. Williams; Dimitris S. Kolovos; Richard F. Paige, "Analysing the Biodiversity of Open Source Ecosystems: The GitHub Case," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 356-359, 2014. [10] Mohammad Masudur Rahman; Chanchal K. Roy, "An Insight into the Pull Requests of GitHub," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 364-367, 2014. [11] Kazuhiro Yamashita; Shane McIntosh; Yasutaka Kamei; Naoyasu Ubayashi, "Magnet or Sticky? An OSS Project-by-Project Typology," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 1-4, 2014. [12] Linton C. Freeman, "Centrality in Social Networks Conceptual Clarification," Social Networks, pp. 215-239, 1978. [13] Chaoqun Ni; Cassidy R. Sugimoto; Jiepu Jiang, "Degree, Closeness, and Between-ness: Application of group centrality measurements to explore macro-disciplinary evolution diachronically," Social Networks, pp. 1-10. 2011. [14] Stephen P. Borgatti, "Centrality and network flow," Social Networks, pp. 55–71. 2005. [15] S.Gopal Krishna Patro; Kishore Kumar sahu, "Normalization: A Preprocessing Stage," Computer Science, pp. 1-4, 2015. [16] Mark. E. J. Newman, "The structure and function of complex networks," SIAM re-view, pp.1-58, 2003. [17] Laura Dabbish; Colleen Stuart; Jason Tsay; Jim Herbsleb, "Social Coding in GitHub: Transparency and Collaboration in an Open Software Repository," In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work, pp. 1-10, 2012. [18] Antonio Lima; Luca Rossi; Mirco Musolesi, "Coding Together at Scale: GitHub as a Collaborative Social Network," In Proceedings of 8th AAAI International Confer-ence on Weblogs and Social Media, pp. 1-10, 2014. [19] Yuriy Tymchuk; Andrea Mocci; Michele Lanza, "Collaboration in Open-Source Projects: Myth or Reality?," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 304-307, 2014. [20] Joseph Lee Rodgers; W. Alan Nicewander, "Thirteen Ways to Look at the Correla-tion Coefficient," The American Statistician, pp. 59-66, 1988.[21] Sergey Brin; Lawrence Page, "The Anatomy of a Large-Scale Hypertextual Web Search Engine," In Proceedings of the seventh International Conference on the World Wide Web, pp107-117, 1998.[22] Lawrence Page; Sergey Brin; Rajeev Motwani; Terry Winograd, "The PageRank Citation Ranking: Bringing Order to the Web," Technical report, Stanford Digital Library Technologies Project, pp.1-17, 1999.[23] Jerrold H Zar, "Spearman Rank Correlation," Encyclopedia of Biostatistics, pp.1-6, 1988.[24] Vincent D Blondel; Jean-Loup Guillaume, Renaud Lambiotte, Etienne Lefebvre, "Fast unfolding of communities in large networks," in Journal of Statistical Me-chanics: Theory and Experiment , pp1-11, 2008.[25] Renaud Lambiotte; Jean-Charles Delvenne; Mauricio Barahona, "Laplacian Dy-namics and Multiscale Modular Structure in Networks," IEEE Transactions on Net-work Science and Engineering, pp1-29, 2009. 描述 碩士
國立政治大學
資訊科學系碩士在職專班
102971013資料來源 http://thesis.lib.nccu.edu.tw/record/#G0102971013 資料類型 thesis dc.contributor.advisor 徐國偉 zh_TW dc.contributor.advisor Hsu, Kuo Wei en_US dc.contributor.author (作者) 劉耀文 zh_TW dc.contributor.author (作者) Liu, Yao Wen en_US dc.creator (作者) 劉耀文 zh_TW dc.creator (作者) Liu, Yao Wen en_US dc.date (日期) 2015 en_US dc.date.accessioned 2-十一月-2015 15:01:18 (UTC+8) - dc.date.available 2-十一月-2015 15:01:18 (UTC+8) - dc.date.issued (上傳時間) 2-十一月-2015 15:01:18 (UTC+8) - dc.identifier (其他 識別碼) G0102971013 en_US dc.identifier.uri (URI) http://nccur.lib.nccu.edu.tw/handle/140.119/79261 - dc.description (描述) 碩士 zh_TW dc.description (描述) 國立政治大學 zh_TW dc.description (描述) 資訊科學系碩士在職專班 zh_TW dc.description (描述) 102971013 zh_TW dc.description.abstract (摘要) GitHub是2008年開始發展,提供線上源碼託管服務的網路平台。除了提供使用者建立組織、專案和存取軟體庫之外,更提供一些網站社交功能,包括允許使用者追蹤其他用戶、加入專案組織與關注軟體庫的動態,並且對於軟體源碼的修改和針對程式錯誤(bug)提出評論等,使用者或組織成員透過平台上版本控管服務來共同開發軟體專案,並透過GitHub提供的社交服務來完成溝通與協調。本研究針對GitHub資料集進行整體性的觀察與分析,透過不同的社群網絡指標與分析方法,發現GitHub平台上的協同合作與社交活動。舉例來說,為了找出GitHub上網路的彈性,我們使用度分布,還有近距中間度及參與中間度的值。同時,我們針對使用者或專案之間的互動情形來分析關聯性,並以平台上不同的操作事件來觀察使用者是否偏好某些行為,抑或是某些事件之間是否會互相影響。研究目標希望能透過GitHub平台所取得的部分資料,來推論GitHub上的真實情況。希望透過專案之間的關聯性,來找出平台上最具影響力的專案或使用者;也將針對程式語言與公司組織的關聯性,觀察技術之間的可替代性,與公司之間的相互合作的情況。同時以GitHub平台上不同操作事件之間的相關性,觀察出何種操作行為會影響使用者進行貢獻(提交源碼)。另一方面,本研究將以專案的吸引力與黏著度等角度,來針對GitHub平台上的專案進行分析。針對這兩種維度進行觀察,期望進一步得知專案的貢獻程度,與專案隨著時間的所產生的變化。換言之,本研究方法將針對資料集中所有專案進行演進的推論,區分出專案演進的四個階段(活躍期、流動期、穩定期、衰退期),並分析出目前GitHub上專案所處於的階段,最後研究出各階段轉換所可能的機率為何,進一步推論出專案未來演進的趨勢。最後,本研究提出了其他延伸之議題,例如重新定義專案演進階段、選擇適合的專案成員與專案的推薦等,以提供未來可行的研究方向。 zh_TW dc.description.abstract (摘要) GitHub began to develop in 2008, providing an online open source hosting platform. In addition to providing user-created organizations, projects and software repositories, it also provides more social features, including allowing users to track other users, join the dynamic project or organization, watch software repositories, modify the source code for the software, and make comments for the program error (bug). In this study, we analyze of GitHub data sets; by using different network indicators and analysis methods in order to find collaboration and social activities on GitHub plat-form. For example, in order to find flexibility of networks on GitHub, we analyze degree distributions and values of closeness centrality as well as betweenness centrality. At the same time, we investigate the interaction between GitHub users and projects in order to analyze the correlation between them. On the other hand, we analyze attraction and adhesion of the projects on GitHub platform. By using these two indicators, we can get the degree of contribution of the pro-jects, and the changes of the projects over time. We consider the four stages of evolution (active, flow period, stable, recession) of the projects on GitHub. Finally, we study the probability of transition of the all stages, and further we infer the trend of the future evo-lution of the projects on GitHub.Finally, this study could be extended and used to support other studies. For example, we can redefine the evolution stage of a project, select members for the project, and rec-ommend the project. en_US dc.description.tableofcontents 摘要 i致謝 iii目錄 iv圖目錄 vi表目錄 vii第一章、導論 11.1研究動機 11.2研究目標 21.3論文成果 31.4論文限制 31.5論文章節架構 4第二章、背景介紹 52.1 Mining Software Repositories(MSR)介紹 52.2 MSR核心概念 62.3 MSR相關分析主題 82.4資料集介紹 82.4.1 Table Schema 102.4.2 GitHub相關名詞說明 112.5資料樣本結構分析 112.5.1事件總數 112.5.2專案中最常使用的程式語言 122.5.3最常被關注的專案 152.5.4 統計發現 16第三章、協同寫作與社群網絡 183.1 資料前置處理 183.1.1 資料定義 183.1.2 資料前置處理流程 203.2 社群網絡觀察 213.2.1 以關注事件(watch)觀察網絡現象 213.2.2 以合併要求事件(pull request)觀察網絡現象 243.2.3 以程式語言與公司組織觀察網絡現象 263.3 社群網絡指標分析 283.3.1 平均Degree與Degree分佈 283.3.2 Network Resilience指標分析 373.3.3 Degree Correlations指標分析 40第四章、資料分析 424.1 行為關聯分析 424.1.1 Correlation Coefficient指標分析 424.1.2 PageRank指標分析 434.2 專案貢獻度 454.3 專案吸引力與黏著度 464.4 專案演進 51第五章、研究發現與討論 55第六章、未來展望 58參考文獻 60 zh_TW dc.format.extent 2358446 bytes - dc.format.mimetype application/pdf - dc.source.uri (資料來源) http://thesis.lib.nccu.edu.tw/record/#G0102971013 en_US dc.subject (關鍵詞) 社群網絡 zh_TW dc.subject (關鍵詞) 軟體典藏庫 zh_TW dc.subject (關鍵詞) 資料分析 zh_TW dc.subject (關鍵詞) Social Network en_US dc.subject (關鍵詞) Software Repository en_US dc.subject (關鍵詞) Data Analysis en_US dc.title (題名) 軟體典藏庫資料分析:以GitHub為例 zh_TW dc.title (題名) Data Analysis for Software Repository: A Case Study of GitHub en_US dc.type (資料類型) thesis en dc.relation.reference (參考文獻) [1] Fitzgerald Brian, "Software Crisis 2.0," IEEE Computer Society, pp. 91-93, 2012.[2] Huzefa Kagdi; Michael L. Collard; Jonathan I. Maletic, "A survey and taxonomy of approaches for mining software repositories in the context of software evolution," Journal of Software Maintenance and Evolution: Research and Practice, pp. 77–131, 2007. [3] João Brunet; Gail C. Murphy; Ricardo Terra; Jorge Figueiredo; Dalton Serey, "Do Developers Discuss Design?," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp.340–343, 2014. [4] Karan Aggarwal; Abram Hindle; Eleni Stroulia, "Co-evolution of Project Documen-tation and Popularity within Github," In Proceedings of the 11th Working Confer-ence on Mining Software Repositories, pp. 1-4, 2014. [5] Daniel Pletea; Bogdan Vasilescu; Alexander Serebrenik, "Security and Emotion: Sentiment Analysis of Security Discussions on GitHub," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 1-4, 2014. [6] Rohan Padhye; Senthil Mani; Vibha Singhal Sinha, "A Study of External Commu-nity Contribution to Open-Source Projects on GitHub," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 332-335, 2014. [7] Jyoti Sheoran; Kelly Blincoe; Eirini Kalliamvakou; Daniela Damian; Jordan Ell, "Understanding “Watchers” on GitHub," In Proceedings of the 11th Working Con-ference on Mining Software Repositories, pp. 336-339, 2014. [8] Emitza Guzman; David Azócar; Yang Li, "Sentiment Analysis of Commit Comments in GitHub: An Empirical Study," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 352-355, 2014. [9] Nicholas Matragkas; James R. Williams; Dimitris S. Kolovos; Richard F. Paige, "Analysing the Biodiversity of Open Source Ecosystems: The GitHub Case," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 356-359, 2014. [10] Mohammad Masudur Rahman; Chanchal K. Roy, "An Insight into the Pull Requests of GitHub," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 364-367, 2014. [11] Kazuhiro Yamashita; Shane McIntosh; Yasutaka Kamei; Naoyasu Ubayashi, "Magnet or Sticky? An OSS Project-by-Project Typology," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 1-4, 2014. [12] Linton C. Freeman, "Centrality in Social Networks Conceptual Clarification," Social Networks, pp. 215-239, 1978. [13] Chaoqun Ni; Cassidy R. Sugimoto; Jiepu Jiang, "Degree, Closeness, and Between-ness: Application of group centrality measurements to explore macro-disciplinary evolution diachronically," Social Networks, pp. 1-10. 2011. [14] Stephen P. Borgatti, "Centrality and network flow," Social Networks, pp. 55–71. 2005. [15] S.Gopal Krishna Patro; Kishore Kumar sahu, "Normalization: A Preprocessing Stage," Computer Science, pp. 1-4, 2015. [16] Mark. E. J. Newman, "The structure and function of complex networks," SIAM re-view, pp.1-58, 2003. [17] Laura Dabbish; Colleen Stuart; Jason Tsay; Jim Herbsleb, "Social Coding in GitHub: Transparency and Collaboration in an Open Software Repository," In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work, pp. 1-10, 2012. [18] Antonio Lima; Luca Rossi; Mirco Musolesi, "Coding Together at Scale: GitHub as a Collaborative Social Network," In Proceedings of 8th AAAI International Confer-ence on Weblogs and Social Media, pp. 1-10, 2014. [19] Yuriy Tymchuk; Andrea Mocci; Michele Lanza, "Collaboration in Open-Source Projects: Myth or Reality?," In Proceedings of the 11th Working Conference on Mining Software Repositories, pp. 304-307, 2014. [20] Joseph Lee Rodgers; W. Alan Nicewander, "Thirteen Ways to Look at the Correla-tion Coefficient," The American Statistician, pp. 59-66, 1988.[21] Sergey Brin; Lawrence Page, "The Anatomy of a Large-Scale Hypertextual Web Search Engine," In Proceedings of the seventh International Conference on the World Wide Web, pp107-117, 1998.[22] Lawrence Page; Sergey Brin; Rajeev Motwani; Terry Winograd, "The PageRank Citation Ranking: Bringing Order to the Web," Technical report, Stanford Digital Library Technologies Project, pp.1-17, 1999.[23] Jerrold H Zar, "Spearman Rank Correlation," Encyclopedia of Biostatistics, pp.1-6, 1988.[24] Vincent D Blondel; Jean-Loup Guillaume, Renaud Lambiotte, Etienne Lefebvre, "Fast unfolding of communities in large networks," in Journal of Statistical Me-chanics: Theory and Experiment , pp1-11, 2008.[25] Renaud Lambiotte; Jean-Charles Delvenne; Mauricio Barahona, "Laplacian Dy-namics and Multiscale Modular Structure in Networks," IEEE Transactions on Net-work Science and Engineering, pp1-29, 2009. zh_TW