瀑布模型
瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。
优点:
- 强调开发的阶段性
- 强调早期计划及需求调查
- 强调产品测试
缺点:
- 依赖于早期进行的唯一一次需求调查,不能适应需求的变化
- 开发中的经验教训不能反馈应用于本产品的过程
- 风险往往迟至后期的测试阶段才显露,因此是去及早纠正的机会
在瀑布模型中,测试阶段处于软件实现后,这意味着必须在代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷直接遗留给用户。
螺旋模型
一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模型。螺旋模型是渐进式开发模型的代表之一。
适用于规模庞大、复杂度高、风险大的项目。
要求:不允许有独立的测试时间和阶段,测试必须跟着开发的迭代而迭代。
优点:
- 强调严格的全过程风险管理
- 强调各开发阶段的质量
- 提供机会检讨项目是否有价值继续下去
缺点:
- 引入非常严格的风险识别、风险分析和风险控制
- 人员、资金和时间需求大
增量
逐块建造
优点:
- 降低项目风险
- 鼓励用户反馈
敏捷
更多的思考了如何去激发开发人员的工作热情
scrum
构成: product owner(产品经理)、scrum master(项目经理)、team(研发团队)
迭代开发
scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的团队成员一般5到9人。