配置管理是管理项目生命周期内各阶段的产物以及产品的各个版本,可以理解为项目的档案管理。而项目文档是配置管理的一部分,是配置管理的对象之一,放在配置管理工具中进行管理。
一、文档管理
(一)文档的分类
软件文档可以分为:开发文档、产品文档和管理文档。
1、开发文档
开发文档描述开发过程本身。基本的开发文档包括:
1)可行性研究报告和项目任务书
2)需求规格说明
3)功能规格说明
4)设计规格说明,包括程序和数据规格说明
5)开发计划
6)软件集成和测试计划
7)质量保证计划
8)安全和测试信息
2、产品文档
产品文档描述开发过程的产物,包括:
1)培训手册
2)用户手册
3)操作手册
4)产品手册和信息广告
3、管理文档
管理文档记录项目管理的信息。
1)开发过程每个阶段的进度和进度变更记录
2)软件变更情况记录
3)开发团队的职责定义
4)项目计划、项目阶段报告
5)配置管理计划
(二)文档质量的级别
可以分为四级。
1)最低限度文档(1级文档)
适合开发工作量低于一个人月的开发者自用程序。文档包括程序清单、开发记录、测试数据和程序简介。
2)内部文档(2级文档)
可用于没有与其他用户共享资源的专用程序。除1级文档,还包括程序清单内足够的注释以帮助用户安装和使用程序。
3)工作文档(3级文档)
适合于由同一单位内若干人联合开发的程序,或可被其他单位使用的程序。(可见我们工作中多是此类文档)
4)正式文档(4级文档)
适合要正式发行供普遍使用的软件产品。关键性程序或具有重复管理应用性质(如工资计算)的程序需要4级文档。
(三)信息系统项目文档管理的规则和方法
管理信息系统文档的规范化管理主要体现在文档书写规范、图表编号规则、文档目录编写标准和文档管理制度等几个方面。
1、文档书写规范
文档遵循统一的书写规范。
2、图表编号规则
对图表进行有规则的编号,方便查找。图表的编号一般采用分类结构。例如根据生命周期法的5个阶段,可以给出如下分类编号规则:
3、文档目录编写标准
为了存档及未来使用的方便,应该编写文档目录。管理信息系统的文档目录中应包含文档编号、文档名称、格式或载体、每份页数。。。,文档名称要书写完整规范。
4、文档管理制度
主要包括文档规范(文档书写规范、图表编号规则和文档目录编写标准)、文档借阅记录的登记制度、文档使用权限控制规则等。文档还应保护商业秘密。项目干系人签字确认的文档要与相关电子文档一一对应,这些电子文档应为只读。
二、配置管理
配置管理是为了系统地控制配置变更,在系统的整个生命周期中维持配置的完整性和可跟踪性,而标识系统在不同时间点上配置的学科。配置管理的概念涵括软硬件,可以应用于各种信息系统集成项目。
配置管理包括6个主要活动:制订配置管理计划、配置标识、配置控制、配置状态报告、配置审计、发布管理和交付。
(一)概念
1、配置项
典型的配置项包括项目计划书、需求文档、设计文档、源代码、可执行代码、测试用例、运行软件所需的各种数据,它们经过评审和检查通过后进入配置管理。
所有配置项都应按照相关规定统一编号,以一定的目录结构保存在配置库中。
可以分为基线配置项和非基线配置项两类。基线配置项可能包括所有的设计文档和源程序等,而非基线配置项可能包括项目的各类计划和报告。
所有配置项的操作权限应由CMO(配置管理员)严格管理,基本原则是:基线配置项向开发人员开放读取权限;非基线配置项向PM、CCB及相关人员开放。
2、配置项状态
配置项的状态可分为“草稿”、“正式”和“修改”三种。
配置项刚建立时,其状态为“草稿”;通过评审后,状态为“正式”;此后如果更改,则状态为“修改”,通过评审后变回“正式”。
3、配置项版本号
草稿:0.YZ(0.01~0.99)
正式:X.Y,X和Y的取值范围为0~9
修改:X.YZ,只增加Z的值,XY不变;转为正式时,Z置为0,增加X.Y值。
4、配置项版本管理
版本管理的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到所有配置项的任何版本。
5、配置基线
配置基线由一组配置项组成,这些配置项构成一个相对稳定的逻辑实体。基线中的配置项不能再被随意修改,对基线的变更必须遵循正式的变更控制程序。
一组拥有唯一标识号的需求、设计、源代码文卷以及相应的可执行代码、构造文卷和用户文档构成一条基线。产品的一个测试版本(包括各种文档)是基线一个实例。
基线通常对应开发过程中的里程碑。一个产品可以有一个或多个基线。交付给用户的叫发行基线(Release),内部发行叫构造基线(Build)。
基线需要定义下列内容:建立基线的事件、受控的配置项、建立和变更基线的程序、批准变更基线所需的权限。每个基线都要纳入配置控制,更新基线只能走正式的变更控制程序。
基线的好处:
1)为开发工作提供了一个定点和快照
2)新项目可以基于基线建立,作为单独分支单独演化,与原始项目隔离
3)当变更因为各种原因需要取消,基线提供了回滚的可能
4)可以利用基线建立测试版本,以重现错误
6、配置库
配置库存放配置项并记录与配置项相关的所有信息,是配置管理的有力工具。
配置库可以分为开发库、受控库和产品库3种类型。
1)开发库
也称为动态库、程序员库或工作库,用于保存开发人员当前正在开发的配置实体。
2)受控库
主库,包含当前的基线,加上对基线的变更。受控库中的配置项完全置于配置管理之下。当信息系统的某个阶段工作结束时,当前的工作产品存入受控库。
3)产品库
静态库、发行库、软件仓库,包含已发布使用的各种基线的存档,被置于完全的配置管理之下。在开发的信息系统产品完成系统测试之后,作为最终产品存入产品库内,等待交付用户或现场安装。
【建库模式】
1)按配置项的类型分类建库,适用于通用软件的开发组织。
2)按开发任务建立相应的配置库,适用于专业软件的开发组织。
7、配置库权限设置
8、配置控制委员会
配置控制委员会(Configuration Control Board,CCB),负责对配置变更做出评估、审批以及监督已批准的变更实施情况。
CCB建立在项目级,其成员包括项目经理、用户代表、产品经理、开发工程师、测试工程师、质量控制人员、配置管理员等。CCB不一定是常设机构,完全可以根据工作需要动态组成。比如根据变更内容和变更请求的不同,组成不同的CCB。人数也不固定,小的项目,CCB可能就一个人。
通常,CCB除了控制配置变更,还负有更多的配置管理任务,如配置管理计划的审批、基线设立审批、产品发布审批等。
9、配置管理员
配置管理员(Configuration Management Office,CMO),负责在整个项目生命周期中进行配置管理活动。
10、配置管理系统
用来进行配置管理的软件系统。
(二)目标和方针
1、确定配置管理目标
目标是在贯穿整个软件生命周期中建立和维护项目产品的完整性,包括:
1)确保软件配置管理计划得以制订,并经过相关人员的评审和确认。
2)识别出要控制的项目产品有哪些,并且制定相关控制策略,以确保这些项目产品被合适的人员获取。
3)制定控制策略,以确保项目产品在受控范围内更改。
4)采取适当的工具和方法,确保相关组别和个人能够及时了解到软件基线的状态和内容。
2、确定配置管理的方针
1)制订软件配置管理过程文件,项目组成员严格按照文件规定要求执行
2)明确配置管理职责
3)加强软件配置管理培训
4)软件配置管理工作要有资源和资金支持
5)软件配置管理应该实施于对外交付的产品,项目支持类工具等
6)定期审核软件基准和软件配置管理工作,审核结果及时通知各方
(三)管理活动
1、制订配置管理计划
2、配置标识
也称为配置识别,包括为系统选择配置项并在技术文档中记录配置项的功能和物理特征。
配置标识的原则:
(1)用易于理解和推测的方式定义文件的标识;
(2)当需要修改时,提供进行修改和跟踪它们的方法;
(3)为了便于控制与管理,要隐含如下内容:配置项内容、版本、完成时间等。
配置标识是配置管理员的工作。基本步骤:
①识别配置项。
②为每个配置项指定唯一性的标识代号。
③确定每个配置项的重要特征。配置项的特征主要包括作者、文档类型、代码文档的程序设计语言。
④确定配置项进入配置管理的时间。
⑤确定每个配置项的拥有者及责任。
⑥填写配置管理表。
⑦审批配置管理表。CCB审查配置管理表是否符合配置管理计划和项目计划文档的规定,审批配置管理表。
3、配置控制
1)变更申请
2)变更评估
3)通告评估结果
4)变更实施
5)变更验证与确认
6)变更的发布
7)基于配置库的变更控制
4、配置状态报告
也称为配置状态统计,任务是有效地记录和报告管理配置所需要的信息。目的是及时、准确地给出配置项的当前状况,供相关人员了解,以加强配置管理工作。
5、配置审计
也称为配置审核或配置评价,包括功能配置审计和物理配置审计,用于验证当前配置项的一致性和完整性,包括功能与需求的一致性,版本是否正确,等等。
6、发布管理和支付
主要任务是有效控制软件产品和文档的发行和交付,在软件产品的生存期内妥善保存代码和文档的母拷贝。包括
1)存储
2)复制
3)打包
4)交付
5)重建
三、文档及配置的管理工具
SVN,GIT等