1 引言
软件生命周期是软件由产生直到报废的生命周期,周期内可有可行性分析、需求分析、概要设计、详细设计、编码、测试和维护等阶段。软件生命周期解释如何演绎软件过程的思想,是软件生命周期模型化技术的基础,也是建立软件开发环境的核心。
生命周期模型会为软件开发提供支持,为软件开发过程中所有活动提供政策保证,为参与软件开发的所有成员提供帮助和指导。软件生命周期模型的适用与否,对于软件开发的成功、用户的满意影响巨大。
瀑布模型是软件工程中应用的非常广泛的一种软件生命周期模型,传统的软件工程方法学的软件过程基本上都可以用该模型进行描述。
2 瀑布模型
瀑布模型是W.Royce 于1970 年首先提出的,由可行性研究、需求分析、系统设计、编码、测试、运行和维护各阶段组成。该模型把软件生命过程比喻成瀑布的流水,每个阶段看作瀑布中的一个台阶,软件生命过程在台阶上由上向下流动。
瀑布模型规定上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密相联。为保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。
评审过程发现错误和疏漏后,应该反馈到前面的有关阶段修正错误、弥补疏漏,然后再重复前面的工作,直至某一阶段通过评审后再进入下一阶段。瀑布模型的特点非常鲜明。首先,它以文档形式驱动的,为管理者进行项目开发管理提供基础,对开发过程中的活动进行约束。
其次,它是一种整体开发模型,在开发过程中,用户看不见系统是什么样,只有开发完成向用户提交整个系统时,用户才能看到一个完整的系统。最后,该模型过程逆转性很差或者说不可逆转,因为根据前面阶段的错误会在后面的阶段进行发散性传播的原理,
所以逆转将会延误工期,增加成本,造成重大损失。瀑布模型的优点如下:通过设置里程碑,能够明确每阶段的任务与目标;可为每阶段制定开发计划,进行成本预算,组织开发力量;通过阶段评审,将开发过程纳入正确轨道;严格的计划性保证软件产品的按时交付。
任何事物都不是完美的,瀑布模型也一样,该模型的缺点包括:缺乏灵活性,不能适应用户需求的改变;开始阶段的小错误被逐级放大,可能导致软件产品报废;返回上一级的开发需要十分高昂的代价;随着软件规模和复杂性的增加,软件产品成功的机率大幅下降。
3 V模型
V模型是瀑布模型的变形,着重于测试活动如何与分析和设计相联系。V 模型认为:单元测试和集成测试用于验证程序设计,即在单元测试和集成测中,编码人员和测试人员应确保程序设计的所有方面都已经在代码中正确实现;系统测试应验证系统设计,保证系统设计的所有方面都已正确实现;
验收测试由用户来进行,把测试步骤与需求规格说明中的每一个要素联系起来对需求进行确认。该模型中V 形左右两边连线说明各阶段的对应关系。如果在验证和确认期间发现问题,应重新执行左边的步骤进行修正和改进相应的需求、设计和编码,然后去再次执行右边的测试,这样做使得迭代和重做的过程由隐藏变明确。
与瀑布模型关注对象是文档和制品相比,V 模型更加关注活动和正确性。
4 结束语
不是任何软件都可采用瀑布模型的,瀑布模型适合于结构化方法,也就是面向过程的软件开发方法。软件项目或产品选择瀑布模型必须满足下列条件:在开发时间内需求没有或很少变化;分析设计人员对应用领域很熟悉;
低风险项目(对目标、环境很熟悉);用户使用环境很稳定;用户除提出需求以外,很少参与开发工作。尽管上述条件比较苛刻,但是软件企业在开发新产品或新项目时往往还是采用瀑布模型,系统软件和工具软件也常常采用瀑布模型。