Using LLMs in Software Design: An Empirical Study of GitHub and A Practitioner Survey
本文提出了一项混合方法实证研究,结合对 291 次 GitHub 对话的挖掘分析与对 65 名从业者的调查,以刻画开发者如何利用大语言模型进行软件设计任务,揭示了九类不同的应用场景、七项关键优势以及六项显著局限,从而凸显了该技术潜力与其实际挑战之间的当前张力。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
将软件设计想象为规划一座庞大而复杂的城市的过程。在砌下第一块砖之前,建筑师必须决定道路走向、建筑如何连接、使用何种材料以及排污系统如何运作。这就是“软件设计”。
几十年来,这项工作完全由人类专家完成。但最近,一种新工具出现了:大型语言模型(LLMs),例如 ChatGPT。可以将这些模型想象为超级聪明、速度极快的实习生,它们几乎阅读了所有关于编程和城市规划的书籍。它们能与你对话、回答问题,甚至绘制蓝图。
本文是一项实地研究,旨在回答一个简单的问题:真实的软件架构师实际上是如何利用这些“超级实习生”来设计他们的“城市”的,效果如何?
研究人员并非凭空猜测,而是考察了两个证据来源:
- “日记”(挖掘研究):他们分析了 GitHub 上分享的 291 次真实对话,其中开发者就设计问题与 ChatGPT 进行了交流。
- “访谈”(调查):他们直接询问了 65 名软件开发者:“你们如何使用这些工具?喜欢或讨厌它们的哪些方面?”
以下是他们的发现,按简单概念分解:
1. “实习生”在做什么工作?(任务)
研究发现,开发者并非仅仅要求 AI 编写单行代码。他们将其用于九种特定类型的设计工作,范围从宏观大局到微观细节:
- 宏观大局(架构):决定城市应是一座巨型建筑,还是由许多小房子组成的集群(微服务)。
- 蓝图(数据模型):设计信息的存储方式,如同整理图书馆的归档系统。
- 交通规则(接口):确定系统各部分如何相互通信。
- 安全检查(安全):规划如何锁好门窗。
- “修复”小组(重构):对陈旧、混乱的设计进行清理和优化。
类比:这就像雇佣了一位能帮你勾勒城市布局、绘制管道图并建议安全闸门的实习生,但你仍需亲自执笔并做出最终决定。
2. 他们如何与“实习生”交流?(交互)
研究人员发现,这并非“一次性”的交互。
- 是对话,而非命令:平均而言,开发者和 AI 为解决单个设计问题会来回交流约 6 次。
- 模式:开发者提出问题,AI 给出答案,开发者说“太模糊了”或“试试这种方式”,然后 AI 再次尝试。
- 焦点:这些对话大多发生在**“详细设计”层面**。这就像争论具体使用哪种砖块或窗户的确切位置,而不是争论整个城市应建在何处。
类比:利用 AI 进行设计,就像用一台有时会迷路的 GPS 导航迷宫。你必须不断纠正它,说“不,这里左转,不是右转”,直到最终找到出口。
3. 超能力是什么?(优势)
开发者报告了七项主要优势,其中前两项是:
- “更好的谷歌”:对于寻找设计思路,AI 通常比传统搜索引擎更快、更有帮助。它像一位知识渊博的图书管理员,能瞬间总结复杂主题。
- “早期预警系统”:AI 在有人开始构建之前,就能惊人地敏锐地发现设计中的缺陷。它可能会说:“嘿,如果你这样构建,以后交通会堵塞”,从而避免团队未来的麻烦。
其他优势还包括帮助新团队成员快速理解项目,以及提出人类未曾想到的新颖创意。
4. 超级弱点是什么?(局限性)
然而,这位“超级实习生”存在一些严重缺陷,使其难以使用:
- “文字墙”问题:AI 经常写得太多。它给出的不是一份清晰的蓝图,而是一篇 50 页的文章。开发者发现这难以阅读且令人沮丧。
- “破碎蓝图”问题:有时 AI 生成的代码或设计纸上谈兵看似完美,但实际运行时却无法工作。这就像建筑师画出了一座外观美丽的桥梁,但一旦放上汽车就会坍塌。
- “失忆”问题:AI 对上下文非常敏感。如果你没有提供足够的项目细节,它可能会产生幻觉(编造内容),或者给出完全适用于另一个城市的建议。
- “文件上传”困境:很难将整个项目文件夹上传给 AI。这就像试图通过逐个朗读街道名称来解释城市布局,而不是展示一张地图。
结论
本文得出结论:LLMs 是出色的“探索者”,但尚未成为“决策者”。
它们非常适合:
- 头脑风暴。
- 检查明显错误。
- 快速学习新概念。
- 起草初步草图。
但它们尚未准备好取代人类架构师。人类仍需验证工作、修复破损部分并做出最终决定。这种关系是一种伙伴关系:AI 提供原材料和建议,而人类提供判断力和最终的润色。
简而言之:在软件设计中使用 LLM,就像拥有一位反应极快、知识渊博但偶尔会幻觉的副驾驶。它能帮助你飞得更快并提前发现风暴,但你仍需手握操纵杆。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。