AI可能彻底改变软件开发业务

来源 :计算机世界 | 被引量 : 0次 | 上传用户:gjzd
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  新工具和前沿项目展示了机器学习和高级分析将如何彻底改变软件的设计、测试和部署方式。
  我们正在进入特斯拉AI主管Andrej Karpathy所称的“软件2.0”时代。在这个时代中,神经网络会编写代码,人类的主要工作是对任务进行定义,收集数据和构建用户界面。
  但并非所有任务都可以通过神经网络来解决,至少现在还不是这样。传统的软件开发仍然可以发挥作用。即便如此,人工智能、机器学习和高级分析正在改变着软件的设计、编写、测试和部署方式。
  测试
  巴西的TOTVS公司正在为约10万名企业客户提供行业关键任务软件。例如,每天其金融服务解决方案会处理数万亿美元的交易。
  此类应用需要进行能力测试。测试用例创建者需要非常慎重地考虑如何设计测试场景。每个测试场景的创建都需要花费几个小时。
  TOTVS实验室执行董事Vicente Goetten表示,跟上發展的步伐是一项重大挑战。每个测试用例都必须针对用户接口进行定制。随着应用程序不断被重新设计,接口总是在变化。如果平台本身发生了变化,例如升级到更新版本的JavaScript时,所有设计元素都会发生变化。Goetten称:“想象一下重新编写成千上万的用例是一种什么样的场景。”
  TOTVS为此不得不求助于人工智能。TOTVS用于测试的平台Functionalize现在支持智能创建测试用例。该技术可以按照人类识别输入字段和按钮的位置来查看屏幕,而不是依赖于底层代码。它们还可以提供测试场景和样本数据来为应用程序加压。
  他说:“以前使用传统解决方案时,一名高级质保人员需要花一天时间才能完成测试用例。现在,他们可以在几分钟内创建相同的测试用例。”
  Gotten说,最新增加的能力是能够理解通俗易懂的英语。“你可以告诉它们测试什么,随后它们会自动为你创建一个测试用例。这为我们打开了一扇新的大门。大大降低了在编写测试用例时对高级质保人员的需求。”
  监控和部署
  就算软件在质保方面达到了预定目标,情况也总不能按预期的那样工作。在线家居装修零售商Build.com的高级技术总监Patrick Berry说:“某天早上,我们已经有了一些新的产品数据,但是网站却还没有做好处理这些数据的准备。”
  Build.com监控在软件性能方面花了数百小时。当问题出现时,公司会将软件恢复到之前已知的良好状态,然后将其发送给开发人员以解决出现的问题。
  Berry说:“我们面临的问题是,编写的软件过于复杂,在流量规模方面,一个人甚至是一个团队都无法查看现有的所有监控系统,无法知道情况是好还是糟糕,亦或是现在应该采取些什么措施。它们耗费了我们太多的时间并拖慢了我们的速度,导致我们无法以足够快的速度获得客户价值,同时我们也无法以足够快的速度向开发人员反馈需要补救的事情。”
  为此,Build.com转向了Harness。Harness为一个软件交付即服务平台,其将性能监控所花费的时间几乎压缩到了零,并且将部署速度提高了20倍。现在,如果出现问题,系统将自动恢复到先前的已知良好状态,并根据内置的机器学习功能将问题发送给相关人员以进行补救。Build.com还考虑在代码开发过程中使用更多的人工智能。
  他说:“我们实际上还没有可用于代码编写的自动化工具。但是人工智能和机器学习可以在开发方面提供帮助,它们实际上能够理解哪些常见模式是好的,哪些是糟糕的。它们可以突出显示异常情况,这样我们可以回过头来展开修复工作。”
  安全
  Berry还希望看到更多工具使用人工智能,以帮助公司首先编写更好、更安全的代码。
  “这就是我们真正希望在开发方面使用人工智能和机器学习的地方。这些领域并不是投入足够的人才就能解决问题的。比方说,你的代码库有数百万行代码。你要投入多少人去审计这数百万行的代码呢?我们需要能够适应这种规模的解决方案。”
  例如,Build.com一直在使用GitHub作为其代码存储库。Berry说:“他们正在引入一些系统,这些系统将监控你的代码并对第三方库中存在的潜在漏洞发出提醒。”
  GitHub的机器学习工程师Omoju Miller表示,这是GitHub的一个活跃的开发领域。“我们正致力于构建支持常见漏洞的模型。”此外,GitHub还在近期发布了一款可以帮助开发人员发现在代码中的哪个地方意外共享令牌的工具。
  发现
  Miller透露,GlerHub还在致力于开发一款工具,“它可以帮助开发人员以自然方式发现一些功能”。通过人工智能,开发人员可以根据自己的意图搜索相关的功能。
  她说:“通过在GitHub的开源编码平台上使用大量公开代码,机器学习研究团队在实现这一目标方面取得了重大进展。通过语义代码搜索,开发人员可以增加和简化解决问题的计算需求。”
  这意味着开发人员将不再受他们的知识限制。“他们可以利用存储在GitHub上的所有代码知识来帮助解决问题。”
  分析
  Constellation Research的创始人兼首席分析师Ray Wang表示,静态和动态软件分析工具都在使用人工智能技术。
  “机器学习能力已经比18个月前更强大了。我们看到神经网络已经在开始使用。现在,静态分析多于比动态分析,但是我们在未来几年会看到由人工智能驱动的动态分析的兴起。“
  开发代码
  在谈到从头开始编写新代码时,Build.com的Berry指出。当前的技术还有待改进。
  他表示:“现在出现了一些系统,但是它们更像是内置模板的剪切和粘贴。”
  但这只是刚开始发生变化。最受欢迎的IDE,微软的Visual Studio,在4月份发布的最新版本中内置了人工智能辅助代码。微软Visual Studio IntelliCode高级项目经理Mark Wilson-Thomas表示,该功能基于对数千个开源GitHub存储库的机器学习。   “我们正在让开源社区代码具有智慧,”微软Visual Studio和Visual Studio Code程序管理合作总监Amanda Silver说。她指出,这也有助于理解常用的使用类别,“在处理不熟悉的代码时,这尤其有用。”
  在最近对IntelliCode用户进行的一项调查显示,超过70%的人表示,与传统的IntelliSense相比,新的由人工智能驱动的IntelliCode让他们感觉更有效率。
  使用这个工具的企业也可以为自己的员工创建自定义的私人模型。她说:“这使得IntelliCode能够说团队或企业的土话,无需将源代码传送给微软。”
  Gartner分析师Svetlana Sicular表示,这种功能是微软购买GitHub的最初原因。
  微软在去年收购的GitHub拥有超过1亿个存储库,其中2500万以上是开源的。 該平台可免费用于公共存储库以及小型私有项目。Sicular称:“GitHub就是一个代码存储库。我认为微软将会用它们生成新的代码。”
  智能应用开发平台
  Build.com的Berry也在密切关注低代码和无代码的发展。他说:“这不是什么新东西。开发人员在开发过程中正在将系统整合在一起。”
  这使得人工智能系统部署变得更加便捷。“例如,针对推荐引擎的预装解决方案让过去棘手的定制解决方案变得很容易。”
  现在,这种低代码方法正变得更加智能,公司不用再浪费时间建立商品系统。 “这让我们有时间进行真正的创新。这些领域正在为我们提供可继续发展的东西,让我们感到非常兴奋。”
  以Mendix为例,该公司花了十年多的时间研发出了一套用于创建应用程序的模块系统。开发人员可以将平台上能够使用的功能选项集中在一起,当这些功能不够时,他们可以为缺失部分链接外部代码。如今该公司已经建立了一套深度学习系统来分析这些模型,查看它们在生产中的行为,看看哪些是最成功的,然后根据这些模型识别相关的模式。
  Deloitte Cyber的应用安全负责人Vikram Kunchala称,IT部门对于使用这些平台目前还存在抵触情绪,与此同时业务部门对此也缺乏信心。
  “企业正在小规模地进行试验,不过我还没有看到任何客户在以企业标准进行部署它们。”
  软件2.0
  但最大的变化是应用程序将与传统代码没有任何联系。
  比如说,你想创建一个玩“井字棋”的应用程序,就可以根据规则和游戏策略来编写程序。一方这么走一步,另一方就那么应一步。开发人员的工作只是选择正确的策略并创建有吸引力的用户界面而已。
  如果目标是要击败人类玩家,这种策略也适用于井字棋、跳棋、甚至国际象棋。但是对于难度更大的游戏,比如围棋,要创建一套规则就非常困难。但如果采用人工智能技术,如深度学习和神经网络,情况就不一样了。
  开发人员不再从规则着手,而是从数据开始,即大量的对弈数据。通过AlphaGo,Google在数千次人类游戏中训练了该系统。在最新版本的AlphaGo Zero中,训练数据是系统对抗自己,随机开始。
  只要培训数据清晰且充分,并且成功或失败的标准也很明确,那么这种方法就有可能彻底颠覆软件开发工作。开发人员现在就必须要致力于管理培训数据和成功标准,将实际编码工作留给系统,而不是试图弄清楚并编写游戏规则。
  特斯拉的AI主管Andrej Karpathy称,这也正是特斯拉在自动驾驶汽车中采用的方法。
  他在去年的技术会议主题演讲中指出,“这是一种全新的软件设计方式。现在,我们不是编写代码,而是积累和整理数据集,这些数据集实际上就是代码。”
  例如,特斯拉的挡风玻璃刮水器在汽车开过隧道时很难知道何时开启和关闭。 在传统的软件开发中,程序员会查看代码以找出错误逻辑的位置。使用软件2.0后,开发人员只需要查看这些数据。
  在这种情况下,关于驾车穿越隧道并没有足够的训练数据可用。特斯拉必须要走出去,以获得更多数据,注释这些数据,然后将其添加到训练数据集中,并重新运行深度学习算法。
  他补充道,传统的开发仍有发展空间。目前,这些系统的用户界面以及与其他平台的集成仍然是手动构建的。
  随着越来越多的企业将人工智能用于那些有着大量可用数据的应用程序和使用低代码平台的应用程序,软件开发工作在不久的将来将会发生巨大变化。
  本文作者Maria Korolov二十多年来一直长期关注新兴科技和新兴市场。
  原文网址
  https://www.cio.com/article/3393180/ai-is-poised-to-radically-transform-software-development.html
