项目管理基础:项目的生存周期模型

             

 

1、概念介绍

软件生命周期模型是一个包含软件产品开发、运行和维护中有关过程、活动和任务的框架,它覆盖了系统从需求定义到系统使用的结束阶段。

特点:

  • 描述了开发的主要阶段

  • 定义了每个阶段需要完成的任务和过程

  • 规范了每个阶段的输入输出

  • 提供了一个标准框架,可以把必要的活动映射到该框架中去。

2、项目生命周期模型分类

比较常用的有瀑布模型、演化模型、螺旋模型、喷泉模型。

2.1 瀑布模型(Waterfall Model)

瀑布模型将项目的生存周期各个活动规定为按照线性顺序连接成若干个阶段的模型。包括需求分析、设计、编码工作、测试、项目运维。依照由前至后、相互衔接的固定顺序,类似瀑布流水,逐级下落。

             

 

适用范围:文档型为驱动、适合那些项目需求十分明确的软件项目。

优点:

容易理解、管理成本较低、强调开发阶段性早期计划及需求调研和产品测试。

缺点:

  1. 客户需要完整、准确的表达自己的需求

  2. 在开始的前三个阶段很难评估真正的进度状态

  3. 项目收尾阶段可能会出现大量的集成测试工作

  4. 对项目的风险控制能力较弱

2.2 增量模型(Incremental Model)

增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分为一系列增量产品,每个增量可以分别开发。增量模型强调每一个增量都是一个可操作的阶段产品。

             

 

优点:融合了瀑布模型的优点。另外还有以下几个优点

  1. 第一个可交付版本所需的成本和时间很少

  2. 开发由增量表示小系统所承担的风险会小很多

  3. 因为较快时间发布了第一个版本,可以减少客户对需求的变更。

运行增量投资,也就是项目开始时,可以仅对一个或两个增量投入成本。

缺点:

  1. 如果对客户的变更要求规划不得当,产生的初始增量可能会造成后来的增量不稳定

  2. 前期需求没有思考全面可能会造成一些增量需要重新开发、发布。

  3. 管理发生的成本、进度和配置的复杂性会增加项目的成本。

2.3、演化模型(Evonlutionary Model)

演化模型主要针对事先不能完整定义需求的项目开发,是在一个比较初期的原型基础上,根据客户在确认原型的过程中提出意见和建议,从而逐渐改进原型,直到客户满意。

优点:

任何功能一旦开发后,就可以进入测试环节,以便验证是否符合产品需求,可以帮助引导出高质量的产品要求。

缺点:

如果控制不当让客户接触到开发当中不稳定的功能,可能会对客户以及开发人员带来负面影响。

2.4、螺旋模型(Spiral Model)

螺旋模型可以看作是瀑布模型和演化模型的结合体,并加入了风险分析。

             

 

螺旋周期:

  1. 制定计划:确定项目的目标,选定实施方案,明确项目开发的限制条件。

  2. 风险分析:分析所选方案、识别风险、消除风险。

  3. 实施工程:开发阶段、阶段验证产品的质量。

  4. 客户评估:客户评估开发产品的质量,提出改进建议,建立下一个周期的开发计划。

螺旋模型强调风险分析、让每个开发人员和客户对每个演化层出现的风险有所了解,然后做出应有的反应。特别适合庞大、复杂且有高风险的项目。

优点:

  1. 支持客户需求的动态变化,为客户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力。

  2. 也为项目经理及时调整管理决策提供了很好的支持,从而降低了软件开发的风险。

缺点:

  1. 需要开发人员具备相当丰富的风险评估经验和专门知识

  2. 过多的迭代可能会增加开发成本、延迟交付时间。

2.5、喷泉模型(Water Foundtain Model)

喷泉模型以客户需求为动力,以对象作为驱动模型,适合面向对象的开发方法。

             

 

优点:

喷泉模型各个阶段没有明显的界限,开发人员可以同步进行,从而提高了软件的开发效率。

缺点:

喷泉模型各个开发阶段是重叠的,开发过程会需要大量开发人员、不利于项目的管理。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jps显示当前所有java进程pid

很多Java命令都在jdk的JAVA_HOME/bin/目录下面,jps也不例外,他就在bin目录下,所以,他是java自带的一个命令。 jps(Java Virtual Machine Process Status Tool) 是java提供的一个显示当前所有java进程pid的命令,适合在…

jvm内存结构_浅谈JVM内存结构

