- 瀑布模型:是一个经典的软件生命周期模型,也叫预测型生命周期模型、完全计划驱动型生命周期。在这个模型里,在项目生命周期的尽早时间,要确定项目范围以及交付此范围所需要的时间和成本。
- 一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段。开发模式是线性的。
- 适用于:需求明确或很少变更的项目,如二次开发或升级型的项目,有利于大型软件开发人员的组织和管理;开发人员比较弱或缺乏经验。
- 以下情况优先选择瀑布模型:项目需求明确、充分了解拟交付的产品、有厚实的行业实践基础、或者整批一次性交付产品有利于干系人。
- 瀑布模型中每项开发活动具有以下特点:
- 从上一项开发活动接受其成果作为本次活动的输入;
- 利用这一输入,实施本次活动应完成的工作内容;
- 给出本次活动的工作成果,作为输出传给下一项开发活动;
- 对本次活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前的活动。
- 尽量减少多个阶段间的反复,以相对来说较小的费用来开发软件。
- 迭代模型:传统的软件开发工作大部分强调过程的串行执行,也就是一个活动需要在前一个活动完成后才开始,从而形成一个过程串,该过程串就组成了软件项目的生命周期。在迭代模型中,每个阶段都执行一次传统的、完整的串行过程串,执行一次过程串就是一次迭代。
- 以下情况优先选择迭代模型:组织需要管理不断变化的目标和范围,组织需要降低项目的复杂性,或者,产品的部分交付有利于一个或多个干系人,且不会影响最终或整批可交付成果的交付。
- 大型复杂项目通常采用迭代方式来实施,这使项目团队可以在迭代过程中综合考虑反馈意见和经验教训,从而降低项目风险。
- RUP(Rational Unified Process),即统一软件开发过程。是迭代模型的一种。
- 敏捷方法:是一种以人为核心,迭代,循序渐进的开发方法,适用于一开始并没有或不能完整地确定出需求和范围的项目,或者需要应对快速变化的环境,或者需求和范围难以事先确定,或者能够以有利于干系人的方式定义较小的增量改进。
- 敏捷方法也叫做适应型生命周期或变更驱动方法。
- 在软件项目的敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
- 敏捷方法的目的:在于应对大量变更,获取干系人的持续参与。敏捷方法里迭代很快(2~4周迭代1次)而且所需要的时间和资源是固定的。
- V模型:
- V模型的价值:非常明确地标明了测试过程中存在的不同级别,并且清楚的描述了这些测试阶段和开发各阶段的对应关系;
- 单元测试的目的:针对编码过程中可能存在的各种错误,例如用户输入验证过程中的边界值的错误;
- 集成测试的目的:针对详细设计中可能存在的问题,尤其是检查各单元与其他程序部分之间的接口上可能存在的错误;
- 系统测试的目的:针对概要设计,检查系统作为一个整体是否有效的得到运行,例如在产品设置中是否能到达预期的高性能;
- 验收测试:通常由业务专家或用户进行,以确认产品真正符合用户业务上的需求。
- 原型化模型:是为了弥补瀑布模型的不足能产生的。
- 原型化模型减少了瀑布模型中因软件需求不明确而给开发工作带来的风险。
- 螺旋模型:是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。
- 螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
来源:happyChen2016
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!