目录
瀑布模型
最早提出的开发的过程模型,这个图要求记住
缺点:
- 强调时间顺序的严格执行。前一阶段不完成,后阶段不开始 。
- 将测试安排在编码之后,这样会导致无法找到错误,因为如果我们发现编码和需求冲突,无法确定是编码的问题还是需求的问题, 没有体现出测试贯穿软件生命周期的原则。
相反如果一开始就介入就能避免需求分析的问题到编码完成后才被发现; - 不适用用户需求的变化
优点:
- 为项目提供按阶段划分的检查点
- 当前一阶段完成后只需要关注后续的阶段
螺旋模型
螺旋模型见过了快速原型的迭代的特征以及瀑布模型的系统化和严格监控;
特点:有风险分析,使得在无法排除中大风险的时候有机会停止以减少损失;适用大型昂贵的系统级软件应用
迭代模型
迭代包括产品的生产和发布的全部开发活动和要使用该发布必须的所有的其他元素,
特点:
- 用户可以在一定程度上参与整个过程
- 强调开发的不断的深入;
- 适用于需求不断变化或者初期无法确定具体开发需求的情况
敏捷模型
这就是众所周知的敏捷开发;强调4中核心价值和12条原则;
4种核心价值:
- 个体和互动》流程和工具:
- 工作的软件》详尽的文档:
- 客户合作》合同谈判
- 相应变化》遵循计划
上面的图好好看一下,特点就是强调沟通和灵活
增量模型
把软件分隔成独立的模块,并且这些模块可以分批次的完成和交付
特点:
- 开发顺序随着需求的变化而变化
- 强调新功能的增加;
- 增量模型一般和迭代模型一起用:一般更新包括新功能的开发和原有功能额深化和完善
缺点:
- 打破原有的软件结构和框架可能会带来一定风险
快速原型
快速原型,就是一个模拟操作简单运行的模型,事先就确定开发的细枝末节的需求,那么以后需求的变化的可能性就更小,更多的缺陷也更容易提前暴露;
快速原型的本质是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。因此,原型系统的内部结构并不重要,必须迅速地构建原型然后根据用户意见迅速地修改原型。