其他文献
中国历史源远流长,流传下来了无数动人的历史故事与人物传说。特别是经过历代史家的历史书写、民间百姓的口头传说以及后世文人依据一定历史记忆所形成的历史想象,使得这些历史故事与人物传说变得更加具体,更加形象、深刻。三国时代刘备之孙夫人形象的历史流变即为此例。其最初是以一种没有被正史立传的模糊形象出现的,魏晋以后关于其成为蟂矶娘娘的历史传说逐渐流传并日渐放大。年深日久,由于史书的散佚、文人雅士的艺术创造等
美国非常注意培养中学生解决实际问题的能力,利用历史上的典型案例,通过历史教学来培养学生的决策能力。本文以美国的初中历史教科书《世界》和高中历史教科书《世界历史:与现在的关联》等为例,对此做些介绍,与大家共享。  《世界》在讲到冷战的内容时,利用肯尼迪总统应对古巴导弹危机这一案例,来培养学生解决复杂问题的决策能力。  1962年10月,美国的间谍飞机发现苏联正在古巴修建导弹基地。其距美国佛罗里达南部
【摘要】前资本主义时代游牧世界对农耕世界的三次大冲击的学说,是吴于廑先生“世界史发展纵横”理论的重要组成部分,这个理论不仅否定了长期以来影响巨大的“欧洲中心论”,而且以世界历史发展全局的观点,客观合理地说明了前资本主义时代世界历史的发展过程,弥补了马克思关于前资本主义时代人类历史横向联系的内容,是具有中国特色的世界史宏观理论。  【关键词】吴于廑,中国特色,世界史,理论  【中图分类号】K1 【文
关键词《森林帝国》,森林史学,森林文化  中图分类号 K24 文献标识码 B 文章编号 0457-6241(2018)18-0003-06  阎崇年教授论述清朝历史,冠以“森林”定语,名曰《森林帝国》(北京:三联书店,2018年),别开生面,成为一部具有创造性的学术著作。他的立意不限于阐明清代兴亡史,更在呼吁创建森林文化史学——要從森林文化视角解析中国历史,并且给出东北森林文化广被地区从先秦肃慎到
[摘 要]二战结束后初期,中国国内并没有即刻实现和平。在对华问题上,英国先是准备积极返华,企图恢复在华利益并重建战前英国在华优势地位。但是,由于遭受二战重创后英国实力的相对衰落,美国的刻意排斥,以及国民政府执行排英亲美政策等诸多的原因,最终使英国在返华的实践中遭受重挫。出于利益因素考虑,英国适时地调整其对华策略,主动接受在华屈居美国之后的配角地位,在对华政策上逐渐倾向于执行“不干涉”政策。马歇尔调
2007年高考文综全国卷I第13题为:  史学家陈寅恪在评述“武周之代李唐”的历史意义时说,此“不仅为政治之变迁,实亦社会之革命”。此处“社会之革命”是指  A.重用酷吏,实行法治  B.女皇当政,任用女官  C.扶植庶族,抑制士族  D.移风易俗,推崇佛教  客观地讲,对全国高考而言,这是一道设计非常新颖的材料选择题。陈寅恪是公认的史学大家,又以唐史研究成果最为丰硕,全国高考文综试题考查对他唐史
[关键词]“宋江投降谜案”,探究,研究方法  [中图分类号]G63 [文献标识码]B [文章编号]0457-6241(2008)09-0031-03    在学习人民版高中必修3“中国古典文学的时代特色”后,我设计了一堂材料讨论式探究课——“宋江投降谜案”,前后大约25分钟。  首先出示了第一组材料和问题:  材料一 《宋史·张叔夜传》:“宋江起河朔,转略十郡,官军莫敢撄其锋。声言将至,叔夜使间
摘 要:教学技能是师范生未来成为优秀教师的重要基础。“技—能—艺”,“教学设计、教学实施、教学评价、教学研究”构成“三层四位一体”的教学技能。而提高师范生“三层四位一体”的教学技能,扎实的专业知识是前提,教学实践是保障,其最终目标是促进教师的专业化发展。  关键词:师范生,教学技能,要素  中图分类号:G64 文献标识码:A 文章编号:0457-6241(2013)22-0067-06  2007
机器学习也可能会出现严重错误,让你后悔当初的冲动。  机器学习是如此热门的一类技术,以至于太多的业务和技术主管们急于知道自己的部门怎样才能投身其中。如果做得好,机器学习能够帮助你创建更高效的销售和营销活动,改进财务模型,更容易发现欺诈行为,更好地对设备进行预测性维护,等等。  但是机器学习也可能会出现严重错误,让你后悔当初的冲动。本文借鉴真实企业在机器学习上的实际经验,介绍机器学习可能出错的5种方
摘 要:在传统与现代之间,有人将孙中山看作是个“调适者”(对儒学的态度具有一贯性),有人将其看作是个“矛盾者”(早年晚年表现出不同的取向),他对儒学的态度如何,学界依然存有争论。通过以政治与文化的互动关系为分析维度,试图重构这一历史语境。尽管在表面上,孙中山对儒学的确有过所谓的“离异”与“回归”,但在他的思想深处,却从未抛弃或抗拒过儒学;儒学在他的思想体系中占有重要的位置,而他将“学”与“政”紧密