软件生存周期模型之瀑布模型

什么是瀑布模型

又称作为是传统模型。严格按照需求->分析->设计->开发->测试的阶段进行,每个阶段执行时都会进行必要的约束保证质量,并有明确的文档产出。验收完成后才可进入到下一个阶段。

瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。

瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。对于经常变化的项目而言,瀑布模型毫无价值

瀑布型生命周期主要阶段

瀑布型生命周期的典型六个阶段

1、问题的定义及规划

此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

2、需求分析

在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。

3、软件设计

此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。

4、程序编码

此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

5、软件测试

在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。

6、运行维护

软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。

改进的瀑布模型

对于项目需求繁杂或者实现方案比较复杂时,可以将需求进行拆分,按模块/功能并行开发,全部完成后再集成处理,每个模块仍然遵循瀑布模型的思路,即为改进的瀑布模型。

优缺点

优点:

  • 为项目提供按阶段划分的检查点
  • 当前一阶段完成后,你只需要关注后一阶段
  • 软件产品质量较高;
  • 前置发现产品缺陷;
  • 提供一个模板,这个模板使得分析,设计,编码,测试和支持的方法可以在该模板下有一个共同的指导
  • 项目把控能力强;
  • 项目扩展性和可维护性强;
  • 责任划分明确。
  • 可在迭代模型中应用瀑布模型

项目流程按照流水线作业一样执行,且每个阶段责任人、任务、标准明确,同时也有明确的文档输出,使整个项目周期得到把控,也便于后期的扩展和维护。
缺点:

  • 若需求复杂,人员能力要求较高;
  • 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
  • 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
  • 投入人力集中,造成过多的闲置;
  • 用户在系统稳定后介入,可能会出现与预想不符的情况;
  • 每个阶段相对独立,信息不能及时同步;
  • 通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
  • 项目风险延到后期开发阶段才能发现
  • 瀑布模型的突出缺点是不适应用户需求的变化。。

由于瀑布模型阶段分明、人员投入大,很多项目为了赶进度在前期需求不明确就开始开发,过于简化需求和设计阶段。如果是大型项目,很可能会出现大量的返工反而会影响进度。

结语

瀑布模型为软件开发和维护提供了一种有效的管理模式,根据这一模式制定开发计划,进行成本预算,组织开发力量,以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,所以它是以文档作为驱动、适合于软件需求很明确的软件项目的模型。
瀑布模型假设,一个待开发的系统需求是完整的、简明的、一致的,而且可以先于设计和实现完成之前产生。瀑布模型的优点是,容易理解,管理成本低;强调开发的阶段性早起计划及需求调查和产品测试。不足之处是,客户必须能够完整、正确和清晰地表达他们的需求;在开始的两个或三个阶段中,很难评估真正的进度状态;当接近项目结束时,出现了大量的集成和测试工作;直到项目结束之前,都不能演示系统。在瀑布模型中,需求或设计中的错误往往只有到了项目后期才能够被发现,对于项目风险的控制能力较弱,从而导致项目常常延期完成,开发费用超出预算。

原文地址:https://www.cnblogs.com/yilang/p/12248486.html

时间: 2024-08-29 15:28:25

软件生存周期模型之瀑布模型的相关文章

软件生存周期模型

软件生存周期模型是描述软件开发过程中各种活动如何执行的模型.软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开 发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理.常见的软件生存周期模型有瀑布模型.演化模型.螺旋模型.喷泉模型等. 1)瀑布模型(waterfall model) 瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开.将软件生

什么是软件生存周期模型

软件生存周期模型的定义 软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考. IEEE把一个软件生存周期模型描述为:一个包括软件产品开发.运行和维护中有关过程.活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止. 中国计算机科学与技术百科全书称软件生存周期模型为"软件开发模型",并把它定义为:软件过程.活动.任务的结构框架. 它是描述软件开发过程中各种活动如何执行的模型.软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确

软件生存周期模型之迭代模型

什么是迭代模型 迭代式模型是是RUP(Rational Unified Process,统一软件开发过程,统一软件过程)推荐的周期模型.在RUP中,迭代被定义为:迭代包括产生产品发布(稳定.可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素.所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程.分析设计工作流程.实施工作流程和测试工作流程.实质上,它类似小型的瀑布式项目.RUP认为,所有的阶段(需求及其它)都可以细分为迭代.每一次的迭代都会产

软件生存周期模型之V模型

什么是V模型 RAD(Rapid Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,通过开发和测试同时进行的方式来缩短开发周期,提高开发效率.其形状像一个字母V,故称为V模型.又称软件测试的V模型. V模型是一个著名的.以测试为驱动的开发模型,该模型强调开发过程中测试贯穿始终,是瀑布模型的一个变体.V模型描述了质量保证活动和沟通.建模相关活动以及早期构键相关的活动之间的关系.随着软件团队工作沿着V模型左侧步骤向下推进,基本问题需求逐步细化,形成问题

软件生存期模型 之 瀑布模型

瀑布模型 在20世纪80年代之前,瀑布模型一直是唯一被广泛采用的生命周期模型. 传统的瀑布模型如图所示 特点 阶段间具有顺序性和依赖性. 其中包含两重含义: ① 必须等前一阶段的工作完成之后,才能开始后一阶段的工作: ② 前一阶段的输出文档就是后一阶段的输入文档. 推迟实现的观点: ① 瀑布模型在编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现. ② 清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按

软件生命周期(软件生存周期)

软件生命周期 软件生命周期:又称为软件生存周期其或系统开发周期 软件的生命周期:计划,分析,设计,编码,测试,运行,维护   计划:确定软件开发总的目标:给出软件的功能,性能,可靠性以及借口等方面的设想:研究完成该项目的可行性探讨问题的解决方法:对可供使用的资源成本可取得的效益和开发的进度进行估计 需求分析:对开发的软件进行详细的定义,由用户和用户共同探讨决定,那些需求可以满足,并给予确切的描述,写出软件需求说明书.软件研发的类型不同,需求的来源也不不同: 设计:是整个软件工程的核心,需要完成软

软件工程【第2章】- 软件生存周期、过程

1.软件生存周期 定义:一个软件项目从问题提出直到软件不用为止. 分为:计划.开发.维护 软件生存周期的主要活动: 需求分析: 软件分析 软件设计: 编码: 软件测试: 运行维护: 2.软件过程 定义:围绕软件开发所进行的一系列活动 过程模型: 把软件生存周期中软件开发活动的有序流程用一个合理的框架来规范描述 软件过程模型是一种软件过程的抽象表示法,它从一个特定的角度表现一个开发过程. 传统的过程模型: 瀑布模型:(前一阶段的活动没有结束,下一阶段的活动就不能进行) 特点: 阶段的顺序性和依赖性

软件生存周期

软件生存周期:同任何事物一样,一个软件产品或软件系统也要经历孕育.诞生.成长.成熟.衰亡的许多阶段,一般称为软件生存周期.    又称为软件生命期,生存期.是指从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程. 一般来说,整个生存周期包括计划(定义).开发.运行(维护)三个时期,每一个时期又划分为若干阶段.每个阶段有明确的任务,这样使规模大.结构复杂和管理复杂的软件开发变得容易控制和管理. 1)可行性分析与项目开发计划 主要确定软件的开发目标及器可行性. 必须要回答

常见软件开发模型

瀑布模型:瀑布模型是一个项目开发架构哦,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈. 原型模型:原型模型是先借用已有系统作为原型模型,通过“样品”不断改进,使得最后的产品就是用户所需要的. 螺旋模型:它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统. 增量模型:增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间进展而交错的线性排列,每一个线性序产生软件的一