软件三库管理规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SYWD-006-2016软件三库管理制度
1 目的范围
规定了公司软件开发库、受控库、产品库(以下简称三库)的管理规范。
2 参考文献
《软件三库管理制度》
3 术语和定义
GitLab:一个仓库管理系统,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
Jenkins:基于Java开发的一种持续集成平台,用于监控持续重复的工作。
SPM:公司研发部开发的持续集成工具,用于集成软件部署包。
Releaser:公司研发部开发的基于SPM的软件部署包发布工具。
Kiwi TCMS:公司研发部基于开源代码改进的测试用例管理系统,用于测试计划和测试用例的创建和维护、以及测试执行的记录。
4 职责
4.1软件三库管理职责
软件开发库由项目组管理,软件受控库由研发部管理,软件产品库由质量部管理。
4.2软件管理员职责
a)具备软件配置管理知识;
b)熟悉研制项目的配置管理;
c)熟悉公司结构、软件三库管理规定、标识规定和软件配置管理计划。
5 管理内容与方法
5.1建立软件三库
5.1.1 开发库
a)开发库代码部分和说明部分基于GitLab建立,按照软件项目分配仓库。
项目组长任仓库Master,负责需求说明的管理、成员管理、问题跟踪、分支Merge、任务分配、Tag标识等工作。
项目组成员任仓库Developer,负责设计和交付说明的管理、问题调查、分支维护等工作。
测试组成员任仓库Reporter,负责测试说明的管理、报告问题、问题回归等工作。
b)开发库部署包部分基于Jenkins和SPM建立,按照软件项目分配仓库。
项目组成员负责维护自动测试脚本和版本生成脚本。
Jenkins管理员(计算机)任库管理员,负责自动检查代码编译结果,执行版本生成脚本将通过检查的工程生成待测软件部署包,执行自动测试脚本验证软件部署包,将通过验证的软件部署包打上标识,放入仓库。
另任库管理员,负责出入库管理、配置项管理等工作。
5.1.2 受控库
a)受控库代码部分基于GitLab建立,按照软件项目分配仓库。
软件经理任仓库Master,负责将通过完整测试的开发版本打上Tag标识,在GitLab 上作为独立稳定的分支,该分支不接受更改,有效受控。
b)受控库部署包部分基于Jenkins和SPM建立,按照软件项目分配仓库。
Jenkins管理员(计算机)任库管理员,负责将打上Tag标识的代码版本生成软件部署包,打上同样的Tag标识,放入仓库。
该部分目录及目录下文件一旦生成,不可删除或更改,有效受控。
c)受控库说明部分存在于公司内部的公共服务器。
另任库管理员,负责出入库管理、配置项管理等工作。
d)受控库测试用例部分基于Kiwi TCMS建立,按照软件项目分配仓库。
项目组长具有测试计划审核权限,测试组长具有测试用例编辑和测试用例审核权限,测试组成员具有测试用例编辑权限。
5.1.3 产品库
产品库存在于公司内部公共服务器,按照软件项目分配仓库。
另任库管理员,利用Releaser工具将通过申请的打上Tag的受控版本生成软件产品包,负责各产品的出入库管理、配置项管理等工作。
5.2制定三库管理规定
5.2.1 内容要求
软件三库管理规定:
a)入库控制
相关人填写入库申请,负责人审批,库管理员操作或检查入库,详见三库管理要求(第5.4、5.5、5.6节)。
b)访问控制
各仓库设置权限管理,一般来说,给予库管理员写权限,给予相关人读权限,详见三库管理要求(第5.4、5.5、5.6节)。
c)出库控制
相关人填写出库申请,负责人审批,库管理员操作出库,通过安全介质交予相关人,详见三库管理要求(第5.4、5.5、5.6节)。
d)库间转换
库间转换遵循入库控制的要求。
e)更改控制
详见三库管理要求(第5.4、5.5、5.6节)。
f)配置状态报告
详见受控库和产品库管理要求(第5.5、5.6节)。
g)配置审核
详见受控库和产品库管理要求(第5.5、5.6节)。
h)维护规程
GitLab平台搭建在10.10.0.20服务器上,Jenkins平台搭建在10.10.0.11服务器上,产品库位于10.10.0.10服务器(群晖NAS),采用RAID技术便于数据重构,每晚0点各平台数据库对现有数据进行自动备份。每三个月对三库服务器进行检查维护,以便从紧急状态恢复。
5.2.2 相关要求
软件三库管理规定相关要求:
a)配置项选择
配置项选择由项目组识别。
b)配置标识
各库采用适应性标识,标识规范详见三库管理要求。
c)版本控制
代码版本由GitLab自动管理,部署包版本由Jenkins自动管理,产品包版本由产品库管理员管理。
d)基线建立和更改(基线的基本划分和更改)
采用GitLab平台的里程碑概念,里程碑要求分自主升级与项目组要求两部分。
e)软件发行
软件发行必须经过测试、申请、审批。
5.3安全控制
库管理员在入库、出库、更改、发行时,实施介质鉴别、病毒检查和权限审查。
5.4软件开发库管理要求
5.4.1 入库内容
软件开发库入库内容应是项目确定的软件配置项。项目组按照顾客方要求和研制项目特点明确软件配置项的种类、格式和内容,对软件规模和复杂度不大的项目,可将软件配置项种类作适应的合并,但应确保内容完整。
5.4.2 库属性
软件开发库属性一般应包括的内容:
a)配置项(配置标识、配置项位置),
b)开发人,入库时间,
c)更改人,更改时间,
d)提取人,出库时间,以及提取原因,
e)其他。
5.4.3 入库控制
将符合项目标识、版本等软件配置要求的软件配置项入库,并按照库属性的相关要求做入库记录。
5.4.4 访问控制
软件开发库代码部分和说明部分的访问控制基于GitLab权限机制实现,部署包部分的访问控制基于服务器的权限机制实现。
5.4.5 出库控制
软件开发库出库应按照以下要求进行:
a)按规定的权限出库:
如无极特殊的情况,代码部分不允许出库;实需出库的情况,须经项目组长和软件经理审批;
部署包部分和配置项部分的出库经项目组长审批,由项目组配置管理员操作出库。
b)登记出库原因、去向和用途、使用人等信息;
c)记录出库项、提取人和出库时间等信息。
5.4.6更改控制
软件开发库的更改应按照以下要求进行:
a)按规定的权限实施更改:
项目组相关人建立Git分支,完成更改后提交由GitLab自动备份,在Jenkins发起集成,提交部署包给测试组成员,完成更改测试后将结果反馈给项目组,项目组长审