瀑布模型——文档驱动型
适合采用瀑布模型的项目类型,通常是对用户需求非常明确的项目。同时还要求项目预算充足,人员齐备。
优点:
1、每个阶段的开发质量都有保证,减少了返工。
2、是文档细致,降低了沟通成本,有利于及早发现问题。
缺点:周期长,不易变更。
迭代模型——风险驱动型
四个象限代表了四个活动:制定计划、风险分析、实施工程、客户评估。
使用迭代模型进行软件开发,项目活动包含以下几个阶段:
1. 初始阶段
为系统建立商业案例并确定项目的边界。
2. 细化阶段
细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。
3. 构造阶段
在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。
4. 交付阶段
交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。
迭代模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
因此,迭代模型的风险管理成本较高,在风险分析,进度管理方面,对项目组成员的要求也非常高。
选择迭代模型的项目,通常属于高风险项目,且需求不确定,用户能在整个开发过程中不同程度地参与。
增量模型——任务驱动型
增量模型是通过对用户需求的判断,在定义了用户要求和系统需求,进行总体构架设计后,采用序列化地创建产品的方法进行开发的过程。
增量模型本质上是迭代的,但其强调:每一个增量均发布一个可操作产品。
优点:
1、在达到初始需求之前可降低成本。
2、可快速生产出可使用的系统。
3、能够有计划地管理技术风险。
增量模型的适用项目特点:
- 用户核心需求非常清楚;
- 项目人员不足;
- 产品可以分割成不同的阶段分别完成
原型模型——需求驱动型
原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发.
原型模型是一种用户需求驱动的方法。它能减少系统开发的风险,特别是在大型项目的开发中,由于对项目需求的分析难以一次完成,应用原型法效果更为明显。
原型模型适用的项目特点:
- 处理简单过程明确、涉及面窄的小型系统;
- 大型系统的需求阶段,用原型去跟用户交流,需求分析会更加明确和细化
针对不同类型的项目。应选择什么样的开发模型,应从以下两方面进行慎重考虑:
i. 实施推广的难度
项目管理团队的管理能力和系统开发团队的技术能力决定了所选择开发模型的实施难度。选择一个适合项目团队特点的开发模型尤为重要。
ii. 项目管理的侧重点
项目不同,其侧重点也不同,如侧重于进度、质量、成本控制、风险管理等等。根据项目的侧重点,可以选择不同的开发模型。