Policy Information
瀑布模型:是将软件生存周期中的各个活动规定为依线性顺序连接的若干个阶段的模型,包括需求分析、设计、编码、测试、运行与维护。它规定了由前至后、相互衔接的固定次序;以项目阶段评审和文档控制为手段有效地对整个开发过程进行指导;
其优点是:容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试;
其缺点是:客户必须能够完整、正确、清晰地表达他们的需要;在开始的2~3个阶段中,很难评估真正的进度状态;当项目结束时,出现大量的集成和测试工作;直到项目结束之前,都不能演示系统的能力;需求或设计中的错误往往只有到了项目后期才能够被发现,对项目风险控制能力较弱,从而导致项目常常延期完成,开发费用超出预期。
适用项目:需求明确、解决方案明确的项目。
原型模型:开始于沟通,其目的是定义软件的总体目标,标识需求,然后快速制定原型开发的计划,定原型的目标和范围,采用快速设计方式对其进行建模,并构件原型。利用原型再通过与用户进行交互验证和进一步改进,重复这一过程最终得到令用户满意的软件产品
其优点是:利于增加软件人员和用户对系统需求的理解;原型的最终版本可作为产品或者最终系统的一部分;
其缺点是:文档容易被忽略;建立原型的许多工作被浪费;项目难以规划和管理。
适用项目:需求不明确,动态变化的项目(如界面的开发)
增量模型:融合了瀑布模型的基本成分和原型实现的迭代特征,假设可以将需求分段为一系列增量产品,每一增量可以分别开发。其特点:第1个增量往往是核心产品;客户对每个增量的使用和评估都作为下一个增量发布的新的特征和功能;增量模型强调每一个增量均发布一个可操作的产品;
其优点是:具有瀑布模型的所有优点;第一个可交付版本所需要的成本和时间很少;开发由增量表示小的系统所承担的风险不大;由于很快发布第一个版本,因此可以减少用户需求的变更;运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。
其缺点是:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。
适用项目:需求大部分明确,系统较为复杂,有一定技术风险
螺旋模型:采用一种周期性的方法来进行系统开发,结合原型方法和瀑布模型;每一周期都包括制定计划、风险分析、实施工程和评审4个阶段,进行迭代
其优点是:客户始终参与,和管理层有效地交互;强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解。
其缺点是:需要具有相当丰富的风险评估经验,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;过多的迭代次数会增加开发成本,延迟提交时间
适用项目:庞大、复杂并具有高风险的系统
评论