惯例过程模型定义包含活动、动作、任务、里程碑和工作产品在内的明确的集合,是高质量软件开发所必须的。其优点有二:第一,使软件开发更加有序;第二;为软件工程工作增加了大量有用的结构化设计,并为软件团队提供了有效的路线图。其不足在于软件开发人员在使用过程中要调整,缺乏灵活性,应对变更能力不强。下面主要介绍惯例过程模型的鼻祖----瀑布模型。
瀑布模型又称为经典生命周期,它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。
如图1所示,瀑布模型仍然支持通用过程框架,这个框架包括了沟通、策划、建模、构建和部署五个活动。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。
瀑布模型的特点在于:第一,具有顺序性和依赖性;第二,推迟性,推迟程序的物理实现;第三,文档详细,每个阶段都要进行全面评审,因此能够保证软件质量;第四,整个过程线性的、按阶段顺序的、逐步细化的进行;第五,文档驱动,强调文档的作用。
以上特点,进一步说明了瀑布模型的适用范围:适用于需求明确、全面的项目;同时,开发人员熟悉项目产品的应用领域;其次,用户的使用环境应该比较稳定;最后,在整个开发过程中,用户很少或者几乎不参与。
瀑布模型的优点为:第一,有利于人员组织、管理;第二,有利于软件开发的方法和工具的创新,可提高大型软件的开发效率。缺点:第一,难以解决需求不明确的问题;第二,缺乏灵活性,开发周期长;第三,易陷于“阻塞状态”;第四,反馈时间长,风险大;第五,可操作性差,太过于理想化。