【软考】软件开发模型汇总分析

软件开发模型

瀑布模型

将生命周期中的各个活动规定为以线性顺序链接的若干阶段的模型,包括需求分析、设计、编码、测试、运行与维护,它规定由前至后的顺序次序,就像瀑布流水一样逐级下落

小明来解说:小明的妈妈要小明去买东西(薯片,爆米花,烤红薯,糖炒栗子),瀑布模型就是,小明在家里的时候问他的妈妈都需要买什么,然后记在了小本本上,最后只拿着小本本去买东西,然后一次性买回来带给妈妈,如果他的妈妈突然之间想吃糖葫芦,但是小明出门的时候只带了小本本,没有带手机,所以他的妈妈就不能吃到糖葫芦了,而恰巧卖糖炒栗子的人今天没有出摊,小明没有买到糖炒栗子,那回家的时候就还要和妈妈解释一下,而且也不能变通。
在这里插入图片描述
是否使用这一模型主要取决于是否能理解客户的需求以及在项目的进程中这些需求的变化程度,对于经常变化的项目而言,瀑布模型毫无价值

瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,缺点如下:
(1) 各个阶段的划分完全固定,阶段之间产生大量的文档,增加了工作量。
(2) 开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险。
(3) 早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

增量模型

增量模型的第一个要求是需要模块化,在开发的过程中将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件,增量模型是一个递增的过程,相比较瀑布模型而言,增量模型的开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
小明来解说:增量模型就是小明将妈妈的需求都记在小本本上,然后一家一家的去买,先买了糖炒栗子带回家,再买了烤红薯回家,一直到所有东西都买好之后再一起带给妈妈,如果期间妈妈有想要的东西可以随时告诉小明,让小明再去买
在这里插入图片描述
具体的开发阶段:
1、前期,确定系统需求以及增量构件的关系等具体设计

2、完成总体设计之后,开始进行对增量构件的需求细化并进行开发。

3、完成了某一个增量的开发后进行汇集到系统中去,然后开发下一个增量

演化模型(原型模型、螺旋模型)

演化模型是通过迭代来实现软件开发的过程,演化模型特别适合用于对软件需求缺乏准确认识的情况,也就是需求不明确的情况

原型模型

原型模型也叫做样品模型
它通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。用逐步求精的方法进行完善,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。相对瀑布模型而言,原型模型更符合人们开发软件的习惯,是目前较流行的一种实用软件生存期模型。
在这里插入图片描述
小明解说:今天是爸爸的生日,妈妈想要给爸爸买一个生日蛋糕,但是因为还要做别的菜不能出门,就需要小明去买,但是妈妈也不知道具体想要什么样子的蛋糕(需求不清楚),这时小明带着手机就去蛋糕店拍了一个蛋糕样品(原型架构)给妈妈看,妈妈觉得这个可以,于是挂了电话,在做饭的过程中,妈妈突然想起要给爸爸做一朵红色的玫瑰花,然后打电话给小明说要在上面放一朵红色的玫瑰花(变更需求),挂断电话后又想起要写上爸爸的名字和生日快乐,于是又打电话告诉小明说要写上爸爸的名字(经常变更需求),一直到最后小明没有再接到电话,然后带着蛋糕回家了

螺旋模型

螺旋模型是将瀑布模型和演化模型结合起来的,加入了两种模型都忽略的风险分析,主要分为四个步骤
1.做计划:确定目标,实施方案,确定项目开发的条件
2.风险分析:分析方案,识别风险,消除风险
3.实施工程:实施软件开发,验证阶段性的产品
4.用户评估:用户评价并提出建议,建立下一阶段开发计划
在这里插入图片描述

喷泉模型

喷泉模型是以用户的需求为动力,一对象作为驱动的模型,适合于面向对象的开发方法
该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性
优点:
瀑布模型是需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发,所以可以提高软件项目开发效率,节省开发时间
缺点:
开发过程中需要大量的开发人员,不利于项目管理。要求严格管理文档,从而使审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
在这里插入图片描述

基于构件的开发模型

基于构建的开发是指利用预先包装的构件来构造应用系统,构建可以是组织内部开发的构建,也可以是商品化成品软件构件。基于构建的开发模型具有许多螺旋模型的特点,但它本质上是演化模型,需要以迭代的方式构建软件,不同点:基于构建的开发模型采用与先打包的软件构件开发

形式化方法模型

形式化方法是建立在严格数学基础上的一种软件开发方法,其主要活动是生成计算机软件形式化的数学规格说明

统一过程模型

是“用力和风险驱动,一架构为中心,迭代并且增量”的开发过程
主要有四个阶段
1)起始阶段
项目初创活动,构想文档,初始项目术语表,初始业务用例,初始风险评估,项目计划等等
2)精化阶段
在理解了最初的领域范围之后进行需求分析和架构演进,产生用力模型,补充需求等等
3)构建阶段
关注系统的构建,产生实现模型
4)移交阶段:产品发布

敏捷方法

目标:尽可能早地、持续地对有价值的软件的交付
1.极限编程–XP
价值观:沟通、简单、反馈、勇气
原则:快速反馈,简单性假设,逐步修改,提倡更改和优质工作
2.水晶法(Crystal)
水晶法认为每个不同的项目都需要不通的策略、约定和方法论,认为人对软件质量有重要的影响,软件质量随开发人员素质的提高而提高
3.并列争求法(Scrum)
用迭代的方法,把每30天一次的迭代看做一次冲刺,并按需求的优先级来实现产品

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值