简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点。
瀑布模型
- 优点:为项目提供了按阶段划分的检查点;当前一阶段完成后,您只需要去关注后续阶段;可在迭代模型中应用瀑布模型;它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导.
- 缺点:各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险;通过过多的强制完成日期和里程碑来跟踪各个项目阶段;瀑布模型的突出缺点是不适应用户需求的变化;
增量模型
- 优点:采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量;当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径;增量能够有计划地管理技术风险.
- 缺点:由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构;在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性;如果增量包之间存在相交的情况且未很好处理,则必须做全盘系统分析,这种模型将功能细化后分别开发的方法较适应于需求经常改变的软件开发过程.
螺旋模型(含原型方法)
- 优点:通过原型的创建,使软件开发在每个迭代的最初明确方向;通过风险分析,最大程度地降低软件彻底失败造成损失的可能性;在每个迭代阶段植入软件测试,使每个阶段的质量得到保证;整体过程具备很高的灵活性,在开发过程的任何阶段自由应对变化;每个迭代阶段累计开发成本,使支出状况容易掌握;通过对用户反馈的采集,与用户沟通,以保证用户需求的最大实现;
- 缺点:过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏差将造成重大损失;过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调;由于只适用大型软件,过大的风险管理支出会影响客户的最终收益.
简述统一过程的三大特点,与面向对象的方法有什么关系?
三大特点:用例驱动、以架构为核心、迭代及增量。 用例驱动指采用用例来驱动大量的开发活动,比如定义和测试事件和过程和创建用户文档、系统开发等。以架构为核心指在早期使全局的结构基本稳定,在后续阶段中对已形成的体系结构框架进行不断细化,最终实现整体系统。迭代及增量指开发被组织成一系列固定的短期小项目,称为迭代,每次迭代都具有各自的需求分析、设计、实现和测试活动等。 与面向对象的方法的关系:面向对象的方法包含在统一过程当中,在统一过程中的系统实现的阶段,使用面向对象的方法进行具体的实现。
简述统一过程四个阶段的划分准则是什么?关键的里程碑是什么?
- 第一阶段:初始阶段(inception):该阶段的主要目的是建立项目的范围和版本,确定项目目标的可行性和稳定性,结交结果包括需求和用例。关键的里程碑是生命周期目标里程碑。
- 第二阶段:精化阶段(elaboration):该阶段的目的是对问题域进行分析,建立系统需求和架构,确定实现的可行性和稳定性,提交结果包括系统架构,问题领域、修改后的需求及项目开发计划等相关文档。关键的里程碑是生命周期结构里程碑。
- 第三阶段:构造阶段(construction):增量式开发可以交付给用户的软件产品。关键的里程碑是初始功能里程碑。
- 第四阶段:交付阶段(transition):目的是将软件产品交付给用户。
关键的里程碑是产品发布里程碑。
软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?
因为统一过程为企业按固定节奏生产、固定周期发布软件产品提供了依据,统一过程的软件生命周期从时间上分为四个阶段,每个阶段包括一个主要的里程碑。阶段是两个主要里程碑的分隔,在各个阶段结束时,执行评估阶段目标是否满足以决定是否进入下一个阶段。采用迭代开发模式,每个阶段可以进一步分解为迭代。每个迭代是一个完整的开发循环,产生一个可执行的产品版本,每次迭代都产生经过测试、集成并可执行的局部系统。每次迭代都具有各自的需求分析、设计、实现和测试活动。 好处:给企业的开发团队的开发活动提供了规范的步骤组织指导,规定了每个阶段的目标和开发成果,定义了一个项目中产品和活动的标准。