|
软件工程的开发标准包含三个,分别是《GB/T 8566—2007信息技术软件生存周期过程》《GB/T 15853—1995软件支持环境》和《GB/T 14079—1993软件维护指南》。下面对这三个标准分别进行简要说明。
|
|
|
|
《GB/T 8566—2007信息技术软件生存周期过程》为软件生存周期过程建立了一个公共框架,以供软件产业界使用,它包括在含有软件的系统、独立软件产品和软件服务的获取期间以及在软件产品的供应、运行和维护期间需应用的过程、活动和任务。
|
|
|
该标准把软件生存周期中可能执行的活动分为五个基本过程、九个支持过程和七个组织过程,每一生存周期过程划分为一组活动,每一个活动进一步划分为任务。
|
|
|
|
.获取过程:为需方而定义的活动,包括启动、招标、合同、对供方监督与验收等。
|
|
|
.供应过程:为供方而定义的活动,包括启动、准备投标、签订合同、编制计划、执行、交付和完成。
|
|
|
.开发过程:为开发方而定义的活动,包括需求、设计、编码、测试、安装、验收。
|
|
|
.运作过程:为操作方而定义的活动,包括运行测试、系统运行、用户支持。
|
|
|
.维护过程:为维护方而定义的活动,包括问题和修改分析、修改实现、维护评审/验收、迁移、软件退役。
|
|
|
|
|
|
|
.验证过程:确定软件产品是否满足在以前的活动中施加于它们的要求和条件的过程,包括合同验证、过程验证、需求验证、设计验证、编码验证、集成验证、文档验证。
|
|
|
.确认过程:确定需求和最终的、已建成的系统或软件产品是否满足特定的预期用途的过程。
|
|
|
.联合评审过程:评价某个项目中一项活动的状态和产品,项目管理评审,技术评审。
|
|
|
.审核过程:在适当时确定与需求、计划和合同的符合性。
|
|
|
|
|
|
.管理过程:为生存周期过程中的管理包括项目管理而定义的基本活动。
|
|
|
.基础设施过程:为建立生存周期过程基础结构而定义的基本活动。
|
|
|
|
|
|
.重用大纲管理过程:为组织的重用大纲主管而定义的活动,包括启动、领域评估、重用评估、策划、执行和控制、评审和评价。
|
|
|
.领域工程过程:领域工程师的活动和任务,包括领域分析、领域设计、资产供应、资产维护。
|
|
|
|
《GB/T 15853—1995软件支持环境》规定了软件支持环境的基本要求,软件开发支持环境的内容及实现方法,以及对支持部门支持能力的具体要求。
|
|
|
|
.软件开发支持环境:由软件承办单位确定、并经任务委托单位认可的资源,用于支持合同项目中的软件需求。
|
|
|
.软件生存周期支持环境:由软件生存周期部门使用的(属于任务委托单位)资源,用于为指定的目标机系统提供整个生存周期内的软件支持。
|
|
|
|
|
|
.任务委托单位提供的软件:任务委托单位向承办单位提供的软件,用于开发合同指定的软件项目,并包含在软件开发支持环境中。
|
|
|
.承办单位开发的软件:合同项目所规定的软件,包括承办单位正在开发或要开发的软件。
|
|
|
在软件生存期支持机构中建立软件支持能力包括以下四方面的要求:
|
|
|
|
|
|
|
|
《GB/T 14079—1993软件维护指南》主要描述了软件维护的内容和类型、维护过程以及维护的控制和改进。下面重点说明软件维护的内容和类型以及维护过程。
|
|
|
软件维护是在软件产品交付使用之后,为纠正故障、改善性能和其他属性,或使产品适应改变了的环境所进行的修改活动。
|
|
|
软件维护一般分为完善性维护、适应性维护和改正性维护三种类型。
|
|
|
|
完善性维护是为扩充功能和改善性能而进行的修改和扩充,以满足用户变化了的需求,主要内容包括:
|
|
|
.为扩充或增强功能而作的修改(如扩充解题范围和算法优化)。
|
|
|
.为提高性能而作的修改(如提高精度,节省存储空间等)。
|
|
|
.为便于维护而作的修改(如增加注释,改进易读性等)。
|
|
|
|
适应性维护是为适应软件运行环境的变化而作的修改,主要内容包括:
|
|
|
|
|
|
.系统软件的变化,如操作系统、编译系统或使用程序的变化。
|
|
|
|
改正性维护是为维护系统操作运行,对开发过程中产生但在测试和验收时没有发现的错误进行的改正,主要内容包括:
|
|
|
|
|
|
|
|
软件生存周期中的维护阶段通常起始于软件产品交付给用户,用户验收之时。软件维护活动通常可以定义或生存周期中前几个阶段的重复。软件维护与软件开发有许多相同的活动,但也有如下独特之处:
|
|
|
.维护活动限定在已有系统的框架之内完成,维护人员必须在已有的设计和编码结构的约束下作出修改,一般系统越旧,软件维护越困难、越费时。
|
|
|
.通常软件维护阶段的时间比软件开发的时间长得多,但一项具体的软件维护一般比开发该软件的时间短得多。
|
|
|
.软件开发必须从无到有产生所有测试数据,而软件维护通常可以使用现有的测试数据进行回归测试。有时还要产生新的数据,对软件修改以及修改后的影响进行必要的测试。
|
|
|
完成一项软件维护的过程是复杂的。下面按照顺序列出完成一项软件维护过程的步骤:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
其中有几个步骤会经常发生循环,但并不是每次修改都要执行所有的步骤。
|
|
|