第三章 生存期模型
一、生存期模型定义
软件生存期模型特征
- 描述了开发的主要阶段
- 定义每一个阶段要完成的主要过程和活动
- 确定每一个阶段的输入和输出
软件生存期模型分类
- 预测模型
- 迭代模型
- 增量模型
- 敏捷模型
- 混合模型
二、传统生存期模型
1. 预测型模型
要求项目是高确定性的、有明确的需求顺序执行。包括瀑布模型和V模型。
1.1 瀑布模型
瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。
优点:管理简单、顺序执行
缺点:不能适应需求的快速变化
1.2 V模型
V模型是瀑布模型的一个变种,强调测试与开发的一一对应关系。
适用:适合对性能、安全等要求非常严格的场景。
2. 迭代模型
迭代模型也叫原型模型,是指在需求阶段快速构造系统或一部分系统的一种策略,可很好地应对需求不确定的问题。
适用:需求不明确、需要包含界面的系统。
3. 增量模型
增量模型是把一个项目分为多个增量来开发,每个增量都是一个可交付成果。
要点:分增量优先开发核心功能,多次交付。
三、敏捷生存期模型
敏捷模型(Agile)
敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷 = 4个价值 + 12个原则 + 很多实践
传统模型:不考虑后期需求的变化就预测用户的需求,按照冻结的需求指定计划,根据制定的计划执行项目开发。
敏捷模型:通过不断的反馈动态地修改用户需求来达到客户的目标,是一个自适应的过程。
1. Scrum 模型
1990年代初,肯.施瓦伯在其公司使用了一种方法 Advanced Development Methods(先进开发方法),这种方法后来发展为 Scrum。
2. XP(eXtreme Programming)
极限编程是由 KentBeck 提出的一套针对业务需求和软件开发实践的规则。
3. 精益(Lean)
精益模式提倡持续不断地改进,减少流程中的浪费。
4. 持续交付(Continuous delivery)
让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况。
描述:个人向整体代码的交付过程
描述:集成之后代码尽快向可运行环境的交付过程
描述:尽快向用户的交付过程
4. DevOps
DevOps 是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。