1.简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点。
瀑布模型
优点
为项目提供了按阶段划分的检查点
当前一阶段完成后,您只需要去关注后续阶段
可在迭代模型中应用瀑布模型
它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导
缺点
各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量
由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险
通过过多的强制完成日期和里程碑来跟踪各个项目阶段
瀑布模型的突出缺点是不适应用户需求的变化
增量模型
优点
采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径
增量能够有计划地管理技术风险
缺点
由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构
在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性
如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程
螺旋模型(含原型方法)
优点
通过原型的创建,使软件开发在每个迭代的最初明确方向
通过风险分析,最大程度地降低软件彻底失败造成损失的可能性
在每个迭代阶段植入软件测试,使每个阶段的质量得到保证
整体过程具备很高的灵活性,在开发过程的任何阶段自由应对变化
每个迭代阶段累计开发成本,使支出状况容易掌握
通过对用户反馈的采集,与用户沟通,以保证用户需求的最大实现
缺点
过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏差将造成重大损失
过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调
由于只适用大型软件,过大的风险管理支出会影响客户的最终收益