软件三库管理规范

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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发起集成,提交部署包给测试组成员,完成更改测试后将结果反馈给项目组,项目组长审

相关文档
最新文档