AI时代的软件工程:挑战与改变

人工智能(AI)正以惊人的速度改变着我们的生活和工作方式。作为与AI关系最为密切的领域之一,软件工程正经历着深刻的转变。

1

软件工程的演变

120856b07da76259ee3aa30c6242ea78.png

软件工程的起源

软件工程(Software Engineering)是关于如何系统化、规范化地设计、开发和维护软件的学科。它旨在通过科学的方法来管理软件开发的复杂性,确保软件的质量和可靠性。

20世纪中期,随着计算机技术的迅猛发展,软件系统变得越来越复杂,对其过程的管理也日益成为了难题。

1962年,携带火星探测器水手1号 ( The Mariner 1)的火箭在发射后很快就偏离了预定航线,起飞293秒后火箭坠毁。而其起因居然是一名程序员在将手写公式录入为计算机代码时遗漏了一个符号,这导致软件对正常行驶的火箭做了错误修正,最终酿成惨剧。这一事件导致了数千万美元的损失,也揭示了软件开发过程中缺乏系统化管理所带来的严重问题。

正是由于这些重大失败事件的发生,人们开始意识到 软件开发需要一套科学的方法和理论指导。

1968年在德国召开的北约科技委员会会议上,正式提出了“软件工程”这一术语——特指一套技术和管理方法的集合,同时也是一种科学的方法论,用于系统化地规划、开发和维护复杂的软件系统。自此,软件工程成为了一个独立的学科。

2

传统软件工程方法及其局限

795769784c119813cc3228d8f9aefb79.png

2.1 从瀑布到敏捷

在软件工程的早期,瀑布模型(Waterfall Model)是最广泛应用的方法。它将软件开发过程分为需求分析、设计、开发、测试和维护几个阶段,强调每个阶段的顺序进行。

063e2f2b34918aaf25035fa4b8eaad42.png

这一方法在很长一段时间占据了软件开发的主流。然而,它缺乏灵活性,难以应对快速变化的需求。随着软件开发需求的不断变化,Scrum等敏捷开发方法逐渐兴起。

敏捷开发强调灵活和迭代式的开发,通过频繁的沟通和快速的反馈循环,能够更好地适应需求的变化和不确定性。这些方法不仅改变了软件开发的流程,也提升了团队协作的效率。

2.2 软件工程的局限性

尽管软件工程的方法和理论已经发展了几十年,但至今为止,研究和实践大多将重点放在设计及其之后的阶段(软件实现、测试和维护等),而对于需求分析和初期设计阶段的重视程度远远不够。

在学术研究领域,大多数研究集中在如何改进软件的设计和实现过程。例如,如何优化代码结构、如何使用新的编程范式,以及如何改进测试方法等。

在实际的软件开发过程中,企业和开发团队也倾向于将大部分资源和精力投入到设计、实现和测试阶段。

而更加前置的需求阶段,虽然被困扰者甚众,但无论是学术界还是工业界,真正投入资源进行研究与解决方案探索的组织和个人却是寥寥。

2.3 局限性的原因

这种局限性的原因主要有以下几点:

  • 技术复杂性:软件开发是一项高门槛的技术工作,开发人员需要具备较高的技术水平和经验。而且,软件开发技术复杂且变化迅速,开发人员需要不断学习和应用新技术,这使得技术研究和实践成为了重点。

    这导致了企业在人力资源管理方面的重点放在技术团队的建设和管理上,忽视了需求分析阶段的投入。

  • 需求的多样性:需求分析阶段的工作难以量化和标准化,需求变更频繁且难以预见,这使得需求分析的工作变得难以管理和评估。相比之下,设计和实现阶段的工作具有更明确的目标和可操作性,能够通过技术手段加以改进和控制。

  • 经济效益:在软件行业发展的中早期,产品市场一片空白,设计和实现阶段的投入往往直接影响软件产品的功能和性能,从而影响其市场竞争力和经济效益。因此,企业更愿意在这些阶段投入更多的资源,以确保软件的市场成功。

如此种种,导致需求分析得不到应有的重视和投入。

后续开发过程中频繁出现需求变更和项目延期等问题,往往也是用投入更多人力这种粗放式的方法进行缓解,却无法从根本上得到解决。

3

人工智能对软件工程的影响

cb9111ac274a8a70296dd42b2838f0ad.png

3.1 人工智能在软件开发中的应用

人工智能技术,尤其是大型语言模型的应用,正在迅速改变软件开发的格局。

