Software System Analysis and Design Assignment 3

系分作业三

Q:简述瀑布模型、增量模型、螺旋模型(含原型方法),并分析优缺点

瀑布模型

瀑布模型将软体生命周期划分为制定计划、需求分析、软体设计、程式编写、软体测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软体开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生回圈反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。

优点

  1. 为项目提供了按阶段划分的检查点。
  2. 当前一阶段完成后,您只需要去关注后续阶段。
  3. 可在迭代模型中每轮迭代很类似一个小的瀑布模型。
    增量迭代应用于瀑布模型。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
  4. 它提供了一个模板,这个模板使得分析、设计、编码、测试可以在该模板下有一个共同的指导。

缺点

  1. 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
  2. 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
  3. 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
  4. 瀑布模型的突出缺点是不适应用户需求的变化。

增量模型

增量模型融合了瀑布模型的基本成分(重覆应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软体的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重覆,直到产生了最终的完善产品。

优点

  1. 整个项目的资金不会被提前消耗,因为首先开发和交付了主要功能和高风险功能。每个增量交付一个可操作的产品。
  2. 每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对建立好的模型作出反应。
  3. 采用连续增量的方式,可把用户经验融入到细化的产品,这比完全重新开发要便宜得多。
  4. 通过同一个团队的工作来交付每个增量,保持所有团队处于工作状态,减少了员工的工作量,工作分布曲线通过项目中的时间阶段被拉平。
  5. 每次增量交付的结为,可以重新修订成本和进度的风险。
  6. 便于根据市场作出反应。
  7. 降低了失败和更改需求的风险。
  8. 更易于控制用户需求,因为每次曾两开发的时间很短。
  9. 由于不是一步跳到未来,所以用户能逐步适应新技术。
  10. 切实的项目进展,有利于进度控制。
  11. 风险分布到几个更小的增量中,而不是集中于一个大型开发中。
  12. 由于用户能够从早期的增量中了解系统,所以更加理解后面增量中的需求。

缺点

  1. 由于各个构件是逐渐并入已有的软体体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软体具备开放式的体系结构。
  2. 在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软体过程的控制失去整体性。
  3. 如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软体开发过程。

螺旋模型

螺旋模型(Spiral Model)的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简单方法,是把它看做在每个阶段之前都增加了风险分析过程的快速原型模型。

螺旋模型基本做法是在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制,它把软体项目分解成一个个小项目。每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险有所了解,继而做出应有的反应,因此特别适用于庞大、复杂并具有高风险的系统。对于这些系统,风险是软体开发不可忽视且潜在的不利因素,它可能在不同程度上损害软体开发过程,影响软体产品的质量。减小软体风险的目标是在造成危害之前,及时对风险进行识别及分析,决定采取何种对策,进而消除或减少风险的损害。

优点

  1. 对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标。
  2. 减少了多个测试(浪费资金)或测试不足(产品故障多)所带来的风险。
  3. 更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。
  4. 螺旋模型主要适用于内部开发的大规模软件项目。

缺点

  1. 螺旋模型的主要优势在于,它是风险驱动的。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风险:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。
  2. 过多的迭代次数会增加开发成本,延迟提交时间。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值