Studying the Impact of CI/CD Adoption on Atoms of Confusion Distribution and Prevalence in Open-Source Projects

Authors

  • Diego N. Feijó Federal University of Ceará
  • Carlos D. A. de Almeida Federal University of Ceará
  • Lincoln S. Rocha Federal University of Ceará

DOI:

https://doi.org/10.5753/jserd.2024.4118

Keywords:

Software Engineering, Atoms of Confusion, Continuous Integration, Continuous Delivery, Mining Repositories, Open-Source Software

Abstract

Atoms of Confusion (AoC) are indivisible code patterns that may confuse developers when trying to understand them, and that have less confusing equivalent patterns. Previous works suggest it is a good practice to avoid them. While there are studies on AoC relating them to bugs, there is not much about their relationship with the practices of Continuous Integration and Continuous Delivery (CI/CD). Since CI/CD is generally praised as a group of good practices, related to better code being released reliably and faster to clients, there is a possibility that the presence of CI/CD would also impact the presence of AoC, possibly making them less prevalent since they can be problematic to development processes. To clarify this relationship, we analyzed 10 open-source long-lived Java libraries and 10 open-source Java projects for Android, to see if there was any difference in the AoC rate, diffusion, and density before and after the implementation of CI/CD when comparing each project, the average total. We also analyzed the atoms separately, checking for the most and least prevalent. Our results show the metrics have considerably changed for all projects when checked separately, and less so on average, but we could not find a statistically relevant relationship between most of these changes and CI/CD. We found a significant relation when checking the growth rate on one of the metrics. We also found that the most prevalent atom is the Logic as Control Flow, and the least is the Arithmetic as Logic.

Downloads

Download data is not yet available.

References

Almeida, C. D. A. d., Feijó, D. N., and Rocha, L. S. (2022). Studying the impact of continuous delivery adoption on bug-fixing time in apache’s open-source projects. In 2022 IEEE/ACM 19th International Conference on Mining Software Repositories (MSR), pages 132–136.

Bogachenkova, V., Nguyen, L., Ebert, F., Serebrenik, A., and Castor, F. (2022). Evaluating atoms of confusion in the context of code reviews. In 2022 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 404–408.

Castor, F. (2018). Identifying confusing code in swift programs. In VI Workshop on Software Visualization, Evolution and Maintenance.

Chen, L. (2015). Continuous delivery: Huge benefits, but challenges too. IEEE Software, 32(2):50–54.

Costa, J. A. S. d., Gheyi, R., Castor, F., Oliveira, P. R. F. d., Ribeiro, M., and Fonseca, B. (2023). Seeing confusion through a new lens: on the impact of atoms of confusion on novices’ code comprehension. Empirical Software Engineering, 28.

Fairbanks, J., Tharigonda, A., and Eisty, N. U. (2023). Analyzing the effects of ci/cd on open source repositories in github and gitlab. In 2023 IEEE/ACIS 21st International Conference on Software Engineering Research, Management and Applications (SERA).

Feijó, D., de Almeida, C., and Rocha, L. (2023). Studying the impact of continuous delivery adoption on atoms of confusion rate in open-source projects. In Anais do XI Workshop de Visualização, Evolução e Manutenção de Software, pages 6–10, Porto Alegre, RS, Brasil. SBC.

Fowler, M. and Foemmel, M. (2006). Continuous integration. [link]

Gopstein, D., Iannacone, J., Yan, Y., DeLong, L., Zhuang, Y., Yeh, M. K.-C., and Cappos, J. (2017). Understanding misunderstandings in source code. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2017, page 129–139, New York, NY, USA. Association for Computing Machinery.

Gopstein, D., Zhou, H. H., Frankl, P., and Cappos, J. (2018). Prevalence of confusing code in software projects: Atoms of confusion in the wild. In 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR), pages 281–291.

Humble, J. (2017). Continuous delivery sounds great, but will it work here? it’s not magic, it just requires continuous, daily improvement at all levels. Queue, 15(6):57–76.

