软件项目过程模型与规划
瀑布模型
优点:
- 为项目提供了按阶段划分的检查点
- 当前一阶段完成后,只需关注后续阶段
- 可以应用在迭代模型中
- 提供了一个模板,使得分析、设计、编码、测试和支持的方法有一个共同的指导
缺点:
- 各阶段的划分完全固定,产生大量文档,极大地增加了工作量
- 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险
- 通过强制完成日期和里程碑来跟踪各个项目阶段
- 不适用用户需求的变化
增量模型
优点:
- 将待开发的软件系统模块化,可以分批次提交软件产品,使用户可以及时了解软件项目的进度
- 以组件为单位进行开发降低了软件开发的风险,一个开发周期内的错误不会影响整个软件系统
- 开发顺序灵活,开发人员可以对组件的实现顺序进行优先级排序,优先完成需求稳定的核心组件,当组件的优先级发生变化时,还能及时对实现顺序作出调整
缺点:
- 要求待开发的软件系统可以被模块化,如果待开发的软件系统很难被模块化,那么就会给增量开发带来很多麻烦
螺旋模型
优点:
- 设计上具有灵活性,可以在项目的各个阶段进行变更
- 以小的分段来构建大型系统,使成本计算变得简单容易
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性
- 随着项目推进,客户始终掌握项目的最新信息,从而能够和管理层有效地交互
- 客户认可这种公司内部的开发方式带来良好的沟通和高质量的产品
缺点:
- 很难让客户确信这种演化方法的结果是可控的
- 建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有较大差距,无法满足当前用户需求
统一过程
三大特点:
- 用例驱动:开发过程是沿着一系列从用例得到的工作流前进的
- 以架构为中心:首先创建一个粗略的软件架构轮廓,然后不断完善,最终得到稳定的架构
- 迭代和增量:将软件开发划分为切实可行并能够产生增量的迭代过程
与面向对象方法的关系:
- 统一过程是一个面向对象且基于网络的程序开发方法论,即面向对象的方法包含在统一过程的系统实现阶段
四个阶段:
- 四个阶段是由各个阶段结束的里程碑划分的,每个阶段本质上是两个里程碑之间的时间跨度,在每个阶段的结尾进行一次评估以确定阶段目标是否已经满足,如果评估结果令人满意,就可以进入下一个阶段
- 各阶段的里程碑如下:
- 初始阶段:生命周期目标里程碑
- 细化阶段:生命周期结构里程碑
- 构造阶段:初始功能里程碑
- 交付阶段:产品发布里程碑
简答
软件企业为什么能按固定节奏生产、固定周期发布软件产品?统一过程给企业项目管理带来哪些好处?
因为软件企业依据统一过程的方法论来生产和发布软件产品。统一过程将软件生命周期分解为四个阶段,每一个阶段都可以进一步分解为迭代,只要固定迭代周期,就可以确定各阶段的时间长度,而每一个阶段都由里程碑划分,因此软件企业可以确定生产和发布的节奏和周期。
统一过程指导整个企业项目的开发活动,明确了软件生命周期的各个阶段,并为每个阶段成果的评估提供了标准。