软件开发模型、瀑布模型、V模型、原型模型、增量模型、螺旋模型、喷泉模型
软件模型、瀑布模型、V模型、原型模型、增量模型、螺旋模型、喷泉模型
·
目录
一、瀑布模型
1、概念
-
是将软件的生命周期,按照活动的规律划分成若干个 依次线性连接的 结构。
-
瀑布模型将软件划分成 定义阶段、开发阶段、运维阶段三个大的阶段。每个阶段的阶段成果出来之后,评审通过才会进入下一阶段。
-
将整个过程分为 软件计划、需求分析、软件设计、程序编码、软件测试、运行维护。
2、特点
-
易理解。
-
管理起来成本低。
-
强调早期的需求分析阶段,需求需要明确。如果早期的需求分析阶段有问题,那么后期的软件设计、程序编码、软件测试就都会存在问题,如果在软件测试阶段发现问题再去解决问题,成本是很高的。
3、缺点
-
客户必须能够正确完整清晰的表达自己的需求。
-
在定义阶段很难评估软件开发阶段的进度。由此会导致大量的测试工作在尾部时间节点进行,发现问题后修改成本高、软件质量可能会出问题,也会造成开发进度延期、成本超预算等问题。
4、应用场景
-
主要用于需求明确、解决方案明确的项目。
5、考点:瀑布模型的特点及适应场景
二、V模型
1、概念
-
是对瀑布模型的改良,V模型纠正了瀑布模型中对软件测试阶段的不重视。
2、特点
-
V模型中将软件测试阶段与系统开发阶段对应起来了,将软件测试分为4个阶段:单元测试、集成测试、系统测试、验收测试。
-
V模型的软件测试策略既包括低层测试(单元测试)又包括高层测试(验收测试)。
3、缺点
-
V模型欸有从根本上解决瀑布模型的问题。由上图箭头的方向可知,单元测试开始依然实在程序编码阶段后,所以软件测试阶段相当于还是在项目交付之前的的尾部阶段进行的,软件质量依然可能会存在问题。
4、应用场景
-
主要用于需求明确、解决方案名曲、对性能、安全要求较高的项目。
5、考点:V模型特点及应用场景
三、原型模型
1、概念
-
始于沟通,需求分析人员和软件开发人员,与客户进行沟通了解需求后,快速做的一个模型,然后再与用户进行沟通,确认模型中展示的功能与用户需求不一致的地方并进行改进,经过多个这样的交流过程,最终能够明确用户的需求,最后将构建的原型转换成一个软件系统,这样过程叫做原型法。
-
我们创建的体现系统核心功能的,可运行的一个版本,叫做原型。只是一个原型,可能是还没有开发实现的,例如一个简单的UI界面图。补充:原型分为抛弃型原型和演化型原型。
-
原型法是明确用户的需求后再进行一步步开发,所以最终的交付只有 一次。
2、特点
-
最初不要求用户能够正确完整清晰的描述自己的需求。
-
便于与用户进行沟通,明确用户的需求。
3、缺点
-
因为原型模型各个阶段都要求快速,所以整个软件生命周期中有部分工作是来不及做的,例如文档编写工作。
-
采用抛弃型原型时,构建原型的工作可能会被浪费。
4、应用场景
-
主要用于需求不明确,需求动态变化(例如界面开发)的项目。
5、考点:原型模型的特点及应用场景
四、增量模型
1、概念
-
注意:不要将增量模型与原型模型中的演化型原型搞混淆。
-
增量模型的最终交付有很多次。增量n次就会交付n次。
-
增量模型结合了瀑布模型将软件生命周期按照活动规律分阶段,再结合原型模型不断地迭代的一种开发模型。
2、特点
-
客户只需描述出大概的、主要的需求,软件分析人员根据用户主要的需求梳理出用户的核心需求,基于核心需求开发第一个版本交付给用户使用。
-
分阶段分批次逐渐的激发用户的需求。
-
可以将复杂的系统分多次开发和交付,降低了整个系统失败的风险。
3、缺点
-
增量的粒度不好衡量。
-
如果早期交付的系统在完整性、稳定性方面有问题,就增大了后期开发的复杂度,重新部署的难度等。
4、应用场景
-
主要用于需求大部分明确、系统较为复杂,有一定技术风险的项目。
5、考点:增量模型的特点及应用场景
五、螺旋模型
1、概念
-
螺旋模型采用周期性方法进行开发,结合了演化原型法和瀑布模型。
2、特点
-
具有原型的迭代,每一个迭代又分为需求计划的制定、风险的分析、实施、评审。
-
螺旋模型最大的特点就是每一阶段都有风险分析。
3、缺点
-
风险分析需要有经验的分析人员来做,所以风险分析人员的经验会直接影响到这个项目的风险。
4、应用场景
-
主要用于庞大、复杂并具有高风险的系统。
5、考点:螺旋模型的特点及应用场景
六、喷泉模型
1、概念
-
以用户需求为动力,以对象为驱动的一种开发模型。
2、特点
-
喷泉模型的分析、设计、实现阶段可以重叠进行,开发人员可以边做分析边做实现,这样就节约了开发时间。
-
由于阶段区分界限不是很明确,采用喷泉模型开发对文档要求比较严格。
-
喷泉模型适用于面向对象开发的软件。
3、缺点
-
因为阶段划分不是很明确,所以项目初期就需要投入大量人员,人员多了不利于项目管理。
-
对文档的审计难度会增加。
-
面向对象开发过程中,信息和需求在不断地增加,使得管理起来比较复杂。
4、应用场景
-
主要用于采用对象技术的软件开发项目。
5、考点:喷泉模型的特点及应用场景
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)