问答题
阅读以下关于软件配置管理的叙述,根据要求回答问题1~问题3。
{{B}}[说明]{{/B}}
在软件的开发过程中,随着工作的进展将会产生许多信息,如规格说明、设计说明、源程序、各种数据等,以及合同、计划书、会议录、报告等需要管理的文档。在一些中小型软件项目中,也经常会出现一些混乱和差错现象(如版本错误、数据不一致等)。
软件配置管理为软件开发提供了一套管理办法和原则,以防止混乱和差错的产生,并且适应软件的各类变更。典型的配置问题有:多重维护、共享数据、同时修改、丢失版本号或者没有版本号。
问答题
软件配置管理的一个重要内容就是对变更加以控制,使变更对成本、工期和质量的影响降到最小。为了有效地进行变更控制,通常会借助“配置数据库”。请简述配置数据库的主要作用及其建库模式。
【正确答案】
【答案解析】配置数据库的主要作用: ①用于收集与配置有关的所有信息; ②评价系统变更的效果; ③提供配置管理过程的管理信息 建库模式:按配置项类型分类建库、按任务建库 [解析] 软件配置管理(Software Configuration Management,SCM)为软件开发提供了一套管理办法和活动原则,成为贯穿软件开发始终的重要质量保证活动。配置管理的过程实际是软件开发过程中质量管理的精髓所在,版本管理提高了开发者的工作效率,而变更控制则提高了整个开发团队的工作效率。两者的紧密结合,将为软件开发项目提供一道坚实的质量防火墙,使软件开发项目的质量管理过程规范而有效。 在题干中已给出了软件配置管理的基本功能——“为软件开发提供了一套管理办法和原则,以防止混乱和差错的产生,并且适应软件的各类变更”。软件配置管理是软件质量保证的重要一环,其主要责任是控制变化,同时,也负责配置项和软件的版本标识、软件配置的设计,以及配置中所有变化的报告。可以认为,软件配置管理的工作主要解决的问题有: (1) 采用什么方式去表示和管理数量不少的程序、文档等的各种版本。 (2) 在软件产品交付用户之前和交付之后如何控制变更。实现有效的变更。 (3) 谁有权批准变更及安排变更的优先级。 (4) 什么方法估计变更可能引起的其他问题。 这些问题的解决正是软件配置管理应完成的任务:配置标识、版本管理、变更管理、配置审核及配置报告。 变更管理是软件配置管理的一个重要组成部分,涉及到在给配置项建立了正式的配置标识后变更的评价、协调、审批与实现等方面的活动。为了有效地实现变更控制,需要借助于配置数据库。 配置数据库的主要作用表现在以下几个方面: (1) 记录与配置相关的所有信息,其中存放受控的软件配置项是很重要的内容。 (2) 利用库中的信息可评价变更的后果,这对变更控制有着重要的意义。 (3) 从库中可提取各种配置管理过程的管理信息,可利用库中的信息查询回答许多配置管理问题。例如,哪些客户已经提取了某个特定的系统版本;运行一个给定的系统版本需要什么硬件和系统软件;一个系统到目前为止已生成了多少个版本,何时生成的;如果某个特定的构件变更了,会影响到系统的哪些版本;一个特定的版本曾提出过哪几个变更要求:一个特定的版本有多少已报告的错误。 配置数据库可以分为动态库(开发库、程序员库、工作库)、受控库(主库)、静态库(软件仓库)和备份库4种类型。而决定配置库的结构是配置管理活动的重要基础。常用的有两种组织形式:按配置项类型分类建库和按任务建库。 按配置项的类型分类建库的方式经常被一些咨询服务公司所推荐,它适用于通用的应用软件开发组织。因为这样的组织往往产品的继承性较强,工具比较统一,对并行开发有一定的需求。使用这样的库结构有利于对配置项的统一管理和控制,同时也能提高编译和发布的效率。但由于该库结构并不是面向各个开发团队的开发任务的,因此可能会造成开发人员的工作目录结构过于复杂,从而带来一些不必要的麻烦。 按任务建立相应的配置库,其适用于专业软件的研发组织。在这样的组织内,由于使用的开发工具种类繁多,开发模式以线性发展为主,因此就没有必要把配置项严格地分类存储,人为增加目录的复杂性。对于研发性的软件组织单位来说,采用这种设置策略比较灵活。
问答题
配置状态报告对于软件开发项目的成功起着至关重要的作用。请简述配置状态报告的主要作用及其所包含的主要信息。
【正确答案】
【答案解析】主要作用:①有效地记录和报告管理配置所需要的信息,目的是及时、准确地给出软件配置项的当前状况,供相关人员了解,以加强配置管理工作;②配置状态报告提高了开发人员之间的通信能力,避免了可能出现的不一致和冲突
主要信息:配置状态所涉及到的实体间的关系、状态说明数据词典
[解析] 配置状态报告也称配置状态说明与报告,它是配置管理的一个组成部分。其任务是有效地记录和报告管理配置所需要的信息;目的是及时、准确地给出软件配置项的当前状况,供相关人员了解,以加强配置管理工作。它可以提高了开发人员之间的通信能力,避免了可能出现的不一致和冲突。
在软件工程过程中,必须注意到它的动态特性。配置状态报告就是要在某个特定的时刻观察当时的配置状态,也就是要对动态演化着的配置项取个瞬时的“照片”,以利于在状态报告信息分析的基础上,更好地进行控制。
配置状态报告包含的信息主要有配置状态所涉及到的实体问的关系和状态说明数据词典。
表15-14列出了一个定期提交的配置状态报告的内容。
表15-14 配置状态报告表
项目
内容
各份变更请示概要 变更请求号、日期、申请人、状态、估计工作量、实际工作量、发行版本、变更结束日期
基线库状态 库标识、至某日预计库内配置项数、实际配置项数
发行信息 发行版本、计划发行时间、实际发行日期、说明
备份信息 备份日期、介质、备份存放位置
配置管理工具状态
配置管理培训状态
问答题
请简述配置管理中完整的变更处置流程。
【正确答案】
【答案解析】①变更申请 ②变更评估 ③变更决策 ④变更实施 ⑤变更验证与确认 ⑥沟通存档(或变更的发布) [解析] 变更控制是项目管理的重要内容。近年来,项目规模不断扩大、复杂性越来越高,项目中出现变更的次数也越来越多。如何对变更进行有效的控制成为每个项目经理必须重视的问题。 如果把项目整体的交付物视作项目的配置项,配置管理可视为对项目完整性管理的一套系统,当用于项目基准调整时,变更管理可视为其中的一部分。亦可视变更管理与配置管理为相关联的两套机制,变更管理由项目交付或基准配置调整时,由配置管理系统调用;变更管理最终应将对项目的调整结果反馈给配置管理系统,以确保项目执行与对项目的账目相一致。 在配置管理中完整的变更处置的基本流程如下。 (1) 变更申请。相关人员如项目经理填写变更申请表,说明要变更的内容、变更的原因、受变更影响的关联配置项、工作量和变更实施人等,并提交给变更控制委员会(CCB)。由于变更的真实原因和提出背景复杂,如不经评估而快速实施则可能涉及的项目影响难以预料,而变更申请是变更管理流程的起点,故应严格控制变更申请的提交。变更控制的前提是项目基准健全,对变更处理的流程事先达成共识。 (2) 变更评估。CCB负责组织对变更申请进行评估并确定以下内容:①变更的内容是否合理;②变更的范围是否正确、考虑周全;③受影响的配置项是否已被充分考虑,是否需要同时进行变更;④工作量估计是否合理;⑤如有变更实施方案,评估基线变更的实施方案是否合理。根据变更影响大小,可以由 CCB组长确定由哪些人参加此评估。CCB决定是否接受变更,并将决定通知相关人员。 (3) 变更决策。由具有相应权限的人员或机构决定是否实施变更。 (4) 变更实施。配置管理工程师在测试库或开发库中开辟工作空间,从受控库中取出相关的配置项放于工作空间,分配权限给变更实施人;项目经理组织修改相关的配置项,并在相应的文档或程序代码中记录变更信息,同时填写报告;变更实施人完成变更并提交后,项目经理指派其他的人员完成单元测试,代码走查。 (5) 变更验证与确认。项目经理指定人员对变更后的配置项进行测试或验证,如由配置管理人员或受到变更影响的人对变更结果进行评价,确定变更结果和预期是否相符、相关内容是否进行了更新、工作产物是否符合版本管理的要求,并填写相应的报告。项目经理应将变更与验证的结果提交CCB组长审批,由其确认变更是否已经按要求完成。如果是基线变更,必要时CCB组长应召集CCB会议确认基线变更的结果。 (6) 沟通存档(或变更的发布)。将变更后的内容通知可能会受到影响的人员,并将变更记录汇总归档。如提出的变更在决策时被否决,其初始记录也应予以保存。