形形色色的软件生命周期模型.docxVIP

  • 4
  • 0
  • 约4.73千字
  • 约 12页
  • 2017-01-30 发布于重庆
  • 举报
形形色色的软件生命周期模型

摘要:读大学时,我们曾经学习过不少软件生命周期模型,当时还不是很懂软件开发,你可能会觉得这些东西很新奇。在实际工作中,你会发现这些模型其实很难应用,与此同时你会接触到RUP、MSF等权威软件公司的生命周期模型。本文将向你介绍各种常见的软件生命周期模型及它们的优缺点,文章最后还会介绍吸取了各种模型优点的实用生命周期模型。大纲:1.瀑布型2.增量型3.进化型4.原型5.螺旋型6.RUP的软件生命周期模型7.MSF的软件生命周期模型8.实用软件生命周期模型本系列文章将为分四次为你分享,每次分享两种模型。?软件生命周期模型,是指软件由开始制作到最后被淘汰掉整个过程的模式。下面我们将逐一介绍各种常见的软件生命周期模型,最开始几种是我们读书时学习到的,后面是各种是实用生命周期模型,而最后一种是我在多年项目管理工作中总结出来的可能是最符合我们现状的开发模型。瀑布型瀑布型简单地说就是按照需求、设计、编码、测试、软件维护这个基本的顺序来研发软件,前面一个步骤不完成,后面的步骤不能开始,否则问题会滚到下个阶段,带来更多的问题。瀑布型的图如下:?此图来自互联网瀑布型是我们说得最多的模型,也最容易理解,但在实际工作中最不能执行。我们普遍会认为,大型的、严谨程度高的项目应该采用瀑布型,恰恰相反,往往是规模很小的项目才适合这样做。大型的项目,需求和技术都是很复杂的,如果死板地按照瀑布型,基本不可能适应复杂的需求与技术情况,也会让项目遥遥无期。而规模很小的项目,需求容易在前期就搞得很清楚,技术也不复杂,这时反而适用瀑布型。但实际情况是规模很小在前期能搞定需求的项目基本上是没有的,能应用瀑布型的情况一般是项目的后期维护小版本,某个很小的升级版本可以用瀑布型的开发模式。增量型先看看增量型的图:?此图来自互联网该模式的特点是一次性地获取全部的需求,然后做出分版本实现各需求的计划,每个版本只实现一部分需求,通过多个版本逐步实现全部需求,而每个版本可以认为是一个“小瀑布”。该模型的好处是可以尽快让系统上线,让客户先使用部分功能,尽早实现系统的价值。该模型比较能符合实际的情况,我们往往也是通过多个版本来逐步实现全部需求,但需求是不可能在一开始就完全确定的,实际情况是往往最多只能确定80%,而后期通过各版本我们还会获取更多的新需求以及需求调整。将此模型稍微调整后,可以适用于大部分的实际项目。进化型进化型和增量型类似的地方就是都是分多个版本发布,但区别就是项目初期无法获取全部的需求,用户对需求其实也没有全面了解,需求获取是一个重复的过程。第一个版本实现的是客户的初步想法,然后后续版本不断地调整。此图来自互联网这种模式,其实就是边做边看边调整的模式。这样的方式应该比较受软件公司喜欢,因为客户的想法无时无刻在变啊!现实没有这样理想啊,我们的项目一般合同价钱是签死的,项目的期限也是限死的,客户当然喜欢你先做出来看看再调整了,但作为软件公司你能经得起这样的折腾吗?这样的模式,一般只能适用于公司内部研发某产品或者技术时的情况,而和客户签署合同的项目难以应用这样的模式。原型原型英文名字叫Prototype,原型开发我们在大学时就应该学习了。原型就是在客户有初步想法的时候,就“快速设计”和“快速编码”地做出一个可供演示的系统(即原型),用来更好地获取和理解客户的需求。当客户需求比较清晰时,则开始正式的开发工作,而开始做的原型有可能会被完全抛弃掉,也可能会在这个原型的基础上继续开发。原型严格来说不算一种软件生命周期模型,它只是一种获取需求的方法,在实际工作中该方法是相当重要的方法。螺旋型螺旋型可以说是综合了以上各种模型优点的一种模型,同时它加入了风险管理的内容。如下图:此图来自互联网我第一次学习螺旋型时,觉得比较难以理解,其实没有这样复杂,该模型简单地说是这样的:1.软件分多个版本开发,每个版本就是一次螺旋。2.每个版本按照这样的顺序进行:1)确定软件目标,选取定实施方案,弄清项目开发的限制条件;(图中左上象限)2)分析所选取方案,考虑如何识别和消除风险;(图中右上象限)3)实施软件开发;(图中右下象限)4)评价开发工作,提出修正建议,调整计划。(图中右下象限、左下象限)3.需求不是一次获取和实现的,通过多个螺旋来完善。4.计划也不是一次成型的,每次螺旋都需要调整。该模型在实际工作中实用性还是相当高的,但可能是该模式很多资料都说得不太清楚,让很多人会有一些误解。RUP的软件生命周期模型RUP是统一软件过程的缩写,英文全写为:Rational Unified Process。前面提到增量、进化、螺旋的共同特点是多个版本,而每个版本可以认为是一个“小瀑布”,对于每个版本,我们可以认为还是要先完成前一步才能做下一步。而RUP认为项目中的工作可以分成好几类,而每一类工作在整个项目周期都是持续进行

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档