当前位置: 首页 > 科技观察

人工智能正在改变软件开发范式

时间:2023-03-12 18:53:49 科技观察

今天,许多软件开发人员正在使用人工智能技术来帮助编写和审查代码、检测错误、测试软件和优化开发项目。这有助于企业更有效地部署新软件,并使新一代开发人员更容易学习编程。这是研究公司德勤最近发布的一份关于人工智能技术在软件开发中的使用情况的调查报告得出的结论。报告作者DavidSchatsky和??SourabhBumb描述了过去18个月中公司如何推出数十种人工智能软件开发工具。它的市场正在增长。从事软件开发的AI初创公司在2019年获得了7.04亿美元的资金。新工具可以帮助软件开发人员减少工作量,在编写软件时检测错误,并使许多确认软件质量的测试自动化。这在当今越来越依赖开源的时代很重要,开源可能会引入一些错误。虽然有些人担心采用自动化会使程序员失业,但调查作者认为这不太可能。“在很大程度上,这些人工智能工具正在帮助和增强人类的能力,而不是取代它们,”沙茨基说。“这些工具有助于使编码和软件开发民主化,让一些新手程序员填补人才空白,学习新技能。人工智能技术还可以进行代码审查并提供质量保证。”研究公司Forrester2018年的一项研究发现,37%从事软件开发的公司都在使用由人工智能驱动的软件编码工具。Tara、DeepCode、Kite、Functionize和DeepTabNine等许多公司都提供自动化编程服务,并且在到2020年,这个百分比会更高。成功的应用似乎正在加速这一趋势。“除了节省成本和时间之外,许多采用这些AI工具的公司还提高了最终产品的质量,”Schatsky说。德勤的研究表明,人工智能可以帮助缓解软件开发人才的长期短缺。去年,软件质量不佳使美国企业损失了3190亿美元。人工智能的应用有可能缓解这些挑战。德勤的分析师认为人工智能在软件开发的许多阶段都有帮助,包括:项目需求、编码审查、错误检测和解决,以及更多通过测试、部署和专业项目管理。IBM工程师从Watson项目中学到的AI开发经验BillHiggins是IBM的杰出工程师,是IBMWatson开发AI任务组的负责人,拥有20年的软件开发经验。他最近发表了一篇关于人工智能对软件开发的影响的研究论文。希金斯表示,“企业需要摒弃以往开发软件的模式,如果开发人员难以适应,那么企业的适应难度将远大于开发人员。事实证明,企业管理者在人工智能方面的经验不足也是一个优势。因为他必须经历这个学习过程,所以你对需要适应的开发者有更深的理解和共鸣。”他说,为了理解软件开发中的人工智能,他研究了其他人如何应用人工智能(提出问题)以及使用人工智能优于其他替代方案(解决方案)的情况。这对于了解可能发生的情况和避免陷阱很重要。他说,学习人工智能是他在宾夕法尼亚州立大学获得计算机科学学位以来压力最大、最艰难的学习经历。“我很难根据开发人员告诉他们做的事情来重新思考改进软件系统,”他说。IBM开发了一个概念模型来帮助开发人员思考基于人工智能的AI改造,称为AILadder。这个阶梯有四个梯级:收集、组织、分析和注入。大多数企业拥有大量数据,这些数据通常以孤立的IT工作或通过收购进行组织。例如,一个企业可能有20个数据库和3个数据仓库,其中包含冗余和不一致的客户信息。这同样适用于其他数据类型,例如订单、员工和产品信息。“IBM在概念上让AILadder脱离了地面,”希金斯说。在注入阶段,该公司致力于将训练有素的机器学习模型集成到生产系统中,并设计反馈回路,以便根据经验不断改进模型。注入人工智能的一个例子是Netflix推荐系统,它由复杂的机器学习模型提供支持。IBM已经确定了API、预构建机器学习模型和可选工具的组合,用于打包、收集、组织和分析常见机器学习领域的人工智能阶梯(AILadder),例如自然语言理解和虚拟代理对话,视觉识别、语音和企业搜索等。例如,Watson的自然语言理解变得丰富而复杂。机器学习现在擅长理解语言的许多方面,包括概念、概念之间的关系和情感内容。基于机器学习的自然语言处理的NLU服务和研发工具现在可以通过完整的API和支持的SDK提供给开发者。“因此,即使开发人员没有接受过数据科学或机器学习方面的培训,他们现在也可以开始在他们的应用程序中利用某些类型的人工智能,”希金斯说。虽然这并不能消除AI的学习曲线,但确实如此。让它更光滑。”