|
计算机科学技术学报 ›› 2022,Vol. 37 ›› Issue (1): 182-206.doi: 10.1007/s11390-021-1596-1
所属专题: Software Systems
Zi-Jie Huang1 (黄子杰), Student Member, CCF, IEEE, Zhi-Qing Shao1,* (邵志清), Gui-Sheng Fan1,2,* (范贵生), Member, CCF, Hui-Qun Yu1,3 (虞慧群), Senior Member, CCF, IEEE, Member, ACM, Xing-Guang Yang1 (杨星光), and Kang Yang1 (杨康)
1、研究背景(context):
开源软件开发是由开源社区组织的、具有社会化属性的活动。近期的研究表明开源软件质量和生产效率受技术和社交等多方面因素影响,与技术债务相对应的社交债务(Social Debt,指由于开源社区在沟通或合作方面的低内聚导致的额外开发成本)缺乏足够的关注和研究。开源社区异味(简称社区异味)是开源社区中不健康的组织结构,它可用于衡量社交债务。实证研究表明社区异味会显著影响代码重构等工作的效率,缺乏有效的代码重构会造成软件的质量下降、加速软件老化,进而导致软件失效。社区异味的相关工作主要面向开源社区的管理者展开,并试图用自上而下的方式来重构开源社区。然而,相对传统开发使用的、集中式和分层的组织形式而言,开源社区的参与者更为多样化,开源社区的运作方式更为平等。因此,仅从自上而下的视角出发不足以有效地预防和应对社区异味。
2、目的(Objective):
社区异味的发生源于开发活动,由开发者直接驱动。因此,本文考虑开发者个人的开发经验、情感特征和开发过程特征,并试图在开发者个人的层面预防社区异味的出现。研究不仅衡量上述特征和模型是否足以预测社区异味,而且分别从开发者个人和开发社区整体的视角理解这些因素对社区异味的影响,进而为研究人员和开发者提供对开源社区建构的新视角和实践的建议。
3、方法(Method):
本文使用开发经验、情感特征和开发过程特征建构了一个机器学习模型以预测开发者是否受到3种常见的社区异味影响。这些社区异味包括独狼效应、组织隔离和瓶颈效应。另外,模型还预测开发者是否在受到异味影响后退出开源社区。在开发者个人的预测粒度上,本文对效果良好的模型使用SHAP计算特征重要性及其显著程度,并分析特征值分布及其效应值的区别,以确定与异味发生最相关的特征,为结论的得出提供可量化的依据。在开源社区的粒度上,本文预报受异味影响的开发者数量,使其能够辅助开源社区维护者做出重构决策。
4、结果(Result & Findings):
在开发者个人的粒度下,本文使用项目内、时间敏感和跨项目三种模型性能验证方式,模型取得了F1值0.73到0.92的性能。在社区粒度下,本文对受异味影响开发者数目的预报模型获得了0.68的R2性能。根据SHAP特征重要性数值,经验特征和开发过程度量是社区异味预测中最重要的特征,情感特征也拥有均衡和中等的重要性。
5、结论(Conclusions):
在实践中,本文建议工作量较重的开发者主动加强与社区成员的沟通,并在沟通中使用直接和礼貌的方式,这些措施有助于建构健康的开源社区。本文也建议开源社区管理人员使用预报模型来指导开源组织的重构。
[1] Tamburri D A, Palomba F, Kazman R. Exploring community smells in open-source: An automated approach. IEEE Trans. Softw. Eng., 2021, 47(3): 630-652. DOI: 10.1109/TSE.2019.2901490. [2] Johnson B, Song Y, Murphy-Hill E, Bowdidge R. Why don't software developers use static analysis tools to find bugs? In Proc. the 35th IEEE/ACM Int. Conference on Software Engineering, May 2013, pp.672-681. DOI: 10.1109/ICSE.2013.6606613. [3] Pecorelli F, Palomba F, Khomh F, De Lucia A. Developer-driven code smell prioritization. In Proc. the 17th Int. Conference on Mining Software Repositories, June 2020, pp.220-231. DOI: 10.1145/3379597.3387457. [4] Sae-Lim N, Hayashi S, Saeki M. Context-based code smells prioritization for prefactoring. In Proc. the 24th IEEE Int. Conference on Program Comprehension, May 2016. DOI: 10.1109/ICPC.2016.7503705. [5] Martin F, Kent B, John B, William O, Don R. Refactoring: Improving the Design of Existing Code (1st edition). Addison-Wesley, 1999. [6] Conejero J M, Rodríguez-Echeverría R, Hernández J, Clemente P J, Ortiz-Caraballo C, Jurado E, Sánchez-Figueroa F. Early evaluation of technical debt impact on maintainability. J. Syst. Softw., 2018, 142: 92-114. DOI: 10.1016/j.jss.2018.04.035. [7] Tamburri D A. Software architecture social debt: Managing the incommunicability factor. IEEE Trans. Comput. Soc. Syst., 2019, 6(1): 20-37. DOI: 10.1109/TCSS.2018.2886433. [8] Palomba F, Tamburri D A, Arcelli Fontana F, Oliveto R, Zaidman A, Serebrenik A. Beyond technical aspects: How do community smells influence the intensity of code smells? IEEE Trans. Softw. Eng., 2021, 47(1): 108-129. DOI: 10.1109/TSE.2018.2883603. [9] Palomba F, Tamburri D A. Predicting the emergence of community smells using socio-technical metrics: A machine-learning approach. J. Syst. Softw., 2021, 171: Article No.110847. DOI: 10.1016/j.jss.2020.110847. [10] Catolino G, Palomba F, Tamburri D A, Serebrenik A, Ferrucci F. Refactoring community smells in the wild: The practitioner's field manual. In Proc. the 42nd ACM/IEEE Int. Conference on Software Engineering$:$ Software Engineering in Society, June 27-July 19, 2020, pp.25-34. DOI: 10.1145/3377815.3381380. [11] Catolino G, Palomba F, Tamburri D A, Serebrenik A. Understanding community smells variability: A statistical approach. In Proc. the 43rd ACM/IEEE Int. Conference on Software Engineering$:$ Software Engineering in Society, May 2021, pp.77-86. DOI: 10.1109/ICSE-SEIS52602.2021.00017. [12] Ferreira I, Stewart K, German D, Adams B. A longitudinal study on the maintainers' sentiment of a large scale open source ecosystem. In Proc. the 4th IEEE/ACM Int. Workshop on Emotion Awareness in Software Engineering, May 2019, pp.17-22. DOI: 10.1109/SEmotion.2019.00011. [13] Tamburri D A, Kazman R, Fahimi H. The architect's role in community shepherding. IEEE Softw., 2016, 33(6): 70-79. DOI: 10.1109/MS.2016.144. [14] Yue Y, Yu X, You X, Wang Y, Redmiles D. Ideology in open source development. In Proc. the 13th IEEE/ACM Int. Workshop on Cooperative and Human Aspects of Software Engineering, May 2021, pp.71-80. DOI: 10.1109/CHASE52884.2021.00016. [15] Ducheneaut N. Socialization in an open source software community: A socio-technical analysis. Comput. Support. Coop. Work, 2005, 14(4): 323-368. DOI: 10.1007/s10606-005-9000-1. [16] Mäntylä M, Adams B, Destefanis G, Graziotin D, Ortu M. Mining valence, arousal, and dominance: Possibilities for detecting burnout and productivity? In Proc. the 13th Int. Conference on Mining Software Repositories, May 2016, pp.247-258. DOI: 10.1145/2901739.2901752. [17] Cheruvelil J, Da Silva B C. Developers' sentiment and issue reopening. In Proc. the 4th Int. Workshop on Emotion Awareness in Software Engineering, May 2019, pp.29-33. DOI: 10.1109/SEmotion.2019.00013. [18] Huq S F, Sadiq A Z, Sakib K. Understanding the effect of developer sentiment on Fix-Inducing Changes: An exploratory study on Github pull requests. In Proc. the 26th Asia-Pacific Software Engineering Conference, December 2019, pp.514-521. DOI: 10.1109/APSEC48747.2019.00075. [19] Valdivia-Garcia H, Shihab E, Nagappan M. Characterizing and predicting blocking bugs in open source projects. J. Syst. Softw., 2018, 143: 44-58. DOI: 10.1016/j.jss.2018.03.053. [20] Ortu M, Murgia A, Destefanis G, Tourani P, Tonelli R, Marchesi M, Adams B. The emotional side of software developers in JIRA. In Proc. the 13th International Conference on Mining Software Repositories, May 2016, pp.480-483. DOI: 10.1145/2901739.2903505. [21] Huang Z, Shao Z, Fan G, Gao J, Zhou Z, Yang K, Yang X. Predicting community smells' occurrence on individual developers by sentiments. In Proc. the 29th IEEE/ACM Int. Conference on Program Comprehension, May 2021, pp.230-241. DOI: 10.1109/ICPC52881.2021.00030. [22] Magnoni S. An approach to measure community smells in software development communities [ Thesis]. Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano, 2016. [23] Catolino G, Palomba F, Tamburri D A, Serebrenik A, Ferrucci F. Gender diversity and community smells: Insights from the trenches. IEEE Softw., 2020, 37(1): 10-16. DOI: 10.1109/MS.2019.2944594. [24] Jongeling R, Datta S, Serebrenik A. Choosing your weapons: On sentiment analysis tools for software engineering research. In Proc. the 31st IEEE Int. Conference on Software Maintenance and Evolution, September 29--October 1, 2015, pp.531-535. DOI: 10.1109/ICSM.2015.7332508. [25] Ortu M, Destefanis G, Kassab M, Counsell S, Marchesi M, Tonelli R. Would you mind fixing this issue? --- An empirical analysis of politeness and attractiveness in software developed using agile boards. In Proc. the 16th Int. Conference on Agile Software Development, May 2015, pp.129-140. DOI: 10.1007/978-3-319-18612-2-11. [26] Ortu M, Adams B, Destefanis G, Tourani P, Marchesi M, Tonelli R. Are bullies more productive? Empirical study of affectiveness vs. issue fixing time. In Proc. the 12th IEEE/ACM Working Conference on Mining Software Repositories, May 2015, pp.303-313. DOI: 10.1109/MSR.2015.35. [27] Bell R M, Ostrand T J, Weyuker E J. The limited impact of individual developer data on software defect prediction. Empir. Softw. Eng., 2013, 18(3): 478-505. DOI: 10.1007/s10664-011-9178-4. [28] Catolino G, Palomba F, Tamburri D A. The secret life of software communities: What we know and what we don't know. In Proc. the 18th Belgium-Netherlands Software Evolution Workshop, November 2019. [29] Yang Y, Zhou Y, Liu J, Zhao Y, Lu H, Xu L, Xu B, Leung H. Effort-aware just-in-time defect prediction: Simple unsupervised models could be better than supervised models. In Proc. the 24th ACM SIGSOFT Int. Symp. Foundations of Software Engineering, November 2016, pp.157-168. DOI: 10.1145/2950290.2950353. [30] McIntosh S, Kamei Y. Are fix-inducing changes a moving target? A longitudinal case study of just-in-time defect prediction. IEEE Trans. Softw. Eng., 2018, 44(5): 412-428. DOI: 10.1109/TSE.2017.2693980. [31] Spadini D, Aniche M F, Bacchelli A. PyDriller: Python framework for mining software repositories. In Proc. the 26th ACM Joint Meeting on European Software Engineering Conference and Symp. the Foundations of Software Engineering, November 2018, pp.908-911. DOI: 0.1145/3236024.3264598. [32] Jiarpakdee J, Tantithamthavorn C, Grundy J. Practitioners' perceptions of the goals and visual explanations of defect prediction models. In Proc. the 18th IEEE/ACM Int. Conference on Mining Software Repositories, May 2021, pp.432-443. DOI: 10.1109/MSR52588.2021.00055. [33] Jiarpakdee J, Tantithamthavorn C, Dam H K, Grundy J. An empirical study of model-agnostic techniques for defect prediction models. IEEE Trans. Softw. Eng.. DOI: 10.1109/TSE.2020.2982385. [34] Rajbahadur G K, Wang S, Ansaldi G, Kamei Y, Hassan A E. The impact of feature importance methods on the interpretation of defect classifiers. IEEE Trans. Softw. Eng.. DOI: 10.1109/TSE.2021.3056941. [35] Lundberg S M, Erion G, Chen H, DeGrave A, Prutkin J M, Nair B, Katz R, Himmelfarb J, Bansal N, Lee S I. From local explanations to global understanding with explainable ai for trees. Nat. Mach. Intell., 2020, 2(1): 56-67. DOI: 10.1038/s42256-019-0138-9. [36] Graziotin D, Fagerholm F, Wang X, Abrahamsson P. What happens when software developers are (un)happy. J. Syst. Softw., 2018, 140: 32-47. DOI: 10.1016/j.jss.2018.02.041. [37] Graziotin D, Wang X, Abrahamsson P. Software developers, moods, emotions, and performance. IEEE Softw., 2014, 31(4): 24-27. DOI: 10.1109/MS.2014.94. [38] Thelwall M, Buckley K, Paltoglou G. Sentiment strength detection for the social web. J. Am. Soc. Inf. Sci. Tec., 2012, 63(1): 163-173. DOI: 10.1002/asi.21662. [39] Danescu-Niculescu-Mizil C, Sudhof M, Jurafsky D, Leskovec J, Potts C. A computational approach to politeness with application to social factors. In Proc. the 51st Annual Meeting of the Association for Computational Linguistics, August 2013, pp.250-259. [40] De Smedt T, Daelemans W. Pattern for Python. J. Mach. Learn. Res., 2012, 13: 2063-2067. [41] Islam M R, Zibran M F. Towards understanding and exploiting developers' emotional variations in software engineering. In Proc. the 14th IEEE Int. Conference on Software Engineering Research, Management and Applications, June 2016, pp.185-192. DOI: 10.1109/SERA.2016.7516145. [42] Tantithamthavorn C, McIntosh S, Hassan A E, Matsumoto K. An empirical comparison of model validation techniques for defect prediction models. IEEE Trans. Softw. Eng., 2017, 43(1): 1-18. DOI: 10.1109/TSE.2016.2584050. [43] Scott A J, Knott M. A cluster analysis method for grouping means in the analysis of variance. Biometrics, 1974, 30(3): 507-512. DOI: 10.2307/2529204. [44] Pedregosa F, Varoquaux G, Gramfort A et al. Scikit-learn: Machine learning in Python. J. Mach. Learn. Res., 2011, 12: 2825-2830. [45] Palomba F, Zanoni M, Fontana F A, De Lucia A, Oliveto R. Toward a smell-aware bug prediction model. IEEE Trans. Softw. Eng., 2019, 45(2): 194-218. DOI: 10.1109/TSE.2017.2770122. [46] Esteves G, Figueiredo E, Veloso A, Viggiato M, Ziviani N. Understanding machine learning software defect predictions. Autom. Softw. Eng., 2020, 27(3): 369-392. DOI: 10.1007/s10515-020-00277-4. [47] Shapley L S. A value for n-person games. In Contributions to the Theory of Games II, Annals of Mathematics Studies, Kuhn H W, Tucker A W (eds.), Princeton University Press, 1953, pp.307-317. [48] Palomba F, Panichella A, Zaidman A, Oliveto R, Lucia A D. The scent of a smell: An extensive comparison between textual and structural smells. IEEE Trans. Softw. Eng., 2018, 44(10): 977-1000. DOI: 10.1109/TSE.2017.2752171. [49] Kirbas S, Caglayan B, Hall T, Counsell S, Bowes D, Sen A, Bener A. The relationship between evolutionary coupling and defects in large industrial software. J. Softw.: Evol. Process, 2017, 29(4): Article No.e1842. DOI: 10.1002/smr.1842. [50] Chicco D, Warrens M J, Jurman G. The coefficient of determination R-squared is more informative than SMAPE, MAE, MAPE, MSE and RMSE in regression analysis evaluation. PeerJ Comput. Sci., 2021, 7: Article No.e263. DOI: 10.7717/peerj-cs.623. [51] Yu X, Bennin K E, Liu J, Keung J W, Yin X, Xu Z. An empirical study of learning to rank techniques for effort-aware defect prediction. In Proc. the 26th IEEE Int. Conference on Software Analysis, Evolution and Reengineering, February 2019, pp.298-309. DOI: 10.1109/SANER.2019.8668033. [52] Saini M, Kaur K. Fuzzy analysis and prediction of commit activity in open source software projects. IET Softw., 2016, 10(5): 136-146. DOI: 10.1049/iet-sen.2015.0087. [53] Manzano M, Ayala C, Gómez C, Cuesta L L. A software service supporting software quality forecasting. In Proc. the 19th IEEE Int. Conference on Software Quality, Reliability and Security Companion, July 2019, pp.130-132. DOI: 10.1109/QRS-C.2019.00037. [54] Ahammed T, Asad M, Sakib K. Understanding the involvement of developers in missing link community smell: An exploratory study on Apache projects. In Proc. the 8th Int. Workshop on Quantitative Approaches to Software Quality, December 2020, pp.64-70. [55] Hofmann H, Wickham H, Kafadar K. Letter-value plots: Boxplots for large data. J. Comput. Graph. Stat., 2017, 26(3): 469-477. DOI: 10.1080/10618600.2017.1305277. [56] Graziotin D, Wang X, Abrahamsson P. Happy software developers solve problems better: Psychological measurements in empirical software engineering. PeerJ, 2014, 2: Article No.e289. DOI: 10.7717/peerj.289. [57] Müller S C, Fritz T. Stuck and frustrated or in flow and happy: Sensing developers' emotions and progress. In Proc. the 37th IEEE/ACM Int. Conference on Software Engineering, May 2015, pp.688-699. DOI: 10.1109/ICSE.2015.334. [58] Lin B, Zampetti F, Bavota G, Di Penta M, Lanza M, Oliveto R. Sentiment analysis for software engineering: How far can we go? In Proc. the 40th IEEE/ACM Int. Conference on Software Engineering, May 27--June 3, 2018, pp.94-104. DOI: 10.1145/3180155.3180195. [59] Jiarpakdee J, Tantithamthavorn C, Treude C. AutoSpearman: Automatically mitigating correlated software metrics for interpreting defect models. In Proc. the 34th IEEE Int. Conference on Software Maintenance and Evolution, September 2018, pp.92-103. DOI: 10.1109/ICSME.2018.00018. |
No related articles found! |
|
版权所有 © 《计算机科学技术学报》编辑部 本系统由北京玛格泰克科技发展有限公司设计开发 技术支持:support@magtech.com.cn 总访问量: |