概念
瀑布型是最常见的结构话开发方法。规定了计划、需求分析、设计、编码、测试的自上而下相互衔接的结构化开发方法,如图所示:
各阶段介绍
需求分析
入口条件:项目计划书已通过评审
出口条件:软件需求规格说明书通过评审
操作过程:根据项目经理或者开发代表提出或者了解的用户需求,进行分析确认,由项目经理和系统分析人员共同指定需求规格说明书,主要说明软件的运行环境、开发工具以及详细的功能和性能需求。
设计
入口条件:软件需求规格说明书已通过评审
出口条件:软件设计说明书通过评审(可分为概要设计和详细设计)
操作过程:根据软件的需求规格说明书,将软件分解到功能模块一级,并定义好全局变量和全局数据以及各个模块之间的接口描述(一般可以将此整理成为概要说明书)。并根据模块划分,定义好实现每一个模块功能所需的结构、变量以及函数,并对每一个函数提供基于伪代码的实现(这些可拆分为详细设计说明书)。将这些形成软件设计说明书。
编码实现
入口条件:设计说明书已通过评审
出口条件:代码通过评审和编译检查,并通过运行测试
操作过程:开发人员根据详细设计说明书定义的函数实现过程,依照一定的编码规则,编写出软件的实现代码,然后使用编译检查工具对其进行编译检查
测试
入口条件:代码通过评审和编译检查,并通过运行的冒烟测试
出口条件:软件的功能和性能通过验证
操作过程:测试人员编写系统测试用例,并根据测试用例,在实际的系统运行环境中,验证软件的功能和性能(可分为单元测试、集成测试和系统测试)
优缺点
优点:结构清晰
缺点:测试在项目生命周期的最后阶段进行,当系统出现严重 Bug 并且修改代价很大时,就会无可避免的推迟项目提交日期。而且瀑布模型使得开发中的很多关键成员例如开发、测试处于长期空闲状态。测试人员由于最后才开始介入测试,会因为没有充分的准备而导致测试的缺失和不够深入