借鉴《http://wiki.mbalib.com/wiki/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E6%A8%A1%E5%9E%8B》

一、瀑布模型

定义:瀑布模型即生存周期模型,其核心思想是按工序将问题化简、将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。

结构:瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

特点:在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果影响,实施完成所需的工作内容。

缺点:1、各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

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

3、早起的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

二、增量模型

定义:又称演化模型。增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。

特点:当使用增量模型时,第一个增量往往是核心的产品,即第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,知道产生了最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。

优点:在增量模型中,软件被作为一系列的增量构建来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。

整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。

三、螺旋模型

定义:1988年,Barry Boehm正是发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。

迭代方式:螺旋模型沿着螺线进行若干迭代。

1、制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件。

2、风险分析:分析评估所选方案,考虑如何识别和消除风险。

3、实施工程:实施软件开发和验证。

4、客户评估:评价开发工作,提出修正建议,制定下一步计划。

优点:螺旋模型夸大风险阐发,使得开发职员以及用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具备高风险的系统。

缺点:1、采用该模型需要具备相当丰富的风险评估经验以及专门知识,在风险较大的项目开发中,如果没有货及时标识风险,势必造成重大损失。

2、过多的迭代回数会增长开发成本,延迟提交时间。

四、喷泉模型

定义:喷泉模型是一种以用户需求为动力,以对象为驱动的模型,首先要用于描述面向对象的如阿健开发历程。该模型认为软件开发历程自下而上周期的各阶段是彼此重叠以及屡次反复的,就像水喷上去又可以落下来,近似一个喷泉。

特点:各开发阶段没有特定的次序要求,并且可以交互进行,可以再某个开发阶段中随时增补其他不论什么开发阶段中的遗漏。喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,而且在项目的整个生存期中还可以嵌入子生存期。

优点:是可以提高软件项目开发效率,节省开发时间,顺应于面向对象的软件开发历程。

缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发历程中需要大量的开发职员,因此失败于项目的办理。此外这种模型要求严格的办理文档,使得审查核定的困难程度加大,尤其是面临可能随时插手各类信息、需求与资料的情况。

五、原型模型——样品模型

原型模式的主要思想:先借用已有系统作为原型模型,通过样品不断改进,使得最后的产品就是用户所需要的。

原型模式通过向用户提供原型获取用户的反馈,使开发出的软件能够真正的反映用户的需求。同时,原型模式采用逐步求精的方法完善原型,使得原型能够快速开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈做出快速的响应。相对瀑布模型而言,原型模式更符合人们开发软件的习惯,是目前较为流行的一种实用软件生存期模型。

特点:

1、开发人员和用户在原型上达成一致。这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确以及用户的满意程度。

2、缩短了开发周期,加快了工程进度。

3、降低成本。

缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。这往往给工程继续开展带来不利因素。开发者为了使一个原型快速运行起来,往往在实现过程中采用这种手段。不易利用原型系统作为最终产品。采用原型模式开发系统,用户和开发者必须达成一致:原型被建造仅仅是用户来定义需求,之后便部分或全部抛弃,最终的软件是要充分考虑了质量和可维护性等方面之后才会被开发。

几种模式的对比:

模型 优点 缺点
瀑布模型 文档驱动 系统可能不满足客户的需求
快速原型模型 关注满足客户需求 可能导致系统设计差、效率低,难于维护
增量模型 开发早期反馈及时,易于维护 需要开放式体系结构,可能会设计差、效率低
螺旋模型 风险驱动 风险分析人员需要有经验且经过充分训练

