还记得小编讲过的增量模型吗?不知道大家还有没有印象?今天小编要讲的是与增量模型相对应,但它强调的是增量和迭代两个特征的结合的另外一种模型----演化模型。它的目标是克服瀑布模型中线性开发带来的交付上的风险,即只有到了最终交付时才获知哪部分产品需要维护,这会使得整个项目的开发成本远远超出预想。由于维护阶段修改软件的费用要远远大于需求或设计阶段,所以演化模型使用了迭代和增量的思想,将整个软件的开发风险分散到不同构件的不同阶段。
什么是演化模型模型?
演化模型主要针对事先不能完整定义需求的软件开发。演化模型的主要步骤是首先开发系统的一个核心功能,当该核心系统投入运行后,使得客户可以与开发人员一同确认该功能,这样开发人员将会得到第一手的经验,再根据客户的反馈进一步开发其他功能或进一步扩充该功能,并提出精化系统、增强系统能力的需求,直到建立一个完整的系统为止。软件开发人员就是根据用户的反馈,实施开发的迭代过程。第一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。
在开发模式上采取分批循环开发的办法,每循环开发一部分的功能,它们成为这个产品的原型的新增功能。于是,设计就不断地演化出新的系统。实际上,这个模型可看作是重复执行的多个“瀑布模型”。
“演化模型”要求开发人员有能力把项目的产品需求分解为不同组,以便分批循环开发。这种分组并不是绝对随意性的,而是要根据功能的重要性及对总体设计的基础结构的影响而作出判断。有经验指出,每个开发循环以六周到八周为适当的长度。
补充:
①该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……
②复杂网络的演化模型包括BA模型以及其他多种扩展模型。
③最经典的演化模型为BA模型,刻画了无标度网络形成的两个条件:增长和偏好依附,最终形成的网络符合幂指数为3的度分布。
当然啦,在明白了何为演化模型后,就一定要说说它的优缺点。
1、演化模型的优点
1)任何功能一经开发就能进入测试以便验证是否符合产品需求。
2)帮助导引出高质量的产品要求。如果没有可能在一开始就弄清楚所有的产品需求,它们可以分批取得。而对于已提出的产品需求,则可根据对现阶段原型的试用而作出修改。
3)风险管理可以在早期就获得项目进程数据,可据此对后续的开发循环作出比较切实的估算。提供机会去采取早期预防措施,增加项目成功的机率。
4)大大有助于早期建立产品开发的配置管理,产品构建(build),自动化测试,缺陷跟踪,文档管理。均衡整个开发过程的负荷。
5)开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率。
6)如果风险管理发现资金或时间已超出可承受的程度,则可以决定调整后续的开发,或在一个适当的时刻结束开发,但仍然有一个具有部分功能的,可工作的产品。
7)心理上,开发人员早日见到产品的雏型,是一种鼓舞。
8)使用户可以在新的一批功能开发测试后,立即参加验证,以便提供非常有价值的反馈。
9)可使销售工作有可能提前进行,因为可以在产品开发的中后期取得包含了主要功能的产品原型去向客户作展示和试用。
2、演化模型的缺点
1)如果所有的产品需求在一开始并不完全弄清楚的话,会给总体设计带来困难及削弱产品设计的完整性,并因而影响产品性能的优化及产品的可维护性。
2)如果缺乏严格的过程管理的话,这个生命周期模型很可能退化为一种原始的无计划的“试-错-改”模式。
3)心理上,可能产生一种影响尽最大努力的想法,认为虽然不能完成全部功能,但还是造出了一个有部分功能的产品。
4)如果不加控制地让用户接触开发中尚未测试稳定的功能,可能对开发人员及用户都产生负面的影响。
适用范围:
演化模型可以根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。重复这一过程,最终可得到令用户满意的软件产品。采用演化模型的开发过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。演化模型特别适用于对软件需求缺乏准确认识的情况。
小编结语:
演化模型的特点基本上与增量模型一致,但对于演化模型的管理是一个主要的阻力,也就是说,我们很难确认整个系统的里程碑、成本和时间基线,也就是说每一次开发都会涉及“风险分析”、“原型建立”、“实现原型”、“评估原型”,这就构成多次迭代来完成整个系统的开发。请到编程学习网教育进行咨询
说到这里,今天的内容也就结束了,如果大家有兴趣的话,可以到到编程学习网教育进行咨询哟!