软件生命周期模型:瀑布模型、螺旋模型、迭代模型、敏捷开发、增量模型、快速原型模型
目录
1.软件生命周期
2.软件生命周期模型
2.1瀑布模型
缺点【存在的问题】:
优点:
2.2 螺旋模型
特点:
2.3 迭代模型
优点:
2.4 敏捷开发
2.5 增量模型
增量模型一般和迭代模型一起使用:
2.6 快速原型模型
1.软件生命周期
2.软件生命周期模型
2.1瀑布模型
它是最早提出的软件开发的过程模型。
缺点【存在的问题】:
- 强调时间顺序非常严格,前面阶段不完成,后面阶段无法进行,缺乏灵活性
- 将测试放在了编码之后,没有体现出测试贯穿软件生命周期的原则,测试应该从需求就开始参与进去–可以避免需求的问题一直延续到代码完成之后才暴露或被发现。
- 不适合用户需求的变化,因为不是从需求开始的,用户改了需求之后要编码完成才可以修改。
-
各个阶段的划分完全固定,阶段产生大量的文档,增加工作负担。
-
线性开发,用户等到整个过程的末期才能见到开发成果,从而增加了开发风险。
优点:
- 为项目提供了按阶段划分的检查点,有一定的文档产出,可以从文档中去寻找问题。
- 当前阶段完成后,只需要去关注后续阶段。
2.2 螺旋模型
螺旋模型是一种演化软件开发过程的模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化和严格监控。
特点:
-
螺旋模型是一种演化软件开发过程模型,引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减少损失。
-
螺旋模型更适合大型的昂贵的系统级的软件应用。
2.3 迭代模型
不断优化,不断深入,不断开发完善。
发布的软件就是可以运行的,在初级版本进行深入的研发,类型于更新。
在某种程度上、开发迭代是一次完整的经过所有工作流程的过程:需求分析、设计、实施、测试工作流程。
优点:
-
降低了在一个增量上的开支风险
-
降低了产品无法按照既定进度进入市场的风险
-
加快了整个开发工作的进度
-
迭代过程这种模式使适应需求的变化更容易些
为了早点上市场,先发布具备基本功能的产品,后续根据市场反应或者产品计划发布后续版本,即刚开始发布的就是一个稳定的、可运行的软件,可交给用户使用,随着后面的开发越来越深入
2.4 敏捷开发
快、灵活、以人为中心
2.5 增量模型
含义:把软件分割成独立的模块,分批次的完成和交付。
缺点:打破原有的软件结构和框架,可能会带来一定的风险。
增量模型是把软件的每个模块独立开来,每次交付/发行都交其中的一个模块,根据市场反馈,决定下一次交付哪个模块,可以不按照顺序
增量模型一般和迭代模型一起使用:
- 软件增加了新功能
- 优化了…功能
- 修复了某些未知/已知bug
【增量模型是增加功能、迭代模型是更新优化模型】
2.6 快速原型模型
原型:模型(可以模拟操作/简单运行)
典型应用和工具:Axure:制作原型。
流程:产品经理画原型,交给用户体验,用户对原型进行评价,并让产品经理修改,等到无误就交给开发人员开发