4006-998-758
新闻动态

软件工程3.0前传:AI赋能软件研发

2023-05-17

以下文章来源于软件质量报道 ,作者朱少民

软件工程3.0前传:AI赋能软件研发(图1)软件质量报道.

本公众号致力于健康、安全、绿色的软件生态,分享软件质量管理、软件测试的思想、方法、技术与优秀实践,追踪软件质量领域的热点,及时报道软件质量管理的成功案例或质量事故,以及分享深度思考、有温度的技术文章等,努力成为您工作中的朋友。

软件工程3.0前传:AI赋能软件研发(图2)




软件工程3.0前传:AI赋能软件研发(图3)

前言

软件工程3.0前传:AI赋能软件研发(图4)

今年是软件工程3.0的元年,软件工程3.0宣言 也已发布,其软件新范式是ML-DevOps(机器学习驱动研发和运维),更准确地说是LLM-DevOps:大模型驱动开发、大模型驱动运维,但是ML模型包含了大模型,而且解决问题往往需要不同的途径和方法,用“模型”更合适。

软件工程3.0前传:AI赋能软件研发(图5)(软件工程3.0的新范式)

虽然我们把GPT-4的发布作为软件工程3.0的标志性事件,它是有着决定性的力量,但不是一触而就的,在这之前,人们做了大量工作,仅仅就GPT就经过GPT-1、GPT-2、GPT-3、GPT-3.5... 见下面这张图。

软件工程3.0前传:AI赋能软件研发(图6)(GPT的演化历史,来自陆奇演讲PPT)

ChatGPT 中的GPT3.5采用了深度神经网络学习和强化学习,只是基于Transformer序列建模的强化学习,而GPT-4则引入了RLHF(ReinforcementLearning from Human Feedback,人类反馈强化学习)技术。所以,“软件工程3.0前传” 这篇文章,主要是讨论软件工程引入AI的那段历史故事。

说起人工智能和软件工程的关系,我们可以追溯到1950年图灵发表了文章:《计算机器与智能》,在这篇文章中,图灵首次提出图灵测试,人工智能(AI)由此诞生(虽然人们普遍认为1956年是人工智能的元年,因为标志性事件:1956年在美国达特茅斯学院会议上,John McCarthy正式提出“人工智能”的概念,同年成立了国际人工智能联合会,致力于推进人工智能技术的研究和应用)。而将AI应用于软件工程,要迟20多年,例如在软件测试数据生成上,从1976年开始就有这方面的研究,但真正的研究历史应该从1990/1992年开始算。

软件工程3.0前传:AI赋能软件研发(图7)

(借助AI算法生成测试数据的论文发表数量)


01

软件工程3.0前传:AI赋能软件研发(图8)

AI驱动软件

需求挖掘与建模

软件工程3.0前传:AI赋能软件研发(图9)

LLM本身就是大语言模型,未来在需求理解上能发挥很好的作用,而之前AI在软件需求工程实践上应用不多,更多是在学术研究上,华为公司有征集过这方面的研究课题,如 “研究拟基于SysML标准,研究自然语言处理算法、专业领域词库等方法的综合应用,以实现自然语言语料到系统模型的的半自动/自动转换,为基于云的MBSE建模服务提供基础能力支撑”。

这方面的研究及其应用实践主要有:

  • 基于中文自然语言需求的需求模型(如SysML模型)自动生成

  • 面向机器学习系统的需求建模与决策选择;

  • 用户评论数据的软件需求挖掘或用户反馈分析;

  • GeT2Trace:基于图形化扩展增强学习的需求跟踪恢复技术

软件工程3.0前传:AI赋能软件研发(图10)

软件工程3.0前传:AI赋能软件研发(图11)


02

软件工程3.0前传:AI赋能软件研发(图12)

AI驱动软件设计

