16341016.github.io

Follow me on GitHub

1.简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点(从项目特点、风险特征、人力资源利用角度思考)

  • 瀑布模型
    • 优点
      • 为项目提供了按阶段划分的检查点,当前一阶段完成后,您只需要去关注后续阶段,降低软件开发的复杂程度,提高软件开发过程的透明性,提高软件开发过程的可管理性。
      • 以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发过程中存在的缺陷,使产品达到预期的质量要求。
      • 每个阶段拥有特定的人员
    • 缺点
      • 瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量。
      • 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险
      • 通过过多的强制完成日期和里程碑来跟踪各个项目阶段,强调过程活动的线性顺序,缺乏灵活性,尤其无法解决软件需求不明确或不准确的问题。
      • 管理人员如果仅仅以文档的完成情况来评估项目完成进度,往往会产生错误的结论。
  • 增量模型
    • 优点
      • 采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量。
      • 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
      • 增量能够有计划地管理技术风险。
    • 缺点
      • 建立初始模型时,作为增量基础的基本业务服务的确定有一定难度。
      • 由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构,增量粒度难以选择。
  • 螺旋模型
    • 优点
      • 通过原型的创建,使软件开发在每个迭代的最初明确方向
      • 通过风险分析,最大程度地降低软件彻底失败造成损失的可能性
      • 在每个迭代阶段植入软件测试,使每个阶段的质量得到保证
      • 整体过程具备很高的灵活性,在开发过程的任何阶段自由应对变化
      • 每个迭代阶段累计开发成本,使支出状况容易掌握
      • 通过对用户反馈的采集,与用户沟通,以保证用户需求的最大实现
    • 缺点
      • 失误的风险分析可能带来更大的风险。
      • 过于灵活的开发过程不利于已经签署合同的客户与开发者之间的协调
      • 只适用大型软件,过大的风险管理支出会影响客户的最终收益

2.简述统一过程三大特点,与面向对象的方法有什么关系?

  • 三大特点:用例驱动、以构架为中心、迭代和增量。用例和风险驱动、迭代及增量体现了用户驱动的开发,以架构为核心体现了风险驱动的开发。统一过程就是一种面向对象的方法。

3.简述统一过程四个阶段的划分准则是什么?每个阶段关键的里程碑是什么?

  • 第一阶段:初始阶段(inception):大体上的构想,业务案例,范围,和模糊评估。定义系统的业务模型,确定系统的范围。里程碑为生命周期目标里程碑。
  • 第二阶段:精化阶段(elaboration):已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。完成系统的体系结构设计,完成系统开发计划。里程碑为生命周期体系结构里程碑。
  • 第三阶段:构建阶段(construction):对遗留下的风险较低和比较简单的元素进行迭代实现,准备部署。构造产品,并继续演进需求、体系结构和计划,直到产品完成。里程碑为初始运行能力里程碑。
  • 第四阶段:产品交付阶段(transition):行系统部署,系统测试,最终移交给用户。里程碑为产品发布里程碑。

4.软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?

  • UP的软件生命周期从时间上分为四个阶段,每个阶段包括一个主要的里程碑。阶段是两个主要里程碑的分隔,在各个阶段结束时,执行评估阶段目标是否满足以决定是否进入下一个阶段,所以UP为企业按固定节奏生产提供了依据。
  • RUP采用迭代开发模式,RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统,所以UP为企业按固定周期发布软件产品提供了依据。