| 阶段 | 核心任务 | 输出文档 | 关键角色 |
|---|---|---|---|
| 问题定义与规划 | 确定开发目标与可行性 | 可行性研究报告、项目开发计划 | 产品经理/客户 |
| 需求分析 | 明确功能/性能/数据需求 | 需求规格说明书、原型图 | 需求分析师 |
| 设计 | 系统架构、模块划分、数据库设计 | 概要/详细设计说明书 | 系统架构师 |
| 编码与测试 | 代码实现与多级测试 | 代码清单、测试报告 | 开发工程师/测试工程师 |
| 部署与维护 | 系统上线、性能优化、用户支持 | 运维手册、维护日志 | 运维工程师 |
| 退役 | 数据迁移、系统下线 | 退役评估报告 | 项目经理 |
| 模型 | 核心特点 | 适用场景 | 优缺点 |
|---|---|---|---|
| 瀑布模型 | 阶段严格、文档驱动,线性推进 | 需求明确且稳定的项目(如银行系统) | ✅阶段清晰;❌灵活性差 |
| 原型模型 | 快速构建原型验证需求,迭代开发 | 需求模糊或需快速验证(如电商系统) | ✅用户参与度高;❌原型易被弃用 |
| 螺旋模型 | 风险驱动,结合瀑布与原型,多次迭代 | 高风险大型项目(如航天软件) | ✅风险可控;❌管理复杂度高 |
| 模型 | 核心特点 | 适用场景 |
|---|---|---|
| 迭代模型 | 分阶段交付可运行版本,强调用户反馈(如微信版本迭代) | 需求变化频繁的项目 |
| 极限编程 | 测试驱动开发(TDD)、持续集成,强调团队协作(如互联网创业项目) | 中小型快速开发项目 |
| 测试类型 | 目标 | 常用方法 |
|---|---|---|
| 单元测试 | 验证模块功能(如函数逻辑) | 白盒测试(语句/路径覆盖) |
| 集成测试 | 验证模块接口(如API调用) | 自顶向下/自底向上集成 |
| 系统测试 | 验证整体性能(如并发压力测试) | 黑盒测试(等价类/边界值) |