【软件工程】软件过程各种模型的理解[ 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型 ]

  • 什么是软件过程?

    软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

  • 软件生命周期

在这里插入图片描述

瀑布模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 瀑布模型优点 :

    1.为项目提供了按阶段划分的检查点
    2.当前活动完成后,只需要去关注后续活动。
    3.它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

  • 瀑布模型缺点 :

    对于绝大多数人来说,刚接手一个新项目的时候都会不自觉的选择“瀑布模型.”我们跟客户交谈后指定需求分析,之后进行简单的设计,之后编写代码,提交,完成。新手会不自觉的选择这种方案,因为它直白,想到哪一步做到哪一步,需要做什么就做什么。但是,因为瀑布模型延迟实现的观点,即所有步骤完成之后才能看到结果,这在有些时候是要付出惨重的代价的.

    1.由于开发模型是线性的,用户只能等到整个过程的未期才能见到开发成果,从而增加了开发的风险。

    2.各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量

    3.只有在项目生命周期的后期才能看到结果,早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果

  • 应用场景 :

    1.功能和性能明确、完整、无重大变化的软件开发,
    2.分析设计人员对应用领域很熟悉,
    3.项目风险低,用户很少参与开发工作的项目。

    拿苹果手机来举例子 .

    乔布斯说的「消费者并不知道自己需要什么,直到我们拿出自己的产品,他们就发现,这是我要的东西.老乔从来不重视用户调查,他认为如果你不停的问消费者想要什么,他们只会告诉你一匹更快的马,直到你拿出一辆汽车。那么如果你品味最高,清楚自己想要什么,只为自己开发产品,自己就是消费者,那么就可以考虑用瀑布模型。就像乔布斯一样,因为乔布斯就是这样一个高傲的人,但他也是世界上最成功的产品经理!也是因为有了乔布斯,才有了今天的苹果手机

    同样适合瀑布模型的还有
    国家反诈骗中心 ,学习强国这种国家开发的软件,还有航空航天火箭啥的这些不用消费者的意见,就清楚自己想要什么的产品!

快速原型模型

在这里插入图片描述

  • 快速原型模型的基本思想:
    快速分析,快速实现,及时反馈,反复评价和改进,适应变化最终实现系统。

  • 快速原型模型方法步骤:

在这里插入图片描述
1.双方通过沟通,明确已知的需求。
2.迅速策划一个原型并进行建模,主要集中于那些最终用户所能够看到的方面,如人机接口布局或者输出显示格式等。
3.快速设计产生原型,对原型进行部署,由客户和用户进行评价;
4.根据反馈,进一步细化需求并调整原型;
5.原型系统不断调整以逼近用户需求

  • 优点:

    克服了瀑布模型的缺点
    1.及早提供有用产品;
    2.及早发现问题,及时改错;
    3.降低风险,减少开发时间,提高开发效率;
    4.用户参与,增加沟通,减少误解;
    5.适应需求的变化

  • 缺点:

    1.缺少有力的工具支持;
    2.尚未建立完整的开发标准;
    3.对设计人员和开发环境要求高;
    4.易变性给测试带来了困难.

增量模型

  • 什么是增量模型?
    使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

    增量模型的本质是以迭代的方式运用瀑布模型

  • 增量模型方法步骤:
    在这里插入图片描述

    第一个增量往往是核心产品:满足了基本的需求,但是缺少附加的特性;
    对上一个增量的提交物进行评价,制定下一个增量计划,说明需要增加的特性和功能;
    重复上述过程,直到最终产品产生为止。

  • 增量模型优点

    1.各个阶段交付的是满足客户需求的一个子集的可运行产品,有问题,可及时改正。
    2.因为首先交付具有较高优先权的模块,增量不断被集成进来,使得最重要的功能接受了最多的测试,从而降低风险
    3.合理的规划开发人员

  • 增量模型缺点

    1.每个附加的增量并入现有的软件时,必须不破坏原来已构造好的东西。
    2.管理人员须有足够的技术能力来协调好各增量之间的关系。
    3.开发期间,开发者和用户必须始终在一起,直到系统的安全版本出来。

螺旋模型

  • 什么是是螺旋模型 ?
    螺旋模型是瀑布模型与快速原型模型的联合体
    具有原型的迭代性与瀑布模型的系统性和可控性,是一种演进式风险驱动型软件过程模型.

    强调了风险控制,适合于大型复杂系统的开发。

  • 螺旋模型的基本思想
    通过建立原型、划分开发阶段来降低风险,一旦在开发过程中风险过大就停止继续开发,不适合作为合同项目的开发

  • 螺旋模型的方法步骤:

在这里插入图片描述

螺旋模型沿着螺线旋转,自内向外顺时针旋转,每旋转一圈便开发出更完善的一个新版本。
①制定计划
②风险分析
③实施工程
④评估成果
  • 螺旋模型优点 :

    对于大型系统及软件的开发,具有很好的风险控制,开发者和客户能够较好地对待和理解每一级迭代的风险。

  • 螺旋模型缺点 :

    需要具有较高的风险评估技术,应用比较复杂。

喷泉模型

  • 什么是喷泉模型:
    喷泉模型主要用于采用对象技术的软件开发项目。
    该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。
    软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。
    无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。

在这里插入图片描述

  • 喷泉模型优点:

    喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。

  • 喷泉模型缺点:

    由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

各种模型的比较:

在这里插入图片描述

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值