How do community smells influence code smells?

Code smells reflect sub-optimal patterns of code that often lead to critical software flaws or failure. In the sameway, community smells reflect sub-optimal organisational and socio-technical patterns in the organisational structure of the software community. To understand the relation between the community smells and code smells we start by surveying 162 developers of nine opensource systems. Then we look deeper into this connection by conducting an empirical study of 117 releases from these systems. Our results indicate that community-related factors are intuitively perceived by most developers as causes of the persistence of code smells. Inspired by this observation we design a communityaware prediction model for code smells and show that it outperforms a model that does not consider community factors.

[1]  Gabriele Bavota,et al.  Mining Version Histories for Detecting Code Smells , 2015, IEEE Transactions on Software Engineering.

[2]  Rick Kazman,et al.  The Architect's Role in Community Shepherding , 2016, IEEE Software.

[3]  Kazi Sakib,et al.  Understanding the Evolution of Code Smells by Observing Code Smell Clusters , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[4]  Shane McIntosh,et al.  An Empirical Comparison of Model Validation Techniques for Defect Prediction Models , 2017, IEEE Transactions on Software Engineering.

[5]  Elisabetta Di Nitto,et al.  When Software Architecture Leads to Social Debt , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[6]  Gabriele Bavota,et al.  The Impact of API Change- and Fault-Proneness on the User Ratings of Android Apps , 2015, IEEE Transactions on Software Engineering.

[7]  Premkumar T. Devanbu,et al.  Gender and Tenure Diversity in GitHub Teams , 2015, CHI.

[8]  Sven Apel,et al.  From Developer Networks to Verified Communities: A Fine-Grained Approach , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[9]  J. Ross Quinlan,et al.  Induction of Decision Trees , 1986, Machine Learning.

[10]  Yann-Gaël Guéhéneuc,et al.  Decor: a tool for the detection of design defects , 2007, ASE.

[11]  Gabriele Bavota,et al.  An experimental investigation on the innate relationship between quality and refactoring , 2015, J. Syst. Softw..

[12]  Massimiliano Di Penta,et al.  Combining Quantitative and Qualitative Studies in Empirical Software Engineering Research , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[13]  Philippe Kruchten,et al.  Social debt in software engineering: insights from industry , 2015, Journal of Internet Services and Applications.

[14]  Mario Piattini,et al.  Problems and Solutions in Distributed Software Development: A Systematic Review , 2008, SEAFOOD.

[15]  Andrea De Lucia,et al.  Detecting code smells using machine learning techniques: Are we there yet? , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[16]  Radu Marinescu,et al.  Assessing technical debt by identifying design flaws in software systems , 2012, IBM J. Res. Dev..