An Exploratory Study on God Header Files in Open-Source C Projects
PROCEEDINGS OF THE 15TH ASIA-PACIFIC SYMPOSIUM ON INTERNETWARE, INTERNETWARE 2024(2024)
摘要
God Header Files, like God Classes, pose difficulties in code understanding and lead to slow compilation in code evolution. However, there is little empirical evidence on their prevalence and impact. This study aims to investigate God Header Files in open-source C language software projects, in terms of their size, distribution, impact on compilation, and whether existing God Class refactoring approaches can decompose them effectively. We collected and quantitatively analyzed 557 popular open-source C language software projects and their commit histories, focusing on files with large code size, wide impact, and frequent modifications. Then we decomposed several typical header files using graph clustering algorithms and existing God Class refactoring methods. The most important results of our study can be summarized as follows: (1) 37.5% of the studied projects are affected by God Header Files, with 203 projects having 649 God Header Files; (2) 103 of the identified God Header Files have been modified hundreds of times, while 95% of the modifications only involve a small proportion of code. (3) Decomposing God Header Files with generic graph clustering algorithms and God Class refactoring methods could reduce recompilation to some extent during software evolution, but a new solution needs to be proposed in the future. Our study highlights the importance of God Header Files since they are widespread and can be harmful in software maintenance. Decomposition is an effective way to refactor God Header Files but better decomposing algorithms need to be proposed.
更多查看译文
关键词
software maintenance,code refactoring,header file
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
数据免责声明
页面数据均来自互联网公开来源、合作出版商和通过AI技术自动分析结果,我们不对页面数据的有效性、准确性、正确性、可靠性、完整性和及时性做出任何承诺和保证。若有疑问,可以通过电子邮件方式联系我们:report@aminer.cn