【IT168 技术文章】
提到“瀑布开发”的时候,大部分人们可能会联想到尼亚加拉瀑布下要进行房地产开发,然后,设想一下,当您告诉他们实际上瀑布开发是一种包含多个阶段的反复叠代的软件开发模型时,他们会多么惊讶。这篇文章将为您提供一份关于瀑布模型的简要介绍,解释它是什么,应当怎样工作以及可能导致项目失败的原因。
概述
瀑布模型其实并不新,它在1970年前后就已经出现了,但是大部分开发者对瀑布模型只有一个模糊的概念。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。
这一模型存在很多变体,每种只是在阶段名称上略有区别,但是,总体来讲,瀑布开发模型可以分为六个不同的阶段,其定义如下:
1.需求分析:虽然是第一步,但是这一步至关重要,因为它包含了获取客户需求与定义的信息,以及对需要解决的问题所能达到的最清晰的描述。分析包含了理解客户的商业环境与约束,产品必需实现的功能,产品必需达到的性能水平,以及必需实现兼容的外部系统。
在这一阶段所使用的技术包括采访客户、使用案例和软件特色的“购物清单”。分析阶段的结果通常是一份正式的需求说明书,这也是下一阶段的起始信息资料。
2.设计:这一步包括了“定义硬件和软件架构、组件、模块、界面和数据等来满足指定的需求(Wikipedia)。”它包括了硬件和软件架构的定义,确定性能和安全参数,设计数据存储容器和限制,选择集成开发环境(IDE)和编程语言,并指定异常处理、资源管理和界面连接性的策略。
这一阶段还强调了用户接口的设计,包括与浏览和可用性相关的问题,这一阶段的输出结果是一份或多份设计说明书,这些说明书将在下一阶段使用。
3.实现:这一步包含了根据设计说明书来构建产品,通常,这一阶段是由开发团队来执行的,开发团队包括了程序员、界面设计师和其他的专家,他们使用的工具包括编译软件、调试软件、解释软件和媒体编辑软件。
这一阶段将生成一个或多个产品组件,它们是根据每一条编码标准而编写的,并且经过了调试、测试并进行集成以满足系统架构的需求。对于大型开发团队而言,我建议使用版本控制工具来追踪代码树的变化,这样在出现问题的时候可以还原以前的版本。
4.测试:在这一阶段,独立的组件和集成后的组件都将进行系统性验证以确保没有错误并且完全符合第一阶段所制定的需求。一个独立的质量保证小组将定义“测试实例”来评估产品是完全实现了需求还是只有部分满足。
有三种测试方法可以使用:对独立的代码模块进行单元测试;对集成产品进行系统测试;以及客户参与的验收测试。如果发现了缺陷,将会对问题进行记录并向开发团队反馈以进行修正。在这一阶段,还有产品文档会经过准备、评估并发布,比如用户手册等。
5.安装:在产品通过测试并且被鉴定为符合需求的产品后,就会进入到安装阶段,这一阶段包括了在客户站点进行系统或产品的安装和使用,这可以通过互联网或者物理媒介进行,通常交付使用的产品都带有正式的版本号,这为今后的产品升级提供了便利。
6.维护:这一阶段发生在安装之后,包括了对整个系统或某个组件进行修改以改变属性或者提升性能,这些修改可能源于客户的需求变化或者系统使用中没有覆盖到的缺陷,通常,在维护阶段对产品的修改都会被记录下来并产生新的发布版本(称作“维护版本”并伴随升级了的版本号)以确保客户可以从升级中获益。