1、配置管理过程及配置管理过程及 工具的使用工具的使用 CNIC R&D 质量组1谢谢观赏2019-6-29议程n配置管理概念n配置项标识n配置库目录结构n配置管理过程n配置管理工具的使用2谢谢观赏2019-6-29配置管理概念nISO 9000-3:1997 配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给与技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。nW.Babich 的解释 软件配置管理能协调软件开发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效的提高生产率。nGB/T 11457:1995软件工程术语国家标
2、准 A.表示和确定系统中配置项的过程,在系统整个生存期内控制这些配置项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。B.对下列工作进行技术和行动指导与监督的一套规范:对配置项的功能特性和物理特性进行标识和文件编制工作;控制这些特性的更动情况;记录并报告这些更动进行的处理和实现的状态。3谢谢观赏2019-6-29为什么需要配置管理忽视软件配置管理可能导致的混乱现象:标识混乱版本混乱不能协同工作已经解决的缺陷过后又出现错误找不到最新修改了的源程序找不到编程序的人4谢谢观赏2019-6-29SCMSCM的主要职责(的主要职责(1 1)变更控制变更控制配置项标识配置项标识配
3、置状态报告配置状态报告工作产品的完整性、工作产品的完整性、一致性、可追踪性一致性、可追踪性配置审计配置审计5谢谢观赏2019-6-29SCM的主要职责(2)n配置项 受配置管理控制和管理的基本单位。配置管理工作都是围绕配置项来进行。n配置标识 要进行配置标识,首先必须明确项目生命周期内所要产生的工作产品,然后确定工作产品的命名和标识规则。总体原则是方便在配置管理工具中进行检索和让项目组成员容易记住标识规则,同时确保在组织一级的标识规则一致性。n变更管理 变更管理是项目管理的一个重点和难点,涉及的范围很广。实施高效的变更管理至少应该包括二个部分,一是定义合理变更管理流程,一是采用自动化工具来支持
4、。在具体的实践中,应该对变更进行分类和分层,建立处理不同变更的变更控制委员会(CCB)构成策略,既能保证项目组成员有一定的自主权又不耽误高层经理对关键问题的把握。6谢谢观赏2019-6-29SCM的主要职责(3)n报告配置状态报告配置状态的目的是向项目所有成员提供基线内容和状态、基线变更信息,也是实现资源共享的前提。此外,在项目生命周期中通过对配置项的变更数据统计分析,有利于评估项目风险,有效控制项目的执行。报告的方式可以多种多样,如Email,但应该把握好时机:变更请求被批准时;基线版本发生变化时;项目组任何需要的时候。n配置审核配置审核包括两方面的内容:配置管理活动审核及基线审核。配置管理
5、活动审核确保项目组成员所有配置管理活动遵循批准的软件配置管理方针和规程,比如检入(Check in)/检出(Check Out)的频度,工作产品成熟度提升原则等。实施基线审核,保证基线化软件工作产品的完整性和一致性,并且满足其功能要求。7谢谢观赏2019-6-29确定配置项1、系统规格说明2、软件项目计划3、软件需求规格说明书a.图形分析模型b.处理规格说明c.原型d.数学规格说明4 初步用户手册5 设计规格说明书a.数据设计描述b.体系结构设计描述c.模块设计描述d.接口设计描述e.对象描述(采用面向对象技术时)6 源代码清单7、测试规格说明 a.测试计划和步骤 b.测试用例和记录的结果8、
6、操作和安装手册9、可执行程序 a.模块可执行代码 b.连接的模块10、数据库描述 a.模式和文件结构 b.初始内容11、联机用户手册12、维护文档 a.软件问题报告 b.维护请求 c.工程变更指令13.软件工程标准和规程8谢谢观赏2019-6-29配置项标识n配置标识是软件生命周期中划分选择各类配置项、定义配置项的种类、为它们分配标识符的过程。配置项标识的重要内容就是对配置项进行标识和命名。n原则唯一性可追溯性与同类配置项不同的信息,应纳入标识:这是为了便于区分、查找同类配置项的标识方法统一容易记忆9谢谢观赏2019-6-29文档标识方法(1)n配置项的相关标识信息组名项目名文档内容版本号文档
7、撰写时间文档撰写作者10谢谢观赏2019-6-29文档标识方法(2)n标识项目信息命名方式:项目编号+文档名称例如:RDMIS_需求规格说明书适用于:需求规格说明书、概要设计说明书、详细设计说明书、测试计划等等n标识版本变化版本变化不通过文档命名来标识,对于基线文档,在CVS中是通过Tag来标识。并且,在文档的头信息中必须注明文档的版本号。命名方式:文档名称例如:RDMIS_概要设计说明书适用于有版本变化的文档。11谢谢观赏2019-6-29文档标识方法(3)n标识文档撰写时间命名方式:文档名称撰写时间例如:RDMIS项目会议记录_20040708适用于:会议记录、项目周报、工作周报等等n标识
8、文档作者命名方式:文档名称人员名称例如:项目周报_李平_20041227适用于:项目周报、工作周报、年终工作总结等等n标识子系统或者模块名称命名方式:项目编号+子系统名称+文档名称例如:RDMIS_绩效考评_详细设计说明书适用于:子系统详细设计说明书、系统模块设计说明书等等12谢谢观赏2019-6-29文档标识方法(4)n文档首页可以包括这些信息:项目名、文档名、文档作者、本文档的版本更新历史、版本号、日期等。13谢谢观赏2019-6-29源程序标识信息n每个源程序的首部应包括的信息为:功能描述、创建日期、作者、版本号。14谢谢观赏2019-6-29版本号n形式:主版本号主版本号.从版本号从版
9、本号.维护版本号维护版本号 n主版本号对系统作重大调整,在功能和性能上有大的变化时主版本号增加。第一次版本号和第二次版本号为零。版本号升级由项目组长/室主任决定。n从版本号与上一版本相比,对系统功能或性能进行了少量的增加或修改,从版本号增加,主版本号不变。版本号升级由项目组长决定。n维护版本号与上一版本相比,修改了小量系统bug,维护版本号增加,主版本号和从版本号不变。版本号升级由项目组长决定。n通常来说,通过软件系统测试后系统版本号变为V1.0,软件系统第一次发布时版本号为V1.0.0,从版本号和维护版本号均为0。15谢谢观赏2019-6-29CVS辅助标识方法16谢谢观赏2019-6-29
10、版本的演变17谢谢观赏2019-6-29三个配置库 (1)开发库:存放开发过程中需要保留的各种信息,供项目组成员使用。(2)基线库:在软件开发的某个阶段工作结束时,将工作产品存入或将有关的信息存入。对库内工作产品的读写和修改应该加以控制。(3)产品库:在开发的软件产品完成系统测试之后,作为最终产品存入库内,等待交付用户或现场安装。对库内工作产品也应该加以控制。18谢谢观赏2019-6-29配置库目录结构19谢谢观赏2019-6-29配置库结构说明(1)n一级目录介绍基线库经过评审,变更严格控制的工作产品。基线库由配置管理员建立并维护,其它任何人没有写权限。产品库产品库由配置管理员建立并维护,整
11、个项目结束后,配置管理员从基线库里把所有的文档挪到产品库中,其它任何人没有写权限。开发库开发库由配置管理员创建主要目录,项目组成员可以在目录下创建子目录以及文件。文件/目录的创建者本人拥有该目录/文件的完全控制权限,而项目其它成员缺省情况下是只读权限。如果其它成员需要修改文件/目录,必须先由文件的创建者赋予权限。20谢谢观赏2019-6-29配置库结构说明(2)n重点目录说明开发库目录计划项目计划相关文件(估计、进度)纳入基线前的文件,以及项目初始计划等需求纳入基线前的需求说明书等文件,需求跟踪矩阵设计纳入基线前的设计文件,包括概要设计、详细设计。项目组长有读写权限源代码项目开发过程中的代码测
12、试项目单元测试和集成测试所需要的工作产品和测试过程中产生的文件用户文档系统的安装、维护、使用手册等发布项目发布的工作产品。包括中间发布和最后的发布21谢谢观赏2019-6-29配置库结构说明(3)n重点目录说明管理目录配置管理放置项目配置项清单、配置管理光盘清单、配置状态报告等,SCM读写,其他人只读质量保证放置项目不符合报告、SQA核查表和SQA周报等,SQA读写,其他人只读项目跟踪和监控放置项目状态报告、项目周报、个人工作周报等评审和报告基线工作产品入基线时评审的报告,项目组长读写,其他人只读22谢谢观赏2019-6-29配置库使用说明(1)n放入正确的位置,正确标识因为CVS工具本身的问
13、题,如果你将文件放在错误的位置,或者命名不规范,SCM进行位置移动或者修改文件名称的时候,会造成历史版本的丢失,想要找回历史版本很不容易,给配置管理造成一定的工作量。所以请大家在进行文件入库时,注意放入正确的位置,并且正确命名,以免造成历史版本丢失。n及时提交、更新如果习惯将自己的工作产品放在个人目录下,请及时提交或者更新到服务器上,让相关人员能够看到最新的文件。养成良好的工作习惯,每次要对某个文件进行修改时,请首先UPDATE这个文件,从服务器上更新最新版本,以免在旧版本基础上修改,造成冲突,无法提交。23谢谢观赏2019-6-29配置库使用说明(2)n提交规范文件提交到服务器上时,有“En
14、ter the log message”,请大家一定要填写,主要填写几个方面的内容:修改的目的,修改的主要内容(段落或者函数名称),修改可能造成的影响。尤其是进入编码和测试阶段,要求每个文件的提交必须有log message。请大家注意!24谢谢观赏2019-6-29提交规范25谢谢观赏2019-6-29配置库使用说明(3)n版本发布每一次版本发布(包括中间的发布、最后的正式发布),把待发布工作产品(文档、源代码、安装包等)提交到“发布”目录下,下一级目录以版本号命名;在发布记录中记录详细情况;通过电子邮件给测试人员及其他相关人员,发送软件发布通知单;测试人员从CVS中提取相应的版本。n使用规
15、范不要把CVS作为练习的场所26谢谢观赏2019-6-29配置管理过程n岗位及职责 n项目建立 n配置管理计划n出入库n变更流程n配置状态报告 nSCM总结报告 n验证27谢谢观赏2019-6-29岗位与职责nSCCB(Software Configuration Control Board)nSCCB负责人:一般由室主任、项目所有者(Project Owner)或项目负责人担当,主要职责是审批配置管理计划、审批重大的变更;nSCCB成员:一般由室主任、项目负责人、SQA人员共同组成,主要职责是讨论、审批配置项或基线的变更;nSQA:主要职责为审核配置管理活动;n配置管理员:主要职责为制定配置
16、管理计划、创建和维护配置库、定期做配置状态报告。28谢谢观赏2019-6-29项目建立 n首先由项目负责人提出立项申请,并按照上述岗位及职责组织合适人选共同成立软件配置控制委员会(SCCB),指定配置管理员。n立项后项目负责人提交CVS服务申请,配置管理员按照项目配置库定义表的目录结构和权限设定,在CVS上创建配置库,并将项目基本信息入库。29谢谢观赏2019-6-2930谢谢观赏2019-6-29配置管理计划 n配置管理员根据项目负责人提交的项目开发计划,编写配置管理计划。n配置管理计划的目标是规划整个项目的配置管理活动,尤其是重要的比如发布、基线管理等问题。配置管理计划的主要内容包括人员及
17、职责、用于配置管理的软硬件资源、配置管理环境、配置项计划、基线计划和配置库备份计划等。配置管理计划直接决定了项目配置管理的方针,以及配置管理活动的准则。n配置管理计划的编写可参考配置管理计划编写指南、配置管理计划模板。n配置管理计划经SCCB讨论,SCCB负责人审批后,方可入库并实施。入库的路径为“开发库/项目管理/配置管理”。31谢谢观赏2019-6-29出入库 n在进行出入库操作时,要注意以下问题:n配置库中的内容不但要具有完整性和一致性,而且还要有助于协同开发。具体而言,开发库中的源代码应该以目录形式存在,而不是以压缩包的形式存在,这样开发人员不必每修改一个源代码文件就要更新整个代码包。
18、n开发库中除源码外,还应包括相应开发工具的配置文件,如JBuilder的项目文件(.jpx),从开发库中下载源代码后,能快速重建开发环境,直接生成可运行的系统。n测试人员从配置库中获得源码,对Build之后生成的可运行系统进行测试。不应该直接对开发人员提供的可运行系统进行测试。n部署人员从产品库中获取要部署的软件,进行部署。通常,开发人员不对运行环境进行操作。32谢谢观赏2019-6-29变更流程n当基线库配置项需要变更时,一定要实施变更流程:变更实施前必须填写配置项变更申请,经变更评审组评审通过后,才能从基线库中提出需变更的配置项并实施变更。变更实施完成后,必须通过评审才能重新进入基线库。n
19、变更流程的每一步,都需要在配置项变更控制报告中进行记录和落实,该文档的入库的路径为“开发库/项目管理/配置管理”。入库后要以邮件方式通知SCCB成员、项目组成员、测试人员。33谢谢观赏2019-6-2934谢谢观赏2019-6-29重大变更和一般变更n重大变更:配置项变更申请由项目组负责人填写,交变更评审组审核。变更评审组收到变更申请后,分析此变更的必要性和技术可行性,并权衡其他的变更策略和方法,所涉及的有关配置项,对系统的功能和性能的影响,变更所需的资源是否合理、充分以及对整个工程进展和经费的影响等。由此决策是否实施此项变更,并给出变更评审结论,同时由SCCB签署该变更申请。配置管理员根据签
20、署的变更申请,从基线库中提出需变更的配置项并实施变更。变更实施完成后,必须通过SCCB评审才能重新进入基线库。n一般变更:与重大变更的流程一致,区别在于配置项变更申请的审核和变更实施后的评审都由项目组负责人来做,并不由SCCB来审核,但是要以邮件的方式通知到SCCB。由于不经过SCCB审核,项目组负责人在进行一般变更时一定要谨慎,对于有足够把握的非重大变更才可按此方式操作。35谢谢观赏2019-6-29配置状态报告 n配置管理员需要定期做配置状态报告。配置状态报告是配置管理的一个组成部分,其任务是有效地记录和报告管理配置所需要的信息。目的是及时、准确地给出软件配置的当前状况,供相关人员了解,以
21、加强配置管理工作。n配置状态报告的编写可参考配置状态报告编写指南、配置状态报告模板。n配置状态报告的入库的路径为“开发库/项目管理/配置管理”。入库后要以邮件方式通知SCCB成员、项目组成员、测试人员。36谢谢观赏2019-6-29SCMSCM总结报告总结报告n项目结束后,配置管理员需要做SCM总结报告。主要包含三部分内容:配置项清单、软件发布记录、SCM活动及度量。其中软件发布记录是以版本号、发布说明、发布介质、发布日期为主要内容的二维表。SCM活动及度量是对配置状态报告的次数、软件发布的次数、配置库建立与维护工作量、配置项标识工作量、配置库用户权限管理工作量等内容进行的统计度量。n配置状态
22、报告的入库的路径为“开发库/项目管理/配置管理”。入库后要以邮件方式通知SCCB成员、项目组成员、测试人员。37谢谢观赏2019-6-29验证 nSCCB评审配置管理员提交的配置管理计划,并由SCCB负责人审批。n变更评审组评审配置项变更申请,并由SCCB负责人审批。变更实施后,也需要变更评审组进行确认,并由SCCB负责人审批。SQA验证变更是否已经通知到相关人员。nSQA审核配置管理员提交的配置管理计划、配置状态报告、SCM总结报告是否已入库,检查配置清单的内容和配置库中的配置项是否一致。nSQA审核规定流程中产生的各个文档,如项目配置库定义表、配置项变更控制报告等是否已入库。38谢谢观赏2
23、019-6-29配置管理工具的使用nWincvsnJBuildernEclipse39谢谢观赏2019-6-29wincvs的使用点击系统_配置40谢谢观赏2019-6-29wincvs的使用点击系统_登陆41谢谢观赏2019-6-29导入模块42谢谢观赏2019-6-29导出模块43谢谢观赏2019-6-29导出模块44谢谢观赏2019-6-29导出模块45谢谢观赏2019-6-29更新文件或者模块46谢谢观赏2019-6-29更新文件或者模块47谢谢观赏2019-6-29更新文件或者模块与当前版本合并。48谢谢观赏2019-6-29提交修改49谢谢观赏2019-6-29增加文件1.对于目录
24、不存在,先增加目录。点击“修改”“添加选择的文件”,将目录加入。2.目录存在,选中要添加的文件。三种方式:添加,二进制添加,unicode添加。此时文件还没真正入库。3.提交修改。4.对于新增的目录(目录下的子目录也是新增的),由于模块的相对性,采用导入模块的方法更快捷。50谢谢观赏2019-6-29创建或删除标记51谢谢观赏2019-6-29创建分支52谢谢观赏2019-6-29文件版本历史n右键选择版本历史53谢谢观赏2019-6-29wincvs的使用n文件删除 选择文件,单击“修改”下的“删除选择的文件”,将本地的文件删除,并标记为删除状态。然后选择“修改”下的“移除”,将服务器上的文
25、件删除。本地显示删除状态。单击添加会恢复回来。54谢谢观赏2019-6-29Eclipse CVS的使用1nCheckout55谢谢观赏2019-6-29Eclipse CVS的使用256谢谢观赏2019-6-29Eclipse CVS的使用3nCommitnUpdatenBranchnMergen57谢谢观赏2019-6-29Eclipse CVS的使用4nCheckin58谢谢观赏2019-6-29Eclipse CVS的使用559谢谢观赏2019-6-29在Jbuilder中使用cvs导入60谢谢观赏2019-6-2961谢谢观赏2019-6-2962谢谢观赏2019-6-29新建项目6
26、3谢谢观赏2019-6-2964谢谢观赏2019-6-2965谢谢观赏2019-6-2966谢谢观赏2019-6-2967谢谢观赏2019-6-2968谢谢观赏2019-6-2969谢谢观赏2019-6-2970谢谢观赏2019-6-29什么是基线(Baseline)n定义:在配置管理系统中,基线就是一个CI或一组CIs在其生命周期的不同时间点上通过正式评审而进入正式受控的一种状态,而这个过程被称为“基线化”。基线是被评审过的一个或多个软件配置项。n每一个基线都是其下一步开发的出发点和参考点。基线确定了元素(配置项)的一个版本,且只确定一个版本。一般情况下,基线一般在指定的里程碑处创建,并与项目中的里程碑保持同步。Return71谢谢观赏2019-6-2972谢谢观赏2019-6-29