随着AI应用场景的不断深入,就不得不提一下“软件开发”了。
在很多人看来,软件开发,就是把脑袋中的一个想法,开发出一个软件来实现,从而改变了人们的工作方式和生活方式。
软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。为了能更好地说明AI技术对软件开发的影响,我们对传统开发和AI辅助开发的流程进行对比。
传统开发则是指通过使用编程语言和框架进行手工编码来构建应用程序。
从流程上来看,传统软件开发可以分为:
需求分析 —— 需求调研、业务流程梳理、业务痛点分析、业务划分等。
概要设计 —— 处理流程、组织结构、功能模块划分、运行设计、异常处理设计等。
详细设计 —— 数据结构、类与接口设计、技术框架设计等。
编码开发 —— 具体的编写程序工作,实现对目标系统的功能、性能、接口、界面等方面的要求。
测试阶段 —— 单元测试、模块测试、整体测试、日志优化调整等。
交付验收 —— 软件开发项目验收、用户培训等。
我们也不难看出,编码便是开发其中一部分。你是不是第一反应也想到了“开发就是写代码”?
代码是软件开发过程的产物,它的作用是通过编译器编译后运行,达到软件预期的效果,如功能、稳定性、安全性等等。
说白了,软件开发便是大多数开发人员每天都在code、crud工作。
AI对软件开发最明显的影响之一是能够自动生成代码。在AI的帮助下,开发者可以在编写代码所需的时间的一小部分内创建复杂的软件系统。
AI开发软件的整体流程大致如下:
需求分析 —— 不需要对需求进行文档说明,在数据集中进行数据标注。
设计阶段 —— 不需要把需求文档转换为设计文档,在输入数据的类型确定,以及期望的功能确定的情况下进行AI模型选择。
编码阶段 —— 导入训练数据集,数据的预处理,定义模型,定义训练循环等。
测试阶段 —— 与传统软件开发一致,根据需求进行各种类型的测试,根据测试结果回退某个步骤修正。
维护阶段 —— 使用微调的技术,具备持续学习的能力。
由此我们也可以看到,AI使得一站式软件开发成为可能。从代码生成、单元测试和代码调试等过程,AI可以在每个阶段提供关键支持,减少开发时间和成本。开发人员可以从传统编程中抽离,去执行更高级别的开发任务。
可能有人会担心AI将全程接管软件开发。这其实有点夸张了。AI的自动化技术,可能会改变开发者构建软件的方式,却不能替代人类开发人员的创新性、直觉和解决问题的主观能动性。
我们不应该把AI当作开发进程中的“对手”,而是与之携手,共同提高软件开发的整体质量,提供更好的用户体验
AI时代,软件开发应该积极拥抱变化。我们可以预期在未来几年中,软件开发行业会有更多的创新。