瀑布模型:
瀑布模型式严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。
瀑布模型是以每个步骤所取得的成果作为衡量进度的方法;由于它的严格分级,所以在项目前期需求不明确或者需求频繁更改时代价高昂,是不可行的。
所以在开发的前期,需求设计越完美,则损失越少。
迭代式开发:
迭代式开发值每次只设计和完成产品的一部分,逐步迭代直到完成整个产品。
每次的设计和实现则是一次迭代。每一次迭代都包括了需求分析、设计、实现与测试。
此开发模式的优点:
1、降低风险
2、得到早期用户反馈(得到用户的反馈来对需求进行修改,再进行下一次迭代)
3、持续的测试和集成
4、提高复用性
螺旋开发:
核心模型:
(1)制定计划:确定产品的目标,设计并选定实施方案,弄清项目开发的限制条件;
(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3)实施工程:实施产品的开发;
(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
总的来说:螺旋模式是一种风险驱动的方法体系。
敏捷软件开发:
敏捷模式强调的是程序员的团队应作为一个整体,按照短迭代周期工作并交付一定的成果。并且在这其中更关注人员之间的信任和交流,并且需要随机应变(适应性)。
在项目需求发生改变时,团队应当迅速适应变化;要求团队中的高度协作。