What Do Developers Discuss About Design? Exploring Design Knowledge in Stack Overflow and GitHub
收藏资源简介:
<strong>Note:</strong> Please refer to the README.md file for instructions. <strong>Abstract:</strong> StackOverflow is a rich source of questions and answers---discussions---about software development. One type of discussion concerns software design topics, such as the correct use of design patterns, or best practices in data access. Since design is one of the more abstract topics in software engineering, researchers have long sought to characterize and model design knowledge. However, these approaches typically require significant expert input in order to contextualize the abstract design information. In this study, we explore how the StackOverflow and Software Engineering Stack Exchange (SESE) datasets might serve as a low-cost, contextualized design knowledge repository. We first perform a qualitative analysis of design-tagged StackOverflow and SESE questions and answers to identify the design concepts developers discuss. We find that these codes can be divided into design-specific concepts, such as design patterns or dependency management. We also examine the expected response (such as the correct usage of the pattern) and the purpose for the question (e.g., to resolve an error). We then apply Latent Dirichlet Allocation (LDA) to create a list of design-related topics. Using this LDA model we show how links from existing open-source projects on GitHub can be characterized according to the design question they reference, which may provide a way to extract contextual design information with little or no human intervention.



