软件是计算机程序及其有关的数据和文档的完整集合。其中,计算机程序是能够完成预定功能的可执行的指令序列;数据是程序能适当处理的信息,具有适当的数据结构;软件文档是开发,使用和维护程序所需要的图文资料。
瀑布模型(Waterfall Model) 是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。
瀑布模型(waterfall model)
1970年,W.Royce提出瀑布模型。瀑布模型规定了软件生命周期提出的六个基本工程活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水
瀑布模型将软件生命周期划分为定义阶段、开发阶段和维护阶段,在定义阶段部署了计划和需求分析活动;在开发阶段部署了设计、编码和测试活动,维护阶段部署了运行/维护活动
瀑布模型中的每一个开发活动具有下列特征
⑴ 本活动的工作对象来自于上一项活动的输出
⑵ 根据本阶段的活动规程执行相应的任务。
⑶ 产生本阶段活动相关产出—软件工件,作为下一活动的输入。
⑷ 对本阶段活动执行情况进行评审。
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
瀑布模型有以下优点:
1)为项目提供了按阶段划分的检瀑布模型查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
瀑布模型缺点:
⑴ 模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题,这是瀑布模型最突出的缺点。因此,瀑布模型只适合于需求明确的软件项目。
⑵ 模型的风险控制能力较弱。成品时间长;体系结构的风险和错误只有在测试阶段才能发现,返工导致项目延期。
⑶软件活动是文档驱动的,文档过多会增加工作量,文档完成情况会误导管理人员。