CMMI 配置库
配置库的相关知识
通过建立物理配置库的设立规范、各配置库目录的设立原则,确保配置库的统一与规范,确保项目产品得到有效的管理与运用,提高资源的共享与利用;通过变更管理活动,保证产品的完整、正确、一致,防止配置项被随意地修改而导致混乱;规范组织财富库的建立、更新与维护,确定组织财富库得到合理的使用与管理。
角色 |
职责 |
项目经理 |
提出基线变更请求 审批非基线变更请求 审核非基线变更发布申请 |
项目其他成员 |
在权限之内操作配置库 |
CM工程师 |
创建物理配置库 建立配置库目录并分配权限 维护配置库 对变更的配置项进行出、入库管理,并且在基线变更发布后改变基线 执行配置审计 通告配置项状态 |
CCB |
审批基线变更请求 审核基线变更实施结果 |
变更实施人 |
填写软件变更单提取配置项 实施对基线、非基线变更涉及配置项的具体修改 |
测试工程师/评审人员 |
对变更进行测试或评审 |
EPG |
建立、管理和维护组织财富库 |
1. 主要步骤
1.1. 创建物理配置库
5.1.1 创建物理配置库
CM工程师需要创建开发库、受控库、产品库三个物理配置库:
² 开发库:用于存放项目期间处于开发状态的相关文档和代码。以及存放项目组工作期间的相关沟通记录等。
² 受控库:用于存放经过验证后的产品(包括基线产品);建立测试区,用于存放开发工作结束后需要进入测试的配置项,以及为变更实施提供工作空间。
² 产品库:存放发布后的产品。
各配置库之间的关系如下图所示意:
图5-1-1 开发库、受控库、产品库关系图
1.2.建立配置库目录结构
5.2.1 建立配置库目录结构
l 开发库目录结构:
项目组创建开发库的目录结构,要求依据以下表格来创建,使用统一的结构与名称,二级目录允许依据不同项目的特征有所裁剪。
目录结构 |
|
|
一级目录 |
二级目录 |
存放工作产品示例 |
010.项目立项 |
|
《立项申请表》 《项目建议书》 《项目可行性分析报告》 《项目实施申请表》 《项目立项公告》 《可行性分析报告附表》 《立项评审检查单》 |
020.项目策划 |
010.项目策划 |
《项目总体计划》 《WBS》 《项目估计记录》 《计划变更申请表》 《项目计划审批表》 《特批申请表》 《项目实施计划》 |
020.配置计划 |
《配置管理计划》 |
|
030.测试计划 |
《总体测试计划》 |
|
040.质保计划 |
《质量保证计划》 |
|
030.需求开发 |
|
《需求规格说明书》 《产品功能列表》 《需求跟踪矩阵》 |
040.系统设计 |
010.概要设计 |
《概要设计说明书》 |
020.详细设计 |
《详细设计说明书》 《数据库设计说明书》 |
|
050.编码 |
010.源代码 |
程序代码 |
020.安装包脚本 |
程序安装包脚本 |
|
030.安装包 |
程序安装包 |
|
060.测试 |
|
《测试问题报告》 《集成&确认测试计划》 《集成&确认测试报告》 |
070.用户文档 |
|
《产品发布说明》 《用户操作手册》 《用户安装手册》 《升级说明》 《升级包说明》 |
080.产品验收 |
|
《产品移交申请表》 《产品移交文档清单》 |
090.项目结项 |
|
《项目总结报告》 《项目结项评估报告》 |
100.项目管理 |
010.项目报告 |
《项目阶段报告》 《项目监控数据表》 |
020.配置报告 |
《变更申请单》 《发布申请表》 《配置状态报告》 《配置审计表》 《阶段活动报告》 |
|
030.会议记要 |
《会议纪要》 |
|
110.质保管理 |
|
《QA工作报告》 《QA检查单》 《问题跟踪表》 《QA评审检查内容汇总表》 |
120.规范性文档 |
|
项目内部规范性文档 |
130.系统约定 |
|
项目内部系统约定文档 |
140.参考资料 |
010.参考资料1 |
项目内部普通级别的参考资料 |
|
020.参考资料2 |
项目内部机密级别的参考资料 |
l 受控库目录结构:
项目组创建受控库的目录结构,要求依据以下表格来创建,使用统一的结构与名称,二级目录允许依据不同项目的特征有所裁剪。
目录结构 |
|
||
一级目录 |
二级目录 |
三级目录 |
存放工作产品示例 |
000.基线管理 |
010.计划基线 |
V1.0.0.0 |
已发布的基线工作产品 |
|
|
…… |
已发布的基线工作产品 |
|
020.需求基线 |
V1.0.0.0 |
已发布的基线工作产品 |
|
|
…… |
已发布的基线工作产品 |
|
030.设计基线 |
V1.0.0.0 |
已发布的基线工作产品 |
|
|
…… |
已发布的基线工作产品 |
|
040.编码基线 |
V1.0.0.0 |
已发布的基线工作产品 |
|
|
…… |
已发布的基线工作产品 |
|
050.测试基线 |
V1.0.0.0 |
已发布的基线工作产品 |
|
|
…… |
已发布的基线工作产品 |
|
060.产品基线 |
V1.0.0.0 |
已发布的基线工作产品 |
|
|
…… |
已发布的基线工作产品 |
010.项目立项 |
|
|
|
020.项目计划 |
010.项目计划 |
|
|
|
020.配置计划 |
|
|
|
030.测试计划 |
|
|
|
040.质保计划 |
|
|
|
050.测量分析计划 |
|
|
030.需求开发 |
|
|
|
040.系统设计 |
010.结构设计 |
|
|
|
020.详细设计 |
|
|
050.编码 |
010.源代码 |
|
|
|
020.安装包脚本 |
|
|
|
030.安装包 |
|
|
060.测试 |
010.测试计划/报告 |
|
|
|
020.确认测试区 |
010.源代码 |
|
|
|
020.安装包脚本 |
|
|
|
030.安装包 |
|
|
030.变更区 |
V1.0.0.0 |
|
|
|
…… |
|
|
040.调试测试区 |
V1.0.0.0 |
|
|
|
…… |
|
070.用户文档 |
|
|
|
080.产品验收 |
|
|
|
【注】
1、基线管理的二级目录下的六个基线目录,要根据项目实际定义的基线进行裁剪。
2、基线管理的三级目录创建规则是:把确定的基线标识作为目录,以区分不同的基线。
3、被纳入基线管理的工作产品只需要存放在基线管理目录中即可,不需要在基线管理目录外重复存放。
4、测试的二级目录下变更区的三级目录创建规则是:把发生变更的所在基线标识作为目录,以区分开不同基线基础上发生的变更。
5、测试的二级目录下调试测试区的三级目录创建规则是:把进行调测的所在基线标识作为目录,以区分开不同基线基础上进行的调测。
l 产品库目录结构:
公司统一建立唯一产品库。项目组负责创建本项目的产品目录结构,要求依据以下表格来创建,使用统一的结构与名称,三级目录允许依据不同项目的特征有所裁剪。
目录结构 |
|
||
一级目录 |
二级目录 |
三级目录 |
备注存放工作产品示例 |
010.项目标识 |
010.基线版本系列 |
000.基线版本 |
|
|
|
010.ServicePack系列 |
|
|
|
020.HotFix系列 |
|
|
|
030.Beta系列 |
|
|
|
040.TEST系列 |
|
|
|
050.产品文档 |
|
注释:
1、《××产品发布备忘录》放在二级目录下,每个基线版本都创建一个对应的产品《××产品发布备忘录》
2、四级目录创建规则:
1)Service Pack系列、Hot Fix系列的升级包目录名前,加上以“001.”为起始、步长为1递增的三位数统一流水号;不同基线版本系列下的流水号都以“001.”为起始。这样可以降低逆序升级的风险。
2)Beta系列、TEST系列不需要在目录名前增加流水号。
产品库目录示例:
目录结构 |
|
||
一级目录 |
二级目录 |
三级目录 |
四级目录 |
010.E-SIM 5.0 |
010.E-SIM 5.1.0.0 |
000.E-SIM 5.1.0.0 |
|
|
|
010.ServicePack系列 |
002.E-SIM 5.1.0.0 SP001 |
|
|
|
005.E-SIM 5.1.0.0 SP002 |
|
|
|
006.E-SIM 5.1.0.0 SP003 |
|
|
020.HotFix系列 |
001.E-SIM 5.1.0.0 HotFix001 |
|
|
|
003.E-SIM 5.1.0.0 HotFix002 |
|
|
|
004.E-SIM 5.1.0.0 HotFix003 |
|
|
030.Beta系列 |
E-SIM 5.1.0.0 Beta001 |
|
|
040.TEST系列 |
E-SIM 5.1.0.0 TS001 |
|
|
050.产品文档 |
|
|
020.E-SIM 5.2.0.0 |
000.E-SIM 5.2.0.0 |
…… |
|
|
010.ServicePack系列 |
…… |
|
|
020.HotFix系列 |
…… |
|
|
030.Beta系列 |
…… |
|
|
040.TEST系列 |
…… |
|
|
050.产品文档 |
…… |
5.2.2 分配配置库使用人员权限
CM工程师对所有配置库拥有全权,并为配置库使用人员分配的具体权限,要求依据以下表格来创建,使用统一的权限制定原则,同时允许依据不同项目的特征有所裁剪,并体现在《配置管理计划》中。
注释:VSS的权限:
R=“View/Get”
C=“Check Out/Check In/Undo Checkout”
A=“Add /Delete/Label/Rename”
R∈C∈A(后面的权限包含前面所有的权限)
l 开发库权限结构:
目录结构 |
|
|
一级目录 |
二级目录 |
权限分配 |
010.项目立项 |
|
项目经理----A 其他人员----R |
020.项目计划 |
010.项目计划 |
项目经理----A 其他人员----R |
020.配置计划 |
项目经理----C 其他人员----R |
|
030.测试计划 |
项目经理----C 测试工程师----A 其他人员----R |
|
040.质保计划 |
项目经理----C 质保工程师----A 其他人员----R |
|
030.需求开发 |
|
项目经理----A 需求分析工程师----A 其他人员----R |
040.系统设计 |
010.概要设计 |
项目经理----A 系统分析工程师----A 其他人员----R |
020.详细设计 |
项目经理----A 系统分析工程师----A 其他人员----R |
|
050.编码 |
010.源代码 |
项目经理----A 开发工程师----A 其他人员----R |
020.安装包脚本 |
项目经理----A 开发工程师----A 其他人员----R |
|
030.安装包 |
项目经理----A 开发工程师----A 其他人员----R |
|
060.测试 |
|
项目经理----C 测试工程师----A 其他人员----R |
070.用户文档 |
|
项目经理----C 开发工程师----A 测试工程师----A 其他人员----R |
080.产品验收 |
|
项目经理----A 其他人员----R |
090.项目结项 |
|
项目经理----A 其他人员----R |
100.项目管理 |
010.项目报告 |
项目经理----A 其他人员----R |
020.配置报告 |
项目经理----C 其他人员----R |
|
030.会议记要 |
项目经理----C 其他人员----R |
|
040.工作报告 |
项目组所有人员----A |
|
110.质保管理 |
|
项目经理----C 质保工程师----A 其他人员----R |
120.规范性文档 |
|
项目经理----A 其他人员----R |
130.系统约定 |
|
项目经理----A 其他人员----R |
140.参考资料 |
010.参考资料1 |
项目经理----A 需求分析工程师----A 系统分析工程师----A 其他人员----R |
|
020.参考资料2 |
项目经理----A 特别指定人员----R |
l 受控库权限结构:
目录结构 |
|
|
一级目录 |
二级目录 |
权限分配 |
060.测试 |
010.确认测试区 |
测试工程师----A 其他人员----R |
020.变更区 |
变更开发人员----A 测试工程师----A 其他人员----R |
|
030.调试测试区 |
调测开发人员----A 测试工程师----A 其他人员----R |
其它目录除CM工程师之外项目组成员----R,并且“150.参考资料\020.参考资料2”路径只分配给项目经理以及特别指定人员以只读权限。
l 产品库权限结构:
目录结构 |
|
一级目录 |
权限分配 |
010.项目标识 |
项目CM工程师--------A 其他人员----R |
1.3.维护配置库
l 配置库安全机制:
1)各项目组所有配置库的管理员密码,在创建、修改后必须立即报告测试管理部门备案,报告内容应包括密码的明文以及创建、修改生效的日期。
2)每季度的最后一天,即3月31日、6月30日、9月30日、12月31日这四天内,必须更换所有配置管理库的管理员密码,如果这四天恰逢假日则顺延到假日结束后第一天内进行。
l CM工程师定期清除配置库里的垃圾文件:
1)在清除配置库中的过时版本时,必须确保历史上对其进行的完整备份的有效性。
l CM工程师定期备份配置库:
1)使用备份/恢复工具,定期对SVN配置库进行全目录备份。
2)每月第一天做完全备份,其他时间每天做增量备份。
3)备份文件一式两份保留在不同的地方:一份保留在配置库自身所在服务器;另一份压缩后保留在公司指定的服务器上,并要求每月所做的完整备份文件在该服务器上保留一个月。
4)在每月初的第一次完整备份结束后,将备份文件存储到移动硬盘上由技术服务中心专人进行保管