1 瀑布模型的回顾
瀑布模型具有简单易行,对软件质量有比较高的保障,但是对于前期的需求不是很明确的情况下,如果后续需求变更了就很难响应。
2 其他的衍生模型
(1) 快速原型模型
怎么快怎么来,尽快给客户演示,然后通过客户的反馈去修改优化。总之为了解决客户需求不明确和需求多变的情况。但是这种模型往往是
牺牲质量为代价的。因为没有严谨的系统设计和规划,可靠性和性能就难以保障,所有对于快速,低质量的特点通常出现两种策略。抛弃策略和附加策略
- 抛弃策略
主要用于需求分析阶段,确认完需求以后,原型被抛弃,在后面的实际开发过程中重新开发所有功能。适用于客户对可靠性和性能要求高的情况
- 附加策略
将原型应用于整个开发过程,不断增加新的功能知道满足客户需求。适用于客户对质量要求不高,有简单功能就行的情况。
原型的制作不同于传统代码一样去设计编码,通过Axure,墨刀等工具,通过简单的拖拽实现界面交互。
(2)增量模型
也叫做大瀑布拆小瀑布模型,也就是说将一个大瀑布拆分,然后每个小瀑布进行模块化处理,这样用户可以及时了解软件项目的进展,如果其中一个模块
出问题也不会影响其他模块。因为需要模块化,如果不能模块化,就很难采用增量模型的模式来开发。所以它适用于需求比较清楚,能模块化并且可以分批次交付的项目
(3)迭代模型
也叫做大瀑布拆小瀑布模型,每一次设计和实现一个阶段就叫做一个迭代。整个项目被拆分为一系列晓得迭代,注意了,迭代时间是固定的。迭代结束会完成一个可以运行的交付版本。
(4)增量与迭代的区别
增量是按照功能模块划分,迭代是按照时间来划分。
3 如何选择模型之场景案例
(1) 外包项目,需求阶段验收
客户要求甲方对每个阶段进行验收和测试。从需求到验收都需要验收。所谓v模型,本质还是瀑布模型。
(2)项目风险较高,可能随时的中断
如果采用瀑布模型,可能做完发现客户都给不了钱,损失就非常的大。采用增量或者迭代来降低风险,每次交付都做一次风险的评估,如果风险太大就停止,及时的止损。
(图片来源:WikiPedia)
(3) 诸如毕业设计 希望快速完成
需求明确,不会有太大变化,可以采用增量模型,划分好模块,先实现核心模块。
(4)客户也不是很清楚需求,但是是个大单子
4 总结
通过之前瀑布模型的学习到现在瀑布模型的衍生,大瀑布分成小瀑布是不是和大目标变为多个小目标然后一步一步脚印呢。软件项目特点多端,需要根据不同的场景去选择不同的模式。