传统的软件开发依赖开发人员手动编写代码,效率较低且容易出错。如今,通过人工智能,开发人员可以利用AI生成代码,极大地减少了手动编码的工作量,大大提高了开发效率和质量。

当前,市场上已有多种AI工具和平台用于辅助软件开发。例如,GitHub Copilot这样的工具可以根据开发人员的提示生成代码片段,还能帮助开发人员编写测试用例、文档和自动化脚本; 微软的Azure AI平台则提供了从需求分析到代码生成的全方位解决方案,帮助企业快速开发和部署软件产品等。

这些工具和技术不仅提高了软件开发的效率,还改变了开发流程,使得开发人员可以更专注于创意和设计,而不必花费大量时间在编码上。

3.2 软件开发各阶段的变化

随着人工智能技术的普及,软件开发的各个阶段都在发生变化。

编码和测试阶段变得更加自动化,使得相应人员的负担大大减轻,效率大幅度提升。进一步导致传统上占据主要篇幅的设计、开发、测试等阶段在软件工程周期中的占比迅速下降。与此同时,需求分析的重要性则愈加凸显。

未来的AI系统能够根据需求自动生成软件,这要求我们在需求阶段就能清晰地表达出我们的需求。

需求分析不仅需要理解用户的业务背景,还需要能够将用户需求转换为技术实现的具体要求。换言之,就是要将客户“心中所想“用自然语言表述出来,同时提供出在技术能力和成本投入上都相匹配的软件解决方案,并获得客户认可。

这对需求分析人员提出了更高的要求,他们需要具备更深厚的技术背景和更敏锐的业务洞察力。

3.3 软件工程的新趋势

软件工程的新趋势就是越来越重视需求分析阶段。需求分析将不再是简单的信息收集和整理,而是一个全面的、系统的过程。

同时,随着AI技术的普及,需求分析将逐渐向自动化和智能化方向发展:自然语言处理(NLP)技术可以帮助需求分析人员更好地理解用户的自然语言需求,将其转换为技术需求。此外,可以利用AI技术分析大量的历史需求数据,预测用户的潜在需求和市场趋势,帮助我们更好地制定开发计划和策略。

未来,需求分析将真正成为软件工程的核心,而AI将成为需求分析中不可或缺的重要工具。

4

软件工程的当下与未来

272be5bbb42c82176fefff499128bee4.png

人工智能正以前所未有的速度改变着软件工程的面貌。从编码到测试,AI的应用已经使得开发过程变得更加高效和自动化。随着开发和测试的负担减轻,需求分析的重要性愈加凸显。

软件工程的重心正在逐渐向需求分析倾斜。通过结合人工智能技术,我们可以更好地理解和捕捉用户需求,为用户提供更高质量的软件产品。

未来,软件工程领域将面临更多的挑战和机遇。我们需要不断学习和适应新的技术,以应对人工智能带来的变革。通过不断提高自身的技能和知识,我们可以在这场变革中占据优势,推动软件工程向更高效、更智能的方向发展。

--- End ---

欢迎关注微软 智汇AI 官方账号


一手资讯抢先了解

喜欢就点击一下 在看 吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/762673.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Tools体验NLP编程的魅力

大模型能理解自然语言,从而能解决问题,但是就像人类大脑一样,大脑只能发送指令,实际行动得靠四肢,所以LangChain4j提供的Tools机制就是大模型的四肢。 大模型的不足 大模型在解决问题时,是基于互联网上很…

昇思25天学习打卡营第13天|BERT

一、简介: BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自…

6.x86游戏实战-C++实现跨进程读写-通过基址读取人物状态标志位

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:5.x86游戏实战-CE定位基地址 上一个内容找出了人物状态标志位的基址&#xff0…

ROS学习笔记(17):建图与定位(1)

目录 0.前言 1.定位和建图 1.里程计(Odometry) 2.扫描匹配(Scan Matching) 3.结尾 0.前言 好久不见各位,前段时间忙着考试(6级和一些专业课)和摆烂断更了近30天,现在哥们回来更…

python爬虫之scrapy框架基本使用

python爬虫之scrapy框架基本使用 1、环境安装:pip install scrapy 2、创建一个工程:scrapy startproject xxxPro 3、cd xxxPro 4、在spiders子目录中创建一个爬虫文件:scrapy genspider spiderName www.xxx.com 5、执行工程:scra…

《安全大模型技术与市场研究报告》发布,海云安榜上有名

