一 前言
从参加工作至今也完整的跟随过一整个项目的流程了,从中也接触到了像瀑布模型,迭代模型,快速开发模型等。介于此,基于自己浅薄的知识对瀑布模型进行整理学习以及归纳。
二 瀑布模型简介
2.1 瀑布模型的定义和特点
定义:瀑布模型是一种软件开发过程模型,它将软件开发的过程划分为几个有序的阶段,每个阶段都有明确的输入和输出,以及质量保证的标准。
特点:1 严格的阶段划分和顺序性
2 每个阶段的输出成果必须经过严格的审核和验证,才能进入下一个阶段
2.2 瀑布模型的发展历史和应用领域
瀑布模型(英语:Waterfall Model),亦称瀑布模式,是于1970年由温斯顿·W·罗伊斯等人所发展之系统发展生命周期的模型。该模型将系统发展的过程,大致区分为四个阶段:分析、设计、实现、测试,其并且明确的定义每一阶段中的工作。当完成一个阶段的工作以后,才会进入下一个阶段的工作。而依照该模型的系统发展的过程,即如同瀑布一般。(取自网络)
三 瀑布模型的各个阶段及其任务和文档
3.1 需求分析阶段
总所周知,业务是公司的命脉,只有满足了用户的需求,产品才会有更好的推广,换句话来说,公司的每一个齿轮都是为了业务(客户)服务的,只有满足了客户,公司才能发展前行。
需求分析阶段:这一部分需要完成产品需求规格书的编写:包括但不限于产品框图,产品交付信息,产品功能性需求,产品非功能需求,性能需求,以及风险等。
3.2 设计阶段
设计阶段:根据需求规格书,设计软件的结构和架构,编写软件方案规格书为后续开发做足准备
软件方案规格书应包含:系统设计的目标,关键的功能,关键性能,运行条件,系统总体架构,系统边界图,系统逻辑架构,子系统视图,系统功能划分,系统部署架构(数据架构,存储,接口等),非功能类的设计等
3.3 实现阶段
通俗来说,基于软件方案规格书,写代码,并进行自测。
3.4 测试阶段
测试阶段的任务:对软件进行集成,编写测试用例,系统测试,验收测试。检查软件的功能和性能,编写测试报告。
文档一般包括:测试计划,测试方案,测试数据,测试报告等。
测试通过后,进行再进行实机测试
注:分享一个测试的框架:unitytest
3.5 维护阶段
维护阶段:软件的运营和维护,修复错误以及缺陷,更新版本,编写维护文档等。
文档常见包括:维护计划,维护报告,版本控制等。
四 瀑布模型的优缺点以及客户需求
1、瀑布模型有以下优点:
1)为业务提供了按阶段划分的检查点。
2)当前一阶段完成后,只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
2、瀑布模型有以下缺点:
1)在项目各个阶段之间反馈较少。
2)项目周期的后期结果才会较明显。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
3、瀑布模型的客户需求:
尽管瀑布模型招致了很多批评,但是它对很多类型的项目而言依然还是有效的,如果正确使用,可以节省大量的时间。对于项目而言,是否使用这一模型主要取决于是否能理解客户的需求以及在项目的进程中这些需求的变化程度,对于经常变化的项目而言,瀑布模型可能就会有些影响效率了,对于这种情况,可以考虑其他的架构来进行项目管理,比如螺旋模型。
五 瀑布模型与其他软件开发模型比较与选择
瀑布模型是一种预见性的开发方法,假设需求在项目开始时就已经明确且不会有太大变化,因此可以按照固定的顺序进行各个阶段的工作,每个阶段都有明确的输入输出,以及质量保证的标准。
其他软件开发模型,如:敏捷模型等,是一些适应性开发方法,他们认为需求是不断变化的,因此需要灵活调整开发过程,采用迭代,增量,反馈等机制,以适应需求的变化以及用户需求。
瀑布模型与其他模型选择取决于项目的特点和环境,例如:环境规模,复杂度,风险,稳定性,可预见性等。
一般来说,瀑布模型适用于需求明确,稳定,低风险的项目。其他的开发模型一般适用于需求模糊,变化频繁,高风险的项目。