Humble, J. and Farley, D. (2010). Continuous delivery: reliable software releases through build, test, and deployment automation. Pearson Education.

Itkonen, J., Udd, R., Lassenius, C., and Lehtonen, T. (2016). Perceived benefits of adopting continuous delivery practices. In Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM ’16, New York, NY, USA. Association for Computing Machinery.

Langhout, C. and Aniche, M. (2021). Atoms of confusion in java. In O’Conner, L., editor, 29th IEEE/ACM International Conference on Program Comprehension (ICPC 2021), IEEE International Conference on Program Comprehension, pages 25–35, United States. IEEE. Accepted author manuscript; 2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC) ; Conference date: 20-05-2021 Through 21-05-2021.

Lenarduzzi, V., Taibi, D., Tosi, D., Lavazza, L., and Morasca, S. (2020). Open source software evaluation, selection, and adoption: a systematic literature review. In 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pages 437–444.

Liu, P., Sun, X., Zhao, Y., Liu, Y., Grundy, J., and Li, L. (2023). A first look at ci/cd adoptions in open-source android apps. In Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering, ASE ’22, New York, NY, USA. Association for Computing Machinery.

Mendes, W., Pinheiro, O., Santos, E., Rocha, L., and Viana, W. (2022). Dazed and confused: Studying the prevalence of atoms of confusion in long-lived java libraries. In 2022 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 106–116.

Minelli, R., Mocci, A., and Lanza, M. (2015). I know what you did last summer - an investigation of how developers spend their time. In 2015 IEEE 23rd International Conference on Program Comprehension, pages 25–35.

Pawlak, R., Monperrus, M., Petitprez, N., Noguera, C., and Seinturier, L. (2016). Spoon: A library for implementing analyses and transformations of java source code. Software: Practice and Experience, 46(9):1155–1179.

Pinheiro, O., Rocha, L., and Viana, W. (2023). How they relate and leave: Understanding atoms of confusion in open-source java projects. In 2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM), pages 119–130.

Shahin, M., Ali Babar, M., and Zhu, L. (2017). Continuous integration, delivery and deployment: A systematic review on approaches, tools, challenges and practices. IEEE Access, 5:3909–3943.

Stahl, D., Martensson, T., and Bosch, J. (2017). Continuous practices and devops: beyond the buzz, what does it all mean? In 2017 43rd Euromicro Conference on Software Engineering and Advanced Applications (SEAA), pages 440–448.

Tahsin, N., Fuad, N., and Satter, A. (2023). Prevalence of ‘atoms of confusion’ in open source java systems: An empirical study. Journal of Software: Evolution and Process.

Torres, A., Oliveira, C., Okimoto, M., Marcilio, D., Queiroga, P., Castor, F., Bonifacio, R., Canedo, E., Ribeiro, M., and Monteiro, E. (2023). An investigation of confusing code patterns in javascript. Journal of Systems and Software, 203:111731.

Wohlin, C., Runeson, P., Hst, M., Ohlsson, M. C., Regnell, B., and Wessln, A. (2012). Experimentation in Software Engineering. Springer Publishing Company, Incorporated.

Xia, X., Bao, L., Lo, D., Xing, Z., Hassan, A. E., and Li, S. (2018). Measuring program comprehension: A large-scale field study with professionals. IEEE Transactions on Software Engineering, 44(10):951–976.

Øyvind Hauge, Ayala, C., and Conradi, R. (2010). Adoption of open source software in software-intensive organizations – a systematic literature review. Information and Software Technology, 52(11):1133–1154. Special Section on Best Papers PROMISE 2009.

Downloads

Published

2024-11-18

How to Cite

Feijó, D. N., Almeida, C. D. A. de, & Rocha, L. S. (2024). Studying the Impact of CI/CD Adoption on Atoms of Confusion Distribution and Prevalence in Open-Source Projects. Journal of Software Engineering Research and Development, 12(1), 17:1 – 17:15. https://doi.org/10.5753/jserd.2024.4118

Issue

Section

Research Article