近日,网络安全产业研究机构“数说安全”发布2024《安全大模型技术与市场研究报告》(以下简称“报告”)。 海云安凭借在开发安全领域的优秀业务能力以及在大模型相关技术研究方面的成就得到了认可,入选“安全开发大模型推荐供应商”…

【PYTORCH,TENSORFLOW环境配置,安装,自用代码】

conda -V(查看版本,这步不要也罢) conda create -n test python3.7(创建环境) conda activate test(激活) conda env list(查看自己的环境) nvidia-smi(查…

钉钉开放AI生态战略的真正价值到底是什么?很多人都没看懂

来源: 首席数智官 hello 大家好,我们是数字化领军者都在看的首席数智官。 关注我,每天给你讲一个商业案例。 今天我们要给你讲的是:钉钉开放AI大模型生态的战略意义到底是什么? 「谁先赢得苹果,谁就赢得…

技术派全局异常处理

前言 全局的异常处理是Java后端不可或缺的一部分,可以提高代码的健壮性和可维护性。 在我们的开发中,总是难免会碰到一些未经处理的异常,假如没有做全局异常处理,那么我们返回给用户的信息应该是不友好的,很抽象的&am…

【机器学习】基于Transformer的迁移学习:理论与实践

引言 在机器学习领域,迁移学习已成为提升模型训练效率和性能的重要策略,特别是在标注数据稀缺的场景下。Transformer模型自2017年由Google提出以来,在自然语言处理(NLP)领域取得了突破性进展,并逐渐扩展到…

【深度学习】调整加/减模型用于体育运动评估

摘要 一种基于因果关系的创新模型,名为调整加/减模型,用于精准量化个人在团队运动中的贡献。该模型基于明确的因果逻辑,将个体运动员的价值定义为:在假设情景下,用一名价值为零的球员替换该球员后,预期比赛…

Django 一对多关系

1,创建 Django 应用 Test/app9 django-admin startapp app9 2,注册应用 Test/Test/settings.py 3,添加应用路由 Test/Test/urls.py from django.contrib import admin from django.urls import path, includeurlpatterns [path(admin/,…

idea修改静态资源,不重启idea直接生效方法

1、Run->Edit Configurations 2、按下图选中 3、点ok,之后修改静态资源后点非idea界面(如状态栏),就会自动配置了。

GPT-4o文科成绩超一本线,理科为何表现不佳?

目录 01 评测榜单 02 实际效果 什么?许多大模型的文科成绩竟然超过了一本线,还是在竞争激烈的河南省? 没错,最近有一项大模型“高考大摸底”评测引起了广泛关注。 河南高考文科今年的一本线是521分,根据这项评测&…

7-1作业

1.实验目的:完成字符收发 led.h #ifndef __GPIO_H__ #define __GPIO_H__#include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h"//RCC,GPIO,UART初始化 void init();//字符数据发送 void set_tt…

Chapter 8 Feedback

Chapter 8 Feedback 这一章我们介绍feedback 反馈运放的原理. 负反馈是模拟电路强有力的工具. 8.1 General Considerations 反馈系统如下图所示 Aolamp open-loop gain即开环增益. Aolxo/xi β \beta β 是 feedback factor, 注意方向. β x f x o \beta\frac{x_{f}}{x_{o…

六西格玛绿带培训的证书有什么用处?

近年来,六西格玛作为一套严谨而系统的质量管理方法,被广泛运用于各行各业。而六西格玛绿带培训证书,作为这一方法论中基础且重要的认证,对于个人和企业而言,都具有不可忽视的价值。本文将从多个角度深入探讨六西格玛绿…

HTML5+CSS3+JS小实例:图片九宫格

实例:图片九宫格 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1…

智慧渔港:海域感知与岸线监控实施方案(智慧渔港渔船综合管控平台)

文章目录 引言I 技术栈1.1 物理结构图1.2 功能逻辑结构图II 云台(大华)2.1 设备网络SDK运行在Mac平台2.2 WEB无插件开发包III 术语3.1 渔业引言 利用渔船现有的定位导航通讯设备等资源,实现岸线和近岸海域内违法船舶和可疑船舶预警、抓拍、跟踪和行为分析。 在渔船上安装风…

HCIA4.26-5.10

OSPF ——开放式最短路径优先协议 无类别链路状态IGP动态路由协议 距离矢量协议 运行距离矢量协议的路由器会周期性的泛洪自己的路由表&#xff0c;通过路由之间的交互&#xff0c;每台路由器都从相邻的路由器学习到路由条目&#xff0c;随后加载进自己的路由表中。对于网络…