一、软件生命周期模型
1、瀑布模型
瀑布模型:最早提出的软件开发的过程模型。.
存在的问题:.
①强调时间顺序的严格执行。前阶段不完成,后阶段不开始。
②将测试放在了编码之后。没有体现出测试贯穿软件生命周期的
原则。可以避免需求的问题一直延续到代码完成才暴露或者被发现。
简单来说,瀑布模型是一步一步来解决问题,但是如果在测试之前每一步中发现的错误,只有在最后测试阶段才能被发现,可想而知,最后如果发现错误,那改变前面的环节是相当复杂和困难的
优点
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,只需要去关注后续阶段(按流程操作性很强)。
缺点
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2)线性开发,用户等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3)瀑布模型不适应用户需求的变化
一旦用户需要改变某项功能或者是对软件的需求,那么软件开发工作就需要从头执行
2、迭代模型
迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他元素,强调开发的深入
需求
在某种程度上,开发迭代是一次完整地经过 业务工程 分析设计
所有工作流程的过程:需求分析、设计、实施和测试工作流程。 初始计划 配置与变更管理
迭代过程具有以下优点:
1.降低了在一个增量上的开支风险。 评估
2.降低了产品无法按照既定进度进入市场的风险。
3.加快了整个开发工作的进度。
4.迭代过程这种模式使适应需求的变化会更容易些。
迭代模型类似于软件的更新换代,特定软件在经过一段时间之后,会进行软件的升级,这就是迭代模型的作用。
迭代模型可以使公司首先开发出软件的简易版本抢占市场,后期进行维护和升级。
迭代模型同时还能更快的跟上时代需求,使得软件更加具有市场竞争力。
3、螺旋模型
螺旋模型是一种演化软件开发过程模型,兼顾了快速原型的迭代的特征以及瀑布模型 方案和限制
的系统化与严格监控。
引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
螺旋模型更适合大型的昂贵的系统级