← 最新论文
💻 computer science

Can LLMs Produce Better Object-Oriented Designs than Human-Involved Development?

本研究比较了大语言模型前、大语言模型后及纯大语言模型生成的 Java 项目的面向对象设计质量,发现尽管大语言模型生成的代码复杂度较低且代码异味更少,但其往往存在过度简化和职责划分薄弱的问题,这凸显了在分解设计时持续需要人工指导的必要性。

原作者: Zushuai Zhang, Elliott Wen, Ewan Tempero

发布于 2026-05-20
📖 1 分钟阅读☕ 轻松阅读

原作者: Zushuai Zhang, Elliott Wen, Ewan Tempero

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象你是一位受命建造一座复杂房屋的大师建筑师。你有三支不同的团队可供选择来负责实际施工:

  1. 传统卫队(PreAI):经验丰富的建造者,从未使用过计算机助手。他们自己绘制蓝图,并手工完成所有工作。
  2. 混合团队(PostAI):经验丰富的建造者,如今拥有了强大的计算机助手。他们仍然负责绘制蓝图和做出重大决策,但让计算机协助他们砌砖和切割木材。
  3. 机器人团队(PureAI):一支由先进机器人组成的团队,它们只需接收关于房屋的简单口头描述,即可从零开始、端到端地建造整栋房屋,无需人类触碰任何工具。

本文提出了一个简单的问题:哪支团队建造的房屋最好? 具体来说,“机器人团队”所创造的设计是否与人类团队一样好,甚至更好?

实验

研究人员利用一款经典的棋盘游戏Kalah(卡勒)设置了一场“建造挑战”。他们要求三组人员编写一个用于玩该游戏的 Java 软件程序:

  • 第一组(PreAI):2021 年的学生(在 AI 编程工具普及之前)。
  • 第二组(PostAI):2024 年的学生(在 AI 工具普及之后)。
  • 第三组(PureAI):将同样的任务交给三个不同的一流 AI 模型,由它们完全自主生成代码。

他们不仅检查游戏是否能运行,还评估了设计的质量。这就像检查房屋是否具有合理的布局、房间尺寸是否恰当,以及管道是否杂乱无章。

研究发现

1. 机器人团队建造了“更小”的房屋,但它们过于简单

PureAI(机器人) 团队编写的代码在表面上看起来非常整洁。

  • 好消息:它们的代码“异味”(如混乱代码等不良习惯)更少,整体复杂性似乎更低。这就像一栋墙壁很少、空间非常开放的房子。
  • 坏消息:这种简单性实际上是个问题。机器人过度简化了设计。它们没有分别为“玩家”、“棋盘”和“坑洞”(游戏中的洞)建造独立的房间,而是经常将所有内容合并成一两个巨大的房间。
  • 比喻:想象一栋房子,厨房、卧室和浴室都只是一个没有门的大房间。它非常简单且易于清洁(低复杂性),但极不适合居住,因为你无法将不同活动区分开来(“职责分离”不佳)。机器人忽略了使系统易于理解的至关重要的“抽象”(即 distinct 的概念)。

2. 混合团队(PostAI)开始表现得像机器人

2024 年的学生(使用 AI 助手)所构建的系统并不像 PureAI 团队那样“机器人化”,但他们比 2021 年的学生更接近机器人

  • 他们的设计也变得过于简单,缺少了 2021 年学生所包含的一些 distinct“房间”(概念)。
  • 然而,与机器人不同,混合团队的代码实际上比老派学生产生了更多的混乱习惯(代码异味)。似乎当人类尝试修复或编辑机器人生成的代码时,他们有时会在局部引入新的混乱,即使整体结构看起来很简单。

3. “提示词”很重要,但它不是魔杖

研究人员尝试给机器人更具体的指令,例如“确保你为‘玩家’和‘棋盘’分别创建独立的类”。

  • 结果:当指令更具体时,机器人在创建独立的“房间”(概念)方面做得更好。
  • 局限性:即使拥有最好的指令,机器人所构建的房屋质量仍未能完全达到人类设计的水平。它们仍然倾向于过度简化。

核心结论

机器人擅长砌砖,但人类仍需负责绘制蓝图。

该论文得出结论:虽然 AI 能够编写出可运行且外观整洁的代码,但它在面向对象设计宏观层面上存在困难。它倾向于将所有内容混为一谈以追求“简单”,这实际上使得软件在后期更难维护,因为系统的 distinct 部分被丢失了。

  • PureAI(机器人):擅长避免小错误,但不擅长理解宏观结构。
  • PostAI(使用 AI 的人类):开始失去部分结构深度,并且在此过程中有时会使代码变得更加混乱。
  • 教训:如果你使用 AI 编写软件,你必须充当建筑师。你需要明确告诉 AI 如何将问题分解为 distinct 的部分(分解),以及每个部分负责什么。如果你只是说“建造一个游戏”,AI 将构建一个混乱且过度简化的版本,它看起来整洁,但后期难以修复。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →