Empirical Study of Code Smell Impact on Software Evolution

被引:0
作者
Zhang X.-F. [1 ]
Zhu C. [1 ]
机构
[1] School of Computer Science and Technology, Soochow University, Suzhou
来源
Ruan Jian Xue Bao/Journal of Software | 2019年 / 30卷 / 05期
基金
中国国家自然科学基金;
关键词
Anti-pattern; Code smell; Empirical study; Software evolution; Software maintenance;
D O I
10.13328/j.cnki.jos.005735
中图分类号
学科分类号
摘要
Code smells refer to poor design patterns or design defects that are considered to have negative impacts on software evolution and maintenance. Many researchers have been devoted into studies on these effects and correlations in recent years. Previous researches indicated that code smells might vary with the evolution of software. In normal cases, the software evolution involves addition, modification, and deletion of source files. Therefore, the understanding of the correlations between code smells and software evolution will be helpful for developers in scheduling the development process and in code refactoring. Thus, in this study, on 8 popular Java projects with 104 released versions, an extensive empirical study is conducted to investigate 13 kinds of code smells. It is found that, as the software evolves, the proportion of files that contain code smell in all files reflects different characteristics in different projects. Additionally, the files containing smells are prone to be modified while the smells are not strongly correlated with adding or deleting files. Furthermore, among all the smells studied, some certain ones have significant impact on the file changes and obvious overlap exists in these specific smelly files. These findings are beneficial for developers to achieve in-depth comprehension of code smells, which will lead to better software maintenance. © Copyright 2019, Institute of Software, the Chinese Academy of Sciences. All rights reserved.
引用
收藏
页码:1422 / 1437
页数:15
相关论文
共 31 条
  • [1] Hall T., Zhang M., Bowes D., Sun Y., Some code smells have a significant but small effect on faults, ACM Trans. on Software Engineering and Methodology, 23, 4, (2014)
  • [2] Yamashita A., Moonen L., Do developers care about code smells? An exploratory survey, Proc. of the 201320th Working Conf. on Reverse Engineering (WCRE), pp. 242-251, (2013)
  • [3] Aversano L., Canfora G., Cerulo L., Del Grosso C., Di Penta M., An empirical study on the evolution of design patterns, Proc. of the 6th Joint Meeting of the European Software Engineering Conf. and the ACM SIGSOFT Symp. on the Foundations of Software Engineering (ESEC-FSE 2007), pp. 385-394, (2007)
  • [4] Olbrich S., Cruzes D.S., Basili V., Zazworka N., The evolution and impact of code smells: A case study of two open source systems, Proc. of the 20093rd Int'l Symp. on Empirical Software Engineering and Measurement (ESEM 2009), pp. 390-400, (2009)
  • [5] Olbrich S.M., Cruzes D.S., Sjoberg D.I.K., Are all code smells harmful? A study of god classes and brain classes in the evolution of three open source systems, Proc. of the 2010 IEEE Int'l Conf. on Software Maintenance, pp. 1-10, (2010)
  • [6] Yamashita A., Moonen L., Exploring the impact of inter-smell relations on software maintainability: An empirical study, Proc. of the 201335th Int'l Conf. on Software Engineering (ICSE), pp. 682-691, (2013)
  • [7] Li W., Shatnawi R., An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution, Journal of Systems and Software, 80, 7, pp. 1120-1128, (2007)
  • [8] Marinescu R., Detecting design flaws via metrics in object-oriented systems, Proc. of the 39th Int'l Conf. and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS 39), pp. 173-182, (2001)
  • [9] Marinescu R., Detection strategies: Metrics-based rules for detecting design flaws, Proc. of the 20th IEEE Int'l Conf. on Software Maintenance, pp. 350-359, (2004)
  • [10] Marinescu R., Measurement and quality in object-oriented design, Proc. of the 21st IEEE Int'l Conf. on Software Maintenance (ICSM 2005), pp. 701-704, (2005)