计算机科学技术学报 ›› 2022,Vol. 37 ›› Issue (1): 182-206.doi: 10.1007/s11390-021-1596-1

所属专题: Software Systems

• • 上一篇    下一篇



  • 收稿日期:2021-05-18 修回日期:2021-11-01 接受日期:2022-01-10 出版日期:2022-01-28 发布日期:2022-01-28

Community Smell Occurrence Prediction on Multi-Granularity by Developer-Oriented Features and Process Metrics

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. 1Department of Computer Science and Engineering, East China University of Science and Technology, Shanghai 200237, China
    2Shanghai Key Laboratory of Computer Software Testing and Evaluating, Shanghai 200237, China
    3Shanghai Engineering Research Center of Smart Energy, Shanghai 200237, China
  • Received:2021-05-18 Revised:2021-11-01 Accepted:2022-01-10 Online:2022-01-28 Published:2022-01-28
  • Contact: Zhi-Qing Shao, Gui-Sheng Fan E-mail:{zshao, gsfan}@ecust.edu.cn
  • About author:Zhi-Qing Shao received his B.S. degree in mathematical logic from Nanjing University, Nanjing, in 1986, M.S. degree in pure mathematics from the Institute of Software, Chinese Academy of Sciences, Beijing, in 1989, and Ph.D. degree in computer software from Shanghai Jiao Tong University, Shanghai, in 1998. He is currently a professor at East China University of Science and Technology, Shanghai. His research interests include software engineering and network computing.
    Gui-Sheng Fan received his B.S. degree from Anhui University of Technology, Ma'anshan, in 2003, M.S. degree from East China University of Science and Technology (ECUST), Shanghai, in 2006, and Ph.D. degree from ECUST in 2009, all in computer science. He is presently a research assistant of the Department of Computer Science and Engineering, ECUST, Shanghai. His research interests include formal methods for complex software system, service-oriented computing, and techniques for analysis of software architecture.
  • Supported by:
    This work was partially supported by the National Natural Science Foundation of China under Grant No.61772200, and the Natural Science Foundation of Shanghai under Grant No.21ZR1416300.

开源软件开发是由开源社区组织的、具有社会化属性的活动。近期的研究表明开源软件质量和生产效率受技术和社交等多方面因素影响,与技术债务相对应的社交债务(Social Debt,指由于开源社区在沟通或合作方面的低内聚导致的额外开发成本)缺乏足够的关注和研究。开源社区异味(简称社区异味)是开源社区中不健康的组织结构,它可用于衡量社交债务。实证研究表明社区异味会显著影响代码重构等工作的效率,缺乏有效的代码重构会造成软件的质量下降、加速软件老化,进而导致软件失效。社区异味的相关工作主要面向开源社区的管理者展开,并试图用自上而下的方式来重构开源社区。然而,相对传统开发使用的、集中式和分层的组织形式而言,开源社区的参与者更为多样化,开源社区的运作方式更为平等。因此,仅从自上而下的视角出发不足以有效地预防和应对社区异味。
4、结果(Result & Findings):

关键词: 开源社区异味, 开发者情感, 社会-技术分析, 实证软件工程

Abstract: Community smells are sub-optimal developer community structures that hinder productivity. Prior studies performed smell prediction and provided refactoring guidelines from a top-down aspect to help community shepherds. Simultaneously, refactoring smells also requires bottom-up effort from every developer. However, supportive measures and guidelines for them are not available at a fine-grained level. Since recent work revealed developers' personalities and working states could influence community smells' emergence and variation, we build prediction models with experience, sentiment, and development process features of developers considering three smells including Organizational Silo, Lone Wolf, and Bottleneck, as well as two related classes including smelly developer and smelly quitter. We predict the five classes in the individual granularity, and we also generate forecasts for the number of smelly developers in the community granularity. The proposed models achieve F-measures ranging from 0.73 to 0.92 in individual-wide within-project, time-wise, and cross-project prediction, and mean R2 performance of 0.68 in community-wide Smelly Developer prediction. We also exploit SHAP (SHapley Additive exPlanations) to assess feature importance to explain our predictors. In conclusion, we suggest developers with heavy workload should foster more frequent communication in a straightforward and polite way to build healthier communities, and we recommend community shepherds to use the forecasting model for refactoring planning.

Key words: community smell, developer sentiment, socio-technical analysis, empirical software engineering

[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!
Full text



[1] . Online First Under Construction [J]. 计算机科学技术学报, 0, (): 1 .
[2] Zhi-Neng Chen, Chong-Wah Ngo, Wei Zhang, Juan Cao, Yu-Gang Jiang. 网络视频人脸—姓名关联:大规模数据库,基准实验和开放性问题[J]. , 2014, 29(5): 785 -798 .
[3] Fei Xia, De-Jun Jiang, Jin Xiong, Ning-Hui Sun. PCM内存系统研究综述[J]. , 2015, 30(1): 121 -144 .
[4] André Brinkmann, Kathryn Mohror, Weikuan Yu, Philip Carns, Toni Cortes, Scott A. Klasky, Alberto Miranda, Franz-Josef Pfreundt, Robert B. Ross, Marc-André Vef. 高性能计算专用文件系统[J]. 计算机科学技术学报, 2020, 35(1): 4 -26 .
[5] Yu-Tong Lu, Peng Cheng, Zhi-Guang Chen. Tianhe-2数据存储与管理系统设计与实现[J]. 计算机科学技术学报, 2020, 35(1): 27 -46 .
[6] Reza Jafari Ziarani, Reza Ravanmehr. 推荐系统中的意外效应:系统文献综述[J]. 计算机科学技术学报, 2021, 36(2): 375 -396 .
[7] Bo-Han Li, Yi Liu, An-Man Zhang, Wen-Huan Wang, Shuo Wan. 实体消解中分块技术的综述[J]. 计算机科学技术学报, 2020, 35(4): 769 -793 .
[8] Lie-Huang Zhu, Bao-Kun Zheng, Meng Shen, Feng Gao, Hong-Yu Li, Ke-Xin Shi. 比特币系统的数据安全和隐私综述[J]. 计算机科学技术学报, 2020, 35(4): 843 -862 .
[9] 梁盾, 郭元晨, 张少魁, 穆太江, 黄晓蕾. 车道检测-新结果和调查研究[J]. 计算机科学技术学报, 2020, 35(3): 493 -505 .
[10] Lan Huang, Da-Lin Li, Kang-Ping Wang, Teng Gao, Adriano Tavares. 一个关于高级综合工具性能优化的综述[J]. 计算机科学技术学报, 2020, 35(3): 697 -720 .
版权所有 © 《计算机科学技术学报》编辑部
本系统由北京玛格泰克科技发展有限公司设计开发 技术支持:support@magtech.com.cn