文档库

最新最全的文档下载
当前位置:文档库 > 浅析瀑布模型_郭晓娴

浅析瀑布模型_郭晓娴

2011年第7期福建电脑

浅析瀑布模型

郭晓娴

(陕西省商业学校陕西汉中723000)

【摘要】:软件生存周期模型为软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的开发策略,瀑布模型具有严格控制、确保质量的特点。本文详细分析了瀑布模型的优缺点、适用场合并提出了改进模型。

【关键词】:瀑布模型软件生存周期迭代

随着信息技术的快速发展,软件产品的规模越来越大,依靠个人来开发软件的方式已越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入软件开发活动,对软件开发实行有效的管理。软件生存周期模型的选择和确定软件项目管理中关键环节之一,模型选择的好坏直接关系到了软件项目的成功与否。软件生存周期模型是指用来描述从软件项目需求分析开始直至该软件交付使用为止,整个开发过程中各种活动和任务的结构框架。换言之,模型是一种开发策略,这种策略针对软件工程的各个阶段提供了一套范形,使工程的进展达到预期的目的。模型的选择应基于项目和应用的性质、采用的方法、需要的控制,以及要交付的产品的特点几个方面来进行。迄今为止,国内外学者已提出了多种软件生存周期模型,例如瀑布模型、进化模型、螺旋模型、快速原型开发模型、喷泉模型、面向对象开发模型等等。其中瀑布模型以其严格控制、确保质量的观点仍然是最基本的和最效的一种可供选择的软件开发生命周期模型。

一、瀑布模型的特点

瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品。该模型要求软件开发严格按照需求->分析->设计->编码->测试的阶段进行,其至关重要的一点是只有当一个阶段的文档已经编制好并获得SQA 小组的认可后才可进入下一个阶段。由于需要对每一个阶段进行验证,瀑布模型要求每一个阶段都有明确的文档产出,对于严格的瀑布模型每一个阶段都不应该重叠。这样,瀑布模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。

瀑布模型具有以下特点:

1、强调文档,前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。直到开发的后期,才可以看到软件的“模样”。

2、没有迭代与反馈。瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应,瀑布就意味着没有回头路。

3、利用文档,可以方便地界定不同阶段,掌握开发速度和进展。

二、瀑布模型的优缺点

瀑布模型的优点在于其强调严格管理,确保质量的思想。它具有以下优点:

1、为开发的阶段性、早期计划及需求调查以及产品测试提供了一个摸板,这个摸板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导,从而制定出开发计划,进行成本预算,组织开发力量,以项目的阶段评审和文档控制为手段,有效地对整个开发过程进行指导。

2、为项目提供了按阶段划分的检查点,当前一阶段完成后,开发者只需要去关注后续阶段。

3、采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好的扩展性和可维护性,保证整个软件产品较高的质量,保证缺陷能够提前的被发现和解决,在一定程度上在消除非结构化软件、降低软件的复杂度、促进软件开发工程方面起到显著作用。

瀑布模型的缺点有五:

1、这种模型依赖于早期进行的唯一一次需求调查,当客户难以表达真正的需求或发生需要求变更时,这种模型无法解决具有二义性问题存在的问题,并难以适应用户需求的变化。

2、瀑布模型风险的暴露时间滞后,往往要延迟至后期的开发阶段才显露出来,因而失去及早纠正的机会。

3、有可能出现“堵塞状态”。采用这种线性模型,在过程的开始和结束时会经常碰到等待其他成员完成其所依赖的任务才能进行下去的情况,从而有可能花在等待的时间比开发的时间要长。

4、由于是单一流程,在项目各阶段之间极少有反馈,开发中的经验教训不能反馈应用于本产品的过程。

5、由于通过过多的强制完成日期和里程碑来跟踪各个项目阶段,使开发者将大量时间和精力放在定制

137

福建电脑2011年第7期(上接第159页)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MAS1:NEJC R4,#1AH,BACK1;镜头减小光圈

MOV P1,#00H

NOP

