Empirical evaluation of code smells in open source projects: preliminary results

Open Source Software (OSS) now plays an important role in various industry domains. OSS is generally developed by highly experienced developers who have multiple perspectives. However, previous studies have indicated that OSS has quality limitations in software maintainability. In general, OSS developers typically focus on achieving the correct functionality. In contrast, in addition to focusing on building software functionality, software engineering practices also focus on the structure of the software and on its maintainability. Code with a well-designed structure is more likely to result in high quality software. To better understand how peer code review can reduce ``code smells" in existing OSS projects, we examined comments from code reviewers that identified code smells in OSS projects. This paper is a proof-of-concept that presents the preliminary results from an analysis of comments we obtained for two OSS projects, OpenStack and WikiMedia, both of which use the code review data repository called Gerrit. The preliminary results of this ongoing research show that code reviewers comment on only a small number of code smells. The full-scale results would contribute to the empirical body of validated knowledge in the field of OSS quality and code review.

[1]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[2]  Aiko Fallas Yamashita,et al.  Do developers care about code smells? An exploratory survey , 2013, 2013 20th Working Conference on Reverse Engineering (WCRE).

[3]  Margaret-Anne D. Storey,et al.  Understanding broadcast based peer review on open source software projects , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[4]  Ying Zhou,et al.  Open source software reliability model , 2005, ACM SIGSOFT Softw. Eng. Notes.

[5]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[6]  J Allan,et al.  Readings in information retrieval. , 1998 .

[7]  Mark Aberdour A people-focused , 2022 .

[8]  Michael I. Jordan,et al.  Latent Dirichlet Allocation , 2001, J. Mach. Learn. Res..

[9]  George A. Miller,et al.  WordNet: A Lexical Database for English , 1995, HLT.

[10]  Christian Bird,et al.  Characteristics of Useful Code Reviews: An Empirical Study at Microsoft , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[11]  Gabriele Bavota,et al.  Do They Really Smell Bad? A Study on Developers' Perception of Bad Code Smells , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[12]  Andy Zaidman,et al.  Modern code reviews in open-source projects: which problems do they fix? , 2014, MSR 2014.

[13]  DongGyun Han,et al.  Writing Acceptable Patches: An Empirical Study of Open Source Project Patches , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.