Journal of Computer Science and Technology ›› 2022, Vol. 37 ›› Issue (1): 182-206.doi: 10.1007/s11390-021-1596-1

Special Issue: Software Systems

• Special Section on Software Systems 2021 • Previous Articles     Next Articles

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.

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.
[1] Li Zhang, Jia-Hao Tian, Jing Jiang, Yi-Jun Liu, Meng-Yuan Pu, Tao Yue. Empirical Research in Software Engineering-A Literature Survey [J]. Journal of Computer Science and Technology, 2018, 33(5): 876-899.
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed   
[1] . Online First Under Construction [J]. Journal of Computer Science and Technology, 0, (): 1 .
[2] Zhi-Neng Chen, Chong-Wah Ngo, Wei Zhang, Juan Cao, Yu-Gang Jiang. Name-Face Association in Web Videos: A Large-Scale Dataset, Baselines, and Open Issues[J]. , 2014, 29(5): 785 -798 .
[3] Fei Xia, De-Jun Jiang, Jin Xiong, Ning-Hui Sun. A Survey of Phase Change Memory Systems[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. Ad Hoc File Systems for High-Performance Computing[J]. Journal of Computer Science and Technology, 2020, 35(1): 4 -26 .
[5] Yu-Tong Lu, Peng Cheng, Zhi-Guang Chen. Design and Implementation of the Tianhe-2 Data Storage and Management System[J]. Journal of Computer Science and Technology, 2020, 35(1): 27 -46 .
[6] Reza Jafari Ziarani, Reza Ravanmehr. Serendipity in Recommender Systems: A Systematic Literature Review[J]. Journal of Computer Science and Technology, 2021, 36(2): 375 -396 .
[7] Bo-Han Li, Yi Liu, An-Man Zhang, Wen-Huan Wang, Shuo Wan. A Survey on Blocking Technology of Entity Resolution[J]. Journal of Computer Science and Technology, 2020, 35(4): 769 -793 .
[8] Lie-Huang Zhu, Bao-Kun Zheng, Meng Shen, Feng Gao, Hong-Yu Li, Ke-Xin Shi. Data Security and Privacy in Bitcoin System: A Survey[J]. Journal of Computer Science and Technology, 2020, 35(4): 843 -862 .
[9] Dun Liang, Yuan-Chen Guo, Shao-Kui Zhang, Tai-Jiang Mu, Xiaolei Huang. Lane Detection: A Survey with New Results[J]. Journal of Computer Science and Technology, 2020, 35(3): 493 -505 .
[10] Lan Huang, Da-Lin Li, Kang-Ping Wang, Teng Gao, Adriano Tavares. A Survey on Performance Optimization of High-Level Synthesis Tools[J]. Journal of Computer Science and Technology, 2020, 35(3): 697 -720 .

ISSN 1000-9000(Print)

         1860-4749(Online)
CN 11-2296/TP

Home
Editorial Board
Author Guidelines
Subscription
Journal of Computer Science and Technology
Institute of Computing Technology, Chinese Academy of Sciences
P.O. Box 2704, Beijing 100190 P.R. China
Tel.:86-10-62610746
E-mail: jcst@ict.ac.cn
 
  Copyright ©2015 JCST, All Rights Reserved