← 最新论文
💻 computer science

Making Software Meaningful

本文认为,采用对显式含义(定义为领域现象、动作和事实的共享词汇)的承诺,通过对齐利益相关者并将这些概念直接映射到代码和智能体行为,能够增强软件的可用性、模块化程度和可问责性。

原作者: Eagon Meng, Abutalib Namazov, Carmel Schare, Alcino Cunha, Daniel Jackson

发布于 2026-06-10
📖 1 分钟阅读☕ 轻松阅读

原作者: Eagon Meng, Abutalib Namazov, Carmel Schare, Alcino Cunha, Daniel Jackson

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

想象一下,你正试图给一位朋友指路,但你们说的不是同一种语言。你说:“在那个红色的大建筑前左转”,但他们看到的只是一个红色的砖墙,并没有看到什么建筑。他们迷路了,并不是因为他们不擅长听从指令,而是因为你们对世界的共同理解破碎了。

这篇名为**《赋予软件意义》(Making Software Meaningful)**的论文指出,软件开发正面临着完全相同的问题。开发者、用户,甚至软件本身,往往在“软件究竟在做什么”这件事上说着不同的“语言”。作者提出一个简单的解决方案:在编写一行代码之前,先创建一个所有人都能达成共识的、统一的、共享的“意义”词典。

以下是他们思想的拆解,使用了日常类比:

1. 问题所在:“翻译失误”的软件

作者指出,软件之所以充满混乱,是因为当“意义”从用户的思维转移到计算机代码时,其含义会发生丢失。

  • Facebook 的“愤怒”按钮: 当 Facebook 增加“愤怒”反应时,用户认为:“我在表达我很生气。”但计算机代码处理的是:“这条帖子非常有吸引力,把它展示给更多人看!”用户和计算机在点击同一个按钮时,做的是两件不同的事情。
  • 寻找 Bug: 程序员试图修复一个 Bug。他们看到用户点击了一个按钮,但在代码中,那一次点击却变成了一团乱麻,演变成了 50 个隐藏的步骤。这就像是试图在一场雨下了一个小时后,将其中一滴雨水追溯回它最初降落的那朵特定的云。
  • 结果: 用户感到沮丧,因为软件没有按照他们的预期运行。程序员感到沮丧,因为他们找不到代码在哪里崩溃了。

2. 解决方案:一个共享的“动作词汇表”

作者建议我们不要再仅仅把软件视为“代码”,而要将其视为**动作(Actions)、事实(Facts)和个体(Individuals)**的集合。

把它想象成一场戏剧或一场棋类游戏

  • 个体: 玩家(例如:“用户 Alice”、“用户 Bob”)。
  • 动作: 他们做出的移动(例如:“Alice 登录”、“Bob 发布照片”)。
  • 事实: 移动之后棋盘的状态(例如:“Alice 现在处于登录状态”、“照片现在可见”)。

核心思想是在构建软件之前,先写下一本简单的规则手册(即“本体/ontology”),定义这些移动和事实。这本规则手册成为了“事实来源”,让用户、设计师和编码者都能达成共识。

3. 三大核心益处

A. 可用性:消除“执行鸿沟”

当共享词汇存在时,用户“意图要做的事”与“软件实际做到的事”之间的差距就会消失。

  • 类比: 想象一份餐厅菜单。如果菜单上写着“香辣鸡肉”,而厨房端上来的是“温和鸡肉配上一份火焰”,顾客就会感到困惑。如果菜单、厨房和服务员对“香辣鸡肉”的定义完全一致,体验就会非常顺畅。
  • 论文观点: 通过使用户的心理模型与软件的实际行为保持一致,我们能让用户不再需要去猜测按钮的功能。

B. 模块化:像搭乐高,而不是玩泥巴

目前的代码通常像一大团粘在一起的泥巴。如果你想改变其中一部分,可能会不小心破坏另一部分。

  • 类比: 作者提议将代码组织得像 乐高积木 一样。每个“概念”(如“登录”或“发布照片”)都是一块独特的乐高积木。
  • 运作方式: 你不会把“登录”积木和“照片”积木混在一起。你只通过特定的连接器(称为“同步/synchronizations”)将它们拼合在一起。
  • 论文观点: 这使得代码更易于编写、更易于修复,也更容易让 AI(大语言模型)生成,因为 AI 不需要猜测这些部件如何组合,规则已经非常明确了。

C. 可问责性:让“黑盒”变得透明

当 AI 代理代表我们执行任务(如发送邮件或修改代码)时,我们往往不知道它为什么要这样做。

  • 类比: 想象一辆自动驾驶汽车发生了碰撞。如果车仅仅说“我撞了”,这毫无用处。但如果这辆车有一套“行为准则”,规定“只有当我看到红灯时才会刹车”,我们就可以进行审计。它是看到了红灯吗?没有?那么它违反了规则。
  • 论文观点: 通过强制要求 AI 代理遵循一套严格的命名动作和规则,我们可以对其进行审计。我们可以查看“追踪记录”(日志)并指出:“你应该在修改代码前验证假设,但你没做。这就是你失败的原因。”

4. 论文中的现实案例

  • 教学学生: 作者使用一种简单的计算机语言(TypeScript)向学生教授这种方法。学生们利用 AI 来编写代码,但由于“规则”(概念)是清晰的,AI 并未产生混乱。学生们学到了,清晰的规则能让 AI 成为更好的助手,而非危险的存在。
  • 研究型智能体: 他们在进行科学研究的 AI 智能体上测试了这一点。AI 不再只是聊天和猜测,而是必须遵循一套“行为准则”。它必须陈述其假设,进行实验,并将结果记录为一个特定的“事实”。这使得 AI 的工作即使在出错时,也是可读且可信的。

总结

该论文认为,软件的未来不仅仅在于编写更快的代码或更聪明的 AI。它关乎清晰度

如果我们能在构建软件之前,就针对软件“做了什么”(其意义)达成一个简单的、共享的语言,我们就能:

  1. 让用户不再迷失方向。
  2. 让开发者不再受困于纠缠不清的代码。
  3. 让 AI 代理不再是神秘的“黑盒”。

这是从“猜测代码在做什么”向“确切知道软件意味着什么”的转变。

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

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

试用 Digest →