生命周期模型

 1. 1 .瀑布模型
瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段,如图所示。

瀑布模型中每项开发活动具有以下特点:

(l )从上一项开发活动接受其成果作为本次活动的输入。
( 2 )利用这一输入,实施本次活动应完成的工作内容。
( 3 )给出本次活动的工作成果,作为输出传给下一项开发活动。

(4 )对本次活动的实施工作成果进行评审。

缺点: 过程基本不可迭代,需求在开始的不确定性,错误到最后才能发现,开发进程呈现塞阻状态

瀑布型简单地说就是按照需求、设计、编码、测试、软件维护这个基本的顺序来研发软件,前面一个步骤不完成,后面的步骤不能开始,否则问题会滚到下个阶段,带来更多的问题。瀑布型简单地说就是按照需求、设计、编码、测试、软件维护这个基本的顺序来研发软件,前面一个步骤不完成,后面的步骤不能开始,否则问题会滚到下个阶段,带来更多的问题。

2 . V 模型
如图所示

V 模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V 模型的优点在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。

3 .原型化模型
原型化模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。充分了解后,再在原型基础上开发出用户满意的产品。

如图所示:原型严格来说不算一种软件生命周期模型,它只是一种获取需求的方法,在实际工作中该方法是相当重要的方法。            

增量模型也是原型化开发方法。如图所示

模型要点:瀑布和原型模型相结合,强调版本升级。

该模式的特点是一次性地获取全部的需求,然后做出分版本实现各需求的计划,每个版本只实现一部分需求,通过多个版本逐步实现全部需求,而每个版本可以认为是一个“小瀑布”。
该模型的好处是可以尽快让系统上线,让客户先使用部分功能,尽早实现系统的价值。
该模型比较能符合实际的情况,我们往往也是通过多个版本来逐步实现全部需求,但需求是不可能在一开始就完全确定的,实际情况是往往只能确定80%,而后期通过各版本我们还会获取更多的新需求以及需求调整。将此模型稍微调整后,可以适用于大部分的实际项目。

4.螺旋模型
螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。螺旋模型的整个开发过程如图所示。

图中的螺旋线代表随着时间推进的工作进展;开发过程具有周期性重复的螺旋线形状。4个象限分别标志每个周期所划分的4 个阶段:制定计划、风险分析、实施工程和客户评估。螺旋模型要点:统一了瀑布模型与原型模型,与增量模型相似,更强调风险分析。

1.软件分多个版本开发,每个版本就是一次螺旋。
2.每个版本按照这样的顺序进行:
   1)确定软件目标,选取定实施方案,弄清项目开发的限制条件;(图中左上象限)
   2)分析所选取方案,考虑如何识别和消除风险;(图中右上象限)
   3)实施软件开发;(图中右下象限)
   4)评价开发工作,提出修正建议,调整计划。(图中右下象限、左下象限)
3.需求不是一次获取和实现的,通过多个螺旋来完善。
4.计划也不是一次成型的,每次螺旋都需要调整。

该模型在实际工作中实用性还是相当高的,但可能是该模式很多资料都说得不太清楚,让很多人会有一些误解。

5 .迭代模型

喷泉模型:体现认识事物的循环迭代性,强调开发活动之间的无间隙性,无明显的活动阶段划分,适用于面向对象的开发过程。如图所示:

RUP (Rational Unified Process )软件统一过程是一种“过程方法”,它就是迭代模型的一种。如图所示。

RUP中的软件生命周期在时间上被分解为4 个顺序的阶段,分别是:初始阶段( Inception)、细化阶段(Elaboration )、构建阶段(Construction )和交付阶段(Transition )。这4 个阶段的顺序执行就形成了一个周期。每个阶段结束于一个主要的里程碑(MajorMileslones )。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否己经满足。

前面提到增量、进化、螺旋的共同特点是多个版本,而每个版本可以认为是一个“小瀑布”,对于每个版本,我们可以认为还是要先完成前一步才能做下一步。而RUP认为项目中的工作可以分成好几类,而每一类工作在整个项目周期都是持续进行的,只是不同工作在项目的不同时期比重不太一样.

按照时间顺序,项目分为初始(inception)、细化(Elaboration)、构造(Construction)、交付(Transition)四个阶段,
每个阶段会有很多个小迭代。这四个阶段其实很难说有明显界限的,我觉得大家大概了解每个阶段的工作内容就可以了。
按照工作的性质,项目的工作可以分为以下几类:
商业建模(BusinessModeling)
需求(Requirements)
分析和设计(Analysis& Design)
实现(Implementation)
测试(Test)
部署(Deployment)
配置管理与变更管理(Configuration& Change Mgmt)
项目管理(ProjectManagement)
环境(Environment)
以上这些工作,在项目的不同时期工作量分布是不太一样的,如:商业建模、需求这些工作往往是头大尾小,分析与设计、实现等是中间大两头小,项目管理、环境方面的工作一直都会持续进行。
RUP的思想打破了“需求-设计-编码-测试”这样的传统瀑布模式,需求、设计、编码、测试这些工作其实一直都在进行的,只是不同时间比重不一样。这个思想是很符合“敏捷”的特点,也和实际情况非常吻合。

