Using LLMs in Software Design: An Empirical Study of GitHub and A Practitioner Survey
Recent advancements in Large Language Models (LLMs) have demonstrated significant potential across software engineering tasks, including software design, an area traditionally regarded as highly dependent on human expertise and judgment. However, limited research has examined how LLMs are used in software design, aswell as the associated benefits and drawbacks. This paper addresses this gap by empirically investigating how software developers use LLMs in software design. We conducted a mixed-methods study, combining a mining study of 291 developer-ChatGPT conversations shared on GitHub with a survey of 65 software practitioners. From the mined conversations, we identified nine categories of design tasks supported by ChatGPT, including architecture design, data model design, and the use of design patterns.We further characterize developer-ChatGPT interactions, showing that developers in the mined conversations primarily use ChatGPT for knowledge acquisition and designrelated code generation, with most tasks situated at the detailed design level. The survey participants reported seven key benefits, such as better technology selection and early detection of design flaws, and six limitations, including lengthy outputs, inexecutable or incorrect code, and dependence on project context. These findings provide an evidence-based characterization of current LLM use in software design from both open-source and practitioner perspectives.