软件工程3.0前传:AI赋能软件研发(图13)
在设计上,AI应用相对比较少,毕竟算法缺少抽象能力、跨领域知识等,但它还是可以辅助设计,甚至可以利用机器学习的洞察力,通过 AI 驱动的工作流程探索复杂设计问题的新解决方案,并通过协作和设计融合实现更多的产品创新:
  • 设计生成:使用 AI 技术增强当前产品开发实践,从概念到设计验证都可以指导设计人员(如工具 Altair DesignAI&trade),成倍提高工程团队的生产力,以探索更广泛的客户满意的高性能、有意义且能实施的新产品设计替代方案。

  • 设计探索:使用 AI 驱动的设计工具加强协作、加速设计迭代并推动产品创新。例如,Design Explorer 使用 ML 自动执行重复性任务,直观地为几何体创建和编辑、中间表面提取、表面和中间网格划分、网格质量校正执行直接建模,并进行高效的组装管理和过程指导。

  • 优化设计:从设计微调到设计合成,利用各种信息探索和创造新理念,确定折衷方案并为决策提供支持。仿真技术与设计探索和 ML 相结合,使工程师能够有效应对上市时间的挑战,并帮助团队交付更高性能的产品,在整个开发过程中考虑更多设计维度。例如,Synopsys DSO.ai 的强化学习引擎,可在优化过程中进行智能学习并缩小设计空间。这可以有效优化数万亿的设计方案,从而在设计空间优化中实现更好的结果、加快结果转化速度并降低计算成本。

软件工程3.0前传:AI赋能软件研发(图14)
软件工程3.0前传:AI赋能软件研发(图15)

03

软件工程3.0前传:AI赋能软件研发(图16)

AI辅助编程

软件工程3.0前传:AI赋能软件研发(图17)

智能代码补全(intelligent code completion)根据源代码建立语言模型,从语料库学习已有代码特征(基于编程语言表征和基于统计语言表征),根据待补全位置的上下文代码特征在语料库中检索最相似的匹配项进行推荐和预测。相对于传统代码补全,智能代码补全的准确率高、补全形式多且可学习迭代。其中:

  • 基于编程语言表征又分为标识符序列、抽象语法树、控制/数据流图等;
  • 基于统计语言表征又分为N-gram模型、神经网络模型等。

这方面有比较多的案例,例如国内的aiXCoder。


04

软件工程3.0前传:AI赋能软件研发(图18)

AI赋能测试

软件工程3.0前传:AI赋能软件研发(图19)

AI赋能测试的案例比较多,通过智能化手段增强测试路径生产能力、测试数据特征诊断能力以及测试断言的准确性。

多数案例是基于图像识别技术、OCR技术完成图形化界面(GUI)的自动化测试,还有借助AI生成测试代码(知名的工具有EvoSuite)、接口测试参数等。

在GUI上,基于计算机视觉识别能力构建UI的功能录制回放、设计还原、性能诊断与线上巡检已慢慢有所沉淀,有代表性的平台包括Test.AI、Applitool、Mabl 、AirTest、AppiumPro、Fastbot、SmartX、RXT、DevEco Studio、PerfDog、GameAISDK等。


05

软件工程3.0前传:AI赋能软件研发(图20)

AI赋能运维

软件工程3.0前传:AI赋能软件研发(图21)

AI在运维上的能力也比较突出,因为有大数据,所以形成AIOps这样一个大方向,AIOps有三大能力:

  • 全面感知系统运维状态的能力,如立体化的实时监控、系统运行日志、告警、历史案例库等;
  • 通过AI算法能力从大量运维数据中提取知识,根据知识下发命令;
  • 系统具备自动化运维能力。

这里还总结得不够全,但已经足够显示人工智能在软件工程1.0、2.0时代已经发挥了一定的作用,只是在某些点、某些方面表现得还不错。但大模型GPT-4发布之后,则是全面等,甚至我们不用做什么设计、不用写一行代码,程序就可以运行了。

往前看更重要,未来在等着我们。

作者:朱少民

