生命周期模型

 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. 在okhttp3,WebView中忽略HTTPS证书校验
  2. 【DocFX文档翻译】DocFX 入门 (Getting Started with DocFX)
  3. Servlet-forward转发
  4. 使用eclipse搭建嵌入式开发环境
  5. 前端路由||路由的基本概念与原理||在开发中,路由分为:   后端路由   前端路由
  6. JVM SandBox 的技术原理与应用分析
  7. 基于SmartQQ协议的QQ聊天机器人-4
  8. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! iview-admin@2.0.0 dev: `vue-cli-service serve
  9. 广东东软学院计算机系主任罗,广东东软学院副校长朱爱红一行来访我校
  10. 全国计算机等级考试题库二级C操作题100套(第94套)
  11. java多线程为啥一直用的一个线程_一个Java多线程的问题,颠覆了我多年的认知!...
  12. 嵌入式操作系统内核原理和开发(固定内存分配算法)
  13. 电脑工具栏怎么调整到下面_PDF格式的合同怎么盖公章?这不是在为难我胖虎吗?...
  14. Pytorch中Tensor和numpy数组的互相转化
  15. Mac版 matlab 安装 GAOT工具箱
  16. html中车牌号省份简称输入键盘
  17. 大学生创新创业训练计划讲解(大创)
  18. 三消游戏死局算法的解析
  19. 介绍一个全局最优化的方法:随机游走算法(Random Walk)
  20. 国内PLM用户满意度调研完整版

热门文章

  1. 你不做自然会有人替你做,你不努力自然有人在努力
  2. c++调用python接口_Python调用有道智云文本翻译API接口实现“智能”伪原创
  3. 新概念英语(第四册,新版)学习(原文及全文翻译)——Lesson 10 - Silicon Valley(硅谷)
  4. 深度学习在计算机视觉领域(图像,视频,3D点云,深度图等)应用全览
  5. ActiViz学习点滴(七)——坐标轴显示
  6. 李宏毅深度强化学习(国语)课程(2018) 笔记(八)Imitation Learning
  7. 做技术Leader要有危机意识
  8. 单片机毕设 人体定位智能调速风扇系统
  9. matlab 图像 热量图,请问,怎样用MATLAB把一幅图像的傅里叶变换后的能量分布图做出来?...
  10. 【檀越剑指大厂—SpringCloudAlibaba】SpringCloudAlibaba高阶