软件开发人员依靠确定性而蓬勃发展。如果您向程序提供一组输入,您将始终获得相同的输出。在软件历史的大部分时间里,软件完全建立在确定性逻辑的基础上。
我们甚至有一个术语:自上而下的编程。所有算法都遵循一条路径,其分支也基于预期的逻辑。当我们调试代码时,我们会一遍又一遍地沿着相同的路径运行,找到行为偏离预期的地方,并使其回到正轨。
确定性和确定性逻辑适用于许多软件。但现实世界并非如此。相比之下,AI是概率性的。答案从来都不准确。相反,AI使用模型来预测行为,然后生成该行为。
也许描述这一点的最佳方式是传统软件与AI的更新方式。传统软件会获得更新和补丁。AI可以学习、自行进化、理解并吸收用户反馈,无需人工干预。这使得传统软件更加精
通过将AI应用到软件工程中,我们可以两全其美:既精确又灵活的软件。本文将探讨这次合并,以及它对开发人员和工程师以及他们的作品的用户意味着什么。
一、AI与软件工程的融合
如今,开发人员有机会使用AI作为其编码过程的一部分。新的AI工具可帮助创建代码、查找错误、设置测试套件以及生成测试和示例数据。在某些方面,AI可以帮助提高开发人员的工作效率,减少重复性任务所花费的时间,发现缺陷,并帮助经验不足的开发人员像经验丰富的开发人员一样编写代码。
但也有一个缺点:AI是出了名的不可靠。您需要能够检查其工作。AI目前的工作具有明显的信心,即使结果不正确,也使其结果看起来正确。因此,如果您不具备与您要求其处理的主题相关的技能、知识