软件模型
-
瀑布模型
最早提出的软件开发的过程模型。
瀑布模型存在的问题:
1、线性开发,强调时间顺序严格执行,前一阶段不完成,后阶段不开始。用户需等到整个过程的末期才能见到开发成果,从而增加了开发的风险
2、将测试放在了编码之后。没有体现出测试贯穿软件生命周期的原则。
3、瀑布模型不适应用户需求的变化
测试贯穿软件生命周期,可以避免需求的问题一直延续到代码完成才被发现。
瀑布模型的优点:
1、为项目提供了按阶段划分的检查点
2、当前一阶段完成后,只需要关注后续阶段 -
螺旋模型
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代特征以及瀑布模型的系统化与严格监控。
1、引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
2、螺旋模型更适合大型的昂贵的系统级的软件应用 -
迭代模型
在某种程度上,开发迭代是一次完整的经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。
迭代过程具有以下优点:
1、降低了在一个增量上的开支风险。
2、降低了产品无法按照既定进度进入市场的风险。
3、加快了整个开发工作的进度。
4、迭代过程这种模式使适应需求的变化会更容易些。 -
增量模型
把软件分割成独立的模块,分批次的完成和交付。
增量模型一般会和迭代模型一起运用。
增量模型与迭代模型的区别:
1、迭代模型强调的是升华;增量模型强调的是增加新功能。
比如:“优化了/修复了…功能”用的是迭代模型;“新增了…功能”用的是增量模型。
增量模型的缺点:
1、打破原有的软件结构和框架,可能会带来一定的风险。 -
快速原型模型