软件工程3.0前传:AI赋能软件研发
内容来源:软件质量报道
作者:朱少民
今年是软件工程3.0的元年,软件工程3.0宣言也已发布,其软件新范式是ML-DevOps(机器学习驱动研发和运维),更准确地说是LLM-DevOps:大模型驱动开发、大模型驱动运维,但是ML模型包含了大模型,而且解决问题往往需要不同的途径和方法,用“模型”更合适。
(借助AI算法生成测试数据的论文发表数量)
1
基于中文自然语言需求的需求模型(如SysML模型)自动生成
面向机器学习系统的需求建模与决策选择; 用户评论数据的软件需求挖掘或用户反馈分析; GeT2Trace:基于图形化扩展增强学习的需求跟踪恢复技术。
2
在设计上,AI应用相对比较少,毕竟算法缺少抽象能力、跨领域知识等,但它还是可以辅助设计,甚至可以利用机器学习的洞察力,通过 AI 驱动的工作流程探索复杂设计问题的新解决方案,并通过协作和设计融合实现更多的产品创新:
设计生成:使用 AI 技术增强当前产品开发实践,从概念到设计验证都可以指导设计人员(如工具 Altair DesignAI&trade),成倍提高工程团队的生产力,以探索更广泛的客户满意的高性能、有意义且能实施的新产品设计替代方案。
设计探索:使用 AI 驱动的设计工具加强协作、加速设计迭代并推动产品创新。例如,Design Explorer 使用 ML 自动执行重复性任务,直观地为几何体创建和编辑、中间表面提取、表面和中间网格划分、网格质量校正执行直接建模,并进行高效的组装管理和过程指导。
优化设计:从设计微调到设计合成,利用各种信息探索和创造新理念,确定折衷方案并为决策提供支持。仿真技术与设计探索和 ML 相结合,使工程师能够有效应对上市时间的挑战,并帮助团队交付更高性能的产品,在整个开发过程中考虑更多设计维度。例如,Synopsys DSO.ai 的强化学习引擎,可在优化过程中进行智能学习并缩小设计空间。这可以有效优化数万亿的设计方案,从而在设计空间优化中实现更好的结果、加快结果转化速度并降低计算成本
3
基于编程语言表征又分为标识符序列、抽象语法树、控制/数据流图等; 基于统计语言表征又分为N-gram模型、神经网络模型等。
这方面有比较多的案例,例如国内的aiXCoder。
4
AI赋能测试的案例比较多,通过智能化手段增强测试路径生产能力、测试数据特征诊断能力以及测试断言的准确性。多数案例是基于图像识别技术、OCR技术完成图形化界面(GUI)的自动化测试,还有借助AI生成测试代码(知名的工具有EvoSuite)、接口测试参数等。在GUI上,基于计算机视觉识别能力构建UI的功能录制回放、设计还原、性能诊断与线上巡检已慢慢有所沉淀,有代表性的平台包括Test.AI、Applitool、Mabl 、AirTest、AppiumPro、Fastbot、SmartX、RXT、DevEco Studio、PerfDog、GameAISDK等。
5
全面感知系统运维状态的能力,如立体化的实时监控、系统运行日志、告警、历史案例库等; 通过AI算法能力从大量运维数据中提取知识,根据知识下发命令; 系统具备自动化运维能力。
乔梁老师开课啦~视频课程《持续部署训练营(Python版)》, 限时特价!
你的软件开发效率够高吗?质量够好吗?你的团队多长时间才能向用户实时推送一个生产变更?你的软件在发布时,你是否因担心软件交付质量而感到压力倍增?你是否遇到过部署失败,甚至导致停机的情况?持续部署可以帮助你消除软件交付的痛苦,让你能专注于为客户高价值的需求,而不会因为这些交付执行类问题而花太多精力。本课程通过学练结合,理论结合实战,让你体验如何使用构建-测试-部署管道,进行持续部署。并练习如何在有效监控部署的同时,逐步发布功能特性,并作数据库结构变化。
(扫码订阅)