当前位置:刘伯温高手心水论坛1 > 软件配置 >

软件配置管理参考(图)

  软件配置管理(SoftwareConfigurationManagement,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。软件配置管理(Software Configuration Management,SCM)作为CMM2级的一个关键域(KeyPracticeArea,KPA),在整个软件的开发活动中占有很重要的位置。正如Pressman所说的:“软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计来(1)标识变化,(2)控制变化,(3)保证变化被适当的发现,以及(4)向其他可能有兴趣的人员报告变化。”所以,我们必须为软件配置管理活动设计一个能够融合于现有的软件开发流程的管理过程,甚至直接以这个软件配置管理过程为框架,来再造组织的软件开发流程。

  而软件配置管理概念的提出则在20世纪60年代末70年代初。当时加利福利亚大学圣巴巴拉分校的LeonPresser教授在承担美国海军的航空发动机研制合同期间,撰写了一篇名为“ChangeandConfigurationControl”的论文,提出控制变更和配置的概念,这篇论文同时也是他在管理该项目(这个过程进行过近一千四百万次修改)的一个经验总结。

  随着软件工程的发展,软件配置管理越来越成熟,从最初的仅仅实现版本控制,发展到现在的提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,已经形成了一个完整的理论体系。同时在软件配置管理的工具方面,也出现了大批的产品,如:最著名的ClearCase;开源产品CVS;入门级工具MicrosoftVSS;新秀HanskyFirefly。

  在国外已经有30多年历史的软件配置管理,但在国内的发展却是在21世纪这几年的事。但是通过专家们的介绍,我们感受到,国内的软件配置管理已经取得了迅速发展,并得到了软件公司的普遍认可。

  软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。它的基本目标包括:

  技术部门经理和具体项目主管应该使用和遵循XSSC的OSSP中所描述的软件配置管理的工作过程。

  施行软件配置管理的职责应被明确分配。相关人员得到软件配置管理方面的培训。

  技术部门经理和具体项目主管应该明确他们在相关项目中所担负的软件配置管理方面的责任。

  软件配置管理工作应该享有足够的资金支持,这需要在客户,技术部门经理和具体项目主管之间协商。

  软件配置管理应该实施于如下产品:对外交付的软件产品,以及那些被选定的在项目中使用的支持类工具等。

  对于任何一个管理流程来说,保证该流程正常运转的前提条件就是要有明确的角色、职责和权限的定义。特别是在引入了软件配置管理的工具之后,比较理想的状态就是:组织内的所有人员按照不同的角色的要求、根据系统赋予的权限来执行相应的动作。因此,在本文所介绍的这个软件配置管理过程中主要涉及下列的角色和分工:

  项目经理是整个软件研发活动的负责人,他根据软件配置控制委员会的建议批准配置管理的各项活动并控制它们的进程。其具体职责为以下几项:

  负责指导和控制配置管理的各项具体活动的进行,为项目经理的决策提供建议。其具体职责为以下几项:

  根据配置管理计划执行各项管理任务,定期向CCB提交报告,告,并列席CCB的例会。其具体职责为以下几项:

  系统集成员负责生成和管理项目的内部和外部发布版本,其具体职责为以下几项:

  开发人员的职责就是根据组织内确定的软件配置管理计划和相关规定,按照软件配置管理工具的使用模型来完成开发任务。

  一个软件研发项目一般可以划分为三个阶段:计划阶段、开发阶段和维护阶段。然而从软件配置管理的角度来看,后两个阶段所涉及的活动是一致,所以就把它们合二为一,成为“项目开发和维护”阶段。

  一个项目设立之初PM首先需要制定整个项目的计划,它是项目研发工作的基础。在有了总体研发计划之后,软件配置管理的活动就可以展开了,因为如果不在项目开始之初制定软件配置管理计划,那么软件配置管理的许多关键活动就无法及时有效的进行,而它的直接后果就是造成了项目开发状况的混乱并注定软件配置管理活动成为一种“救火”的行为。所以及时制定一份软件配置管理计划在一定程度上是项目成功的重要保证。

  这一阶段时项目研发的主要阶段。在这一阶段中,软件配置管理活动主要分为三个层面:(1)主要由CMO完成的管理和维护工作;(2)由SIO和DEV具体执行软件配置管理策略;(3)变更流程。这三个层面是彼此之间既独立又互相联系的有机的整体。

  在这个软件配置管理过程中,它的核心流程应该是这样的:(1)CCB设定研发活动的初始基线)CMO根据软件配置管理规划设立配置库和工作空间,为执行软件配置管理就阿做好准备;(3)开发人员按照统一的软件配置管理策略,根据获得的授权的资源进行项目的研发工作;(4)SIO按照项目的进度集成组内开发人员的工作成果,并构建系统,推进版本的演进;(5)CCB根据项目的进展情况,审核各种变更请求,并适时的划定新的基线,保证开发和维护工作有序的进行。

  这个流程就是如此循环往复,直到项目的结束。当然,在上述的核心过程之外,还涉及其他一些相关的活动和操作流程,下面按不同的角色分工予以列出:

  CMO定期向项目经理和CCB提交审计报告,并在CCB例会中报告项目在软件过程中可能存在的问题和改进方案;

  CCB定期举行例会,根据成员所掌握的情况、CMO的报告和开发人员的请求,对配置管理计划作出修改,并向项目经理负责。

  Pressman对于SCI给出了一个比较简单的定义:“软件过程的输出信息可以分为三个主要类别:(1)计算机程序(源代码和可执行程序),(2)描述计算机程序的文档(针对技术开发者和用户),以及(3)数据(包含在程序内部或外部)。这些项包含了所有在软件过程中产生的信息,总称为软件配置项。”

  由此可见,配置项的识别是配置管理活动的基础,也是制定配置管理计划的重要内容。

  软件配置项分类软件的开发过程是一个不断变化着的过程,为了在不严重阻碍合理变化的情况下来控制变化,软件配置管理引入了“基线(center)”这一概念。IEEE对基线的定义是这样的:“已经正式通过复审核批准的某规约或产品,它因此可作为进一步开发的基础,并且只能通过正式的变化控制过程改变。”

  所以,根据这个定义,我们在软件的开发流程中把所有需加以控制的配置项分为基线配置项和非基线配置项两类,例如:基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。

  所有配置项都都应按照相关规定统一编号,按照相应的模板生成,并在文档中的规定章节(部分)记录对象的标识信息。在引入软件配置管理工具进行管理后,这些配置项都应以一定的目录结构保存在配置库中。

  所有配置项的操作权限应由CMO严格管理,基本原则是:基线配置项向软件开发人员开放读取得权限;非基线配置项向PM、CCB及相关人员开放。

  在引入了软件配置管理工具之后,所有开发人员都会被要求把工作成果存放到由软件配置管理工具所管理的配置库中去,或是直接工作在软件配置管理工具提供的环境之下。所以为了让每个开发人员和各个开发团队能更好的分工合作,同时又互不干扰,对工作空间的管理和维护也成为了软件配置管理的一个重要的活动。

  一般来说,比较理想的情况是把整个配置库视为一个统一的工作空间,然后再根据需要把它划分为个人(私有)、团队(集成)和全组(公共)这三类工作空间(分支),从而更好的支持将来可能出现的并行开发的需求。

  每个开发人员按照任务的要求,在不同的开发阶段,工作在不同的工作空间上,例如:对于私有开发空间而言,开发人员根据任务分工获得对相应配置项的操作许可之后,他即在自己的私有开发分支上工作,他的所有工作成果体现为在该配置项的私有分支上的版本的推进,除该开发人员外,其他人员均无权操作该私有空间中的元素;而集成分支对应的是开发团队的公共空间,该开发团队拥有对该集成分支的读写权限,而其他成员只有只读权限,它的管理工作由SIO负责;至于公共工作空间,则是用于统一存放各个开发团队的阶段性工作成果,它提供全组统一的标准版本,并作为整个组织的KnowledgeBase。

  当然,由于选用的软件配置管理工具的不同,在对于工作空间的配置和维护的实现上有比较大的差异,但对于CMO来说,这些工作是他的重要职责,他必须根据各开发阶段的实际情况来配置工作空间并定制相应的版本选取规则,来保证开发活动的正常运作。在变更发生时,应及时做好基线.版本控制

  版本控制是软件配置管理的核心功能。所有置于配置库中的元素都应自动予以版本的标识,并保证版本命名的唯一性。版本在生成过程中,自动依照设定的使用模型自动分支、演进。除了系统自动记录的版本信息以外,为了配合软件开发流程的各个阶段,我们还需要定义、收集一些元数据(Metadata)来记录版本的辅助信息和规范开发流程,并为今后对软件过程的度量做好准备。当然如果选用的工具支持的话,这些辅助数据将能直接统计出过程数据,从而方便我们软件过程改进(SoftwareProcessImprovement,SPI)活动的进行。

  对于配置库中的各个基线控制项,应该根据其基线的位置和状态来设置相应的访问权限。一般来说,对于基线版本之前的各个版本都应处于被锁定的状态,如需要对它们进行变更,则应按照变更控制的流程来进行操作。

  在对SCI的描述中,我们引入了基线的概念。从IEEE对于基线的定义中我们可以发现,基线是和变更控制紧密相连的。也就是说在对各个SCI做出了识别,并且利用工具对它们进行了版本管理之后,如何保证它们在复杂多变得开发过程中真正的处于受控的状态,并在任何情况下都能迅速的恢复到任一历史状态就成为了软件配置管理的另一重要任务。因此,变更控制就是通过结合人的规程和自动化工具,以提供一个变化控制的机制。

  在本文的前面的部分中,已经把SCI分为基线配置项和非基线配置项两大类,所以这里所涉及的变更控制的对象主要指配置库中的各基线配置项。

  在这样的流程中,CMO通过软件配置管理工具来进行访问控制和同步控制,而这两种控制则是建立在前文所描述的版本控制和分支策略的基础上的。

  配置状态报告就是根据配置项操作数据库中的记录来向管理者报告软件开发活动的进展情况。这样的报告应该是定期进行,并尽量通过CASE工具自动生成,用数据库中的客观数据来真实的反映各配置项的情况。

  配置状态报告应根据报告应着重反映当前基线配置项的状态,以作为对开发进度报告的参照。同时也能从中根据开发人员对配置项的操作记录来对开发团队的工作关系作一定的分析。

  配置审计的主要作用是作为变更控制的补充手段,来确保某一变更需求已被切实实现。在某些情况下,它被作为正式的技术复审的一部分,但当软件配置管理是一个正式的活动时,该活动由SQA人员单独执行。

  总之,软件配置管理的对象是软件研发活动中的全部开发资产。所有这一切都应作为配置项纳入管理计划统一进行管理,从而能够保证及时的对所有软件开发资源进行维护和集成。因此,软件配置管理的主要任务也就归结为以下几条:(1)制定项目的配置计划;(2)对配置项进行标识;(3)对配置项进行版本控制;(4)对配置项进行变更控制;(5)定期进行配置审计;(6)向相关人员报告配置的状态。

  在此,我想特别指出的是:由于软件配置管理覆盖了整个软件的开发过程,因此它是改进我们的软件过程、提高过程能力成熟度的理想的切入点。希望本文所描述的这个软件配置管理的角色分配和工作流程能在实践中不断地得到完善,从而使我们的软件开发活动能够更加有序、高效的进行!

  国内很多软件企业已经逐渐认识到配置管理的重要性,都希望通过实施配置管理来提高软件开发管理的水平,增强企业自身的竞争力,应对市场的压力。

  针对市场的这些需求,Hansky公司在中国市场推出了业界技术领先的软件配置管理解决方案,产品包括配置管理工具Firefly和变更管理工具Butterfly。Firefly是Hansky公司推出的软件配置管理系统,它可以轻松管理、维护整个企业的软件、代码和文档。Firefly是一个高性能、运行速度极快的软件配置管理系统,支持不同的开发、运行平台,因此它能在整个企业中的不同团队、不同项目中都得以广泛的应用。Firefly能够对团队开发提供有力的支持,开发团队一旦拥有了Firefly,就可以非常准确的定义:

  Butterfly是Hansky公司提供的新一代的软件变更请求管理软件。它以软件产品为中心,有效的协调软件项目中各职位人员的工作,能够使软件项目在较短时间内高质量完成。

  规划开发过程,完善源代码编写,提高软件重用率,最大限度保护企业知识财富;

  提供丰富的报表功能,以直观图形统计开发人员的工作进度和编码质量,客观评价员工表现;

  优化业务流程,科学的工作流系统使用户工作起来有条不紊,大大提高工作效率,同时用户可以根据实际情况简单、快捷地定制自己的业务流程;

  提供友好的人机界面,支持工作分配的电子邮件自动通知,方便各种类型的工作人员使用,增加沟通和交流;

  Hansky公司的配置管理解决方案给公司带来的益处将是显而易见的:管理者能够轻松控制产品的进度、质量;开发人员将有更多的时间进行创造性的工作;测试人员将依照一个标准的流程高效完成日常工作;产品发布人员能够确保交到用户手中的产品的质量。

  功能简洁、实用,易于学习和掌握,可以有效缩短配置管理系统投入实际使用的周期;

  良好的扩展性和灵活的License管理方式,以及组件式的解决方案,使得我们的配置管理系统既支持小组模式的用户,也能够支持大规模团队的协同开发工作,并且能够方便地进行扩展,用户可以根据实际需要,灵活的配置,大大降低了降低初期投入的资金;

  具有前瞻性,保护用户的投资。Hansky公司的软件配置管理产品采用最新的技术(如纯TCP/IP技术、J2EE技术、开发环境等)和全新的应用模式(如三层结构、B/S应用结构等),确保系统在较长的时间内不会落后于同类产品或不需要技术上的更新;

  利用Hansky的Firefly系统对开发资源进行版本管理和跟踪,可以建立公司级的代码知识库,保存开发过程中的所有历史版本,这样大大提高了代码的复用率,还便于同时维护多个版本和进行新版本的开发,最大限度地共享代码。利用Butterfly组建开发团体之间的问题跟踪及消息通讯机制,通过与电子邮件系统的结合大大增强了开发团体之间的沟通能力,通过丰富的报表功能可对发现的问题进行整理、以报表方式分类报出,作为开发的指导。通过使用Hansky的配置管理套件可以提高开发效率和产品质量,避免了代码覆盖、沟通不够、开发无序的混乱局面,大大缩短了产品的开发周期。

  使用Hansky的软件配置管理解决方案后,用户可以在Hansky技术专家的帮助下建立规范的配置管理流程,所有的软件产品将得到统一有效的管理。借助Firefly和Butterfly,工程人员可以通过访问服务器直接获取所需的最新版本,查找公司的知识库,提交变更请求,收集用户的反馈意见。开发人员无需到现场即可再现用户环境,集中解决问题,发布补丁。这样可以同时响应多个地点的项目,防止开发人员分配到各个项目点、力量分散、人员不够的弊端,同时节约大量的旅差费用。

  使用Hansky的配置管理解决方案,可以有效地改进用户的软件开发模式和过程,提高企业软件能力成熟度的级别。

  有效的管理工作空间,各个成员的具有独立的工作空间,并能记录其变更集和整个生命周期中的完整变更历史;

  支持异地开发,Firefly通过自动或手动同步不同开发地点的的存储库,为地理分布的开发团队提供很好的支持;

  完善的发布管理,可以方便的回溯任意版本,为不同的用户定制应用程序的版本,促进系统的快速部署,提供发布版本内容的审计能力;

  内置Defect、RFE、Task(问题、建议、任务)工作流,符合正规软件公司的软件开发流程。科学的工作流系统可以使公司人员工作起来得心应手,有条不紊,从而大大提高工作效率。

  丰富的图表、报告功能,可以自动生成变更统计报告、配置审计报告,支持过程管理与进度分析,能够帮助管理者进行决策。

  传统的开发管理中,工作量一直是难以估量的指标。靠开发人员自己把握,随意性过大;靠管理人员把握,主观性又太强。采用Firefly和Butterfly管理后,系统能够客观的记录员工的工作内容和质量,可以作为工作量的衡量指标。

  Butterfly和Firefly集成后,可以有效地跟踪和处理软件的变更,完整地记录测试人员的工作内容,测试有了实实在在的工作,测试人员根据修改描述细节对每一天的工作做具体的测试。对测试人员也具有相应的可考核性,这样环环相扣,有效地增强了对测试的管理。

  使用Firefly保存公司的所有知识财富、利用Butterfly的FAQ、检索以及Email自动通知功能,有效地加强了项目成员之间的沟通,做到有问题及时发现、及时修改、及时通知,却又不会额外增加很多的工作量,大大提高了开发团队的协同工作效率。

  从整个企业的发展战略来说,如何在技术日新月异、人员流动频繁的情况下,本公司的知识库及经验库,把个人的知识及经验转变为公司的知识和经验,这对于提高工作效率、缩短产品周期以及提高公司的竞争力都具有至关重要的作用。采用科学的配置管理思想,辅之以先进的配置管理工具,可以帮助用户在内部建立完善的知识管理体系。

  软件代码是软件开发人员脑力劳动的结晶,也是软件公司的宝贵财富,长期开发过程中形成的各种代码对象就像一个个零件一样,是快速生成系统的组成部分。然而长期以来的一个事实是:一旦某个开发人员离开工作岗位,其原来所编写的代码便基本成为垃圾,无人过问;或者由于文档不全,无从考究。究其原因,就是没有专门对每个开发人员的代码、组件和文档进行科学的管理,将其应用范围扩大到公司一级,进行规范化,加以说明和普及。Firefly为代码管理提供了一个平台和仓库,有利于建立公司级的代码对象库,增进代码复用,提高开发重用率和软件质量。

  通过Firefly和Butterfly,可自动生成完整的开发日志及问题集合,用文字记录开发的整个过程,不会因某人的流动而消失,有利于公司积累业务经验,无论对软件维护或版本升级,都具有重要的指导作用。此外,利用Butterfly内建的FAQ模块,可以建立检索方便的经验库,传播和共享集体的智慧。

  由于配置管理系统集中存储了企业的重要知识财富,因此对其安全性和可靠性有极高的要求。Firefly可以对所有存储的文件进行冗余校验,使用MD5作为文件的校验和,并提供备份和恢复工具,确保了数据的可靠性。同时Firefly支持用户身份验证和访问控制,支持用户组,便于权限设置。访问控制可以针对分支、目录,甚至单个文件设置,采用类似WindowsNTFS的权限管理方式,既灵活又安全。这些措施使得企业的知识财富得到了安全可靠的存储和保护。

http://juliekusyk.com/ruanjianpeizhi/481.html
点击次数:??更新时间2019-07-07??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】