计算机软件配置管理计划规范
1 引言
1.1 目的
本计划的目的在于对所开发的CADCSC软件规定各种必要的配置管理条款,以保证所交付的CADCSC软件能够满足项目委托书中规定的各种原则需求,能够满足本项目总体组制定的且经领导小组批准的软件系统需求规格说明书中规定的各项具体需求。
软件开发单位在开发本项目所属的各子系统(其中包括为本项目研制或选用的各种支持软件)时,都应该执行本计划中的有关规定,但可以根据各自的情况对本计划作适当的剪裁,以满足特定的配置管理需求。剪裁后的计划必须经总体组批准。
1.2 定义
1.2.1项目委托单位
项目委托单位是指为产品开发提供资金并通常也是(但有时也未必)确定产品需求的单位或个人。
1.2.2 项目承办单位
项目承办单位是指为项目委托单位开发、购置或选用软件产品的单位或个人。
1.2.3 软件开发单位
软件开发单位是指直接或间接受项目委托单位委托而直接负责开发软件的单位或个人。
1.2.4 用户
用户是指实际全胜软件来完成某项计算、控制或数据处理等任务的单位或个人。
1.2.5 软件
软件是指计算机程序及其有关的数据和文档,也包括固化了的程序。
1.2.6 重要软件
重要软件是指其故障会影响到人身安全、会导致重大经济损失或社会损失的软件。
1.2.7 软件生存周期
软件生存周期是指从软件系统设计对软件系统提出应用需求开始,经过开发,产生出一个满足需求的计算机软件系统,然后投入运行,直至该软件系统退役为止。其间经历系统分析与软件定义、软件开发以及系统的运行与维护等三个阶段。其中软件开发阶段一般又分成需求分析、概要设计、详细设计、编码与单元测试、组装与系统测试以及安装与验收等六个阶段。
1.2.8 软件开发库
软件开发库是指在软件生存周期的某一个阶段期间,存放与该阶段软件开发工作有关的计算机可读信息和人工可读信息的库。
1.2.9 软件受控库
软件受控库是指在软件生存周期的某一个阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息一人工可读信息的库。软件配置管理就是对软件受控库中的各软件项进行管理,因此软件受控库也叫做软件配置管理库。
1.2.10 软件产品库
软件产品库是指在软件生存周期的组装与系统测试阶段结束后,存放最终产品而后交付给用户运行或在现场安装的软件的库。
1.2.11 接口控制
接口控制是指描述有关由一个或多个部门提供的两个或两个以上的配置项接口的所有功能特性和物理特性的过程。在实现之前,要确保对这些功能特性和物理特性所建议的修改已经过评审和批准。
1.2.12 功能基线
功能基线是指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格说明;或是由下级申请经上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。功能基线是
最初批准的功能配置标识。
1.2.13 指派基线
指派基线是指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标识。
1.2.14 产品基线
产品基线是指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标识。
1.2.15 软件配置
软件配置是指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。该集合中的每一个元素称为该软件产品软件配置中的一个配置项(configuration item)。
1.2.16 释放
释放是指在软件生存周期的各个阶段结束时,由该阶段向下阶段提交该阶段产品的过程。它也指将集成与系统测试阶段结束时所获得的最终产品向用户提交的过程。后面这个过程也中做交付。
1.3 参考资料
2 管理
2.1 机构
在本软件系统整个开发期间,必须成立软件配置管理小组负责配置管理工作。软件配置管理小组属项目总体组领导,由总体组代表、软件工程小组代表、项目的专职配置管理人员、项目的专职质量保证人员以及各个子系统软件配置管理人员等方面的人员组成,由总体组代表任组长。各子系统的软件配置管理人员在业务上受软件配置管理小组领导,在行政上受子系统负责人领导。
软件配置管理小组和软件配置管理人员必须检查和督促本计划的实施。各子系统的软件配置管理人员有权直接向软件配置管理小组报告子项目的软件配置管理情况。各子系统的软件配置管理人员应该根据对子项目的具体要求,制订必要的规程和规定,以确保完全遵守本计划规定的所有要求。
2.2 任务
在软件工程化生产的各个阶段中,与本阶段的阶段产品有关的全部信息在软件开发库存放,与前面各个阶段的阶段产品有关的信息则在软件受控库存放。在研制与开发阶段的阶段产品的过程中,开发者和开发小组长有权对本阶段的阶段产品作必要的修改;但是如果开发者或开发小组长认为有必要个性前面有关阶段的阶段产品时,就必须通过项目的配置管理小组办理正规的审批手续。因此,软件开发库属开发这个阶段产品的开发者管理,而软件受控库由项目的配置管理小组管理。软件经过组装与系统测试后,应该送入软件产品库,如欲对其修改,必须经软件配置管理小组研究同意,然后报项目总体组组长批准。关于软件配置要进行修改时的具体审批手续,将在第3.2条中详细规定。
2.3 职责
在软件配置管理小组中,各类人员要互相配合、分工协作,共同担负起整个项目的软件配置管理工作。其中各类人员的分工如下:
A. 组长是总体组代表,他对有关软件配置管理的各项工作全面负责,特别要对更改建议的审批和评审负责;
B. 软件工程小组组长负责监督在软件配置管理工作中认真执行软件工程规范;
C. 项目的专职配置管理人员检查在作配置更改时的质量保证措施;
D. 各子系统的配置管理人员具体负责实施各自的配置管理工作,并参与各子系统的功能配置检查和物理配置检查;
E. 用户代表负责反映用户对配置管理的要求,并协助检查各类人员对软件配置管理计划的执行情况;
F. 项目专职的配置管理人员协助组长开展各项软件配置管理活动,负责审查所采用的配置管理工具、技术和方法,并负责汇总、维护和保存有关软件配置管理活动的各项记录。
2.4接口控制
对各类接口进行严格、合理的控制,是软件配置管理中最重要的任务之一。整个软件项目及其各子系统都必须对进行严格的控制。在工程化软件系统中,主要的接口有如下五
类:
A. 用户界面:用户界面是指各子系统与设计人员、用户或维护人员之间的操作约定。同时还指实现这些操作约定的物理部件的功能与性能特性。
B. 系统内部接口:系统内部接口是指各子系统在集成为一个总的软件系统时的各种连接约定。
C. 标准程序接口:标准程序接口是指各应用子系统与标准子程序库(包括宿主计算机系统已有的库程序)之间的调用约定。
D. 设备接口:设备接口是指各子系统与各种设备(包括终端和其他各种输入/输出设备)之间的连接约定。
E. 软件接口:软件接口是指各个子系统与宿主计算机上的系统软件以及与调用本软件的其它软件系统之间的连接约定。
以上五类接口是一个软件系统各项配置的重要组成部分。对接口修改进行合理的控制,是软件配置管理的重要任务之一。这五类接口都涉及到软件系统的全局,因此,当要求对这五类接口中的任一类接口进行修改时,都必须办理正规的审批手续,最后要经项目总体组批准。具体的审批程序将在本计划的第3.2条中规定(可参阅表1)。
表1 两类修改的审批程序
步骤 A类修改的审批程序 B类修改的审批程序
1 发现问题,填写软件问题报告单 发现问题,填写软件问题报告单
2 项目组长评审 项目组长评审
3 软件配置管理小组评审 子系统配置管理人员评审
4 项目总体组批准 子系统负责人批准
5 修改配置并填写软件修改报告单 修改配置并填写软件修改报告单
6 项目组长评审 项目组长评审
7 软件质量保证小组评审 子系统质量保证人员评审
8 总体组批准 项目的软件配置管理小组与子系统负责人共同批准并报项目总体组备索
2.5 软件配置管理计划的实现
在实现软件配置管理计划的过程中,要特别注意实现以下三个里程碑:
A. 建立软件配置管理小组:在项目总体组批准软件配置管理计划之后,立即成立软件配置管理小组;
B. 建立各阶段的配置基线:随着软件系统及其所属各子系统的任务书的评审和批准,建立起功能基线;随着总体组编写的<软件需求规格说明书》的批准,建立起指派基线;
随着工程化软件系统的集成与系统测试的完成,建立起产品基线。
C. 建立软件库:在本项目所属的各个子系统的研制工作的开始,就建立起各个子系统的软件开发库,并在本项目配置管理小组的计算机上建立起有关该系统及其子系统的软件受控库。以后在每个开发阶段的结束,建立各个子系统的新的开发库,同时把这个阶段的阶段产品送入总的软件受控库,并在各个子系统的计算机上建立软件受控库的副本。软件受控库必须以主软件受控库为准。当全部开发工作结束,在配置管理小组的计算机上建立起软件产品库,并在各子系统的计算机上建立软件产品库的副本。
2.6 适用的标准、条例和约定
除应奠定本计划第1.3条中指出的参考资料以及本计划中的其他章条所作的各项规定外,还应该遵守如下标准、条例和约定:
A. 软件开发库、软件受控库与软件产品库的操作规程与管理规程;
B. 系统、子系统、模块和程序单元的命名约定;
C. 文档和测试用例的命名和管理规程。
这引起命名约定、操作规程与管理规程应由项目技术组负责制订,并应认真听取各子系统项目负责人的意见,最后报项目总体组审批。在执行过程中,如果发现某些条款需要修改,则必须办理正规的审批手续,最后要经项目总体组批准。具体的审批程序将在本计划的第3.2条中规定。
3 软件配置管理活动
3.1 配置标识
3.1.1 文档
软件系统及其所属的各个子系统所编写的文档数目,可根据相关的规定作适当的剪裁。剪裁方案由技术组提出建议,报总体组批准。
3.1.2 程序
所有属于本项目的程序、分程序、模块和程序单元,都要按照由项目技术组制订,且经总体组批准的软件系统的命名约定的规定来标识。
3.1.3 各类基线
所有属于本项目及其各子系统的各类基线,首先要按照任务书、软件需求规格说明书的规定确定其技术内容,然后按照软件系统的上述命名约定的规定来标识。
3.2 配置控制
软件配置的更改管理适用于本项目的所有文档和代码,其中包括本项目的各个运行软件,也包括为本项目专门开发的支持软件。配置控制的要点如下:
A. 修改批准权限;对本项目各个子系统及其专用支持软件的功能基线、指派基线、产品基线及其集成系统的任何修改(称为A类修改),都必须通过项目配置管理小组讨论,并必须经总体组批准;对本项目各个子系统及其专用支持软件的其他阶段产品的任何修改(称为B类修改),都必须通过本项目各个子系统的配置管理人员审查,并经项目的软件配
置管理小组与各个子系统负责人的共同批准并报项目总体组备案。
B. 修改审批程序:上述两类修改的审批程序如表1。
C. 修改控制工具:修改控制工具是协助软件配置管理人员进行配置控制的有效手段。
3.3 配置状态审计
利用软件问题报告单和软件修改报告单对项目子系统及其支持软件的配置状态进行追踪。对软件问题报告单和软件修改报告单的追踪应由软件配置管理工具自动实现,用户可通过该软件系统对其进行查询。
注:本计划在此处应给出软件问题报告单与软件修改报告单的具体格式,并作出必要的说明。鉴于本计划拟采用附录B(参考件)中建议的格式,因而这两个报告单的格式及其说明可参阅附录B。
3.4 配置的检查和评审
项目软件配置管理小组要对所有由第三方提供的软件进行物理配置检查;对本项目及其各个子系统的每一个新的释放进行功能配置检查和物理配置检查;对宿主计算机系统所提供的软件和硬件配置要每隔半年检查一次;在软件验收前要对宿主计算机系统、各个子系统及其专用支持软件的配置进行综合检查。
在软件开发周期各阶段的评审与检查工作中,要对该阶段所进行的配置管理工作进行必要的评审和检查。应该进行评审与检查的内容与次数,由软件质量计划规定。配置修改的审批程序按本计划第3.2条的规定处理(见表1)。
4 工具、技术和方法
在软件的开发过程中,与软件配置有关的工具有软件测试工具、软件配置管理工具、文档辅助生成工具与图形编辑工具等到三种。
A. 软件测试工具:它支持用相关编程语言编写的模块的静态分析、结构测试与功能测试。主要功能为:协助测试人员判断程序结构与变量使用情况是否有错;给测试人员提供模块语句覆盖和分支覆盖率的值、并显示未覆盖语句和未覆盖分支的号码及其分支谓词,给出不同测试用例有效性的表格;同时提出功能测试的有效情况,并协助组织最终交付给用户的有效测试用例的集合。
B. 软件配置管理工具:它支持用户对源代码清单的更新管理以及对重新编译与连接的代码的自动组织;支持用户在不同文档相关内容之间进行相互检索并确定同一文档某一内容在本文档中的涉及范围;同时还应支持软件配置管理小组对软件配置更改进行科学的管理。
C. 文档辅助生成工具与图形编辑工具:它主要协助用户绘制描述程序流程与结构的DFD图与SC图、绘制描述软件功能(输入、输出关系)的曲线以及绘制描述系统特性的一些其他图形,同时还可生成若干与软件文档编制大纲适应的文档模板。用户利用这个工具的正文与图形编辑功能以及上述辅助功能,可以比较方便地产生清晰悦目的文档,也有利于对文档进行更改,这有助于提高文档的编制质量。
有关这些工具的详细需求可参阅这三项工具的需求规格说明书中的规定。
5 对供货单位的控制
项目所属的各个子系统开发组如果需要从软件销售单位购买、委托其他开发单位、从开发单位现存软件库选用或从项目委托单位或用户的现有连锁反应加中选用软件时,则在选用前应向总体组报告,然后由总体组组织\"软件选用评审小组\"进行评审、测试与检查,只有当演示成功、测试合格后才能批准使用。如果只选用其中部分内容,则按等待开发软件的处理过程办理,此时总体组不予预。在进行上述工作过程中,软件配置管理人员要进行下列工作:
A. 项目的软件配置管理小组要参加对上述四类由间接供货单位提供的软件的物理配置检查; 这些软件的功能配置检查由项目的软件质量保证小组负责。
B. 在这些软件送入软件受控库与其他软件成分进行组装之前,软件配置管理小组要对其存放媒体和配置标识进行认真的审查。
C. 由软件质量保证小组审查选用的上述四类软件,必须经过正式的验收手续,并由项目技术管理小组负责人批准,然后置于软件配置管理小组的控制之下。
6 记录的惧维护和保存
在本项目及其所属的各个子系统的研制与开发期间,要进行各种软件配置管理活动。准确记录、及时分析并妥善存放有关这些活动的记录,对这些软件的下沉运行与维护工作十分有利。在软件配置管理小组中,应有专人负责收集、汇总与保存这些记录。
A. 基础上组装系统、各个子系统、专用支持软件及选用软件的功能基线、指派基线与产品基线要送入软盘或磁带,至少必须一式两份且存放在两个不同的地点。这些记录应该每6个月拷贝一次,以免意外损伤与自然老化。
B. 上述这些软件的文档也应送入软盘或磁带,至少必须工式两份且存放在两个不同的地点,并应有一份打印的硬拷贝。磁媒体应该每隔6个月拷贝一次,以免意外损伤与自然老化。
C. 软件产品的源程序、测试数据、测试报告及其他有关文档,除了按A、B规定妥善存放外,要在项目结束后再保存2年,或在条件成熟时转交给这些软件产品的生产系统。
注:具体保存年限要根据项目的性质与开发单位的任务来确定,此处仅作为一个示例。
D. 上述这些软件的各项配置的个性状态、评审记录与修改历史,要作为这些软件的历史记录来保存,目前可用打印硬拷贝一式两份存放,有条件时再转移到在线光学存储媒体中。
E. 鉴于处理版权或清理财务的需要,本软件系统的各项配置可能要求存放5~7年,但由于我国对这些问题尚无明确的规定,因此,有关本条款的具体规定待将来有必要与可能时再作修改与补充。
附录B
配置管理报表及其格式
(参考件)
B1 软件问题报告单
在系统的运行与维护阶段对软件产品的任何修改建议,或在软件开发的任一阶段中对
前面各个阶段的阶段产品的任何修改建议,都应填入软件问题报告单。软件问题报告单的格式见B1。(同:《软件质量保证计划规范》表C3)
表B1 软件问题报告单
登记号 (A)
软件问题报告单 登记日期 (B) 年 月 日
发现日期 (C) 年 月 日
项目名 (D) 子项目名 (E) 代号 (F)
软件 需求 概要 详细 编码 组装 安装 运行 1 2 3 4 5 6 7
阶段名 定义 分析 设计 设计 测试 测试 验收 维护 状态
□ □ □ □ □ □ □ □ □
姓名 电话
报告人 地址
问题(G) 例行程序□ 程序□ 数据库□ 文档□ 改进□
子例行程序/子系统:(H) 修改版本号:(I) 媒体:(J)
数据库:(K) 文档:(L)
测试实例:(M) 硬件:(N)
问题描述/影响:(O)
附注及修改建议:(P)
B1.1 配置管理人员填写内容
表中A、B、C、P和状态等项目是由负责修改控制的配置管理人员填写的。表中其他各项即D、E、F、G、H、I、J、K、N和O各项是由发现问题的人或申请配置管理的人填写的,他可能还要填写J、L和M三项内容。前四项内容的意义如下:
A是由配置管理人员确定的登记号,一般按报告问题的先后顺序编号;
B是由配置管理人员登记问题报告的日期;
C是发现软件问题的日期;
P是填写若干补充信息和修改建议。
关于配置管理七种状态的含义在下面解释。
B1.2 配置管理状态
状态一栏分成七种情况,现分别说明如下:1表示软件问题报告正被评审,已确定采取什么行动;2表示软件问题报告已由指定的开发人员去进行维护工作;3表示修改已经完成、测试好,正准备释放给主程序库;4表示主程序库已更新,主程序库修改的重新测试尚未完成;5表示已经进行了复测,但发现问题仍然存在;6表示已经进行了复测,已经顺利完成所做的修改,软件问题报告单被关闭(维护已完成);7表示留待以后关闭,因问题不是可重产生的,或者是属于产品改善方面的,或者只具有很低的优先级等等。
B1.3配置管理申请人员填写的内容
在软件问题报告单中,属于配置管理申请人填写的各项内容的意义如下:
D、E两项是项目和子项目的名称,F是该子项目的代号,这应按配置标识的规定来命名代号;
阶段名和报告人的姓名、住址和电话等的含义是显而易见的;
G表示问题属于哪一方面,是程序的问题还是例行程序的问题,是数据库的问题还是文档的问题,是功能适应性修改还是性能改进性修改问题,也可能是它们的某种组合;
H表示子例行程序/子系统,即要指出出现问题的子例行程序名字,如果不知是哪个了例行程序,可标出子系统名,总之,尽可能给出细节;
I是修订版本号,指出出现问题的子例和程序版本号;
J是媒体,表示包含有问题的子例行程序的主程序库存储媒体的标识符;
K是数据库,表示当发现问题时所使用的数据库标识符;
L是文档号,表示有错误的文档的编号;
M表示出现错误的主要测试实例的标识符;
N是硬件,表示发现问题时所使用的计算机系统的标识;
O是问题描述/影响,填写问题征候的详细描述,如果可能则写明实际问题所在,还要给出该问题对将来测试、界面软件和文档等的影响。
B2 软件修改报告单
对软件产品或其阶段产品的任何修改,都必须经过评审、批准后才能重新投入运行或作为阶段产品释放。这一过程用软件修改报告单(software change report)给以记录。软件修改报告单的格式见表B2。当收到了软件问题报告单之后,配置管理人员便填写软件修改报告单。软件修改报告单要指出修改类型、修改策略和配置管理状态,它是供配置控制小组进行审批的修改申请报告。表中各项内容的意义如下:
A是登记号,它是配置修改小组收到软件修改报告单时所作的编号;
B是配置管理人员登记软件修改报告单的日期;
C是已经准备好软件修改报告单、可以对它进行评审的时间;
D、E和F的意义与软件修改报告单的编号,如该编号中提出的问题只是部分解决,则
在填写时要在该编号后附以字母P(PAET表示部分之意);
H指出是程序修改、文档更新、数据库修改还是它们的组合,如果仅是指出用户文档的缺陷则在解释处作上记号;
I是修改的详细描述,如果是文档更新,则要列出文档更新通知单的编号;如果是数据库修改,则要列出数据库修改申请的标识号;
J是批准人,经批准人签字、批准后才能进行修改;
K是语句类型,程序修改中涉及到的语句类型包括:输入/输出语句类、计算语句类、逻辑控制语句类、数据处理语句类(如数据传送、存放语句);
L是程序名,批被修改的程序、文档或数据库的名字。如果只要求软件修改报告单做解释性工作,则是重复软件问题报告单中给出的名字;
M指当前的版本/修订标识;
N指修改后的新版本/修订本标识;
O指数据库,如果申请数据库修改,这里给出数据库的标识符;
P是数据库修改申请号DBCR;
Q指文档,即如果要求文档修改,这里给出文档的名字;
R是文档更新通知单编号DUT;
S表示修改是否已经测试,指出已对修改做了哪些测试,如单元、子系统、组装、确认和运行测试等,并注明测试成功与否;
T指出在软件问题报告单中给出问题描述是否准确,并回答是或否;
U是问题注释,准确地重新叙述要修改的问题;
表B2 软件个性报告单
登记号(A)
软件修改报告单 登记日期(B)年 月 日
评审日期(C)年 月 日
项目名(D) 子项目名 (E) 代号 (F)
响应哪些软件问题报告单:(G)
修改类型(X) 修改申请人(Y) 修改人(Z)
修改:(H) 程序□ 数据库□ 文档□ 解释□
修改描述:(I)
批准人:(J)
改动:
语句类型:(K) I/O□ 计算□ 逻辑□ 数据处理□
程序名:(L) 老版本号:(M) 新版本号:(N)
数据库(O) :文档:(Q) DUT:(R)
修改已测试否:(S) 单元 子系统工程 组装 确认 运行
成功否:(S)
软件问题报告单的问题叙述准确否?(T) 是□ 否□
附注:(U)
问题来自:(V)系统设计规格说明书□ 需求规格说明书□ 设计说明书□ 数据库□ 程序□
资源来自:(W)人工数:(单位:人日) 计算机时间:(单位:小时)
V指明问题来自哪里,如系统设计规格说明书、软件需求规格说明书、概要设计说明、详细设计说明书、数据库、源程序等;
W说明完成修改所需要的资源估计,即所需要的人月数和计算机终端时数;
X 指出所要进行修改的类型,由执行修改的人最后填写。修改类型主要有适应性修改、改进性修改以及计算错误、逻辑错误、输入和输出错误、接口错误、数据库错误、文档错误以及配置错误等的修改;
Y是提出对软件问题进行修改的人员或单位;
Z是完成软件问题修改的人员或单位。
因篇幅问题不能全部显示,请点此查看更多更全内容