来源:软件质量报道

版权申明:内容仅供分享学习,版权归原创者所有



软件工程3.0前传:AI赋能软件研发(图22)

大咖对话

软件工程3.0前传:AI赋能软件研发(图23)

如果想进一步了解GPT相关内容,请关注5月17日晚8点K+Talk大咖对话,本期K+Talk邀请到lululemon全球客户体验及创新总监/卢嘉俊、Thoughtworks中国区零售行业负责人/李东莲 Doris、海思算法专家/王晓雷以及Thoughtworks创新技术总经理/肖然共同做客直播间,深入探讨“GPT+零售:和时尚零售专家碰撞AIGC在零售行业的无限可能”~

  • 观察:AIGC技术在零售行业的小试牛刀,是否在静悄悄改变“人货场”
  • 挑战:哪些零售行业的规则会彻底被改变?营销?供应链?客服…
  • 解剖:AIGC与LLM大模型会给一件衣服的“一生”带来哪些改变,从设计、生产到购买
  • 眺望:零售企业如何应对AIGC技术的快速发展和应用,如何让技术与员工协同工作,降本增效

软件工程3.0前传:AI赋能软件研发(图24)



软件工程3.0前传:AI赋能软件研发(图25)

未完待续

软件工程3.0前传:AI赋能软件研发(图26)

AiDD峰会两站联动敬请期待!议题提交通道已开启,欢迎大家扫码了解更多内容~

软件工程3.0前传:AI赋能软件研发(图27)

软件工程3.0前传:AI赋能软件研发(图28)

点这里↓↓↓记得关注标星哦~


