软件生命周期模型
- 注意上图中的箭头方向
- 上图是完美的工作流程
瀑布模型
- 最早提出的软件开发过程模型
- 存在的问题
- 强调时间顺序的严格执行,前一阶段不完成,后一阶段不开始
- 将测试放在了编码之后,没有体现测试贯穿全程的原则
- 不适应用户需求的变化
- 每一阶段都产生大量文档,极大增加了工作量
- 到末期才看到开发成果,很多问题到后期才暴露
- 优点
- 每一阶段都有产出物 ,为项目提供了按阶段划分的检查点
- 当前一阶段完成后,只需要去关注后续阶段
螺旋模型
迭代模型
敏捷模型
增量模型
- 把软件分割成独立的模块,使得软件可以分批次地完成和交付。
- 缺点:打破软件原有的结构和架构,可能会带来一定的风险
- 常和迭代模型一起使用
快速原型模型
原型分析、工具