MOV P1,#08H

2、云台控制部分

int CVICALLBACK moveLeft(int panel,int control,int event,

void*callbackData,int eventData1,int eventData2) /*控制云台向左移动的回调函数*/

{switch(event)

{case EVENT_COMMIT:

if(movMode==1)

{updown=3;

SetCtrlAttribute(panelHandle,PANEL_TIMER,AT-TR_ENABLED,1);

ComWrtByte(1,3);}else{

ComWrtByte(1,3);

Delay(angle);

ComWrtByte(1,0);}

break;}

return0;}

inint CVICALLBACK stopMachine(int panel,int control,int event, void*callbackData,int eventData1,int eventData2) /*控制云台停止移动的回调函数*/

参考文献:

[1]李振玉.图像通信与监控系统北京:中国铁道出版社

[2]涂博.嵌入式视频监控系统的设计及实现[D].中国优秀硕士学位论文全文数据库:华中科技大学

[3]李玉梅.基于MCS-51系列单片机原理的应用设计.国防工业出版社.2006

[4]蔡方凯.单片机原理及基于单片机的嵌入式系统设计.中国水利水电出版社.2007

的文档中,增大了工作量。

三、瀑布模型的适用范围

由于瀑布模型依靠早期的需求分析,并且要求需求很明确,该模型适用于需求明确且很少变化的软件。其次,当项目经理开发自己很熟悉领域的软件,就可以使用瀑布模型来加快开发速度。对于中小型的项目,由于需求设计和开发人员往往在项目开始后就会全部投入到项目中,而不是分阶段投入,采用瀑布模型会导致项目人力资源过多的闲置,这种情况不适宜采用瀑布模型。

四、瀑布模型的改进

1、对于堵塞状态的改进

架构设计是软件开发中一个重要的关注点。在架构设计完成后系统会被分为相关的子系统和功能模块。每个功能模块间的接口都可以定义清楚。在这种情况下,当一个模块的详细设计做完成后往往就没有必要等到其它模块的详细设计都要完全做完才开始编码。因此在架构设计完成后可以将系统分为多个模块并行开发,每个模块仍然遵循先设计和编码测试的瀑布模型思路。具体流程如图所示。

2、扩展的瀑布模型

当一个新系统的开发存在多个完全不相关的独立需求的功能开发的时候,这个时候也可以选择将整个开发过程按独立的需求来分为多个小瀑布进行操作。

瀑布模型的精髓是线性顺序地开发软件,线性化是人们最容易掌握并能熟练应用的思想方法。瀑布模型开发的各个阶段是顺序的,但是这并不限定必须完成了上一阶段的工作后才能进行下一阶段的工作。在实际的开发过程中,项目开发常常会遇到这样的情况:阶段反复和重叠。经过严格控制每个阶段的输入和输出,可以有效地控制软件项目的开发过程和进度。以线性为主,以并行、迭代为辅是新的软件开发模型的设计理念。以线性为主是指开发模型的总趋势是线性顺序的,具有瀑布模型的优点。以并行、迭代为辅是指局部(某些阶段)引入并行开发和迭代开发的机制,在局部增强灵活性,以减少不必要的等待时间和各个阶段之间的反馈时间,如果有错误,能在最短时间内反馈给上一级,及时做出变更。为了避免并行开发和迭代开发过于灵活而导致产品质量下降,应当对上述过程域产生的工作结果进行严格的技术评审。

虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型。以线性为主,以并行、迭代为辅的扩展瀑布性,可以较好的兼顾开发的灵活性和开发的质量,为软件的开发和维护提供了一种有效有管理模式,对保证软件产品的质量有重要的作用。

参考文献:

[1]Bob Hughes、Mike Cotterell.软件项目管理.机械工业出版社,2004

[2]杨向广、周永丰、吴汉宝.《基于CMM对瀑布模型的改进和扩充》

[3]陈月新徐久成《基于数据库管理系统的MIS的分析与设计——对瀑布模型的改进

浅析瀑布模型_郭晓娴

》138