http://www.360doc.com/content/12/0117/17/8115939_180031753.shtml

软件工程----生命周期模型相关推荐

  1. 软件工程生命周期模型_软件生命周期模型比较| 软件工程

    软件工程生命周期模型 软件生命周期模型 (Software Lifecycle Models) There are five software lifecycle models that are co ...

  2. 软件工程生命周期模型对比分析

    软件工程生命周期模型对比分析 2018年3月29日2018年3月28日 由 xyjisaw 本文共1515个字,预计阅读时间需要5分钟. 文章目录 迭代-递增生命周期模型 增量模型 进化树模型 编码- ...

  3. 【软件工程】软件生命周期模型 --- 瀑布模型、快速原型模型、增量模型、螺旋模型及喷泉模型

    软件生命周期模型是跨越整个生存期的系统开发.运作和维护所实施的全部过程.活动和任务的结构框架. 下面介绍几种常见的软件生命周期模型: 瀑布模型 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接 ...

  4. 【软件工程(一)】软件工程概述+软件生命周期模型

    文章目录 软件工程概述 软件的定义 软件的分类 软件工程要素.目标和原则 软件工程知识体系知识域 软件生命周期模型 工程过程 传统模型种类 瀑布模型 演化模型 增量模型 喷泉模型 V模型和W模型 螺旋 ...

  5. 二、软件工程 / 生命周期 / 软件开发模型

    软件测试 软件危机和软件工程 软件生命周期 软件生命周期模型 1. 瀑布模型 2. 螺旋模型 3. 迭代模型 4. 敏捷开发(Scrum)模型 5. 增量模型 6. 快速原型模型 软件危机和软件工程 ...

  6. 2-软件生命周期模型

    软件生命周期模型 软件工程过程 工程项目的PDCA循环(戴明环) 美国质量管理专家戴明博士针对工程项目的质量目标,将全面质量管理思想引入工程项目过程,提出了PDCA循环,也称为戴明环. 即Plan(规 ...

  7. 生命周期模型_建立从思想到价值的生命周期模型

    生命周期模型 数据科学家来自火星,软件工程师来自金星(第4部分)(DATA SCIENTISTS ARE FROM MARS AND SOFTWARE ENGINEERS ARE FROM VENUS ...

  8. 几种常用的软件生命周期模型与敏捷开发解读

    瀑布式开发和敏捷开发,看过软件工程相关的书籍的同学,对瀑布模型,增量模型 ,喷泉模型,W模型,V模型以及H模型都是知道一些的,那么现在提到更多的敏捷开发它们之间有什么不同和适用的范围,是否敏捷开发适用 ...

  9. 软件生命周期模型知识点总结(瀑布模型、演化模型、增量模型、V模型、W模型、螺旋模型、构件组装模型、RAD模型、RUP模型、极限编程模型)

    软件生命周期模型 基本概念 --PDCA循环(戴明环) --软件工作过程 --软件生命周期 --软件过程模型 传统软件生命周期模型 --瀑布模型 --演化模型 --增量模型 --喷泉模型 --V模型 ...

最新文章

  1. CV00-03-CV基本操作2
  2. 万字详解,JDK1.8新特性的Lambda、Stream和日期的使用详解
  3. WEB-INF目录下登录表单提交的重定向
  4. 类型多种_五轴机床有很多种类型,你知道几种?
  5. [转载]C#中实现强制整除 来源:网络
  6. 【机器视觉】 stop算子
  7. Controller FioriTest.view.LineItem couldn't be instantiated
  8. 2020牛客国庆集训派对day1 Zeldain Garden
  9. 关于延长物联网设备的生命周期
  10. 入门monkeyrunner7-monkeyrunner demo3 EasyMonkeyDevice+hierarchyviewer +monkeyrunner+截图对比
  11. 华为慧通值不值得去_华为 Mate 40太难抢,上半年的P40Pro还香吗?
  12. Python【WINAPI】钩子程序获取账号密码等键盘输入信息
  13. Python3基础语法
  14. 查询sql数据库端口 笔记
  15. 数据分析侠A的成长故事
  16. mysql物流管理系统_物流配送中心管理系统(SSM+MYSQL)
  17. 以业务流程为框架的企业组织设计
  18. python布尔值使用_如何在Python中使用布尔值?
  19. CDN的加速域名、源站地址与回源host之间的关系
  20. Python实现抠图换背景

热门文章

  1. RKE部署Kubernetes集群
  2. 导出数据库中的表为PDF格式(freemark+jdbc+springMVC)
  3. windows系统编译找不到unistd.h解决方法
  4. 数据可视化之Pyecharts制作酷炫图表
  5. 采用阿里的ius-release.rpm,安装最新版本的终端复用神器tmux
  6. 降低 cache 失效率的方法
  7. java 流量攻击_如何防御网站被ddos攻击 首先要了解什么是流量攻击
  8. 五步搭建属于自己的个人网站
  9. java calculator类_Calculator.java
  10. FPGA-verilog-写数字钟