Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
126 tokens/sec
GPT-4o
28 tokens/sec
Gemini 2.5 Pro Pro
42 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Understanding Resolution of Multi-Language Bugs: An Empirical Study on Apache Projects (2307.01970v1)

Published 5 Jul 2023 in cs.SE

Abstract: Background: In modern software systems, more and more systems are written in multiple programming languages (PLs). There is no comprehensive investigation on the phenomenon of multi-programming-language (MPL) bugs, which resolution involves source files written in multiple PLs. Aim: This work investigated the characteristics of bug resolution in MPL software systems and explored the reasons why bug resolution involves multiple PLs. Method: We conducted an empirical study on 54 MPL projects selected from 655 Apache OSS projects, of which 66,932 bugs were analyzed. Results: (1) the percentage of MPL bugs (MPLBs) in the selected projects ranges from 0.17% to 42.26%, and the percentage of MPLBs for all projects as a whole is 10.01%; (2) 95.0% and 4.5% of all the MPLBs involve source files written in 2 and 3 PLs, respectively; (3) the change complexity resolution characteristics of MPLBs tend to be higher than those of single-programming-language bugs (SPLBs); (4) the open time for MPLBs is 19.52% to 529.57% significantly longer than SPLBs regarding 9 PL combinations; (5) the reopen rate of bugs involving the PL combination of JavaScript and Python reaches 20.66%; (6) we found 6 causes why the bug resolution involves multiple PLs and identified 5 cross-language calling mechanisms. Conclusion: MPLBs are related to increased development difficulty.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (39)
  1. K. Kontogiannis, P. Linos, and K. Wong, “Comprehension and maintenance of large-scale multi-language software applications,” in Proceedings of the 22nd IEEE International Conference on Software Maintenance (ICSM).   IEEE, 2006, pp. 497–500.
  2. P. Mayer and A. Bauer, “An empirical analysis of the utilization of multiple programming languages in open source projects,” in Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering (EASE), 2015, pp. 1–10.
  3. P. S. Kochhar, D. Wijedasa, and D. Lo, “A large scale study of multiple programming languages and code quality,” in Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol. 1.   IEEE, 2016, pp. 563–573.
  4. M. Abidi, M. S. Rahman, M. Openja, and F. Khomh, “Are multi-language design smells fault-prone? an empirical study,” ACM Transactions on Software Engineering and Methodology, vol. 30, no. 3, pp. 1–56, 2021.
  5. Z. Li, X. Qi, Q. Yu, P. Liang, R. Mo, and C. Yang, “Exploring multi-programming-language commits and their impacts on software quality: An empirical study on apache projects,” Journal of Systems and Software, vol. 194, p. 111508, 2022.
  6. B. Ray, D. Posnett, V. Filkov, and P. Devanbu, “A large scale study of programming languages and code quality in github,” in Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE), 2014, pp. 155–165.
  7. M. Abidi, M. Grichi, and F. Khomh, “Behind the scenes: developers’ perception of multi-language practices,” in Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering (CSSE), 2019, pp. 72–81.
  8. M. Grichi, M. Abidi, F. Jaafar, E. E. Eghan, and B. Adams, “On the impact of interlanguage dependencies in multilanguage systems empirical case study on java native interface applications (jni),” IEEE Transactions on Reliability, vol. 70, no. 1, pp. 428–440, 2020.
  9. Z. Li, S. Wang, W. Wang, P. Liang, R. Mo, and B. Li, “Understanding bugs in multi-language deep learning frameworks,” in Proceedings of the 31th IEEE/ACM International Conference on Program Comprehension (ICPC).   IEEE, 2023.
  10. F. Tomassetti and M. Torchiano, “An empirical assessment of polyglot-ism in github,” in Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering (EASE), 2014, pp. 1–4.
  11. T. F. Bissyandé, F. Thung, D. Lo, L. Jiang, and L. Réveillere, “Popularity, interoperability, and impact of programming languages in 100,000 open source projects,” in Proceedings of the 37th IEEE Annual Computer Software and Applications Conference (COMPSAC).   IEEE, 2013, pp. 303–312.
  12. W. Li, N. Meng, L. Li, and H. Cai, “Understanding language selection in multi-language software projects on github,” in Proceedings of the 43rd IEEE/ACM International Conference on Software Engineering: Companion Proceedings (ICSE-Companion).   IEEE, 2021, pp. 256–257.
  13. L. A. Meyerovich and A. S. Rabkin, “Empirical analysis of programming language adoption,” in Proceedings of the 28th ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA), 2013, pp. 1–18.
  14. P. Mayer, M. Kirsch, and M. A. Le, “On multi-language software development, cross-language links and accompanying tools: a survey of professional software developers,” Journal of Software Engineering Research and Development, vol. 5, no. 1, pp. 1–33, 2017.
  15. S. Lee, H. Lee, and S. Ryu, “Broadening horizons of multilingual static analysis: Semantic summary extraction from c code for jni program analysis,” in Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2020, pp. 127–137.
  16. B. Shen, W. Zhang, A. Yu, Z. Wei, G. Liang, H. Zhao, and Z. Jin, “Cross-language code coupling detection: A preliminary study on android applications,” in Proceedings of the 37th IEEE International Conference on Software Maintenance and Evolution (ICSME).   IEEE, 2021, pp. 378–388.
  17. R. Monat, A. Ouadjaout, and A. Miné, “A multilanguage static analysis of python programs with native c extensions,” in Proceedings of the 28th International Symposium on Static Analysis (SAS).   Springer, 2021, pp. 323–345.
  18. P. Mayer, “A taxonomy of cross-language linking mechanisms in open source frameworks,” Computing, vol. 99, no. 7, pp. 701–724, 2017.
  19. W. Li, L. Li, and H. Cai, “On the vulnerability proneness of multilingual code,” in Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), 2022, pp. 847–859.
  20. P. Bhattacharya and I. Neamtiu, “Assessing programming language impact on development and maintenance: A study on c and c++,” in Proceedings of the 33rd International Conference on Software Engineering (ICSE).   IEEE, 2011, pp. 171–180.
  21. J. M. Zhang, F. Li, D. Hao, M. Wang, H. Tang, L. Zhang, and M. Harman, “A study of bug resolution characteristics in popular programming languages,” IEEE Transactions on Software Engineering, vol. 47, no. 12, pp. 2684–2697, 2019.
  22. Z. Li, P. Liang, D. Li, R. Mo, and B. Li, “Is bug severity in line with bug fixing change complexity?” International Journal of Software Engineering and Knowledge Engineering, vol. 30, no. 11n12, pp. 1779–1800, 2020.
  23. P. Runeson and M. Höst, “Guidelines for conducting and reporting case study research in software engineering,” Empirical Software Engineering, vol. 14, no. 2, pp. 131–164, 2009.
  24. V. R. Basili, “Software modeling and measurement: The goal/question/metric paradigm,” 1992. [Online]. Available: http://drum.lib.umd.edu/bitstream/1903/7538/1/Goal_Question_Metric.pdf
  25. F. Tomassetti, M. Torchiano, and A. Vetro, “Classification of language interactions,” in Proceedings of the 7th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).   IEEE, 2013, pp. 287–290.
  26. “Jira,” [Online], available: https://www.atlassian.com/software/jira.
  27. “Jira api,” [Online], available: https://developer.atlassian.com.
  28. A. E. Hassan, “Predicting faults using the complexity of code changes,” in Proceedings of the 31st International Conference on Software Engineering (ICSE).   IEEE, 2009, pp. 78–88.
  29. G. D. Israel, “Determining sample size,” Florida Cooperative Extension Service, Institute of Food and Agricultural Sciences, University of Florida, Florida, U.S.A, Fact Sheet PEOD-6, November 1992.
  30. J. L. Fleiss and J. Cohen, “The equivalence of weighted kappa and the intraclass correlation coefficient as measures of reliability,” Educational and Psychological Measurement, vol. 33, no. 3, pp. 613–619, 1973.
  31. “Project info,” [Online], available: https://github.com/dry86/ESEM2023-BugInMPLSystems/blob/main/ProjectInfo.pdf.
  32. “Number of pls in mplbs,” [Online], available: https://github.com/dry86/ESEM2023-BugInMPLSystems/blob/main/NumberofPLsinMPLBs(RQ2).pdf.
  33. “Java native interface specification contents,” [Online], available: https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/jniTOC.html.
  34. “Cython documentation,” [Online], available: https://cython.readthedocs.io/en/stable/index.html.
  35. “Thrift tutorial,” [Online], available: https://thrift-tutorial.readthedocs.io/en/latest/index.html.
  36. “Py4j documentation,” [Online], available: https://www.py4j.org/index.html.
  37. “Requests documentation,” [Online], available: https://requests.readthedocs.io/en/stable/.
  38. A. Tagra, H. Zhang, G. K. Rajbahadur, and A. E. Hassan, “Revisiting reopened bugs in open source software systems,” Empirical Software Engineering, vol. 27, no. 4, pp. 1–34, 2022.
  39. “Dataset for understanding resolution of multi-language bugs: An empirical study on apache projects,” [Online], available: https://github.com/dry86/ESEM2023-BugInMPLSystems.
Citations (3)

Summary

We haven't generated a summary for this paper yet.