Table of Contents
Fetching ...

How Do OSS Developers Reuse Architectural Solutions from Q&A Sites: An Empirical Study

Musengamana Jean de Dieu, Peng Liang, Mojtaba Shahin

TL;DR

The paper investigates how OSS developers reuse architectural solutions from Q&A sites, particularly Stack Overflow and SWESE, in real projects. Using a mixed-methods design that combines a mining study of 984 GitHub commits/issues with a survey of 227 practitioners, it identifies 15 architectural problem categories and 7 solution categories reused from SO, with Architectural refactoring, Use of frameworks, and Architectural tactics being most frequent. The study reveals that reuse is often ad hoc—developers convert ideas into code or adapt solutions to their project context—while highlighting challenges such as the time required to adapt solutions and the lack of design context in many posts. The findings offer practical implications for researchers, OSS developers, and Q&A site design, and point to tool-support opportunities (e.g., IDE plugins, semantic search, architecture-to-code automation) to improve credible, context-aware reuse of architectural knowledge from Q&A platforms.

Abstract

Developers reuse programming-related knowledge on Q&A sites 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 and their reuse 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 from 893 OSS projects on GitHub that explicitly referenced architectural solutions from SO and SWESE. For the survey study, we identified practitioners involved in the reuse of these architectural solutions and surveyed 227 of them to further understand how practitioners reuse architectural solutions from Q&A sites in their OSS development. Our findings: (1) OSS practitioners use architectural solutions from Q&A sites to solve a large variety 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 reused to solve those problems, among which Architectural refactoring, Use of frameworks, and Architectural tactic are the three most reused architectural solutions; (3) OSS developers often rely on ad hoc ways (e.g., informal, improvised, or unstructured approaches) to incorporate architectural solutions from SO, drawing on personal experience and intuition rather than standardized or systematic practices; (4) 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.

How Do OSS Developers Reuse Architectural Solutions from Q&A Sites: An Empirical Study

TL;DR

The paper investigates how OSS developers reuse architectural solutions from Q&A sites, particularly Stack Overflow and SWESE, in real projects. Using a mixed-methods design that combines a mining study of 984 GitHub commits/issues with a survey of 227 practitioners, it identifies 15 architectural problem categories and 7 solution categories reused from SO, with Architectural refactoring, Use of frameworks, and Architectural tactics being most frequent. The study reveals that reuse is often ad hoc—developers convert ideas into code or adapt solutions to their project context—while highlighting challenges such as the time required to adapt solutions and the lack of design context in many posts. The findings offer practical implications for researchers, OSS developers, and Q&A site design, and point to tool-support opportunities (e.g., IDE plugins, semantic search, architecture-to-code automation) to improve credible, context-aware reuse of architectural knowledge from Q&A platforms.

Abstract

Developers reuse programming-related knowledge on Q&A sites 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 and their reuse 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 from 893 OSS projects on GitHub that explicitly referenced architectural solutions from SO and SWESE. For the survey study, we identified practitioners involved in the reuse of these architectural solutions and surveyed 227 of them to further understand how practitioners reuse architectural solutions from Q&A sites in their OSS development. Our findings: (1) OSS practitioners use architectural solutions from Q&A sites to solve a large variety 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 reused to solve those problems, among which Architectural refactoring, Use of frameworks, and Architectural tactic are the three most reused architectural solutions; (3) OSS developers often rely on ad hoc ways (e.g., informal, improvised, or unstructured approaches) to incorporate architectural solutions from SO, drawing on personal experience and intuition rather than standardized or systematic practices; (4) 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.
Paper Structure (34 sections, 5 figures, 11 tables)

This paper contains 34 sections, 5 figures, 11 tables.

Figures (5)

  • Figure 1: An issue from GitHub that reuses an architectural solution from SO to structure the application employing the Model-View-Controller-Store (MVCS) architectural pattern in the microjam project.
  • Figure 2: Overview of the research process
  • Figure 3: Geographic distribution of the survey participants
  • Figure 4: Roles of the survey participants
  • Figure 5: Application domains the participants worked on