理解软件开发生命周期模型__2006

以下技术应用于最优质的水果的鲜果篮

软件开发生命周期模型的选择,直接影响到开发的效率和质量。因为模型是前人整理出来的,不同的模型适用于不同的情况的软件开发。关于“模型”,CMMI引论教材中的定义非常好,“模型是归纳了有效过程的特征的结构化集合”。CMMI的模型根据项目本身的情况可以进行裁剪,实际上也就是每个项目应该用合适的模型。软件开发生命周期模型也是一样,每个项目应该用合适的模型。所以,要根据每个项目的各自情况来选择合适的模型,在此之前,当然需要对模型有非常好的理解。
以下根据我的调查和理解介绍一些常见的软件开发生命周期模型。

瀑布模型○
特点:1、阶段件具有顺序性和依赖性。2、推迟实现。3、引入基于文档的开发。
优点:强调了设计,避免了后期的混乱;因为有详细的文档,降低了维护费用。
缺点:客户在初期只能通过静态的规格说明去了解动态的软件产品;对一些要求快速开发的项目来说,产生了过多的文档;最后才进行交付,客户感觉速度慢;需求变更的维护成本很大。
适用:需求明确;架构易设计;系统的可靠性要求高;项目开发风险小。

具有子项目的瀑布模型○
和瀑布模型的比较特点:通过构架设计把系统分成多个子系统,从详细设计开始每个子系统按照自己的步调走。
和瀑布模型的比较优点:各子系统之间不需相互等待。
和瀑布模型的比较缺点:如果没有把握好子系统之间的依赖性,会产生混乱,难以集成。
和瀑布模型的比较适用:子系统间的依赖性少。

螺旋模型★
特点:每次迭代有六个步骤:1、确定目标、方案和约束条件;2、识别并解决风险;3、评价备选方案;4、开发本次迭代的可交付内容,并检查他们的正确性;5、规划下一个迭代过程;6、如果需要,开始新的迭代过程。
优点:各种风险的控制有力。
缺点:复杂、风险管理成本高。
适用:内部开发的大规模软件项目;产品开发目标不明确,各种风险很多很高。

迭代(渐进原型)模型★
特点:整个软件产品被分解为很多增量构件,开发人员逐次向客户交付这些构件。在第一次交付构件起,客户就能评价和学习软件产品。每次迭代有四个阶段:1、先启(最初概念);精化(设计和实施最初原型);构建(精化原型直到可以被接受*RUP和Steve McConnell的概念有点不同:RUP的原型可以被抛弃);产品化(完成和交付)。
优点:客户能很早对动态的软件产品提出意见;客户能够看到项目的实际进展,增加客户对项目的信心。
缺点:要求有较强的设计和实施能力,保证增加构件时不会破坏已经开发出的工作产品;难以把握迭代的次数和最终的交付期。
适用:需求不清晰,开发时间较充裕,设计能力较强或各子系统之间的耦合很低时,实现方案没有把握时。

阶段交付模型★
特点:和具有子项目的瀑布模型的区别是很像迭代(渐进原型)模型,它是逐次增量地交付产品;和迭代(渐进原型)模型的区别是它是在完整的构架设计后开始详细设计,并且它没有强调原型。
优点:和迭代(渐进原型)模型比较,它强调了构架设计,因此在集成方面的风险比迭代(渐进原型)模型低。
缺点:和迭代(渐进原型)模型比较,它弱化了了原形的概念,所以增加了实现的风险。
适用:需求比较清晰,实现比较有把握,设计能力稍不足的情况下适用。

延后实现的阶段交付模型●
特点:详细设计完成后,将系统分为了子构件,对子构件进行优先级的区分,分批实现,逐次增量地交付产品。
优点:和阶段交付模型比较,由于强调所有设计完成后才能开始实现,所以设计方面的风险能尽早排除。
缺点:和阶段交付模型比较,由于强调所有设计完成后才能开始实现,所以第一次可以交付的时间较晚。
适用:需求较清晰,设计能力不足时。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值