在选择合适的软件过程模型之前,我们先了解几种常用的模型
瀑布模型
转载自:周二鸭
简介
瀑布模型(经典生命模型)提出了软件开发的系统化的、顺序的方法。其流程从用户需求规格说明开始,通过策划、建模、构建和部署过程,最终提供一个完整的软件并提供持续的技术支持。
模型特点
- 必须等前一阶段的工作完成之后,才能开始后一段的工作;
- 每一阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
- 前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能得到正确的结果。
- 每个阶段结束前都要对所完成的文档进行评审,以便及早发现问题,改正错误。事实上越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所需付出的代价也越高。因此,及时审查,是保证软件质量,降低软件成本的重要措施。
模型优点:
- 强调了开发的阶段性,各阶段具有顺序性和依赖性
- 强调早期调研和需求分析,推迟编码实现的观点
- 提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
模型局限:
- 瀑布模型是一种线性模型,要求项目严格按规程推进,必须等到所有开发工作全部完成以后才能获得可以交付的软件产品。不能对软件系统进行快速创建,对于一些急于交付的软件系统的开发很不方便。
- 瀑布模型适合于需求明确,且无大的需求变更的软件开发(编译系统、操作系统等)。而对于分析初期需求模糊的项目,瀑布模型也并不适合。
适用场景:
适用于需求确定,无大的需求变更,工作能够采用线性的方式完成的软件。
而在这个项目中我们使用的是基于瀑布模型之上的增量模型
增量模型
简介
增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际开发中,则将软件系统按功能分解为许多增减构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完成,并都被集成到系统之中交付用户使用。
各阶段任务:
- 对整个系统进行需求分析和概要设计,确定系统基于增量构建的开发,以需求中构建的组成和关系为依据,完成对软件系统的体系结构设计。
- 进行增量构建的开发。对构建进行需求精细化,然后设计、编码、测试和有效性验证
- 将构建集成到系统,并对已经改变的系统进行有效性验证,继续下一个增量构建的开发
模型特点:
- 将软件系统模块化,分批地提交软件产品,用户可以及时了解软件项目的进展
- 降低了软件开发的风险,一个开发周期内的错误不会影响整个系统
- 开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。
适用场景:
1、软件产品可以分批次地进行交付。
2、待开发的软件系统能够被模块化。
3、软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。
4、项目管理人员把握全局的水平较高
参考:增量模型
其他软件过程模型介绍:周二鸭