人才培养、版权课程设计与输出、人才培养体系设计与开发等一系列的人力资本专业服务。本平台致力于为企业提供人才培养方面的内容分享。" data-from="0" data-is_biz_ban="0" data-origin_num="79" data-isban="0" data-biz_account_status="0" data-index="0" style="color: initial;font: initial;font-feature-settings: initial;font-kerning: initial;font-optical-sizing: initial;font-synthesis: initial;font-variation-settings: initial;forced-color-adjust: initial;text-orientation: initial;text-rendering: initial;-webkit-font-smoothing: initial;-webkit-locale: initial;-webkit-text-orientation: initial;-webkit-writing-mode: initial;writing-mode: initial;zoom: initial;accent-color: initial;place-content: initial;place-items: initial;place-self: initial;alignment-baseline: initial;animation: initial;app-region: initial;appearance: initial;aspect-ratio: initial;backdrop-filter: initial;backface-visibility: initial;baseline-shift: initial;block-size: initial;border-block: initial;border: initial;border-radius: initial;border-collapse: initial;border-end-end-radius: initial;border-end-start-radius: initial;border-inline: initial;border-start-end-radius: initial;border-start-start-radius: initial;inset: initial;box-shadow: initial;break-after: initial;break-before: initial;break-inside: initial;buffered-rendering: initial;caption-side: initial;caret-color: initial;clear: initial;clip: initial;clip-path: initial;clip-rule: initial;color-interpolation: initial;color-interpolation-filters: initial;color-rendering: initial;color-scheme: initial;gap: initial;contain: initial;contain-intrinsic-block-size: initial;contain-intrinsic-size: initial;contain-intrinsic-inline-size: initial;content: initial;content-visibility: initial;counter-increment: initial;counter-reset: initial;counter-set: initial;cursor: initial;cx: initial;cy: initial;d: initial;display: initial;dominant-baseline: initial;empty-cells: initial;fill: initial;fill-opacity: initial;fill-rule: initial;filter: initial;flex: initial;flex-flow: initial;float: initial;flood-color: initial;flood-opacity: initial;grid: initial;grid-area: initial;height: initial;hyphens: initial;image-orientation: initial;image-rendering: initial;inline-size: initial;inset-block: initial;inset-inline: initial;isolation: initial;letter-spacing: initial;lighting-color: initial;list-style: initial;margin-block: initial;margin-inline: initial;marker: initial;mask: initial;mask-type: initial;max-block-size: initial;max-height: initial;max-inline-size: initial;max-width: 100%;min-block-size: initial;min-height: initial;min-inline-size: initial;min-width: initial;mix-blend-mode: initial;object-fit: initial;object-position: initial;offset: initial;opacity: initial;order: initial;orphans: initial;outline: 0px;outline-offset: initial;overflow-anchor: initial;overflow-clip-margin: initial;overflow: initial;overscroll-behavior-block: initial;overscroll-behavior-inline: initial;overscroll-behavior: initial;padding-block: initial;padding: 0px;padding-inline: initial;page: initial;page-orientation: initial;paint-order: initial;perspective: initial;perspective-origin: initial;pointer-events: auto;position: initial;quotes: initial;r: initial;resize: initial;rx: initial;ry: initial;scroll-behavior: initial;scroll-margin-block: initial;scroll-margin: initial;scroll-margin-inline: initial;scroll-padding-block: initial;scroll-padding: initial;scroll-padding-inline: initial;scroll-snap-align: initial;scroll-snap-stop: initial;scroll-snap-type: initial;scrollbar-gutter: initial;shape-image-threshold: initial;shape-margin: initial;shape-outside: initial;shape-rendering: initial;speak: initial;stop-color: initial;stop-opacity: initial;stroke: initial;stroke-dasharray: initial;stroke-dashoffset: initial;stroke-linecap: initial;stroke-linejoin: initial;stroke-miterlimit: initial;stroke-opacity: initial;stroke-width: initial;table-layout: initial;text-align: initial;text-align-last: initial;text-anchor: initial;text-combine-upright: initial;text-indent: initial;text-overflow: initial;text-shadow: initial;text-size-adjust: inherit;text-underline-offset: initial;text-underline-position: initial;touch-action: initial;transform: initial;transform-box: initial;transform-origin: initial;transform-style: initial;transition: initial;user-select: initial;vector-effect: initial;vertical-align: initial;visibility: initial;border-spacing: initial;-webkit-border-image: initial;-webkit-box-align: initial;-webkit-box-decoration-break: initial;-webkit-box-direction: initial;-webkit-box-flex: initial;-webkit-box-ordinal-group: initial;-webkit-box-orient: initial;-webkit-box-pack: initial;-webkit-box-reflect: initial;-webkit-highlight: initial;hyphenate-character: initial;-webkit-line-break: initial;-webkit-line-clamp: initial;-webkit-mask-box-image: initial;-webkit-mask: initial;-webkit-mask-composite: initial;-webkit-perspective-origin-x: initial;-webkit-perspective-origin-y: initial;-webkit-print-color-adjust: initial;-webkit-rtl-ordering: initial;-webkit-ruby-position: initial;-webkit-tap-highlight-color: initial;-webkit-text-combine: initial;-webkit-text-decorations-in-effect: initial;text-emphasis: initial;text-emphasis-position: initial;-webkit-text-fill-color: initial;-webkit-text-security: initial;-webkit-text-stroke: initial;-webkit-transform-origin-x: initial;-webkit-transform-origin-y: initial;-webkit-transform-origin-z: initial;-webkit-user-drag: initial;-webkit-user-modify: initial;white-space: initial;widows: initial;width: initial;will-change: initial;word-spacing: initial;x: initial;y: initial;z-index: initial;box-sizing: border-box !important;overflow-wrap: break-word !important">软件工程3.0前传:AI赋能软件研发(图29)中智凯灵中智凯灵是国内领先的专业人力资本服务供应商,为企业提供从人力测评、关键岗位人才培养、版权课程设计与输出、人才培养体系设计与开发等一系列的人力资本专业服务。本平台致力于为企业提供人才培养方面的内容分享。79篇原创内容公众号

软件工程3.0前传:AI赋能软件研发(图30)


返回列表