Section 3 Software Development as a Process(整理版)
原始笔记: Introduce.md 原始教程: Section 3: Software Development as a Process created: 2026-07-26 14:40 整理说明: 本版本保持原笔记的主题范围,只翻译、整理软件开发过程的六个阶段,不扩展原笔记未记录的教程内容。
内容简要概括
软件开发不是只写代码,而是从明确需求开始,经过设计、实现、测试和部署,再进入持续维护的完整过程。每个阶段都为后续阶段提供依据;越早澄清目标和发现问题,后续开发就越容易保持方向和质量。
Software Development Process、需求获取、软件设计、实现、测试、部署、维护、软件生命周期
目录
1. 软件开发过程
典型的软件开发过程可以划分为六个阶段:
Requirements Gathering
→ Design
→ Implementation
→ Testing
→ Deployment
→ Maintenance
这些阶段把“要解决什么问题”“准备怎样解决”“如何确认解决正确”以及“软件投入使用后如何继续演化”连接为一条完整路径。
2. 六个阶段
2.1 Requirements Gathering
需求获取是在项目开始前识别并记录软件的确切需求。它用于维持清晰的开发方向,并定义软件最终必须完成的目标。
这一阶段主要回答:
- 软件为谁服务;
- 需要解决什么问题;
- 应当具备哪些能力;
- 存在哪些限制和质量要求。
2.2 Design
设计阶段把需求转化为软件的整体方案,包括:
- 软件包含哪些基本组件;
- 组件各自承担什么职责;
- 组件之间如何协作;
- 使用哪些工具和技术实现需求。
设计不是追求一次得到完美结构,而是为当前需求建立足够清晰、便于实现和修改的方案。
2.3 Implementation
实现阶段按照设计编写软件,把需求和设计转换成能够运行的代码。
实现不能脱离前两个阶段:代码是否“完成”,应根据它是否落实既定设计并满足需求来判断。
2.4 Testing
测试用于发现并修复缺陷,同时验证软件是否可靠地满足已定义的需求。
测试需要同时关注:
- 软件是否产生正确结果;
- 软件是否按预期处理输入和异常情况;
- 后续修改是否破坏已有行为;
- 已实现功能是否确实对应原始需求。
2.5 Deployment
部署是把软件发布到预定环境,使其能够用于原本的目的。部署形式可以是安装到目标机器、发布给用户、部署为服务,或以其他方式交付可用的软件。
2.6 Maintenance
维护发生在软件投入使用之后,目标是让软件持续适合其用途,通常包括:
- 修复新发现的问题;
- 适配运行环境变化;
- 根据变化后的需求更新功能;
- 改善软件的可读性、可测试性和可维护性。
维护不是开发结束后的附属工作,而是软件生命周期的一部分。
3. 阶段之间的关系
六个阶段在逻辑上前后关联:
- 需求为设计提供目标;
- 设计为实现提供结构;
- 实现产生需要验证的软件;
- 测试把软件行为与需求进行对照;
- 部署让软件进入真实使用环境;
- 维护根据真实使用反馈和新需求推动下一轮变化。
当后续阶段发现问题时,可能需要返回前面的阶段重新澄清需求或调整设计。因此,软件开发过程虽然可以按阶段理解,但实际工作中需要持续验证前面的决定是否仍然成立。