Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
97 tokens/sec
GPT-4o
53 tokens/sec
Gemini 2.5 Pro Pro
43 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
47 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

How Do OSS Developers Utilize Architectural Solutions from Q&A Sites: An Empirical Study (2404.05041v1)

Published 7 Apr 2024 in cs.SE

Abstract: Developers utilize programming-related knowledge (e.g., code snippets) on Q&A sites (e.g., Stack Overflow) that functionally matches the programming problems they encounter in their development. Despite extensive research on Q&A sites, being a high-level and important type of development-related knowledge, architectural solutions (e.g., architecture tactics) and their utilization are rarely explored. To fill this gap, we conducted a mixed-methods study that includes a mining study and a survey study. For the mining study, we mined 984 commits and issues (i.e., 821 commits and 163 issues) from 893 Open-Source Software (OSS) projects on GitHub that explicitly referenced architectural solutions from Stack Overflow (SO) and Software Engineering Stack Exchange (SWESE). For the survey study, we identified practitioners involved in the utilization of these architectural solutions and surveyed 227 of them to further understand how practitioners utilize architectural solutions from Q&A sites in their OSS development. Our main findings are that: (1) OSS practitioners use architectural solutions from Q&A sites to solve a large variety (15 categories) of architectural problems, wherein Component design issue, Architectural anti-pattern, and Security issue are dominant; (2) Seven categories of architectural solutions from Q&A sites have been utilized to solve those problems, among which Architectural refactoring, Use of frameworks, and Architectural tactic are the three most utilized architectural solutions; (3) Using architectural solutions from SO comes with a variety of challenges, e.g., OSS practitioners complain that they need to spend significant time to adapt such architectural solutions to address design concerns raised in their OSS development, and it is challenging to use architectural solutions that are not tailored to the design context of their OSS projects.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (63)
  1. A. Lotter, S. A. Licorish, B. T. R. Savarimuthu, and S. Meldrum, “Code reuse in stack overflow and popular open source java projects,” in Proceedings of the 25th Australasian Software Engineering Conference (ASWEC), pp. 141–150, 2018.
  2. X. Chen, F. Xu, Y. Huang, X. Zhou, and Z. Zheng, “An empirical study of code reuse between github and stack overflow during software development,” Journal of Systems and Software, p. 111964, 2024.
  3. Y. Huang, F. Xu, H. Zhou, X. Chen, X. Zhou, and T. Wang, “Towards exploring the code reuse from stack overflow during software development,” in Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension (ICPC), pp. 548–559, 2022.
  4. Addison-Wesley Professional, 4th ed., 2021.
  5. C. Wohlin, M. Höst, and K. Henningsson, “Empirical research methods in software engineering,” in Empirical Methods and Studies in Software Engineering, ch. 2, pp. 7–23, 2003.
  6. A. Alnusair, M. Rawashdeh, M. A. Hossain, and M. F. Alhamid, “Utilizing semantic techniques for automatic code reuse in software repositories,” in Proceedings of the Workshop on Formal Methods Integration (FMI), pp. 42–62, 2018.
  7. R. Abdalkareem, E. Shihab, and J. Rilling, “On code reuse from stackoverflow: An exploratory study on android apps,” Information and Software Technology, vol. 88, pp. 148–158, 2017.
  8. M. Soliman, M. Wiese, Y. Li, M. Riebisch, and P. Avgeriou, “Exploring web search engines to find architectural knowledge,” in Proceedings of the 18th IEEE International Conference on Software Architecture (ICSA), pp. 162–172, 2021.
  9. S. S. Manes and O. Baysal, “Studying the change histories of stack overflow and github snippets,” in Proceedings of the 18th IEEE/ACM International Conference on Mining Software Repositories (MSR), pp. 283–294, 2021.
  10. Z. Gao, X. Xia, D. Lo, J. Grundy, X. Zhang, and Z. Xing, “I know what you are searching for: Code snippet recommendation from stack overflow posts,” ACM Transactions on Software Engineering and Methodology, vol. 32, no. 3, pp. 1–42, 2023.
  11. D. Wu, X.-Y. Jing, H. Zhang, Y. Zhou, and B. Xu, “Leveraging stack overflow to detect relevant tutorial fragments of apis,” Empirical Software Engineering, vol. 28, no. 1, p. 12, 2023.
  12. M. J. de Dieu, P. Liang, and M. Shahin, “How do developers search for architectural information? an industrial survey,” in Proceedings of the 19th IEEE International Conference on Software Architecture (ICSA), pp. 58–68, 2022.
  13. M. Soliman, M. Galster, A. R. Salama, and M. Riebisch, “Architectural knowledge for technology decisions in developer communities: An exploratory study with StackOverflow,” in Proceedings of the 13th Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 128–133, 2016.
  14. M. Soliman, A. R. Salama, M. Galster, O. Zimmermann, and M. Riebisch, “Improving the search for architecture knowledge in online developer communities,” in Proceedings of the 15th IEEE International Conference on Software Architecture (ICSA), pp. 186–195, 2018.
  15. M. J. de Dieu, P. Liang, M. Shahin, and A. A. Khan, “Characterizing architecture related posts and their usefulness in stack overflow,” Journal of Systems and Software, vol. 198, p. 111608, 2023.
  16. T. Bi, P. Liang, A. Tang, and X. Xia, “Mining architecture tactics and quality attributes knowledge in Stack Overflow,” Journal of Systems and Software, vol. 180, p. 111005, 2021.
  17. A. Jansen and J. Bosch, “Software architecture as a set of architectural design decisions,” in Peoceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 109–120, 2005.
  18. A. Bedjeti, P. Lago, G. A. Lewis, R. de Boer, and R. Hilliard, “Modeling context with an architecture viewpoint,” in Proceedings of the 14th IEEE International Conference on Software Architecture (ICSA), pp. 117–120, 2017.
  19. M. Soliman, M. Riebisch, and U. Zdun, “Enriching architecture knowledge with technology design decisions,” in Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (ICSA), pp. 135–144, 2015.
  20. M. J. de Dieu, P. Liang, M. Shahin, Y. Chen, and L. Zengyang, “Mining architectural information: A systematic mapping study,” Empirical Software Engineering, 2024.
  21. Q. Feng, S. Liu, H. Ji, X. Ma, and P. Liang, “An empirical study of untangling patterns of two-class dependency cycles,” Empirical Software Engineering, vol. 29, no. 2, pp. 1–26, 2024.
  22. C. Y. Baldwin and K. B. Clark, Design Rules: The Power of Modularity. MIT Press, 2000.
  23. John Wiley & Sons, 1996.
  24. L. Bass, M. Klein, and F. Bachmann, “Quality attribute design primitives,” tech. rep., Carnegie-Mellon University, Software Engineering Institute, 2000.
  25. N. B. Harrison and P. Avgeriou, “How do architecture patterns and tactics interact? a model and annotation,” Journal of Systems and Software, vol. 83, no. 10, pp. 1735–1758, 2010.
  26. K. Chinnappan, I. Malavolta, G. A. Lewis, M. Albonico, and P. Lago, “Architectural tactics for energy-aware robotics software: A preliminary study,” in Proceedings of the 15th European Conference on Software Architecture (ECSA), pp. 164–171, 2021.
  27. H. Cervantes and R. Kazman, Designing Software Architectures: A Practical Approach. Addison-Wesley Professional, 2016.
  28. M. Soliman, M. Galster, and M. Riebisch, “Developing an ontology for architecture knowledge from developer communities,” in Proceedings of the 14th IEEE International Conference on Software Architecture (ICSA), pp. 89–92, 2017.
  29. M. Sulír and M. Regeci, “Software engineers’ questions and answers on stack exchange,” in Proceeings of the 16th IEEE International Scientific Conference on Informatics (Informatics), pp. 304–310, 2022.
  30. S. Baltes, R. Kiefer, and S. Diehl, “Attribution required: Stack overflow code snippets in github projects,” in Proceedings of the 39th IEEE/ACM International Conference on Software Engineering Companion (ICSE-C), pp. 161–163, 2017.
  31. D. Yang, P. Martins, V. Saini, and C. Lopes, “Stack overflow in github: Any snippets there?,” in Procedings of the 14th IEEE/ACM International Conference on Mining Software Repositories (MSR), pp. 280–290, 2017.
  32. L. Ponzanelli, G. Bavota, M. Di Penta, R. Oliveto, and M. Lanza, “Mining stackoverflow to turn the ide into a self-confident programming prompter,” in Proceedings of the 11th Working Conference on Mining Software Repositories (MSR), pp. 102–111, 2014.
  33. L. Ponzanelli, G. Bavota, M. Di Penta, R. Oliveto, and M. Lanza, “Prompter: A self-confident recommender system,” in Proceedings of the 30th IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 577–580, 2014.
  34. A. Armaly and C. McMillan, “Pragmatic source code reuse via execution record and replay,” Journal of Software: Evolution and Process, vol. 28, no. 8, pp. 642–664, 2016.
  35. S. Easterbrook, J. Singer, M.-A. Storey, and D. Damian, “Selecting empirical methods for software engineering research,” in Guide to Advanced Empirical Software Engineering, ch. 11, pp. 285–311, 2008.
  36. R. H. Steinegger, D. Deckers, P. Giessler, and S. Abeck, “Risk-based authenticator for web applications,” in Proceedings of the 21st European Conference on Pattern Languages of Programs (EuroPLoP), pp. 1–11, 2016.
  37. Y. Wu, S. Wang, C.-P. Bezemer, and K. Inoue, “How do developers utilize source code from stack overflow?,” Empirical Software Engineering, vol. 24, pp. 637–673, 2019.
  38. K. Petersen and C. Wohlin, “Context in industrial software engineering research,” in Proceedings of the 3rd International Symposium on Empirical Software Engineering and Measurement (ESEM), pp. 401–404, 2009.
  39. C. Ragkhitwetsagul, J. Krinke, M. Paixao, G. Bianco, and R. Oliveto, “Toxic code snippets on stack overflow,” IEEE Transactions on Software Engineering, vol. 47, no. 3, pp. 560–581, 2019.
  40. E. Kalliamvakou, G. Gousios, K. Blincoe, L. Singer, D. M. German, and D. Damian, “The promises and perils of mining github,” in Proceedings of the 11th Working Conference on Mining Software Repositories (MSR), pp. 92–101, 2014.
  41. C. B. Seaman, “Qualitative methods in empirical studies of software engineering,” IEEE Transactions on Software Engineering, vol. 25, no. 4, pp. 557–572, 1999.
  42. J. L. Campbell, C. Quincy, J. Osserman, and O. K. Pedersen, “Coding in-depth semistructured interviews: Problems of unitization and intercoder reliability and agreement,” Sociological Methods & Research, vol. 42, no. 3, pp. 294–320, 2013.
  43. B. A. Kitchenham and S. L. Pfleeger, “Personal opinion surveys,” in Guide to Advanced Empirical Software Engineering, ch. 3, pp. 63–92, Springer, 2008.
  44. https://doi.org/10.5281/zenodo.10936098.
  45. R. Likert, “A technique for the measurement of attitudes,” Archives of Psychology, vol. 22, no. 140, p. 55, 1932.
  46. S. Karthik and N. Medvidovic, “Automatic detection of latent software component relationships from online Q&A sites,” in Proceedings of the 7th IEEE/ACM International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE), pp. 15–21, 2019.
  47. Z. Li, P. Liang, and P. Avgeriou, “Architectural debt management in value-oriented architecting,” in Economics-Driven Software Architecture, pp. 183–204, Elsevier, 2014.
  48. R. Verdecchia, P. Kruchten, and P. Lago, “Architectural technical debt: A grounded theory,” in Proceedings of the 14th European Conference on Software Architecture (ECSA), pp. 202–219, 2020.
  49. B. Liskov, “Keynote address - data abstraction and hierarchy,” in Proceedings of the 2nd Object-Oriented Programming Systems, Languages and Applications (OOPSLA) Addendum, pp. 17–34, 1987.
  50. J. Garcia, D. Popescu, G. Edwards, and N. Medvidovic, “Toward a catalogue of architectural bad smells,” in Proceedings of the 5th International Conference on the Quality of Software Architectures (QoSA), pp. 146–162, 2009.
  51. I. Macia, J. Garcia, D. Popescu, A. Garcia, N. Medvidovic, and A. von Staa, “Are automatically-detected code anomalies relevant to architectural modularity? an exploratory analysis of evolving systems,” in Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development (AOSD), pp. 167–178, 2012.
  52. M. Stal, “Refactoring software architectures,” in Agile Software Architecture, pp. 63–82, Elsevier, 2014.
  53. M. Georgiev, S. Iyengar, S. Jana, R. Anubhai, D. Boneh, and V. Shmatikov, “The most dangerous code in the world: validating ssl certificates in non-browser software,” in Proceedings of the 19th ACM Conference on Computer and Communications Security (CCS), pp. 38–49, 2012.
  54. Z. Li, P. Avgeriou, and P. Liang, “A systematic mapping study on technical debt and its management,” Journal of Systems and Software, vol. 101, pp. 193–220, 2015.
  55. Y. Lin, X. Peng, Y. Cai, D. Dig, D. Zheng, and W. Zhao, “Interactive and guided architectural refactoring with search-based recommendation,” in Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE), pp. 535–546, 2016.
  56. C. Liu, X. Xia, D. Lo, C. Gao, X. Yang, and J. Grundy, “Opportunities and challenges in code search tools,” ACM Computing Surveys, vol. 54, no. 9, p. Article No.: 196, 2021.
  57. Z. Zheng, K. Ning, J. Chen, Y. Wang, W. Chen, L. Guo, and W. Wang, “Towards an understanding of large language models in software engineering tasks,” arXiv preprint arXiv:2308.11396, 2023.
  58. S. Nadi and C. Treude, “Essential sentences for navigating stack overflow answers,” in Proceedings of the 27th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), pp. 229–239, 2020.
  59. M. Nassif, C. Treude, and M. P. Robillard, “Automatically categorizing software technologies,” IEEE Transactions on Software Engineering, vol. 46, no. 1, pp. 20–32, 2018.
  60. 2012.
  61. U. Reja, K. L. Manfreda, V. Hlebec, and V. Vehovar, “Open-ended vs. close-ended questions in web questionnaires,” Developments in Applied Statistics, vol. 19, no. 1, pp. 159–177, 2003.
  62. X.-L. Yang, D. Lo, X. Xia, Z.-Y. Wan, and J.-L. Sun, “What security questions do developers ask? a large-scale study of stack overflow posts,” Journal of Computer Science and Technology, vol. 31, pp. 910–924, 2016.
  63. Z. Wang, T.-H. P. Chen, H. Zhang, and S. Wang, “An empirical study on the challenges that developers encounter when developing apache spark applications,” Journal of Systems and Software, vol. 194, p. 111488, 2022.
User Edit Pencil Streamline Icon: https://streamlinehq.com
Authors (3)
  1. Musengamana Jean de Dieu (5 papers)
  2. Peng Liang (94 papers)
  3. Mojtaba Shahin (54 papers)

Summary

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