软件生命周期
将软件产品从提出、实现、使用、维护到停止使用退役的过程称为软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。大体可分为 3 个时期:软件计划时期(问题定义和可行性分析、需求分析),软件开发时期(概要设计、详细设计、编码、测试)和软件维护时期(软件维护)
时期 | 阶段 | 任务 | 文档 |
---|---|---|---|
软件计划 | 问题定义 | 理解用户要求,进行任务定义 | |
软件计划 | 计划任务书 | 可行性分析 | 可行性方案及代价 |
软件计划 | 需求分析 | 确定新系统的功能及目标 | 需求规格说明书 |
软件开发 | 概要设计 | 划分子系统及功能模块 | 概要设计说明书 |
软件开发 | 详细设计 | 模块设计 | 详细设计说明书 |
软件开发 | 软件编码 | 编写程序代码 | 程序设计的相关资料 |
软件开发 | 系统测试 | 完成测试阶段 | 测试方案及结果 |
软件维护 | 系统维护 | 运行和维护 | 运行及维护记录 |
软件生命周期模型( Lib-Cycle Mode )也称为软件过程模型。软件过程是把用户的需求转化为软件产品的一系列活动,它包括获取过程、供应过程、开发过程、操作过程、维护过程、管理过程、支持过程。软件过程模型是对软件系统开发项目总体过程的一种描述和定义,它反映了软件开发过程中各种活动的基本特点,指出了软件开发的原理和方法,是支持软件开发的有力工具。下面介绍在软件工程中应用较为广泛的几种软件过程模型。
瀑布模型
瀑布模型( Waterfall Mode )是1976年由 B.W.Boehm 提出的传统的软件生命周期模型。它将软件生存周期中各活动规定为依线性顺序连接的6 个阶段,包括软件计划、需求分析、软件设计、软件编码、软件测试和软件维护。这6 个阶段是顺序进行的,前一阶段的工作完成后,下一阶段的工作才能开始;前一阶段产生的文档是下一阶段工作的依据。所以说,它是一种理想的线性开发模式,适合在软件需求比较明确、开发技术比较成熟的场合下使用。
增量模型
增量模型( Incremental Mode )也称渐增模型,是瀑布模型的一种改进模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型开发软件时,可以让用户较早地看到开发的部分软件,及早发现问题,及早解决,防止问题积累到最后,软件开发失败。
快速原型模型
快速原型模型( Rapid Prototyping Mode ),快速原型模型也是瀑布模型的一种改进模型。它的过程是开发人员在接到开发任务后,尽快编写出一个软件的模拟模型(实验品,一般只包含输入、输出的界面),用它和用户进行交流,进一步了解用户需求,确定系统功能,开发出让用户满意的软件。
软件过程模型还包括许多其他的模型,如螺旋模型、喷泉模型、变换模型、面向对象生存期模型等。
目前,经过多年理论完善和实践,传统的瀑布模型已形成了一个较完整的体系,仍是软件开发中使用的最基本的理论基础和技术手段。