欢迎进 入凯鼎电子官网
语言选项
中文版 English

人工智 能有望从根本上改变软件开发

发布时间:2019-05-21 点击:

新工具 和尖端项目展示了机器学习和高级分析将如何彻底改变软件的设计、测试和部署方式。

我们正 在进入特斯拉人工智能主管Andrej Karpathy所谓的“软件2.0”的时代,在这个时代里,神经网络会编写代码,而人们 的主要工作是定义任务,收集数 据和创建用户界面。

 

但并非 所有任务都可以通过神经网络来解决(至少现在还不行),而传统 的软件开发仍然可以发挥作用。然而,即便如此,人工智能、机器学 习和高级分析正在改变软件的设计、编写、测试和部署方式。

总部位于巴西的TOTVS为大约100,000名企业 客户提供关键的行业软件。例如,其金融 服务解决方案每天处理数万亿美元的交易。

此类应 用需要得到强有力的测试。创建测 试用例的人必须非常慎重地考虑如何设计测试场景,每个测 试场景都要花几个小时来创建。

人工智
能有望从根本上改变软件开发

TOTVS实验室的执行董事Vicente Goetten表示,要跟上步伐并不容易。每个测 试用例都必须定制化,以适合用户界面。应用程 序不断得到重新设计,因此界 面也总是在变化。如果平 台本身发生了变化(例如更 新到更新版本的javaScript时),所有设 计元素都会立即发生变化。

Goetten说:“不妨想 象一下重写成千上万用例的情景。”

因此TOTVS向人工智能求助。TOTVS使用Functionalize这个测试平台,该平台 现在支持测试用例的智能创建。该技术 可以像人一样查看屏幕,从而能 识别输入字段和按钮的位置,而不是 依赖于底层代码。它还可 以提供测试场景和样本数据来对应用程序进行压力测试。

Goetten说:“以前,高级质 量保证人员需要花一天的时间来完成我们所使用的传统解决方案中的测试用例,现在,他们可 以在几分钟内创建相同的测试用例。”

Gotten说,还有就是,FuncTIonalize能理解平直的语言。

他说:“你可以 命令它测试要测试的东西,它会自 动为你创建一个测试用例。这为我 们指明了新的方向。我们不 再需要那么多高级质量确认人员来测试用例。”

即使软 件通过了质量确认,它也并 不总是按预期发挥效用。“就在今天早上,我们获 得了一些已经得到采用的产品数据,而网站 尚不能处理这些数据”,在线家居装修零售商Build.com的高级技术总监Patrick Berry如是说。

我们花 了数百小时来监控Build.com软件的性能,当问题出现时,公司将 软件恢复到之前已知的良好状态,并将其 发送给开发人员以解决问题。

Berry说:“我们面临的问题是,我们编 写的软件变得非常复杂,流量太大,大到任 何人都无法查看现有的所有监控系统,哪怕是 一群人也做不到,他们会说,‘一切都很好’或‘一切都很糟糕,该做点事情了’,软件耗 费了太多时间并放慢了发布速度。我们无 法以足够快的速度为客户创造价值,我们也 没有以足够快的速度向开发人员反馈必须得到补救的事情。”

Berry说:“我们实 际上还没有能写代码的代码,但人工 智能和机器学习在开发方面大有裨益,这实际 上关系到我们是否理解常见模式的好坏利弊。它可以 突显这是一个异常现象,我们可 以回过头来对其进行修复。”

Berry还希望 有更多能利用人工智能的工具相继问世,从而一 开始就能帮各大公司编写更好更安全的代码。

Berry说:“这就是 我们真心希望在开发方面使用人工智能和机器学习的领域——加强这些领域,这些领域人手不足,无法解决问题,比方说,你的代 码库有数百万行代码。你要用 多少人来审计这数百万行代码?我们需 要的是可扩展的解决方案。”

例如,Build.com使用GitHub来存储代码。Berry说:“他们正 在引入某些系统,这些系 统将监控你的代码并向你发出提醒,让你知 道我们使用的第三方库中可能存在的漏洞。”

GitHub的机器学习工程师Omoju MIller说,这是GitHub的一个 活跃的开发领域。Berry说:“我们正 致力于创建各种模型,这些模 型能为常见漏洞和暴露发现(exposures discovery)提供支持。”

Berry说,GitHub刚刚发布了一个工具,这个工 具可以帮开发人员发现他们在代码中意外共享令牌的位置。

 

发现

Miller说,GitHub还致力于开发“帮开发 人员以自然方式发现功能的工具”,有了人工智能,开发人 员就可以根据自己的意图搜寻各种功能。

Miller说:“由于在GitHub的开源 编码平台上使用大量公开代码,机器学 习研究团队在实现这一目标方面取得了重大进展。有了语 义代码搜索的功能,开发人 员就可以增加和简化计算方面解决问题的需求。”