软考难点—软件开发模型(借鉴)相关推荐

  1. 软考上午题难点5分钟攻克系列(十)

    软考上午题难点5分钟攻克系列(十) 由于微博暂时不支持直播视频,可以单击下面链接学习 http://edu.51cto.com/center/course/lesson/index?id=184768 ...

  2. 借鉴:软考高项备考考试心得,来自一名学员的总结,非常全

    在经历 2019 年 11 月 9 日艰苦软考信息系统项目管理师(高级)考试后,在12 月 16 日终于迎来了查询成绩的日子,我怀着无比紧张的心情登陆成绩查询网站终于一次性通过考试,我太幸运了!我的成 ...

  3. 软考软件设计师---面向对象技术(设计模式--创建型--工厂、生成器、原型、单例)

    转载于自己博客文章: 软考软件设计师---面向对象技术(设计模式--创建型--工厂.生成器.原型.单例) - 松下之约一.创建型设计模式关注对象的创建,让一个类得到实例化过程由另一类的对象完成.分类: ...

  4. [架构之路-5]:架构师 - 中国计算机技术职业资格(软考)考试是如何定义系统架构师?

    目录 第1章 中国计算机技术职业资格(软考)等级 第2章 考试要求与技能要求 第3章 关于题型与分值 第4章 教材内容 第1章 操作系统 1 第2章 数据库系统 30 第3章 数据通信与计算机网络 1 ...

  5. 视频教程-系统集成项目管理工程师5天修炼-软考

    系统集成项目管理工程师5天修炼 新近主著.参编图书有<攻克要塞-系统集成项目管理工程师考试冲刺指南>.<攻克要塞-信息系统项目管理师考试冲刺指南>.<网络工程师考试分类练 ...

  6. 我的软考之路——软考心得

    软考?是什么东西,可能大多数人跟我一样,刚听到这个词语觉得很陌生,但当我走进社会,面临到工作的压力,要求自己必须学习进步的时候,认识了它!   那时候参加工作也几年了,工作的压力是一天天涨,工资却没多 ...

  7. 【软考-中级】系统集成项目管理工程师【总】

    持续更新中............... 学习目标:完成2023上半年 软件中考任务 目标23年5月 考试前 完成 相关知识点学习 和练习 核心 十五至尊图: 上面图是考试的核心,需要背下来 一.信息 ...

  8. 【软考系统架构设计师】2009年下系统架构师综合知识历年真题

    [软考系统架构设计师]2009年下系统架构师综合知识历年真题 2009年下系统架构师综合知识历年真题 [软考系统架构设计师]2009年下系统架构师综合知识历年真题 [2009下架构真题第01题:绿色] ...

  9. 软考中级软件设计笔记

    为备考2022上半年软考所做的笔记,祝愿自己顺利通过! 软考笔记 知识点速记 操作系统 1.CUP中的寄存器 2.中断&DMA 3.系统可靠地计算 4.存储器 4.1 Cache 4.2 存储 ...

最新文章

  1. 你是合格的程序员吗?(欢迎大家自测)
  2. 理解Promise (4)
  3. C# 使用 Lotus notes 公共邮箱发送邮件
  4. No changes detected解决方案
  5. 动态规划——最嘉观光组合(Leetcode 1014)
  6. 吉林大学计算机学院刘衍衍教授,周柚-吉林大学计算机科学与技术学院
  7. 通过kmeans分析出租车数据并调用百度API进行可视化!
  8. 脚本录制软件python 按键精灵 tc_Keymouse Go鼠标键盘脚本录制下载|开源版按键精灵软件_最火软件站...
  9. php源码内网穿透,PHP DDOS源码
  10. 7种个人主页简历网页模板源码下载
  11. flag计算机语言的意思,flag是什么意思-c语言flag的用法
  12. 【天坑】BLAST比对序列时遭受的痛苦
  13. (一)Deep learning论文纯翻译
  14. 表格操作系列——在指字的区域内增加或删除行不影响排版
  15. Javascript实现打字效果
  16. 上网本不会是一场流星雨
  17. 苏州Uber人民优步奖励政策
  18. ClearType通俗解释
  19. 两位数码管动态显示c语言程序,四位数码管动态显示c语言程序
  20. 【打卡第243道】【二叉树】【剑指Offer】:JZ8 二叉树的下一个结点

热门文章

  1. 光伏组件市场价格战下谁获益?
  2. 深入理解javascript中的焦点管理
  3. 【linux高级程序设计】(第十一章)System V进程间通信 1
  4. JAVA 正则表达式 (超详细) .
  5. Selenium2.0 获取隐藏元素的内容
  6. CWnd的派生类-1、CFrameWnd类
  7. Q88:全局光照(Global Illumination)——Path Tracing算法生成反射焦散效果的图形
  8. MapReduce 学习指南
  9. PyTorch学习笔记(一):PyTorch环境安装
  10. 购买物联网卡应该注意哪些问题?