JVM 可以分为 5 个部分,分别是:类加载器(Class Loader):加载字节码文件到内存。运行时数据区(Runtime Data Area):JVM 核心内存空间结构模型。执行引擎(Execution Engine…

鸿蒙和安卓,到底有什么区别?

对于开发者来说两个最关键的点值得关注:一个是 Beta 版的开发工具,一个是开源网站。开源网站在开发者大会上宣布将 HarmonyOS源代码捐赠给中国开放原子开源基金会,并在大会上公布了鸿蒙系统的开源路线。OpenHarmony 官方源码地址:…

错题集03

(选择一项) 3A: B: C: D: 正确答案是 B解析:LinkedList是实现List,Collection接口,是链表方式进行构建的,根据开发要求不同,可以使用LinkedList实现栈(先进先出)和堆(先进后出)这样的数据结构。(选择一项) 4A: B: C: D: 正确答案是 C解析:由于Hashtable是线程…

项目管理基础:软件开发的方法介绍

软件开发方法主要有结构化方法、原型化方法、面向对象开发方法、敏捷方法。1、结构化方法结构化方法由结构化分析、结构化设计、结构化程序设计组成,它是一种面向数据流的开发方法。结构化分析:依据分解与抽象的原则,按照系统中数据处理的流程…

类加载器子系统的作用

类加载器子系统的作用

Magento Block设计分析(深入分析)

Magento中Block是一个很重要的组件,它在Block中充当非常重要的角色,下面我们来分析一下Magento中Block是怎样设计的,我们应该怎样使用这个重要的角色。1、Magento Block类图: 图1: 继承Varien_Object的对象都有一个_data类变量,用…

JAVA输出x和y和z_JAVA实例:输入三个整数x,y,z,请把这三个数由小到大输出-吾爱编程网...

今天为大家分享一个java经典实例输入三个整数x,y,z,请把这三个数由小到大输出,相信很多初学者都会学到这道题目,接下来吾爱编程为大家介绍一下程序的相关写法,有需要的小伙伴可以参考一下:1、题目:输入三个整数x,y,z,请…

软件项目管理相关概念介绍笔记

1、成本估算由于软件项目具有可见性差、难定量化的特点,一般情况下很难在项目完成前准确的评估软件项目开发的工作量和费用。通常会根据以往开发类似项目的经验来进行成本估算。也可以将整个项目划分为若干个子系统或按照软件的生命周期的各个阶段分别进行费用估算&…

类加载器ClassLoader的角色

类加载器ClassLoader的角色

软件项目管理:进度管理相关概念介绍

软件项目管理当中,项目进度的合理安排是如期完成软件项目的重要基础,也是合理分配资源的重要依据。项目进度安排是项目管理工作当中非常重要的组成部分。软件开发项目进度安排的方式:1、系统最终交付日期已经确定,软件开发部门必须…

ios开发 多人语音聊天_手游语音市场的现状、机遇与挑战

文/手游那点事小鱼原创2014年持续火热的手游市场成就了一大批企业的上市梦,同时也在大环境下产生了对系列手游增值服务的需求。基于玩家对手游社交性的需求,以及借鉴传统端游,页游中成功的社交体系,手游市场逐步出现了对手游语音的…

linux 下运行 tomcat

一开始找不到表名,原来mysql 表名区分大小写。 修改参数 lower_case_table_names1 成功运行后不能通过浏览器访问! 开启8080端口 一、关闭防火墙 firewall-cmd --state 查看状态 [rootVM_7_88_centos /]# firewall-cmd --state running [rootVM_7_88…

软件项目管理:软件工具与开发环境相关知识介绍

1、软件工具相关名词概念软件工具:用来辅助软件开发、运行、维护、管理等过程中的活动软件。软件开发环境:是指支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成。软件工具集:包括支持软件开发相关过程、活动、任务的…

apollo java客户端_携程配置中心Apollo的Java客户端API的使用

一、SpringBoot集成1.发布配置信息设置本机为DEV环境:Linux在/opt/settings/server.properties增加配置envDEV,windows在c:\opt\settings\server.properties图1 在apollo portal上新建项目后,默认就有了application命名空间。在DEV环境下新建…

JNI----Native本地方法接口

Native本地方法接口 JNI:Java Native Interface 本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C程序 native:凡是带native关键字的,说明java的作用范围达不到了,会去调用底层c语言的库&#xff01…

项目管理基础:系统分析相关概念介绍

1、系统分析的主要任务系统分析主要任务是对现行的系统进一步详细调查,将调查得到的资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需要的资料,并提交系统方案说明书。2、系统分析的主要阶段系统分析主…

线性代数及其应用_线性代数入门——行列式的简单应用选讲

系列简介:这个系列文章讲解线性代数的基础内容,注重学习方法的培养。线性代数课程的一个重要特点(也是难点)是概念众多,而且各概念间有着千丝万缕的联系,对于初学者不易理解的问题我们会不惜笔墨加以解释。在内容上,以…

系统开发基础:UML相关知识笔记

1、UML概念统一建模语言(Unified Modeling Language UML)是面向对象软件的标准建模语言。由于简单、统一,又能够表达软件设计中的动态和静态信息。目前UML已经成为可视化建模语言的工业标准。2、UML的组成UML三要素:构造块、规则、…