导图社区 信息文档管理与配置管理
信息系统项目管理师(第三版) PMBOK(第五版)考试参考资料。
编辑于2020-10-09 10:38:04第14章 信息文档管理与配置管理 490
14.1 信息系统项目文档及其管理 490
1.信息系统文档概念。
(1)信息系统相关信息(文档)是指某种数据媒体和其中所记录的数据。 它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读的东西。 在软件工程中,文档常常用来表示对活动、需求、过程或结果,进行描述、定义、规定、报告或认证的任何书面或图示的信息(包括纸质文档和电子文档)。
(2)信息系统文档是系统建设过程的“痕迹”,是系统维护人员的指南,是系统开发人员与用户交流的工具。规范的文档意味着系统是按照工程化开发的,意味着信息系统的质量有了形式上的保障。文档的欠缺、随意性和不规范,极有可能导致原来开发人员流动后,系统不可维护、不可升级、无生命力。所以,建立一个良好的信息系统,不仅要利用现代化的信息技术和正确的开发方法, 更重要的是做好文档管理工作。
(3)在软件工程学科领域,文档和程序合起来被称为软件。文档和程序的区别在于前者是人可阅读,后者主要由机器来执行。如果将源程序加上注释,也可成为文档的一部分。
2.软件文档分类与质量等级。
(1)软件文档一般分为三类:开发文档、产品文档、管理文档。每类文档所包含的内容如表14-1 所示。 
(2)开发文档描述开发过程本身、产品文档描述开发过程的产物、管理文档记录项目管理的信息。
(3)每个文档的质量必须在文档计划期间就有明确的规定。文档的质量可以按文档的形式和列出的要求划分为四级。每个等级包含的内容及适用情况如图 14-2 所示。 
(4)质量方面需要考虑的问题既要包含文档的结构,也要包含文档的内容。 文档内容可以根据正确性、完整性和明确性来判断。 而文档结构由各个组成部分的顺序和总体安排的简单性来测定。 要达到这 4 个质量等级,需要的投入和资源逐级增加,质量保证机构必须处于适当的行政地位以保证达到期望的质量等级。
文档质量的四个等级 1. 最低限度文档(1 级文档) 适合开发工作量低于一个人月的开发者自用程序。该文档应包含程序清单、开发记录、测试数据和程序简介,写给自己看的文档。 2.内部文档(2 级文档) 可用于没有与其他用户共享资源的专用程序。除1级文档提供的信息外,2级文档还包括程序清单内足够的注释以帮助用户安装和使用程序。 3.工作文档(3 级文档) 适合于由同一单位内若干人联合开发的程序,或可被其他单位使用的程序。 4.正式文档(4 级文档) 适合那些要正式发行供普遍使用的软件产品。关键性程序或具有重复管理应用性质(如工资计算)的程序需要4级文档。4级文档遵守 GB/T 8567-2006 的有关规定。 
(5)管理信息系统文档的规范化管理主要体现在文档书写规范、图表编号规则、文档目录编写标准和文档管理制度等几个方面。 根据生命周期法 5 个阶段,分类编号规则如图 14-3 所示。 
14.2 配置管理 492
14.2.1 配置管理的概念 492
(1)配置管理是为了系统地控制配置变更,在系统的整个生命周期中维持配置的完整性和可跟踪性,而标识系统在不同时间点上配置的学科。
(2)配置管理包括 6 个主要活动:制订配置管理计划、配置标识、配置控制、配置状态报告、配置审计、发布管理和交付。 GB/T11457-2006 对配置项的定义为∶"为配置管理设计的硬件、软件或二者的集合,在配置管理过程中作为一个单个实体来对待。
(3)典型配置项包括项目计划书、需求文档、设计文档、源代码、可执行代码、测试用例、运行软件所需的各种数据,它们经评审和检查通过后进入配置管理。 配置项可以分为基线配置项和非基线配置项两类, 基线配置项可能包括所有的设计文档和源程序等; 非基线配置项可能包括项目的各类计划和报告等。
(4)所有配置项的操作权限应由 CMO 严格管理,基本原则是: 基线配置项向开发人员开放读取的权限; 非基线配置项向 PM、CCB 及相关人员开放。
(5)配置项的状态可分为“草稿”“正式”和“修改”三种。 配置项刚建立时,其状态为“草稿”。 配置项通过评审后,其状态变为“正式”。 此后若更改配置项,则其状态变为“修改”。 当配置项修改完毕并重新通过评审时,其状态又变为“正式”,如图 14-4 所示。 
(6)配置项版本号。
1)处于“草稿”状态的配置项的版本号格式为 0.YZ,YZ 的数字范围为 01~99。随着草稿的修正,YZ 的取值应递增。YZ 的初值和增幅由用户自己把握。
2)处于“正式”状态的配置项的版本号格式为 X.Y,X 为主版本号,取值范围为 1~9。Y 为次版本号,取值范围为 0~9。
配置项第一次成为“正式”文件时,版本号为 1.0。 如果配置项升级幅度比较小,可以将变动部分制作成配置项的附件,附件版本依次为 1.0,1.1,… 当附件的变动积累到一定程度时,配置项的 Y 值可适量增加,Y 值增加一定程度时,X 值将适量增加。当配置项升级幅度比较大时,才允许直接增大 X 值。
3)处于“修改”状态的配置项的版本号格式为 X.YZ。配置项正在修改时,一般只增大 Z 值,X.Y值保持不变。当配置项修改完毕,状态成为“正式”时,将 Z 值设置为 0,增加 X.Y 值,参见 2)。
(7)配置项版本管理:在项目开发过程中,绝大部分的配置项都要经过多次的修改才能最终确定下来。对配置项的任何修改都将产生新的版本。由于我们不能保证新版本一定比旧版本“好”,所以不能抛弃旧版本。 版本管理的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本。
(8)配置基线(常简称为基线)由一组配置项组成,这些配置项构成一个相对稳定的逻辑实体。基线中的配置项被“冻结”了,不能再被任何人随意修改。对基线的变更必须遵循正式的变更 控制程序。
(9)一组拥有唯一标识号的需求、设计、源代码文卷以及相应的可执行代码、构造文卷和用户文档构成一条基线。产品的一个测试版本(可能包括需求分析说明书、概要设计说明书、详细设计说明书、已编译的可执行代码、测试大纲、测试用例、使用手册等)是基线的一个例子。
(10)—个产品可以有多条基线,也可以只有一条基线。交付给外部顾客的基线一般称为发行基线,内部开发使用的基线一般称为构造基线。
(11)配置库存放配置项并记录与配置项相关的所有信息,是配置管理的有力工具。配置库可以分开发库、受控库、产品库三种类型。
1)开发库,也称为动态库、程序员库或工作库, 用于保存开发人员当前正在开发的配置实体, 如新模块、文档、数据元素或进行修改的已有元素。 动态中的配置项被置于版本管理之下。 动态库是开发人员的个人工作区,由开发人员自行控制。 库中的信息可能有较为频繁的修改,只要开发库的使用者认为有必要,无须对其进行配置控制,因为这通常不会影响到项目的其他部分,可以任意修改。
2)受控库,也称为主库, 包含当前的基线加上对基线的变更。 受控库中的配置项被置于完全的配置管理之下。 在信息系统开发的某个阶段工作结束时,将当前的工作产品存入受控库。 可以修改, 需要走变更流程。
3)产品库,也称为静态库、发行库、软件仓库, 包含已发布使用的各种基线的存档,被置于完全的配置管理之下。 在开发的信息系统产品完成系统测试之后,作为最终产品存入产品库内,等待交付用户或现场安装。 一般不再修改,真要修改的话需要走变更流程。
(12)配置库的建库模式有两种:按配置项类型建库和按任务建库。
配置库的主要作用 ①记录与配置相关的所有信息,其中存放受控的软件配置项是很重要的内容。 ②利用库中的信息可评价变更的后果,这对变更控制有着重要的意义。 ③从库中可提取各种配置管理过程的管理信息。
利用配置库中的信息可回答许多配置管理的问题,例如∶ ①哪些客户已提取了某个特定的系统版本? ②运行一个给定的系统版本需要什么硬件和系统软件? ③一个系统到目前已生成了多少个版本,何时生成的? ④如果某一特定的构件变更了,会影响到系统的哪些版本? ⑤一个特定的版本曾提出过哪几个变更请求? ⑥一个特定的版本有多少己报告的错误? ⑦使用配置库可以帮助配置管理员把信息系统开发过程的各种工作产品,包括半成品或阶段产品和最终产品管理得井井有条,使其不致管乱、管混、管丢。
(13)配置库权限设置:配置管理员负责为每个项目成员分配对配置库的操作权限。
配置库的权限设置主要是解决∶ 库内存放的配置项什么人可以"看"、什么人可以"取"、什么人可以"改"、什么人可以"销毁"等问题。配置管理员负责为每个项目成员分配对配置库的操作权限。
(14)配置控制委员会负责对配置变更做出评估、审查以及监督巳批准变更的实施。 CCB 的成员可以包括项目经理、用户代表、产品经理、开发工程师、测试工程师、质量控制人员、配置管理员等。 CCB 不必是常设机构,完全可以根据工作的需要组成,例如按变更内容和变更请求的不同,组成不同的 CCB。 对于小的项目,CCB 可以只有一个人,甚至只是兼职人员。通常,CCB 不只是控制配置变更,而是负有更多的配置管理任务,如配置管理计划审批、基线设立审批、产品发布审 批等。
(15)配置管理员负责在整个项目生命周期中进行配置管理活动,具体有如下内容:
1)编写配置管理计划。
2)建立和维护配置管理系统。
3)建立和维护配置库。
4)配置项识别。
5)建立和管理基线。
6)版本管理和配置控制。
7)配置状态报告。
8)配置审计。
9)发布管理和交付。
10)对项目成员进行配置管理培训。
14.2.2 配置管理的目标和方针 497
软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。 软件配置管理工作应该享有足够的资金支持,这需要在客户、管理层和具体项目主管之间协商。 软件配置管理应该实施于对外交付的软件产品,以及那些被选定的在项目中使用的支持类工具等。
配置管理系统是用来进行配置管理的软件系统,其目的是通过确定配置管理细则和提供规范的配置管理软件,加强信息系统开发过程的质量控制,增强信息系统开发过程的可控性,确保配置项(包括各种文档、数据和程序)的完备、清晰、一致和可追踪性,以及配置项状态的可控制性。
14.2.3 日常配置管理活动 498
(1)配置控制即配置项和基线的变更控制,包括:标识和记录变更申请;分析和评价变更; 批准或否决申请;实现、验证和发布已修改的配置项。
(2)变更评估:CCB 负责组织对变更申请进行评估并确定以下内容。
1)变更对项目的影响。
2)变更的内容是否必要。
3)变更的范围是否考虑周全。
4)变更的实施方案是否可行。
5)变更工作量估计是否合理。
CCB 决定是否接受变更,并将决定通知相关人员。
(3)基于配置库的变更控制如图 14-5 所示。 
(4)配置状态报告也称配置状态统计,其任务是有效地记录和报告管理配置所需要的信息, 及时、准确地给出配置项的当前状况,供相关人员了解,以加强配置管理工作。
(5)配置状态报告应该包含以下内容。
1)每个受控配置项的标识和状态。一旦配置项被置于配置控制下,就应该记录和保存其每个后继进展的版本和状态。
2)每个变更申请的状态和已批准的修改的实施状态。
3)每个基线的当前和过去版本的状态以及各版本的比较。
4)其他配置管理过程活动的记录。
(6)配置审计也称配置审核或配置评价,包括功能配置审计和物理配置审计,分别用以验证当前配置项的一致性和完整性。配置审计的实施是为了确保项目配置管理的有效性,体现了配置管理的最根本要求—不允许出现任何混乱现象,例如:
防止向用户提交不适合的产品,如交付了用户手册的不正确版本。
发现不完善的实现,如开发出不符合初始规格说明或未按变更请求实施变更。
找出各配置项间不匹配或不相容的现象。
确认配置项已在所要求的质量控制审核之后纳入基线并入库保存。
确认记录和文档保持着可追溯性。
功能配置审计 功能配置审计是审计配置项的一致性(配置项的实际功效是否与其需求一致),具体验证以下三个方面∶
①配置项的开发已圆满完成。
②配置项已达到.配置标识中规定的性能和功能特征。
③配置项的操作和支持文档巳完成并且是符合要求的。
物理配置审计 物理配置审计是审计配置项的完整性(配置项的物理存在是否与预期一致),具体验证如下两个方面∶
①要交付的配置项是否存在。 ②配置项中是否包含了所有必需的项目。
发布和交付 发布管理和交付活动的主要任务是∶有效控制软件产品和文档的发行和交付,在软件产品的生存期内妥善保存代码和文档的母拷贝
(1)存储。应通过下述方式确保存储的配置项的完整性。 ·选择存储介质使再生差错或损环降至最低限度。 ·根据媒体的存储期,以一定频次运行或刷新已存档的配置项。 ·将副本存储在不同的受控场所,以减少丢失的风险。
(2)复制。复制是用拷贝方式制造软件的阶段。 · 应建立规程以确保复制的一致性和完整性。 ·应确保发布用的介质不含无关项(如软件病毒或不适合演示的测试数据)。 ·应使用适合的介质以确保软件产品符合复制要求,确保其在整个交付期中内容的完整性。
(3)打包。应确保按批准的规程制备交付的介质。应在需方容易辨认的地方清楚标出发布标识。
(4)交付。供方应按合同中的规定交付产品或服务。
(5)重建。应能重建软件环境,以确保发布的配置项在所保留的先前版本要求的未来一段时间里是可重新配置的。
【补充知识点】
1.创建基线或发行基线的主要步骤。
(1)配置管理员识别配置项。
(2)为配置项分配标识。
(3)为项目创建配置库,并给每个项目成员分配权限。
(4)各项目团队成员根据自己的权限操作配置库。
(5)创建基线或发行基线,并获得 CCB 的授权。
2.配置管理的基线一般分为功能基线、分配基线、管理基线。基线只能由指定的配置管理员通过配置变更控制流程进行修改。其主要属性一般包括名称、标识符、版本、日期。
3.信息系统项目完成后,最终产品或项目成果应置于产品库内,当需要在此基础上进行后续开发时,应将其转移到受控库后进行。
4.配置管理系统用户代表是从将来要在实际的项目开发过程中使用该系统遵循该过程的开发人员中挑选出来的。他们负责从构造初期了解配置管理系统和规程,根据开发经验协助制订、修改 配置管理规程,并在试验项目中担任部分开发角色。这部分成员应包括软件开发项目经理、设计人员、编码、测试人员和构造、发布人员。
5.配置控制包括:标识和记录变更请求;分析和评价变更;批准或否决请求;实现、验证和发布已修改的软件像。在每次修改时应保存审核追踪,并可以追踪修改的原因和修改的授权。对处理安全性或安全保密性功能的受控软件项的所有访问,均应进行控制和审核。
14.3 文档管理、配置管理工具 502
14.3.1 工具综述 502
(1)项目文档一般作为配置管理的一部分,放在配置管理工具中进行管理,所以常用的软件配置管理工具分为两大类,一类是付费商业软件,另一类是开源软件。
(2)付费商业软件:CA CCC;Microsoft VSS,CVS。
(3)开源软件:SVN、GIT、CVS。
14.3.2 SVN 503
(1)SVN 服务器有两种运行方式:独立服务器和借助 Apache 运行。两种方式各有利弊, 用户可以自行选择。
SVN是是一个开放源代码的版本控制系统,SVN是集中式版本控制之王,也是目前在国内软件企业中使用最为普遍的配置管理工具。SVN服务器有两种运行方式∶独立服务器和借助 apache运行。两种方式各有利弊,用户可以自行选择。SVN的优点∶
①支持重命名,这对 Java开发来说非常重要。为了得到更好的代码,开发中需要经常进行重构,重构就经常涉及到文件的重构名。
②开发的时候不一定要锁定。一方面导致重构不方便,另一方面,不能离线开发,使用 SN就不同,可以带回家继续开发,回来后,提交就行了。
③多平台。可以支持多个平台下的操作。
④更好的客户端支持。一个在 Windows下用的SVN客户端TortoiseSVN比较方便使用。
⑤更好地与外围工具集成。
⑥方便。
⑦速度与稳定性看起来都不错。
14.3.3 CC 503
(2)ClearCase(简称:CC)是 IBM Rational 公司的旗舰产品之一,是全球领先的软件配置管理工具,它广泛应用于众多企业级软件工程实践之中。 CC 提供 C/S 和 B/S 两种架构的配置管理解决方案,提供了全面的软件配置管理功能。Clearcase是集中式版本控制工具。
CC的特点∶
①独有的存储库 VOB(Version Object Bases)
②可视化的文件版本树
③并行开发
④版本历史记录
⑤自动的比较和版本间的合并
⑥工作空间管理
14.3.4 GIT 504
(3)GIT 与常用的版本控制工具 CVS、Subversion 等不同,它采用了分布式版本库的方式, 不必服务器端软件支持,使源代码的发布和交流极其方便。
GIT是一个开源的分布式版本控制工具,GIT最初由Linus Toryalds编写,用于Linux内核开发的版本控制工具。
GIT的速度很快,这对于诸如Linux kemel这样的大项目来说自然很重要。
GIT最为出色的是它的合并跟踪(merge racing)能力,GIT在国外已经非常普及,越来越多的开源项目己经转移到 GIT。
GIT的优势主要有∶ ①更方便的 Merge。 ②更方便地管理。 ③更健壮的系统。 ④对网络的依赖性更低。
GIT和 SVN的比较
在很多情况下,GIT的速度远远比 SVN快。
SVN是集中式管理,GIT是分布式管理,分布式和集中式最大的区别在于∶ 在分布式下,本地有个代码仓库,开发者可以在本地提交;而集中式版本控制,只有在服务器才有一个代码仓库,只能在服务器进行统一管理。
SVN使用分支比较笨拙,GIT可以轻松拥有无限个分支。
SVN必须联网才能正常工作,GIT支持本地版本控制工作。
旧版本的SVN会在每一个目录置放一个.svn,GIT只会在根目录拥有一个git。
14.4 本章练习 505