问答题 阅读以下说明,根据要求回答问题。
[说明]
某信息系统开发公司承担了某企业的ERP系统开发项目,由项目经理老杨带领着一支6人的技术团队负责开发。由于工期短、任务重,老杨向公司申请增加人员,公司招聘了2名应届大学毕业生小陈和小王补充到该团队中。老杨安排编程能力强的小陈与技术骨干老张共同开发某些程序模块,而安排编程技术弱的小王负责版本控制工作。在项目开发初期,小陈由于不熟悉企业的业务需求,需要经常更改他和老张共同编写的源代码文件,但是他不知道哪个是最新版本,也不知道老张最近改动了哪些地方。一次由于小王的计算机中了病毒,造成部分程序和文档丢失,项目组不得不连续一周加班重新返工。此后,老杨吸取教训,要求小王每天下班前把所有最新版本程序和文档备份到2台不同的服务器上。一段时间后,项目组在模块联调时发现一个基础功能模块存在重大BUG,需要调取之前的备份进行重新开发。可是小王发现,这样一来,这个备份版本之后的所有备份版本要么失去意义,要么就必须全部进行相应的修改。项目工期过半,团队中的小李突然离职,老杨在他走后发现找不到小李所负责模块的最新版本源代码了,只好安排其他人员对该模块进行重新开发。
整个项目在经历了重重困难,进度延误了2个月后终于勉强上线试运行。可是很快用户就反应系统无法正常工作。老杨带领所有团队成员在现场花费了1天时间终于找出问题所在,原来是2台备份服务器上的版本号出现混乱,将测试版本中的程序打包到了发布版中。
问答题 在空白处填写恰当内容(从候选答案中选择一个正确选项,将该选项编号填入对应位置)。 为了控制变更,软件配置管理中引入了______这一概念。根据这个定义,在软件的开发流程中把所有需加以控制的配置项分为两类,其中,______配置项包括项目的各类计划和报告等。配置项应该按照一定的目录结构保存到______中。所有配置项的操作权限由______进行严格管理,其中______配置项向软件开发人员开放读取的权限。 可供选择的答案: A.版本 B.基线 C.配置项 D.非基线 E.受控库 F.静态库 G.配置库 H.CMO I.PM J.CCB
【正确答案】基线(Baseline)是指由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。一组拥有唯一标识号的需求、设计、源代码文卷,以及相应的可执行代码、构造文卷和用户文档构成一条基线。基线中的配置项被“冻结”了,不能再被任何人随意修改(例如,跟踪和控制变更)。基线一经放行,即可作为从配置管理系统检索源代码文卷(配置项)和生成可执行文卷的工具。 为了控制变更,软件配置管理中引入了“基线”这一概念。根据这个定义,在软件的开发流程中把所有需加以控制的配置项分为两类,其中,基线配置项可能包括所有的设计文档和源程序等;非基线配置项包括项目的各类计划和报告等。 配置库是一组受控制的辅助软件开发、使用和维护的软件及相关的文档,在软件发布管理和交付活动中,起着器械性的作用。它记录了配置项有关的所有信息,存放受控的配置项。配置项应该按照一定的目录结构保存到配置库中。 所有配置项的操作权限应由配置管理员(CMO)严格管理,基本原则是:基线配置项向软件开发人员开放读取的权限;非基线配置项向项目经理(PM)、CCB及相关人员开放。
【答案解析】
问答题 结合案例,请分析为什么要进行配置项的版本控制?
【正确答案】版本,也称配置标识,是指某一特定对象的具体实例的潜在存在。其中,“某一特定对象”是指版本维护工具管理的软件组成单元,一般是指源文件;“具体实例”是指软件开发人员从软件库中恢复出来的某软件组成单元的具有一定内容和属性的一个副本。例如,对源文件的每一次修改都生成一个新版本。 在软件项目开发过程中,绝大部分的配置项都要经过多次的修改才能最终确定下来。对配置项的任何修改都将产生新的版本。由于不能保证配置项的新版本一定比老版本“好”,因此不能简单地丢弃开发过程中所产生的配置项老版本。因此,做好配置项的版本控制,有利于按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,以减少返工;有利于历史版本的追溯,能够快速、准确地查找到配置项的任何版本;有利于开发工作的协同化;有利于管理版本冲突问题,在多个版本冲突的情况下,有效地进行版本合并。
【答案解析】
问答题 简述配置项的版本控制流程。
【正确答案】配置项的状态可分为“草稿”、“正式”和“修改”3种。对于新创建的配置项,其状态为“草稿”;该配置项通过评审后,其状态变为“正式”;若需要更改该配置项,则其状态变为“修改”;当配置项修改完毕并重新通过评审时,其状态又变为“正式”。 通常,配置项版本控制的一般流程:①创建或识别配置项,并赋予唯一标识;②修改处于“草稿”状态的配置项,版本为0.YZ(Y为次版本号,取值范围为0~9;Z的取值范围也为0~9);③技术评审或领导审批;④正式发布,版本格式为X.Y(X为主版本号,取值范围为1~9),即创建或发行基线;⑤跟踪和控制变更;⑥建立配置管理记录;⑦执行配置审核。
【答案解析】
问答题 针对该项目在配置管理方面存在的问题,结合你的项目管理经验,为老杨提出一些改进措施。
【正确答案】配置管理活动和流程主要包括(但不限于):①制定配置管理计划:②配置识别与建立基线;③建立配置管理系统;④版本管理(或发布管理);⑤变更控制;⑥配置状态报告;⑦配置审计。依题意,通读整个案例说明,该ERP系统开发项目可能没有编制配置管理规划,缺少完整的配置管理方案。对此,建议该项目先由专职的配置管理员(CMO)制定配置管理计划,再由变更管理委员会(CCB)审批该管理计划。 由题干给出的“公司招聘了2名应届大学毕业生小陈和小王补充到该团队中。老杨……安排编程技术弱的小王负责版本控制工作”等关键信息可知,配置管理员小王刚从大学校园毕业,可能没有实际项目的配置管理实战经验;项目经理老杨也没能做好项目团队建设工作,对新招聘的应届大学毕业生没有进行相应的项目培训。 结合题干给出的关键信息“但是他(小陈)不知道哪个是最新版本,也不知道老张最近改动了哪些地方”、“这个备份版本之后的所有备份版本要么失去意义,要么就必须全部进行相应的修改”、“项目工期过半,团队中的小李突然离职,老杨在他走后发现找不到小李所负责模块的最新版本源代码了”、“原来是2台备份服务器上的版本号出现混乱,将测试版本中的程序打包到了发布版中”等关键信息可知,该项目可能没有建立统一的版本管理机制,源代码的各种版本不可追溯;可能没有建立配置基线,导致项目中的变更不可控;可能缺少配置管理和变更管理的相关流程。对此,建议项目经理老杨要与各方干系人达成共识,组建配置变更控制委员会(CCB);要为项目定义合理的配置管理流程,结合项目实际提出一个高效的配置管理变更控制流程,并以书面形式提交给CCB审批;带领CMO分门别类地与项目组成员共同制定相关配置项的标识规则,为配置项建立唯一标识,保证其可追溯;通过各种方式及时建立起各程序模块或子系统各版本的基线,并及时请关键干系人签字确认,并使重要配置项处于受控状态;补缺补漏做好现有以及及时做好未来配置项的版本管理和发行管理,加强项目版本控制;做好员工离职时文档等移交工作。 此外,建议项目经理老杨在项目经费等相关条件许可的情况下,选用诸如Rational ClearCase、Visual SourceSafe和Concurrent Versions System等常用的配置管理工具或软件系统,以提高项目配置管理的工作效率;及时开展好配置状态报告工作;及时做好配置审计工作。
【答案解析】