软件项目过程模型与规划

瀑布模型

优点

  • 为项目提供了按阶段划分的检查点
  • 当前一阶段完成后,只需关注后续阶段
  • 可以应用在迭代模型中
  • 提供了一个模板,使得分析、设计、编码、测试和支持的方法有一个共同的指导

缺点

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

增量模型

优点

  • 将待开发的软件系统模块化,可以分批次提交软件产品,使用户可以及时了解软件项目的进度
  • 以组件为单位进行开发降低了软件开发的风险,一个开发周期内的错误不会影响整个软件系统
  • 开发顺序灵活,开发人员可以对组件的实现顺序进行优先级排序,优先完成需求稳定的核心组件,当组件的优先级发生变化时,还能及时对实现顺序作出调整

缺点

  • 要求待开发的软件系统可以被模块化,如果待开发的软件系统很难被模块化,那么就会给增量开发带来很多麻烦

螺旋模型

优点

  • 设计上具有灵活性,可以在项目的各个阶段进行变更
  • 以小的分段来构建大型系统,使成本计算变得简单容易
  • 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性
  • 随着项目推进,客户始终掌握项目的最新信息,从而能够和管理层有效地交互
  • 客户认可这种公司内部的开发方式带来良好的沟通和高质量的产品

缺点

  • 很难让客户确信这种演化方法的结果是可控的
  • 建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有较大差距,无法满足当前用户需求

统一过程

三大特点

  • 用例驱动:开发过程是沿着一系列从用例得到的工作流前进的
  • 以架构为中心:首先创建一个粗略的软件架构轮廓,然后不断完善,最终得到稳定的架构
  • 迭代和增量:将软件开发划分为切实可行并能够产生增量的迭代过程

与面向对象方法的关系

  • 统一过程是一个面向对象且基于网络的程序开发方法论,即面向对象的方法包含在统一过程的系统实现阶段

四个阶段

  • 四个阶段是由各个阶段结束的里程碑划分的,每个阶段本质上是两个里程碑之间的时间跨度,在每个阶段的结尾进行一次评估以确定阶段目标是否已经满足,如果评估结果令人满意,就可以进入下一个阶段
  • 各阶段的里程碑如下:
    • 初始阶段:生命周期目标里程碑
    • 细化阶段:生命周期结构里程碑
    • 构造阶段:初始功能里程碑
    • 交付阶段:产品发布里程碑

简答

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

  • 因为软件企业依据统一过程的方法论来生产和发布软件产品。统一过程将软件生命周期分解为四个阶段,每一个阶段都可以进一步分解为迭代,只要固定迭代周期,就可以确定各阶段的时间长度,而每一个阶段都由里程碑划分,因此软件企业可以确定生产和发布的节奏和周期。

  • 统一过程指导整个企业项目的开发活动,明确了软件生命周期的各个阶段,并为每个阶段成果的评估提供了标准。