软件系统分析与设计(三)

系统分析与设计 作业三

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

从项目特点、风险特征、人力资源利用角度思考

  • 瀑布模型
    • 优点
      • 有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
    • 缺点
      • (1)开发过程一般不能逆转,否则代价太大;
      • (2)实际的项目开发很难严格按该模型进行;
      • (3)客户往往很难清楚地给出所有的需求,而该模型却要求如此。
      • (4)软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
  • 增量模型

    • 优点

      • (1)采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;
      • (2)如果核心产品很受欢迎,则可增加人力实现下一个增量;
      • (3)可先发布部分功能给客户,对客户起到镇静剂的作用。
    • 缺点

      • (1)并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;

      • (2)增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。

  • 螺旋模型:

    • 优点:

      • (1)设计上的灵活性,可以在项目的各个阶段进行变更;
      • (2)以小的分段来构建大型系统,使成本计算变得简单容易;
      • (3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
      • (4) 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
    • 缺点:

      • (1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;
      • (2)过多的迭代次数会增加开发成本,延迟提交时间。
  • 原型方法:

    • 优点:
      • (1)可以得到比较良好的需求定义,容易适应需求的变化;
      • (2)有利于开发与培训的同步;
      • (3)开发费用低、开发周期短且对用户更友好。
    • 缺点:

      • (1)客户与开发者对原型理解不同;

      • (2) 准确的原型设计比较困难;

      • (3) 不利于开发人员的创新。

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

  • 特点:

    • 用户为中心(描述用户使用产品的故事)

    • 架构为重心(软件产品分解的领域最佳实践)

    • 风险驱动(早期暴露风险)

  • 与面向对象的关系:

    • 面向对象的方法包含在统一过程当中,在统一过程中的系统实现的阶段,使用面向对象的方法进行具体的实现。

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

划分准则:项目结构的变更

  • 初始阶段——确定系统的业务模型,范围,进行大体上的构想。
    • 里程碑:目标。
  • 细化阶段——精化构想、核心架构的迭代实现、完成系统的体系结构设计。
    • 里程碑:结构。
  • 构建阶段——对遗留下的风险较低和比较简单的元素进行迭代实现,准备部署。构造产品,并继续演进需求、体系结构和计划。
    • 里程碑:产品。
  • 移交阶段——进行系统部署,系统测试,最终移交给用户。
    • 里程碑:发布。

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

  • 原因:
    • 因为RUP将开发分割四个阶段,每个阶段里程碑明确,易于评估是否满足。
    • 每个迭代过程都有固定的时长和产品生成。进而为企业按固定节奏生产、固定周期发布软件产品提供了依据。
    • RUP是一个风险驱动的生命周期模型,为了有效地控制风险,RUP以渐进的方式进行演进,首先解决高风险的问题,这主要是通过迭代来实现。在软件生命周期中,每个阶段可以划分为多个迭代,每个迭代确定一个内部里程碑。因此,RUP也为固定周期发布软件产品提供了依据。
  • 好处:
    • 每个迭代产品在增量(制品是可运行的),利于及时交付使用并反馈;
    • 固定的迭代周期(等量的人月),利于量化团队/个人生产率。
感谢资助辣条吃!