质量建设创新案例(文末送书)
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在2008年笔者写的《软件工程导论》一书中,相<span style="color: black;">针对</span>传统软件工程,定义了现代软件工程,那时,笔者没能预见到人工智能今天的巨大力量。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">15年后,笔者将受互联网、开源软件运动、敏捷/DevOps<span style="color: black;">研发</span>模式的影响,<span style="color: black;">最后</span>形成的<span style="color: black;">创立</span>在SaaS(Software as a Service,软件即服务)、云之上的软件工程定义为“软件工程2.0”。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">无</span>互联网,就<span style="color: black;">无</span>云和SaaS,<span style="color: black;">咱们</span>就<span style="color: black;">不可</span>将软件<span style="color: black;">安排</span>在自己的数据中心,<span style="color: black;">那样</span><span style="color: black;">连续</span>交付(Continuous Delivery,CD)就<span style="color: black;">无</span><span style="color: black;">道理</span>,<span style="color: black;">由于</span><span style="color: black;">咱们</span><span style="color: black;">没法</span>做到将包装盒形式的软件<span style="color: black;">制品</span><span style="color: black;">连续</span>交付到客户手中,敏捷、DevOps<span style="color: black;">亦</span>就难以实施,虽然<span style="color: black;">能够</span>在内部实现<span style="color: black;">连续</span>集成(Continuous Integration,CI),但其价值会大大降低。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">之后的开源软件运动让<span style="color: black;">咱们</span><span style="color: black;">首要</span>认识到“软件过程”和“软件管理”并非非常重要,<span style="color: black;">最少</span>不是<span style="color: black;">第1</span>要素,<span style="color: black;">由于</span><span style="color: black;">第1</span>要素还是人;其次是软件架构,简单且能解耦,如采用SOA(Service-Oriented Architecture,面向服务的架构)、微服务架构来解耦,更具可扩展性;再者是代码的可读性、可测试性,使代码<span style="color: black;">拥有</span>可<span style="color: black;">守护</span>性,而流程和管理虽然<span style="color: black;">拥有</span>价值,但<span style="color: black;">功效</span>不大。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">随着市场变化越来越快,不确定性<span style="color: black;">加强</span>、市场竞争更加激烈,客户或用户始终<span style="color: black;">期盼</span><span style="color: black;">咱们</span>能够按时交付高质量的<span style="color: black;">制品</span>,<span style="color: black;">同期</span>还<span style="color: black;">期盼</span>软件有灵活性,能够<span style="color: black;">拥有</span>随需应变的能力,<span style="color: black;">亦</span>能够<span style="color: black;">经过</span><span style="color: black;">即时</span>、必要的修改来满足业务的新<span style="color: black;">需要</span>。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">除了<span style="color: black;">思虑</span>开源软件运动、市场<span style="color: black;">原因</span>,软件还是一种知识型<span style="color: black;">制品</span>,软件<span style="color: black;">研发</span>活动是智力活动,需要很高的创造性,并依赖<span style="color: black;">每一个</span><span style="color: black;">研发</span>人员的创造力、主动性等。所有这些都引导人们对软件工程进行新的思考并<span style="color: black;">持续</span>认识软件工程,从而在2001年17位软件<span style="color: black;">研发</span>轻量型流派掌门人联合签署了《敏捷软件<span style="color: black;">研发</span>宣言》,如图2所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图2 敏捷联盟官网的《敏捷软件<span style="color: black;">研发</span>宣言》截图</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">之后<span style="color: black;">逐步</span>形<span style="color: black;">成为了</span>敏捷/DevOps<span style="color: black;">研发</span>模式、精益软件<span style="color: black;">研发</span>模式等,即软件工程进入2.0时代。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">软件工程2.0的特征<span style="color: black;">能够</span>简单概括为下列几点。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(1)SaaS:</span></strong></span><span style="color: black;">软件<span style="color: black;">更加多</span>的是以一种服务存在。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(2)强调价值交付:</span></strong></span><span style="color: black;">只做对用户有价值的事情,加速价值流的流动。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(3)以人为本:</span></strong></span><span style="color: black;">个体与协作<span style="color: black;">强过</span>流程和工具,充分发挥个人和团队的创造性与<span style="color: black;">潜能</span>;拥抱变化,敏捷<span style="color: black;">研发</span>或轻量级过程,加速迭代,以不变应万变。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(4)自我管理的团队:</span></strong></span><span style="color: black;">像一家初创<span style="color: black;">机构</span><span style="color: black;">同样</span>运营,<span style="color: black;">拥有</span>主动性并能够承担<span style="color: black;">危害</span>,<span style="color: black;">拥有</span>自治能力,能自主<span style="color: black;">创立</span><span style="color: black;">目的</span>和制订计划,<span style="color: black;">持续</span>反思,<span style="color: black;">连续</span>改进。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(5)<span style="color: black;">连续</span>性:</span></strong></span><span style="color: black;"><span style="color: black;">周期</span>性不<span style="color: black;">知道</span>,<span style="color: black;">连续</span>构建、<span style="color: black;">连续</span>集成、<span style="color: black;">连续</span>测试、<span style="color: black;">连续</span>交付,以时间换空间,消除市场<span style="color: black;">危害</span>。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(6)<span style="color: black;">研发</span>、测试和运维的融合:</span></strong></span><span style="color: black;">强调测试与<span style="color: black;">研发</span>融合,<span style="color: black;">研发</span>与运维融合,推崇全栈工程师等。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(7)真正把用户放在<span style="color: black;">第1</span>位:</span></strong></span><span style="color: black;">用户、<span style="color: black;">制品</span>经理尽可能参与团队<span style="color: black;">研发</span>过程,注重用户体验,千人千面。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(8)知识管理:</span></strong></span><span style="color: black;">将软件工程纳入知识管理的范畴,强调将项目的计划、估算等工作授权给从事<span style="color: black;">详细</span>工作的<span style="color: black;">研发</span>人员,如任务安排<span style="color: black;">再也不</span>由管理者下达任务,而由<span style="color: black;">研发</span>人员自主<span style="color: black;">选取</span>适合自己的任务。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(9)更有乐趣:</span></strong></span><span style="color: black;">“史诗故事”、用户故事、站会等让软件<span style="color: black;">研发</span>工作更有趣、更健康。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">软件工程3.0</span></strong></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在技术突破和创新<span style="color: black;">办法</span>的推动下,软件工程发展得越来越快,而<span style="color: black;">近期</span>的突破<span style="color: black;">便是</span>GPT-4等人工智能(AI)语言大模型的<span style="color: black;">显现</span>。GPT-4的诞生,<span style="color: black;">大众</span>都很震惊,尤其惊讶于从GPT-3到GPT-4的进化速度。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">GPT-4是一种基于RLHF(Reinforcement Learning from Human Feedback,人类反馈的强化学习)和多模态的语言大模型,比其前身GPT-3.5有<span style="color: black;">明显</span>的改进。GPT-4<span style="color: black;">拥有</span>强大的识图能力,文字输入限制<span style="color: black;">提高</span>至2.5万字,问题回答的准确性<span style="color: black;">明显</span><span style="color: black;">加强</span>。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">因此呢</span>,GPT-4能够执行一系列<span style="color: black;">繁杂</span>的任务,如代码生成、错误检测、软件设计等。正如,谷歌工程主管在<span style="color: black;">文案</span>《程序员的职业生涯将在3年内被AIGC终结》中的观点:“ChatGPT和GitHub Copilot预示着编程终结的<span style="color: black;">起始</span>”“这个<span style="color: black;">行业</span>将<span style="color: black;">出现</span><span style="color: black;">基本</span>性的变化”“当程序员<span style="color: black;">起始</span>被淘汰时,<span style="color: black;">仅有</span>两个角色<span style="color: black;">能够</span><span style="color: black;">保存</span>:<span style="color: black;">制品</span>经理和代码评审人员”,这篇<span style="color: black;">文案</span>是在GPT-4发布前写的,而真正的GPT-4要强大<span style="color: black;">非常多</span>,对软件<span style="color: black;">研发</span>的影响会更为<span style="color: black;">明显</span>。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">思虑</span>到软件工程的发展速度,在不久的将来,<span style="color: black;">乃至</span>从今天<span style="color: black;">起始</span>,AI就<span style="color: black;">起始</span><span style="color: black;">逐步</span>接手<span style="color: black;">有些</span>软件<span style="color: black;">研发</span>的工作。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">随着将GPT-4+(指GPT-4及其未来升级的版本)融入软件<span style="color: black;">研发</span>生命周期中,<span style="color: black;">研发</span>人员的使命将会<span style="color: black;">出现</span>变化,<span style="color: black;">由于</span>GPT-4+重新定义了<span style="color: black;">研发</span>人员构建、<span style="color: black;">守护</span>和改进软件应用程序的方式。之后的软件<span style="color: black;">研发</span>会依赖这种全新的语言交流方式(类似于ChatGPT),让这类工具理解<span style="color: black;">研发</span>人员交代的任务,自主完成软件<span style="color: black;">研发</span>,如理解<span style="color: black;">需要</span>、自动生成UI、自动生成<span style="color: black;">制品</span>代码、自动生成测试脚本等。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">此后,<span style="color: black;">研发</span>团队的<span style="color: black;">重点</span>任务<span style="color: black;">再也不</span>是写代码、执行测试,而是训练模型、参数调优、围绕业务主题提问或给出提示。<span style="color: black;">因此呢</span>,<span style="color: black;">咱们</span>说GPT-4将开启“软件工程3.0”新时代,2023年是软件工程3.0的元年,软件工程3个时代的划分如图3所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图3 软件工程3个时代的划分</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">先<span style="color: black;">瞧瞧</span>GPT-4自己是<span style="color: black;">怎样</span>说的,如图4所示。但笔者经过简单的实验,认为它能做的事比它说的要多。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">下面展示<span style="color: black;">日前</span>GPT-4在软件<span style="color: black;">研发</span><span style="color: black;">行业</span>所能做的<span style="color: black;">有些</span>工作,顺着这条思路<span style="color: black;">咱们</span>想象一下软件工程3.0是<span style="color: black;">怎么样</span>的一番景象:</span><span style="color: black;"><span style="color: black;">有些</span>大厂之前有好几万名<span style="color: black;">研发</span>人员,<span style="color: black;">将来</span>可能<span style="color: black;">仅有</span>几千人;借助其强大的私有云平台,软件<span style="color: black;">研发</span>效能<span style="color: black;">能够</span>真正实现十倍增长,降本增效<span style="color: black;">再也不</span>是<span style="color: black;">机构</span>的核心问题(<span style="color: black;">由于</span><span style="color: black;">已然</span>得到了彻底<span style="color: black;">处理</span>)。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图4 GPT-4在软件工程上的能力</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">1)软件<span style="color: black;">需要</span>获取、分析与定义</span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">GPT-4在<span style="color: black;">需要</span>获取、<span style="color: black;">需要</span>挖掘、<span style="color: black;">需要</span>分析和<span style="color: black;">需要</span>定义的各个环节,都能扮演比较重要的角色,<span style="color: black;">能够</span>基于用户评论数据挖掘软件<span style="color: black;">需要</span>和应用场景,<span style="color: black;">帮忙</span><span style="color: black;">咱们</span>完成<span style="color: black;">需要</span>建模或做出决策,<span style="color: black;">最后</span>生成<span style="color: black;">需要</span>文档,如图5所示。虽然GPT-4<span style="color: black;">不可</span>完全<span style="color: black;">处理</span><span style="color: black;">需要</span>工程中所有的问题,但能<span style="color: black;">帮忙</span><span style="color: black;">咱们</span>节省60%以上的工作量。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图5 GPT-4在<span style="color: black;">需要</span>分析上的能力</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">GPT-4<span style="color: black;">能够</span>基于简单的描述帮<span style="color: black;">咱们</span>完成基本功能分析,如图6所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图6 GPT-4基于描述进行基本功能分析</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">进一步,GPT-4<span style="color: black;">亦</span><span style="color: black;">能够</span>基于<span style="color: black;">需要</span>生成验收标准,如图7所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图7 GPT-4基于<span style="color: black;">需要</span>生成验收标准</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">还能<span style="color: black;">按照</span><span style="color: black;">需要</span>验收标准生成BDD(Behavior-Driven Development,<span style="color: black;">行径</span>驱动<span style="color: black;">研发</span>)标准的GWT(Given-When-Then)格式的<span style="color: black;">需要</span>,如图8所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图8 基于<span style="color: black;">需要</span>验收标准生成BDD标准的GWT格式的<span style="color: black;">需要</span></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">2)软件设计与体系结构</span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">GPT-4<span style="color: black;">经过</span><span style="color: black;">供给</span><span style="color: black;">意见</span>、识别设计模式、分析和优化软件体系结构,以及分享最佳实践和框架方面的知识,为软件<span style="color: black;">研发</span>人员(如架构师)<span style="color: black;">供给</span>有价值的<span style="color: black;">帮忙</span>,从而<span style="color: black;">帮忙</span><span style="color: black;">她们</span>做出明智的决策、<span style="color: black;">选取</span>最佳的体系结构并制定健壮的<span style="color: black;">处理</span><span style="color: black;">方法</span>,即创建可伸缩、可<span style="color: black;">守护</span>和<span style="color: black;">有效</span>的软件<span style="color: black;">处理</span><span style="color: black;">方法</span>,以满足软件的特定<span style="color: black;">需要</span>。<span style="color: black;">另外</span>,GPT-4<span style="color: black;">能够</span>促进<span style="color: black;">区别</span>设计选项的<span style="color: black;">评定</span>和比较,<span style="color: black;">保证</span><span style="color: black;">研发</span>人员<span style="color: black;">选取</span>最合适的演化路径。<span style="color: black;">详细</span>地说,GPT-4在软件架构设计上<span style="color: black;">能够</span><span style="color: black;">经过</span>以下几种方式<span style="color: black;">帮忙</span>软件<span style="color: black;">研发</span>人员。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(1)<span style="color: black;">供给</span><span style="color: black;">意见</span>:</span></strong></span><span style="color: black;"><span style="color: black;">按照</span><span style="color: black;">需要</span>和约束等自然语言输入对软件架构<span style="color: black;">供给</span><span style="color: black;">意见</span>,这些<span style="color: black;">意见</span><span style="color: black;">能够</span><span style="color: black;">帮忙</span><span style="color: black;">研发</span>人员针对待<span style="color: black;">研发</span>软件架构做出明智的决策。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(2)识别设计模式:</span></strong></span><span style="color: black;"><span style="color: black;">按照</span>自然语言输入识别软件架构中的<span style="color: black;">平常</span>设计模式,<span style="color: black;">帮忙</span><span style="color: black;">研发</span>人员识别潜在的问题并改进软件的整体设计。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(3)分析和优化软件架构:</span></strong></span><span style="color: black;"><span style="color: black;">经过</span>分析软件架构并<span style="color: black;">按照</span>自然语言输入提出优化<span style="color: black;">意见</span>,<span style="color: black;">帮忙</span><span style="color: black;">研发</span>人员改进其软件的性能、可伸缩性和可<span style="color: black;">守护</span>性等。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(4)知识共享:</span></strong></span><span style="color: black;"><span style="color: black;">供给</span><span style="color: black;">相关</span>软件体系结构的最佳实践、模式和框架的信息,<span style="color: black;">帮忙</span><span style="color: black;">研发</span>人员跟上软件体系结构的最新趋势,<span style="color: black;">加强</span>在该<span style="color: black;">行业</span>的整体水平。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">随着多模态技术的发展,大模型GPT-4<span style="color: black;">能够</span>直接读入设计草图,或<span style="color: black;">帮忙</span><span style="color: black;">咱们</span>理解图形用户界面、解答关于UI设计的问题,并<span style="color: black;">供给</span>设计<span style="color: black;">意见</span>,<span style="color: black;">帮忙</span><span style="color: black;">咱们</span>做出更好的设计。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">3)代码生成和优化</span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在编程上,大模型更<span style="color: black;">善于</span>代码生成、代码补全、代码评审、代码优化等工作。<span style="color: black;">因为</span>开源代码的数据量大、质量高(毕竟要符合代码语法和代码规范),<span style="color: black;">因此呢</span>模型生成内容的质量自然很高,符合“高质量输入、高质量输出”的标准。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">GPT-4能<span style="color: black;">按照</span>自然语言输入的<span style="color: black;">需要</span>及其上下文生成代码,<span style="color: black;">况且</span><span style="color: black;">能够</span>用<span style="color: black;">区别</span>的编程语言生成相应的代码段、API(Application Programming Interface,应用程序接口),<span style="color: black;">乃至</span><span style="color: black;">全部</span>软件模块。它<span style="color: black;">能够</span><span style="color: black;">帮忙</span><span style="color: black;">研发</span>人员<span style="color: black;">容易</span>创建<span style="color: black;">繁杂</span>的应用程序,<span style="color: black;">乃至</span>还<span style="color: black;">能够</span><span style="color: black;">帮忙</span><span style="color: black;">她们</span>按敏捷<span style="color: black;">研发</span>模式推崇的TDD(Test-Driven Development,测试驱动<span style="color: black;">研发</span>)方式完成代码的实现,并支持快速原型化和概念验证<span style="color: black;">研发</span>。<span style="color: black;">这般</span><span style="color: black;">能够</span><span style="color: black;">极重</span>地减少人工编码所花费的时间和精力。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">4)测试用例和测试代码等生成</span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">做为</span>一种人工智能语言模型,GPT<span style="color: black;">能够</span>基于自然语言输入生成测试用例,这些测试用例涵盖了基于所接收到的自然语言输入的广泛场景,<span style="color: black;">乃至</span><span style="color: black;">能够</span><span style="color: black;">帮忙</span>识别需要测试的边缘<span style="color: black;">状况</span>和潜在的边界<span style="color: black;">要求</span>,以<span style="color: black;">保证</span>软件能充分地满足<span style="color: black;">需要</span>。虽然它<span style="color: black;">不可</span><span style="color: black;">保准</span>能生成所有可能的测试用例,但<span style="color: black;">海量</span>的实验<span style="color: black;">显示</span>这方面的效果不错,<span style="color: black;">能够</span>详见在“软件质量<span style="color: black;">报告</span>”公众号上<span style="color: black;">发布</span>的<span style="color: black;">文案</span>《又一次被震惊:从生成和细化<span style="color: black;">需要</span>到应用<span style="color: black;">各样</span><span style="color: black;">办法</span>设计测试用例》,<span style="color: black;">文案</span>中展示了GPT-4<span style="color: black;">能够</span>基于<span style="color: black;">需要</span>生成测试用例,并<span style="color: black;">经过</span>提示让GPT-4<span style="color: black;">持续</span><span style="color: black;">弥补</span>或完善测试用例,<span style="color: black;">况且</span>还<span style="color: black;">能够</span>让GPT-4基于<span style="color: black;">区别</span>的设计<span style="color: black;">办法</span>(如等价类划分、边界值分析、决策表、因果图、正交<span style="color: black;">实验</span>法等)生成测试用例。例如,利用正交<span style="color: black;">实验</span>法,列出因子、水平数,<span style="color: black;">选取</span>一个L9(32)正交表,生成8条测试用例。虽然GPT-4<span style="color: black;">不可</span>画因果图,但能正确地运用这种<span style="color: black;">办法</span>生成有效的测试用例,如下所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因果图<span style="color: black;">办法</span>是一种测试设计技术,<span style="color: black;">经过</span>分析输入<span style="color: black;">要求</span>和输出结果之间的因果关系来设计测试用例。以下是<span style="color: black;">运用</span>因果图<span style="color: black;">办法</span>为<span style="color: black;">文案</span>发布功能设计的测试用例。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">1. 确定输入<span style="color: black;">要求</span>(因子):</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">1)标题:有效/无效(超过长度限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">2)摘要:有效/无效(超过长度限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">3)正文:有效/无效(超过长度限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">4)标签:有效/无效(超过长度限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">5)封面<span style="color: black;">照片</span>:有效/无效(非<span style="color: black;">照片</span>格式或超过<span style="color: black;">体积</span>限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">2. 确定输出结果:</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">1)发布成功提示信息</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">2)发布失败提示信息</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">3)生成的<span style="color: black;">文案</span>详情</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">3. 分析输入<span style="color: black;">要求</span>与输出结果之间的因果关系,并设计测试用例如下。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例1:正确的标题和正文</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,有效正文</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布成功提示信息,生成的<span style="color: black;">文案</span>详情</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例2:标题超过长度限制</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:无效标题(超过长度限制),有效正文</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布失败提示信息</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例3:正文超过长度限制</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,无效正文(超过长度限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布失败提示信息</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例4:有效摘要</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,有效正文,有效摘要</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布成功提示信息,生成的<span style="color: black;">文案</span>详情<span style="color: black;">包括</span>摘要</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例5:摘要超过长度限制</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,有效正文,无效摘要(超过长度限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布失败提示信息</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例6:有效标签</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,有效正文,有效标签</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布成功提示信息,生成的<span style="color: black;">文案</span>详情<span style="color: black;">包括</span>标签</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例7:标签超过长度限制</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,有效正文,无效标签(超过长度限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布失败提示信息</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例8:有效封面<span style="color: black;">照片</span></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,有效正文,有效封面<span style="color: black;">照片</span></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布成功提示信息,生成的<span style="color: black;">文案</span>详情<span style="color: black;">包括</span>封面<span style="color: black;">照片</span></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">测试用例9:无效封面<span style="color: black;">照片</span></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输入:有效标题,有效正文,无效封面<span style="color: black;">照片</span>(非<span style="color: black;">照片</span>格式或超过<span style="color: black;">体积</span>限制)</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">● 输出:发布失败提示信息</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">经过</span>基于因果图<span style="color: black;">办法</span>设计的这些测试用例,<span style="color: black;">咱们</span><span style="color: black;">能够</span>全面地测试<span style="color: black;">文案</span>发布功能。<span style="color: black;">倘若</span>您还有其他<span style="color: black;">需要</span>,请随时告诉我。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">生成测试脚本<span style="color: black;">亦</span>是GPT-4的强项,在SauceLabs的<span style="color: black;">文案</span>“ChatGPT for Automated Testing: From Conversation to Code”(《自动化测试<span style="color: black;">运用</span>ChatGPT:从对话到代码》)所介绍的实验中,<span style="color: black;">能够</span>让GPT-4生成谷歌站点测试的脚本。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">虽然提示中<span style="color: black;">无</span><span style="color: black;">知道</span>说明要在网站上测试什么,但ChatGPT仍然生<span style="color: black;">成为了</span>一个脚本来测试谷歌网站的<span style="color: black;">重点</span>功能之一——“搜索功能”,<span style="color: black;">乃至</span>正确识别出谷歌搜索栏的名<span style="color: black;">叫作</span>“q”。进一步,这个实验指示ChatGPT<span style="color: black;">能够</span>为元素定位器<span style="color: black;">运用</span>页面对象模型和类变量,还<span style="color: black;">能够</span>生成与某工具平台(如Sauce Labs)兼容的测试脚本。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">最后,ChatGPT<span style="color: black;">能够</span>消除测试脚本中的硬编码(如URL、用户名“username”和<span style="color: black;">秘码</span>“password”),从场景特性文件中获取变量,即参数化脚本(数据驱动脚本),使脚本<span style="color: black;">更易</span>被<span style="color: black;">守护</span>,如图9所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">将测试脚本从一个平台迁移到另一个平台<span style="color: black;">亦</span>是大模型的强项,如同翻译,例如GPT-4比较<span style="color: black;">容易</span>地完成测试脚本从Cypress 迁移到 Playwright。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图9 ChatGPT写出参数化(数据驱动)的测试脚本</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">5)错误检测和<span style="color: black;">处理</span></span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">GPT-4在代码分析和理解方面的能力使其<span style="color: black;">作为</span>检测和<span style="color: black;">处理</span>软件应用程序错误非常有价值的工具。<span style="color: black;">经过</span>仔细<span style="color: black;">检测</span>代码片段和理解上下文,GPT-4<span style="color: black;">能够</span>识别错误并给出最佳<span style="color: black;">处理</span><span style="color: black;">方法</span>,<span style="color: black;">乃至</span><span style="color: black;">能够</span>为现有问题生成补丁。这种功能<span style="color: black;">极重</span>地加快了调试过程,并<span style="color: black;">保证</span>软件<span style="color: black;">制品</span>更加<span style="color: black;">靠谱</span>和安全。<span style="color: black;">另外</span>,GPT-4<span style="color: black;">能够</span>与<span style="color: black;">连续</span>集成和<span style="color: black;">连续</span><span style="color: black;">安排</span>(CI/CD)流水线集成,以<span style="color: black;">加强</span>自动化测试并促进<span style="color: black;">连续</span>地交付软件,如图10所示。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图10 CI/CD集成GPT-4能力的截图</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">6)协作和知识共享</span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在当今快节奏和相互<span style="color: black;">相关</span>的<span style="color: black;">研发</span>环境中,协作和知识共享比以往任何时候都更加重要。GPT-4<span style="color: black;">经过</span>在团队讨论、头脑风暴会议和代码审查<span style="color: black;">时期</span><span style="color: black;">供给</span>实时<span style="color: black;">帮忙</span>,能形成会议纪要和总结,能理清楚<span style="color: black;">规律</span>和<span style="color: black;">发掘</span>问题,并提供有价值的见解和<span style="color: black;">意见</span>的替代<span style="color: black;">办法</span>,<span style="color: black;">乃至</span>能从其庞大的知识库中<span style="color: black;">供给</span><span style="color: black;">关联</span>示例。这种人工智能驱动的协作<span style="color: black;">加强</span>了团队生产力,培养了团队<span style="color: black;">连续</span>学习的文化,并为创新铺平了道路。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">总结:</span></strong></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">GPT-4+支持更智能、更<span style="color: black;">有效</span>和协作的<span style="color: black;">研发</span><span style="color: black;">办法</span>,给软件工程<span style="color: black;">行业</span>带来了革命性的变化。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在进入软件工程3.0后,软件<span style="color: black;">研发</span>的范式<span style="color: black;">亦</span><span style="color: black;">出现</span>了很大的变化。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">软件<span style="color: black;">研发</span>的新范式是模型驱动<span style="color: black;">研发</span>、模型驱动运维,在DevOps两环前面,加一个环形成三环联动,如图11所示,其中<span style="color: black;">设备</span>学习(Machine Learning,ML)中的要素有模型(Model)、数据(Data),而<span style="color: black;">开发</span>经过计划(Plan)、创建(Create)、验证(Verify)、打包(Package)、发布(Release)等环节进入运维,运维有两个关键环节:配置(Configure)和监控(Monitor)。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">图11 软件工程3.0<span style="color: black;">研发</span>范式示意图</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">由此<span style="color: black;">咱们</span><span style="color: black;">能够</span>看到,在软件工程3.0时代,软件即模型(Software as a Model,SaaM),</span></strong></span><span style="color: black;">这个模型<span style="color: black;">区别</span>于过去软件工程1.0 或软件工程2.0时代所谈到的抽象模型[(如UML中的模型、OMG(Object Management Group,对象管理组织)]所提的模型驱动架构(Model Driven Architecture,MDA)中的模型,而是深度神经网络模型、大型语言模型(Large Language Model,LLM)或其他人工通用智能(Artificial General Intelligence,AGI)模型,<span style="color: black;">能够</span>直接给人类<span style="color: black;">供给</span>服务的模型。大型企业<span style="color: black;">通常</span>会<span style="color: black;">选取</span>训练、精调自己<span style="color: black;">行业</span>的AI大模型,中小企业<span style="color: black;">通常</span>会调用专业<span style="color: black;">机构</span><span style="color: black;">供给</span>的大模型服务接口。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在基于MaaS的软件工程3.0时代,软件以这类AI大模型的形态为用户<span style="color: black;">供给</span><span style="color: black;">各样</span>各样的服务,<span style="color: black;">况且</span><span style="color: black;">将来</span>会<span style="color: black;">作为</span>一种常态。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在软件工程3.0时代,</span><span style="color: black;">新一代的软件<span style="color: black;">研发</span>平台<span style="color: black;">起始</span>能够理解<span style="color: black;">需要</span>、设计、代码等,软件<span style="color: black;">研发</span>从过去的信息化时代进入真正的数字化时代,这<span style="color: black;">亦</span>是一种有重要<span style="color: black;">道理</span>的进步;人机自然对话<span style="color: black;">作为</span>可能,<span style="color: black;">能够</span>告诉新一代软件<span style="color: black;">研发</span>平台<span style="color: black;">咱们</span>想要生成的内容,即人工智能生成内容(Artificial Intelligence Generated Content,AIGC),如软件<span style="color: black;">需要</span>定义文档、<span style="color: black;">需要</span>或用户故事的验收标准、代码、测试用例、测试脚本等,软件<span style="color: black;">研发</span>进入AIGC时代,软件<span style="color: black;">研发</span>过程<span style="color: black;">便是</span>人与计算机自然交互的过程。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">在软件工程3.0时代,</span><span style="color: black;">业务数据和<span style="color: black;">研发</span>过程数据的质量非常重要,<span style="color: black;">能够</span>基于这些数据进行精调,以优化大模型。软件工程3.0在新范式下,有如下两条实践路径。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(1)垂直路径:</span></strong></span><span style="color: black;">针对特定<span style="color: black;">行业</span>进行模型的训练或精调,并给出<span style="color: black;">详细</span>的提示文本(序列)集,以<span style="color: black;">帮忙</span>企业快速发布符合市场的<span style="color: black;">制品</span>、获取用户、收集反馈并<span style="color: black;">连续</span>改进。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">(2)水平路径:</span></strong></span><span style="color: black;">将生成式AI功能引入通用的<span style="color: black;">研发</span>云平台中,实现全新的或重构已有的<span style="color: black;">研发</span>工作流、<span style="color: black;">研发</span>IDE(Integrated Development Environment,集成<span style="color: black;">研发</span>环境)、测试框架与工具、运维工具。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">研发</span>人员不仅会致力于提示工程(Prompt Engineering)、服务于大模型和大数据平台,<span style="color: black;">包含</span>模型创建、训练、调优、<span style="color: black;">运用</span>等,<span style="color: black;">况且</span><span style="color: black;">她们</span>的工作方式<span style="color: black;">亦</span>将<span style="color: black;">出现</span>变化,对<span style="color: black;">她们</span>的<span style="color: black;">需求</span><span style="color: black;">更加多</span><span style="color: black;">表现</span>在对业务的深度理解、系统性思维、<span style="color: black;">规律</span>思维等方面。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">虽然软件工程2.0<span style="color: black;">已然</span><span style="color: black;">起始</span>面向CI/CD,但还存在许多<span style="color: black;">阻碍</span>,而在软件工程3.0时代,得益于设计、代码、测试脚本等的生成,<span style="color: black;">能够</span>真正实现<span style="color: black;">连续</span>交付,即<span style="color: black;">即时</span>响应客户<span style="color: black;">需要</span>,交付客户所需的功能特性。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">表2-1是对软件工程1.0、软件工程2.0和软件工程3.0的总结。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">表2-1 三代软件工程的比较</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;"></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">最后,<span style="color: black;">经过</span>“软件工程3.0宣言”<span style="color: black;">做为</span>对软件工程的<span style="color: black;">将来</span>展望。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;">软件工程3.0宣言:</span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">人机交互智能 <span style="color: black;">强过</span> <span style="color: black;">研发</span>人员个体能力</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">“业务和<span style="color: black;">研发</span>过程”数据 <span style="color: black;">强过</span> 流程和工具</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">可产生代码的模型 <span style="color: black;">强过</span> 程序代码</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">提出好的问题 <span style="color: black;">强过</span> <span style="color: black;">处理</span>问题</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">笔者相信,<span style="color: black;">经过</span>GPT-4+的力量,能够<span style="color: black;">处理</span><span style="color: black;">非常多</span>安全、法律、伦理等方面的问题和应对面临的挑战,软件工程的<span style="color: black;">将来</span><span style="color: black;">尤其</span>值得期待。</span></p><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;">
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">本文节选自</span><span style="color: black;"><strong style="color: blue;"><span style="color: black;">《软件<span style="color: black;">开发</span>行业创新实战案例解析》</span></strong></span><span style="color: black;">,</span><span style="color: black;">本书旨在<span style="color: black;">经过</span>各个<span style="color: black;">机构</span>在工程创新、管理创新、<span style="color: black;">制品</span>创新、技术创新、效能创新上的最佳实践,以及对案例的分析和总结,为其他<span style="color: black;">机构</span><span style="color: black;">供给</span><span style="color: black;">必定</span>的参考和借鉴,以<span style="color: black;">帮忙</span><span style="color: black;">大众</span>更快速地<span style="color: black;">处理</span>所遇到的问题。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">本书共<span style="color: black;">包括</span>22个实战案例,涵盖了<span style="color: black;">开发</span>效能<span style="color: black;">提高</span>、数字化实践、敏捷转型、<span style="color: black;">开发</span>管理、人才培养、AI视觉分析引擎构建等软件<span style="color: black;">开发</span>各个<span style="color: black;">行业</span>的多个方面,适用于软件<span style="color: black;">开发</span>行业中的各类管理人员和从业者。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><strong style="color: blue;"><span style="color: black;"><span style="color: black;">怎样</span>抽奖?</span></strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">1.<span style="color: black;">这次</span>一共赠送<strong style="color: blue;">2人</strong>书籍,为上文<span style="color: black;">举荐</span>书籍,<strong style="color: blue;"><span style="color: black;">取留言点赞数最多的2位小伙伴</span></strong><span style="color: black;">,<strong style="color: blue;">包邮到家</strong>,留言需关注公众号。</span></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">2.</span><span style="color: black;">中奖名额为2位,<strong style="color: blue;">开奖时间为2023年9月16日( 周六) 12:00</strong> ,取留言内点赞数最多的2位<span style="color: black;">朋友</span>。</span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">3.<strong style="color: blue;">兑奖时间于2023年9月17日( 周日) 12:00截止,过期不候。</strong></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">4.<span style="color: black;">中奖后请联系(<span style="color: black;">微X</span>:cloud288)私发邮寄<span style="color: black;">位置</span>及联系方式。</span></span></p>
<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">5.<strong style="color: blue;"><span style="color: black;">近期</span>6个月<span style="color: black;">已然</span><span style="color: black;">经过</span>本<span style="color: black;">途径</span>送过书的<span style="color: black;">朋友</span><span style="color: black;">再也不</span>赠书</strong>,无需参与活动,本活动架构师影响力推出,活动解释权归<span style="color: black;">自己</span>所有。</span></p><span style="color: black;"><span style="color: black;"><span style="color: black;">微X</span>将好友放开到了一万,小伙伴<span style="color: black;">能够</span>加我,先到先得;需简单自我介绍下<span style="color: black;">或</span><span style="color: black;">伴侣</span>圈对等开放。若一条都不满足,拒绝<span style="color: black;">供给</span>好友位,如需加测试讨论群,<span style="color: black;">能够</span>备注,</span><span style="color: black;">融入圈子,<span style="color: black;">一块</span>成长</span><span style="color: black;">。</span></span><img src="data:image/svg+xml,%3C%3Fxml version=1.0 encoding=UTF-8%3F%3E%3Csvg width=1px height=1px viewBox=0 0 1 1 version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=none stroke-width=1 fill=none fill-rule=evenodd fill-opacity=0%3E%3Cg transform=translate(-249.000000, -126.000000) fill=%23FFFFFF%3E%3Crect x=249 y=126 width=1 height=1%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E" style="width: 50%; margin-bottom: 20px;">
页:
[1]