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