1、软件配置管理与GJB5000A三库管理 (2016-07-28 08:57:39)转载分类:GJB5000A随着企业业务发展,产品线也变得越来越丰富。新产品的研发,可能由于周期短,有时直接快速组建一个新的项目组,大家热火朝天,技术攻关很快就把产品研发出来了。很多的设计点子,产品架构,技术攻关等通过高效的线下沟通,反倒推动了产品更快的问世。但常常这些讨论过程所产生的“智慧”,也很容易被项目组所遗忘;产品完成后,项目组也就随之解散。未来,当企业需要对已有的产品线进行维护升级,从而更好地赢得市场的时候,往往会因为无处寻找这些遗忘的智慧而头疼不已。针对这类的管理烦恼,CMM/CMMI提供了专门的软件配
2、置管理办法;CMM/CMMI将软件配置管理的活动分为6个方面:SCM过程管理、软件配置标识、软件配置控制、软件配置状态统计、软件配置审计、软件发布管理和交付。软件配置管理定义了如下目标:Goals 1:Software configuration management activities are planned.(定制了软件配置管理活动的计划。)Goals 2:Selected software work products are identified, controlled, and available.(选定的软件工作产品是被标识的、受控的和可利用的。)Goals 3:Changes t
3、o identified software work products are controlled. (选定的软件工作产品是被标识的、受控的和可利用的。)Goals 4: Affected groups and individuals are informed of the status and content of software baselines. (软件基线的状态和内容通知受影响的小组和个人。)在CMM和CMMI中,将配置管理的目的定义为“建立和维护产品的完整性”,是其他配置管理目标的基础。三库管理:三库的概念源自CMM/CMMI,即开发库、受控库和产品库。配置项在三库之间迁移,一
4、级比一级的控制更严格。从CMM的角度来看,对开发库的管理并没有要求,但是对受控库和产品库是需要进行管理的。开发库:存放开发过程中需要保留的各种信息,供开发人员专用。受控库:在软件开发的某个阶段工作结束时,将工作产品存入或将有关的信息存入。产品库:在开发的软件产品完成系统测试之后,作为最终产品存入库内,等待交付用户或现场安装。按照三库的思路,软件开发组日常的工作在开发库中开展,当工作达到里程碑时,再迁移到受控库,在受控库中经过更严格的测试后,再上升到产品库,最后发布。实现三库的指导思想应该是逻辑上独立,物理上在一起(三库物理隔离带来的最大问题是配置项失去了历史可追溯性),通过权限与流程的控制来实
5、现配置项在不同库之间的流转,以及相应角色的人员对相应库的访问。不管是几个库,最终都是要提高管理效率和保存工作成果和工作记录。目前市面上提供了不少的版本控制工具,对开发库,以及产品库都能有不错的管理;比如Subversion这类的版本控制工具,对于开发人员的一些代码源文件的check out, check in操作都提供了很便利的管理和操作;同时通过一些目录分支管理,对不同的产品线/版本也提供了灵活便利的管理办法。三库中,唯独对于受控库的管理,一直没有很好的工具来进行管理。受控,顾名思义需要对整个产品的过程进行控制,包括 设计的过程受控,从而将项目组在产品设计的过程迸发而来的智慧进行沉淀; 变更
6、过程受控,如变更的发起,变更通知受影响的小组和个人,包括实际的开发小组以及测试人员等; 开发组的开发任务过程受控,包括任务的工作内容,以及所处的进展状态受控、可见;开发任务即包括了产品新功能的实现,也包含了对已有产品线的维护; 测试任务的测试过程受控,包括制定测试计划,测试周期所对应的测试进展和测试结果受控、可见;不少企业在信息化的管理中,走在了前列。针对受控库中的各个管理域,纷纷使用了各种工具来进行管理;有专门针对设计阶段过程管理的工具,也有专门针对变更过程,开发任务过程,以及测试任务过程的管理工具。但是当企业采购这些不同供应商提供的管理工具,在实际落地到企业全局管理的时候,纷纷遇到了一个相
7、同的问题。不同供应商提供的管理工具,虽然能对不同的阶段过程提供管理,但是这些工具间无法进行通讯;从而使得企业在产品线生命周期中的各个分阶段过程管理中,局部阶段管理达到最优,但是局部最优不等价于全局最优。在实际产品线的管理中,表现出来的烦恼可能就是设计的内容无法通知到开发,测试的测试大纲和设计完全脱离,开发任务的工作内容和过程较为随意,从而导致虽然经过受控库的各个阶段过程受控管理,但最后输出给客户的产品仍然不是一个“正确的产品”。解决这个问题的关键是,一个能完全覆盖ALM(应用软件生命周期管理)各个阶段的软件过程控制的管理系统,同时不同阶段的过程控制对应的工作流程及客户操作应该是高度自定义的。从
8、而让管理系统主动适应企业,最大化的减少企业将管理方案落地到实际生产时的实施成本。TechExcel的ALM DevSuite解决方案,很好的解决了众多企业面临的这个问题。DevSuite系列包含了多个能独立工作的产品, KnowledgeWise产品提供企业级的知识库管理,将企业在发展中沉淀累积的知识、规章制度、市场反馈建议等很好的进行管理; DevSpec产品提供专业的需求分析管理,实现需求过程受控;帮助项目组将创造产品过程中所迸发的“智慧”很好地进行管理; DevPlan产品提供项目规划管理,从而帮助企业在项目里程碑等重大事件的管理上,可控、可见; DevTrack产品在项目执行阶段提供强
9、大、便捷的任务过程管理;帮助项目组在实际的开发任务所处的阶段、过程管理上,可控、可见; DevTest产品提供专业的测试用例和测试计划管理;帮助项目组在测试任务的过程管理上,可控、可见; 在DevSuite统一平台上,这些不同的组件都是可以无缝衔接集成的;这就解决了之前我们提到的各个分阶段间的信息无法通讯的问题。同时KnowledgeWise作为企业级知识库的管理,也保证了各个组件无缝集成后的信息通讯的一致性和完整性,极大程度地规避了“错误产品”的风险。通过下面的这个圆图,我们能够更好的理解TechExcel ALM DevSuite解决方案的精髓。在圆图中,我们发现DevSuite系统,不但提供了ALM(应用软件生命周期)各个阶段的过程控制管理,而且还提供了VersionLink这个集成组件,实现和各种版本控制工具,如Perforce, Subversion, ClearCase, AccuRev等的数据集成、交互。从而实现在一个统一的解决方案平台下,实现开发库、受控库、产品库三库间的统一过程控制,和数据交互管理。