Miller说,这就是说,开发人 员将不再受自身认知的限制,“他们可以利用存储在GitHub上的所 有代码知识来帮忙解决问题。”

ConstellaTIon Research的首席 分析师兼创始人Ray Wang表示,人工智 能技术也出现在静态和动态软件分析工具中。

Wang说:“机器学 习的功能已经很丰富了,比18个月前更加丰富。神经网 络渐渐得到了应用。如今,与其说这是静态分析,不如说是动态分析,但由人 工智能驱动的动态分析将在未来几年出现。”

然而,就从头 开始编写新代码而言,当前的 技术还有待改进,Build.com的Berry如是说。

Berry说:“现在我 们可以使用一些现成的系统,如你的集成开发环境,但这更 像内置模板剪切粘贴得来的。”

但情况开始发生变化。最受欢 迎的集成开发环境(微软的Visual Studio)在4月发布 的最新版本中内置了人工智能代码自动完成功能。微软Visual Studio IntelliCode的高级项目经理Mark Wilson-Thomas表示,该功能 基于数千个开源的GitHub存储库 提供的机器学习。

以Mendix为例,该公司 在长达十年的时间里一直提供积木式的系统,这些系 统可以用来创建各种应用程序。开发人 员将平台上各种可用的功能集中在一起,当这些功能不够用时,他们就使用外部代码。如今,该公司 创建了一个深度学习系统来分析这些模型,考察这 些模型在生产中的表现,看看哪 些模型是最管用并据此来识别各种模式。

Deloitte Cyber的应用 程序安全负责人VikramKunchala说,IT部门依 然十分抗拒这些平台,而业务方又缺乏信心。

Kunchala说:“此刻,对平台 的采用似乎更像是好奇心使然。企业正 在一点点进行对这些平台进行试验。又或者 是他们不得不尽快落实——我们已 经见过这种情况了。但我没 有看到哪个客户将其视作我所了解的企业标准。”

但最大的变化是,企业开 始使用与传统代码毫无联系的应用程序。

比如说,你想创 建一个玩三子棋(TIc-Tac-Toe)的应用程序。你可以 编写规则和游戏策略。对手怎么做,你就怎么做。开发人 员的工作是选择正确的策略并创建惊艳的用户界面。

如果以 击败人类棋手为目的,那么这 种策略适用于三子棋、跳棋、甚至是国际象棋。但是对 于围棋等更高难度的棋类竞技,创建规则并不容易。这时深 度学习和神经网络等人工智能技术就登台亮相了,这些技 术彻底改变了软件开发流程。

开发人 员不是从制定规则开始,而是从收集数据开始——大量的棋类竞技。谷歌根 据人类棋手下的大量棋局来训练系统。由于有了最新的AlphaGo Zero,训练数 据来自系统与自身对弈的棋局,始于随机下子。

只要培 训数据清晰且充分,而且评 估其好坏的标准也十分明确,那么这 种方法就有可能彻底改变软件开发。如今,开发人 员必须努力管理培训数据和评估标准并让系统来编写代码,而不是 弄懂对弈规则并编写对弈规则。

特斯拉 的人工智能主管Andrej Karpathy表示,这正是 特斯拉对自动汽车所采用的方法。

Karpathy在去年 的技术会议主题演讲中说道:“这是一 种全新的软件设计方式。如今,我们不 是毫不隐讳地编写代码,而是积 累和优化数据集,而这些 数据集实际上就是代码。”

例如,因此,特斯拉 驶经隧道时很难判断要不要启动雨刮器。在传统的软件开发中,程序员会查看代码,从而发 现逻辑错误出在哪里。由于有了Software 2.0,开发人 员只要查看数据就可以了。

例如,在这种特殊情况下,穿越隧 道的车辆缺乏训练数据。特斯拉必须上路实测,获得更多数据,对这些数据进行注释,将其添 加到训练数据集并重新运行深度学习算法。

Karpathy说:“我们通 过这种方法使所有问题看起来都一个样子。”

Karpathy补充说,传统的 发展仍有生存空间。目前,这些系 统的用户界面是手动创建的,与其他 平台的集成也仍然是手动完成的。

但随着 越来越多的公司向人工智能求助,用于那 些有大量可用数据和其他低代码平台的应用程序,那么软 件开发的工作将在不久的将来发生巨大变化。

上一篇:自动驾 驶汽车对交通有何影响
下一篇:没有了
深圳市
兴凯鼎电子有限公司

地址:深圳市 龙华区东环一路天汇大厦B栋1028室

QQ:2775887586 TEL:0755-83422736

技术支持:凯鼎电子 粤ICP备16123236号

(c) 2010-2017 K-DING ELECTRONIC CO.,LTD All rights reserved.

友情链接:    鐪熼挶妫嬬墝-瀹樼綉骞冲彴鎵嬫満app   浜戦紟妫嬬墝缃戠珯