这篇文章主要是介绍了“瀑布模型”。作者总结了自己在软件开发中的经验,提出了一个软件项目的开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统 需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。他给出了固定的顺序,将生存期活动从上一个阶段向下一个阶段逐级过渡,如同流水下泻,最终得 到所开发的软件产品,投入使用,这也许就是我们后来人称之为“瀑布模型”的原因吧。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
每个阶段都有指定的起点和终点,过程最终可以被客户和开发者识别(通过使用里程碑),在编写第一行代码之前充分强调了需求和设计,这避免了时间的浪费以及 跳票的风险,同时还可以尽可能地保证实现客户的预期需求。提取需求和设计提高了产品质量,因为在设计阶段捕获并修正可能存在的漏洞要比测试阶段容易很多, 毕竟在组件集成之后来追踪特定的错误要复杂很多。最后,因为前两个阶段生成了规范的说明书,当团队成员分散在不同地点的时候,瀑布模型可以帮助实现有效的 知识传递。
瀑布模型主要分为下面三个阶段:
1.定义期 “分析重于设计,设计重于编码”,因为差错产生的越早,后面纠正差错所花的成本越高。
(1)问题定义:确定问题的性质、目标,力求使系统开发人员、用户以及使用系统的单位负责人对问题性质、系统目标与规模达成一致的看法。
(2)可行性研究:在问题定义的基础上,分析当前组织内外的具体条件,分析系统开发必须具备的资源和条件,并保证资源的合理利用。需要从目标方案的可行性、技术方案的可行性、经济方面的可行性以及社会方面的可行性进行分析,从而明确具体的系统方案。
(3)需求分析:该阶段是系统开发的重要环节。实事求是地全面调查分析是系统设计的基础,影响整个系统开发工作的成败,形成系统分析报告,并从总体上给出 系统的设想和逻辑方案,其中包括: 系统拟定的业务流程及业务处理工作方式; 系统拟定的数据指标体系和分析优化后的数据流程; 系统在各个业务处理环节拟采用的管理方法、算法或模型; 与系统开发相配套的管理制度和运行体制的建立; 系统开发资源与时间进度估计。
2. 开发期 该阶段实现系统的详细设计和具体应用程序的开发。需要系统设计人员和软件开发人员的大量工作,同时,用户必须有效地参与设计过程。
(1)系统设计:也称为概要设计或一般设计。系统设计主要进行系统总体结构设计,即提出系统的总体方案,包括网络设备的配置、设备选型、软件平台和开发工 具的选择、系统子系统的划分、制定测试计划等。该阶段需要在多种技术方案中选择最优设计,即能以简单而有效率的方式,在特定的技术、组织、财务和时间限制 条件下满足用户需求的方案。
(2)详细设计:该阶段给出系统实现的详细规格说明,为下一阶段的系统实现(如编程、调试、试运行等)制定蓝图。主要工作包括:数据结构和数据库设计、各子系统的计算机处理流程设计、各功能模块和处理过程设计、输入输出设计、用户界面设计等。
(3)编程调试:该阶段将系统设计和详细设计阶段中的设计采用某种程序设计语言编码描述而实现应用程序,并以各种可能的数据和操作条件对程序单元模块进行 试验。该阶段要注意选择合适的程序设计语言和开发工具,程序中有充分的注释、规范的数据格式说明,以增强程序的可读性和可维护性。
(4)测试运行:该阶段通过各种类型的测试以及实际运行测试,使系统达到预定的要求;并进行系统应用转换。
3 . 维护期 维护是系统生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。前面各阶段的细致工作,其中一个目的就是为了提高系统的可维护性,降低维护的代价。
主要工作是:诊断和改正在使用过程中发现的系统错误的改正性维护;修改系统以适应环境变化的适应性维护;根据用户要求改进或扩充系统的完善性维护;修改系统为将来的维护活动预先准备的预防性维护。