配置管理(Software
Configuration Management,SCM)
软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
配置管理的概念
软件配置管理(Software Configuration Management),又称软件形态管理、或软件建构管理,简称软件形管(SCM)。界定软件的组成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合。
软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理无论是对于软件企业管理人员还是研发人员都有着重要的意义。软件配置管理可以提炼为三个方面的内容:
1、VersionControl-版本控制
2、ChangeControl-变更控制
3、ProcessSupport-过程支持
关键活动包括:配置项、工作空间管理、版本控制、变更控制、状态报告、配置审计等。
配置管理的任务
配置管理的任务如下图所示:
(1)定义配置项:软件配置项(SCI)即软件配置管理的对象。软件开发过程中产生的所有信息构成软件配置,它们是:代码(源代码、目标代码)以及数据结构(内部数据、外部数据)、文档(技术文档、管理文档、需方文档)、报告,其中每一项称为配置项,软件配置项是配置管理的基本单位。同时,开发过程中使用的环境,如操作系统、各种支撑软件、配置管理工具,也可纳入软件配置管理范围。
(2)标识配置项:正确标识软件配置项对整个管理活动非常重要,对软件开发过程中的所有软件项目赋予唯一的标识符,便于对其进行状态控制和管理。
配置标识包括:文档标识、代码标识、运行文件标识。
典型的命名规则是RUP法。
(3)定义基线:基线标志着软件开发过程一个阶段的结束,任一软件配置项,一旦形成文档并审议通过,即成为基线。基本的作用在于把各阶段的工作划分得更明确,使本来连续的工作在这些点上断开,以便检验和肯定阶段成果。
(4)定义软件配置库:软件配置库内容因涵盖开发的全过程,应包括如表所示的软件项:
基线技术将项目实施配置管理的存储库分为3类:开发库、受控库、产品库。
①开发库:存放在开发过程中按照要求生成的各种技术文档、源代码、可执行代码和使用的数据,为开发人员的活动提供支持。
② 受控库:存放基线产品即项目转阶段经评审通过的和已经批准的软件工作产品和软件产品。
③产品库:存放项目正式交付用户的最终产品和最终运行环境。
(5)控制配置:配置控制的定义是为了明确配置管理在具体实现时所执行的配置规程,主要包括入库控制和变更控制。
(6)配置审计:包含了物理和功能上的审计。包括以下活动:① 验证每个软件配置项的正确性、一致性、完备性、有效性、可追踪性;②
在软件生存期内应定期配置审计工作;③定期进行软件备份,应保证备份介质的安全性和可用性。
(7)配置状态报告:提供软件开发过程的历史记录,内容包括配置管理项的现行状态及何时因何故发生了何事(入库、更动)。配置管理人员应定期或在需要时提交配置状态报告。配置状态报告包含了整个软件生命周期中对基线所有变更的可追踪性。
配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准“AFSCM375-1,CM
During the Development & Acquisition Phases”。
而软件配置管理概念的提出则在20世纪60年代末70年代初。当时加利福利亚大学圣巴巴拉分校的Leon
Presser教授在承担美国海军的航空发动机研制合同期间,撰写了一篇名为“Change and Configuration
Control”的论文,提出控制变更和配置的概念,这篇论文同时也是他在管理该项目(这个过程进行过近一千四百万次修改)的一个经验总结。
Leon Presser在1975年成立了一家名为SoftTool的公司,开发了配置管理工具:Change
and Configuration Control(CCC),这是最早的配置管理工具之一。
随着软件工程的发展,软件配置管理越来越成熟,从最初的仅仅实现版本控制,发展到21世纪初提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,已经形成了一个完整的理论体系。同时在软件配置管理的工具方面,也出现了大批的产品,如:最著名的ClearCase;有将近二十年历史的Perforce;开源产品CVS;入门级工具Microsoft
VSS;新秀Hansky Firefly。
在国外已经有30多年历史的软件配置管理,但在国内的发展却是在21世纪这几年的事。但是通过专家们的介绍,可以感受到,国内的软件配置管理已经取得了迅速发展,并得到了软件公司的普遍认可。
软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。它的基本目标包括:
目标 1: 软件配置管理的各项工作是有计划进行的。
目标 2: 被选择的项目产品得到识别,控制并且可以被相关人员获取。
目标 3: 已识别出的项目产品的更改得到控制。
目标 4: 使相关组别和个人及时了解软件基准的状态和内容。
为了达到上述目标,
如下的方针应该得到贯彻执行:
技术部门经理和具体项目主管应该使用和遵循XSSC的OSSP中所描述的软件配置管理的工作过程。施行软件配置管理的职责应被明确分配。相关人员得到软件配置管理方面的培训。技术部门经理和具体项目主管应该明确他们在相关项目中所担负的软件配置管理方面的责任。软件配置管理工作应该享有足够的资金支持,这需要在客户,技术部门经理和具体项目主管之间协商。软件配置管理应该实施于如下产品:对外交付的软件产品,以及那些被选定的在项目中使用的支持类工具等。软件配置的整体性在整个项目生命周期中得到控制。软件质量保证人员应该定期审核各类软件基准以及软件配置管理工作。使软件基准的状态和内容能够及时通知给相关组别和个人。
软件配置管理工具的功能
(1)配置支持。配置是一组有共同目的的中间软件产品,其中每一个中间软件产品称为一个配置项。软件配置管理支持用户建立配置项之间的各种关系,并对这些关系加以维护,维护这些关系有助于完成某些特定任务(例如Build)和标识某一变化对整个系统开发的影响。
(2)版本控制。版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个版本、版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助,版本控制也是支持并行开发的基石出。
(3)变更控制。变更控制是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等)。这些信息有助于追踪出现的各种问题。
(4)构造支持。软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程,软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统,和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。
(5)过程支持。过程详细描述了各种人员在整个软件生存周期中如何使用整个系统,过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,现在软件配置管理也开始提供这部分功能。目前的软件配置管理工具对过程的支持还很不够,而且支持方式差别也很大,许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都按照这个模型规定进行。
(6)团队支持。团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。
工作区管理是指为每个开发人员提供独立的工作区,开发人员可以互不干扰地进行工作,也可以选择某个时机向其他开发人员提供自己的最新修改结果或接受其他开发人员的修改结果。
并行管理是指多个开发人员同时进行的修改可以进行合并,并行开发管理可以尽可能地自动解决合并中可能出现的冲突。
远程开发管理是并行开发管理的特例,是指在广域网上并行开发的管理,许多适合于局域网的方法可能不适合广域网。
团队支持的基础是版本控制和版本合并。
(7)报告/查询。软件配置管理可以向用户提供配置库的各种查询信息,主要包括依赖关系报告、变化影响报告、Build报告、版本差异报告、历史报告、访问控制报告、冲突检测报告。实际上许多软件配置管理工具的此项功能是分散在各种相应的功能中的。
(8)审计控制。软件配置管理通过审计控制来验证软件配置管理过程,以保证配置库中所有配置项的完整性。简单的审计控制是记录软件配置管理工具执行的所有命令,复杂的审计控制还包括记录每个配置项的状态变化。
(9)其他功能。除了以上的主要功能外,软件配置管理还可以提供权限控制、人员管理和配置库管理等管理,这些功能主要是为软件配置管理实现以上功能提供保障。
软件配置管理工具的选择
目前配置管理工具可以分为3个级别:
(1)版本控制工具,是入门级的工具,例如:CVS、VSS。
(2)项目级配置管理工具,适合管理中小型的项目,在版本管理的基础上增加变更控制、状态统计的功能,例如:ClearCase、PVCS。
(3)企业级配置管理工具,在实现传统意义的配置管理的基础上又具有比较强的过程管理功能,例如:ALLFUSIONHarvest。在建立自己的配置管理实施方案时,一定要根据自己的管理需要,选择适合自己的工具,从而搭建一个最适合自己的管理平台。如果我们的管理目标是建立组织级配置管理架构,并且要实现配置管理的所有功能,从而为以后的过程管理行为提供基础数据的话,那么我们建议选择专用的配置管理工具。
1.支持的操作系统
这几款工具都支持各种主流的操作系统,如Windows、LINUX、UNIX,都支持分布式开发。CVS、Harvest、VSS、ClearCase的Server都可以安装在Windows、LINUX、UNIX、AIX等操作系统上。
2.版本管理功能
CVS与Harvest、VSS、ClearCase都可以进行版本管理,都支持并行开发。在与开发工具的集成方面,CVS可以与各种Java开发工具集成,而Harvest支持SCC接口,可与VB、VC等集成,此外支持与IBM的WSAD集成。
3.变更控制功能
Harvest、ClearCase支持并提供了邮件通知、表单(类似任务说明书或变更通知)等手段来加强团队的信息沟通,而且提供审批、晋升等手段来方便管理项目。Harvest是基于过程的变更,可有效的进行变更控制,它在进行配置管理时更注重软件开发的过程与生命周期的概念;ClearCase相比HarVest则更强调赋予发人员更大的发挥空间,通过集成ClearQuest可以有效地进行变更的跟踪与监控。CVS是基于文件的变更处理,不能跟踪、监控项目的变更,但是结合开放源码的BugTrackI具也能进行变更管理。
4.状态统计功能
CVS、Harvest、ClearCase均提供了强大的统计信息功能。
5.数据的安全性
Harvest提供了全面的权限控制,所有的软件资产存放在Oracle数据库中,利用Oracle的特性来保障数据的完整性与安全,并可以定时备份,在权限控制和安全性方面是这三个工具中是最好的;而CVS、ClearCase主要依赖操作系统的权限设置;但ClearCase采用自己的文件系统,在安全性方面也有严格的控制,而CVS的安全性与备份功能需要通过设置操作系统权限来实现。在配置管理的基本功能的实现上,CVS提供了版本管理和部分变更管理的功能,Harvest、ClearCase完成配置管理的功能的同时还可以帮助软件开发组织积累项目中的数据提升软件开发过程能力。
软件配置管理工具的简单应用
应用软件的规模及复杂程度日趋大型化、复杂化,这就导致软件开发的方式也从早期的单兵作战式或手工作坊式渐渐转变为集团化、工厂流水线式的团队协作开发方式。在这种开发模式中会遇到一些问题,例如:
需要将整个软件版本恢复到以前某一时间的状态;
控制某一程序在同一时间内只能由一个开发人员进行修改;
限制随意修改程序;
对每个开发人员编写的程序质量进行评估。
如何解决上述问题,管理好项目的每一步运作,成为每一位项目主管需要解决的课题。目前,许多配置管理工具能够与各种流行的开发软件进行无缝的连接,它们有机地结合在一起,能够完整地保存开发中对应用程序每一个源文件所有的修改记录,因此充分地利用配置管理工具能够对软件开发进行有效的管理,其具体表现有以下几个方面:
(1)随时将程序恢复到以前某一时间点。配置管理工具可以将某一程序恢复到以前某一时间的状态,甚至将整个软件版本恢复到以前某一时间的状态。它能比较程序的不同版本,方便地识别出被修改,删除或插入的具体行,可以将两个不同版本的修改合并到一个新文件中,如果一段重要的代码被删除了,它可以迅速恢复这段代码。
(2)实现代序的互序性修改。配置管理工具能够实现某一程序在同一时间只能由一个开发人员进行修改。其具体实现方式是:开发人员从源文件存放处检出(Cherk
out)一个程序,这时其他开发人员就不可以再检出同一个程序了,只有当第一个开发人员修改测试完成后,将更新版本的代码做检入(Check
in)操作,其他开发人员才能检出同一个程序-当然,现在有些配置管理工具也可以配置成允许多入修改,即同时检出同一个程序.最后可以将不同版本的修改合并到一个新程序中。
(3)对程序修改进行有效的管理。在配置管理工具中可以将用户分为管理员和程序员两种角色,只有管理员可以将程序冻结(Freeze)和解冻(Unfreeze),被冻结的程序是下允许修改的。修改程序的流程为:
①用户提交需求书,程序员提交程序设计说明书,项目主管审核通过后,配置管理员(CMO)将程序解冻;
②由程序员检出程序;
③程序员修改程序;
④修改完成后程序员提交测试请求给测试小组,测试小组进行测试,如果测试不通过,转向第③步;
⑤测试通过以后程序员填写本次修改记录,然后检入程序;
⑥配置管理员将程序冻结。
至此完成一次程序的修改。在软件开发后期或者软件正式投入使用时,这种方式对保证软件的稳定运行能起列非常重要的作用。
(4)将开发环境与测试环境、运行环境进行有效的隔离:比较大型的软件开发项目部有专门的测试小组;采用配置管理工具后,开发人员有自己单独的开发环境,测试人员有自己的测试环境-测试人员测试无误后才检入程序,可避免错误的程序影响其他人员使用和测试幢用系统;项目进行到一定阶段,可随时用配置管理工具生成一个新的版本,投入运行—生成运行版本时可以选择以前所有的修改记录。
(5)评估开发人员编写的程序质量,控制开发进度。配置管理工具完整地保存在开发中对应用程序的每一个源文件所有的修改汜录-这些记录包括完成修改程序的开发人员、修改的时间、所进行的具体修改以及对本次修改的解释。项目主管通过调阅这些记录,对程序修改的次数、修改原因和修改情况进行统计,就能够对每一个程序员编写的程序质量进行综合评估,这些记录还能使项目主管对整个项目的进度、程序的编写修改情况有一个整体的了解。
(6)管理文档。配置管理工具不仅为各种开发软件提供了存放对象的接口,还能存放任意类型的文件.这样可以在配置管理工具中建立专门的文件夹,用来仃放软件廾发过程中牛成的各种文档,对于每个文档可以存放它的多个版本,供随时查阅。
注意:配置管理软件的安全性一般,为确保软件开发过程中源代码与文档的安全,制定一个合理的系统备份策略是必要的。
总之,在一个项目小组开发环境中,配置管理工具的采用是非常必要的。它就好像建立一部软件开发的编年史,不仅仅对软件的版本进行了控制,还能够协调多个外发人员的工作,对整个软件的开发过程进行有效的管理,大大提高了软件开发的效率,收到事半功倍的效果。
软件配置管理工具的使用要求
使用软件配置管理工具必须注意:
(1)始终保持每个软件配置管理项的正确性,即始终正确反映软件需求;
(2)确保每个软件配置管理项之间均“文实相符,文文一致”;
(3)确保每个软件配置管理项的安全。
软件配置管理工具评估
对工具的评估应侧重于功能的适用性,而不应一味强调功能的全面性;产品评估应了解如下问题:
1.该产品的哪一方面功能可解决目标组织的当前问题,满足该组织在软件配置管理上的需求;
2.该产品在目标机构的峰值负荷下的运行效率将如何;
3.该产品对并发使用的支持情况如何;
4.该产品与现有系统、工具、流程、环境的兼容性如何;
5.该产品的成熟性和稳定性如何(选择成熟的产品是降低软件开发成本、提高软件可靠性的重要手段),应尽可能选择市场占有率高的工具;
6.该产品是否易学易用;
7.该产品的购买、安装、实施、维护费用是否可以接受。
对于任何一个管理流程来说,保证该流程正常运转的前提条件就是要有明确的角色、职责和权限的定义。特别是在引入了软件配置管理的工具之后,比较理想的状态就是:组织内的所有人员按照不同的角色的要求、根据系统赋予的权限来执行相应的动作。因此,在本文所介绍的这个软件配置管理过程中主要涉及下列的角色和分工:
项目经理(Project Manager,PM):
项目经理是整个软件研发活动的负责人,他根据软件配置控制委员会的建议批准配置管理的各项活动并控制它们的进程。其具体职责为以下几项:
制定和修改项目的组织结构和配置管理策略;
批准、发布配置管理计划;
决定项目起始基线和开发里程碑;
接受并审阅配置控制委员会的报告。
配置控制委员会(Configuration Control Board,CCB):
负责指导和控制配置管理的各项具体活动的进行,为项目经理的决策提供建议。其具体职责为以下几项:定制开发子系统;
定制访问控制;
制定常用策略;
建立、更改基线的设置,审核变更申请;
根据配置管理员的报告决定相应的对策。
配置管理员(Configuration Management Officer,CMO):
根据配置管理计划执行各项管理任务,定期向CCB提交报告,并列席CCB的例会。其具体职责为以下几项:
软件配置管理工具的日常管理与维护;
提交配置管理计划;
各配置项的管理与维护;
执行版本控制和变更控制方案;
完成配置审计并提交报告;
对开发人员进行相关的培训;
识别软件开发过程中存在的问题并拟就解决方案。
系统集成员(System Integration Officer,SIO):
系统集成员负责生成和管理项目的内部和外部发布版本,其具体职责为以下几项:
集成修改;
构建系统;
完成对版本的日常维护;
建立外部发布版本。
开发人员(Developer,DEV):
开发人员的职责就是根据组织内确定的软件配置管理计划和相关规定,按照软件配置管理工具的使用模型来完成开发任务。
一个软件研发项目一般可以划分为三个阶段:计划阶段、开发阶段和维护阶段。然而从软件配置管理的角度来看,后两个阶段所涉及的活动是一致,所以就把它们合二为一,成为“项目开发和维护”阶段。
计划阶段
一个项目设立之初PM首先需要制定整个项??研发计划之后,软件配置管理的活动就可以展开了,因为如果不在项目开始之初制定软件配置管理计划,那么软件配置管理的许多关键活动就无法及时有效的进行,而它的直接后果就是造成了项目开发状况的混乱并注定软件配置管理活动成为一种“救火”的行为。所以及时制定一份软件配置管理计划在一定程度上是项目成功的重要保证。
在软件配置管理计划的制定过程中,它的主要流程应该是这样的:
CCB根据项目的开发计划确定各个里程碑和开发策略;
CMO根据CCB的规划,制定详细的配置管理计划,交CCB审核;
CCB通过配置管理计划后交项目经理批准,发布实施。
开发维护阶段
这一阶段是项目研发的主要阶段。在这一阶段中,软件配置管理活动主要分为三个层面:
⑴主要由CMO完成的管理和维护工作;
⑵由SIO和DEV具体执行软件配置管理策略;
⑶变更流程。这三个层面是彼此之间既独立又互相联系的有机的整体。
在这个软件配置管理过程中,它的核心流程应该是这样的:
⑴CCB设定研发活动的初始基线;
⑵CMO根据软件配置管理规划设立配置库和工作空间,为执行软件配置管理计划做好准备;
⑶开发人员按照统一的软件配置管理策略,根据获得的授权的资源进行项目的研发工作;
⑷SIO按照项目的进度集成组内开发人员的工作成果,并构建系统,推进版本的演进;
⑸CCB根据项目的进展情况,审核各种变更请求,并适时的划定新的基线,保证开发和维护工作有序的进行。
这个流程就是如此循环往复,直到项目的结束。当然,在上述的核心过程之外,还涉及其他一些相关的活动和操作流程,下面按不同的角色分工予以列出:
各开发人员按照项目经理发布的开发策略或模型进行工作;
SIO负责将各分项目的工作成果归并至集成分支,供测试或发布;
SIO可向CCB提出设立基线的要求,经批准后由CMO执行;
CMO定期向项目经理和CCB提交审计报告,并在CCB例会中报告项目在软件过程中可能存在的问题和改进方案;
在基线生效后,一切对基线和基线之前的开发成果的变更必须经CCB的批准;
CCB定期举行例会,根据成员所掌握的情况、CMO的报告和开发人员的请求,对配置管理计划作出修改,并向项目经理负责。
国内软件企业已经逐渐认识到配置管理的重要性,都希望通过实施配置管理来提高软件开发管理的水平,增强企业自身的竞争力,应对市场的压力。
主要功能
针对市场的这些需求,Hansky公司在中国市场推出了业界技术领先的软件配置管理解决方案,产品包括配置管理工具Firefly和变更管理工具Butterfly。Firefly是Hansky公司推出的软件配置管理系统,它可以轻松管理、维护整个企业的软件、代码和文档。Firefly是一个高性能、运行速度极快的软件配置管理系统,支持不同的开发、运行平台,因此它能在整个企业中的不同团队、不同项目中都得以广泛的应用。Firefly能够对团队开发提供有力的支持,开发团队一旦拥有了Firefly,就可以非常准确的定义:软件将在什么时间发布;当前发布版本中有哪些功能,由哪些组件构成;当前版本中加入了针对哪些Bug的修改;软件的某个修改是谁认可的;如何建立新的发布版本;等等…
Butterfly是Hansky公司提供的新一代的软件变更请求管理软件。它以软件产品为中心,有效的协调软件项目中各职位人员的工作,能够使软件项目在较短时间内高质量完成。
Butterfly的主要功能如下:
提供对开发过程中的缺陷、建议和任务的追踪管理;
规划开发过程,完善源代码编写,提高软件重用率,最大限度保护企业知识财富;
提供丰富的报表功能,以直观图形统计开发人员的工作进度和编码质量,客观评价员工表现;
优化业务流程,科学的工作流系统使用户工作起来有条不紊,大大提高工作效率,同时用户可以根据实际情况简单、快捷地定制自己的业务流程;
掌握工作进度,在软件开发的各个阶段进行都可以进行强大的过程控制;
开发人员可以明确地了解他被分配的开发任务,并根据优先级依次完成;
提供友好的人机界面,支持工作分配的电子邮件自动通知,方便各种类型的工作人员使用,增加沟通和交流;
对软件的错误进行系统管理,从根本上提高软件产品竞争力,提高产品质量;
加速开发进程,规范软件产品开发的各个阶段,避免浪费不必要的时间。
具体优点
Hansky公司的配置管理解决方案给公司带来的益处将是显而易见的:管理者能够轻松控制产品的进度、质量;开发人员将有更多的时间进行创造性的工作;测试人员将依照一个标准的流程高效完成日常工作;产品发布人员能够确保交到用户手中的产品的质量。具体而言,用户可以在资金、管理水平和保护知识财富等方面得到切实收益。
1、节约用户资金
⑴ Hansky配置管理系统的总体实施成本低
对硬件系统性能的要求低,可以跨平台使用,节约了用户的投资;
安装简单,易于维护,无需专职的系统管理员;
功能简洁、实用,易于学习和掌握,可以有效缩短配置管理系统投入实际使用的周期;
良好的扩展性和灵活的License管理方式,以及组件式的解决方案,使得配置管理系统既支持小组模式的用户,也能够支持大规模团队的协同开发工作,并且能够方便地进行扩展,用户可以根据实际需要,灵活的配置,大大降低了降低初期投入的资金;
具有前瞻性,保护用户的投资。Hansky公司的软件配置管理产品采用最新的技术(如纯TCP/IP技术、J2EE技术、MS
.NET的开发环境等)和全新的应用模式(如三层结构、B/S应用结构等),确保系统在较长的时间内不会落后于同类产品或不需要技术上的更新;
自带存储库增量备份/恢复功能,节约用户在备份方面的支出。
⑵ 缩短用户的产品开发周期
利用Hansky的Firefly系统对开发资源进行版本管理和跟踪,可以建立公司级的代码知识库,保存开发过程中的所有历史版本,这样大大提高了代码的复用率,还便于同时维护多个版本和进行新版本的开发,最大限度地共享代码。利用Butterfly组建开发团体之间的问题跟踪及消息通讯机制,通过与电子邮件系统的结合大大增强了开发团体之间的沟通能力,通过丰富的报表功能可对发现的问题进行整理、以报表方式分类报出,作为开发的指导。通过使用Hansky的配置管理套件可以提高开发效率和产品质量,避免了代码覆盖、沟通不够、开发无序的混乱局面,大大缩短了产品的开发周期。
⑶ 降低产品的部署费用
使用Hansky的软件配置管理解决方案后,用户可以在Hansky技术专家的帮助下建立规范的配置管理流程,所有的软件产品将得到统一有效的管理。借助Firefly和Butterfly,工程人员可以通过访问服务器直接获取所需的最新版本,查找公司的知识库,提交变更请求,收集用户的反馈意见。开发人员无需到现场即可再现用户环境,集中解决问题,发布补丁。这样可以同时响应多个地点的项目,防止开发人员分配到各个项目点、力量分散、人员不够的弊端,同时节约大量的旅差费用。
2、提高软件开发管理的水平
⑴ 改进用户的开发工作模式
使用Hansky的配置管理解决方案,可以有效地改进用户的软件开发模式和过程,提高企业软件能力成熟度的级别。
借助Firefly和Butterfly,用户可以:
有效的管理工作空间,各个成员的具有独立的工作空间,并能记录其变更集和整个生命周期中的完整变更历史;
简便建立分支,支持分支之间的比较与合并,归并,管理基线; 支持并行开发模式,提高开发效率; 支持异地开发,Firefly通过自动或手动同步不同开发地点的的存储库,为地理分布的开发团队提供很好的支持;
集成变更请求管理与项目生存周期中的变更记录与追踪,优化测试流程; 完善的发布管理,可以方便的回溯任意版本,为不同的用户定制应用程序的版本,促进系统的快速部署,提供发布版本内容的审计能力;
支持变更集和原子事务,确保变更的一致性; 支持离线的版本管理,帮助用户记录项目证明周期内的完整历史; 内置Defect、RFE、Task(问题、建议、任务)工作流,符合正规软件公司的软件开发流程。科学的工作流系统可以使公司人员工作起来得心应手,有条不紊,从而大大提高工作效率。
⑵ 加强项目管理能力
通过浏览器,项目负责人可以方便地查看项目进展情况以及员工工作情况; 利用Web界面即可实现代码复查和项目状态复查;
丰富的图表、报告功能,可以自动生成变更统计报告、配置审计报告,支持过程管理与进度分析,能够帮助管理者进行决策。
⑶ 量化工作量考核
传统的开发管理中,工作量一直是难以估量的指标。靠开发人员自己把握,随意性过大;靠管理人员把握,主观性又太强。采用Firefly和Butterfly管理后,系统能够客观的记录员工的工作内容和质量,可以作为工作量的衡量指标。
⑷ 规范测试流程
Butterfly和Firefly集成后,可以有效地跟踪和处理软件的变更,完整地记录测试人员的工作内容,测试有了实实在在的工作,测试人员根据修改描述细节对每一天的工作做具体的测试。对测试人员也具有相应的可考核性,这样环环相扣,有效地增强了对测试的管理。
⑸ 加强协调与沟通,增加团队竞争力
使用Firefly保存公司的所有知识财富、利用Butterfly的FAQ、检索以及Email自动通知功能,有效地加强了项目成员之间的沟通,做到有问题及时发现、及时修改、及时通知,却又不会额外增加很多的工作量,大大提高了开发团队的协同工作效率。
3、保护企业的知识财富
从整个企业的发展战略来说,如何在技术日新月异、人员流动频繁的情况下,该公司的知识库及经验库,把个人的知识及经验转变为公司的知识和经验,这对于提高工作效率、缩短产品周期以及提高公司的竞争力都具有至关重要的作用。采用科学的配置管理思想,辅之以先进的配置管理工具,可以帮助用户在内部建立完善的知识管理体系。
⑴ 代码对象库
软件代码是软件开发人员脑力劳动的结晶,也是软件公司的宝贵财富,长期开发过程中形成的各种代码对象就像一个个零件一样,是快速生成系统的组成部分。然而长期以来的一个事实是:一旦某个开发人员离开工作岗位,其原来所编写的代码便基本成为垃圾,无人过问;或者由于文档不全,无从考究。究其原因,就是没有专门对每个开发人员的代码、组件和文档进行科学的管理,将其应用范围扩大到公司一级,进行规范化,加以说明和普及。Firefly为代码管理提供了一个平台和仓库,有利于建立公司级的代码对象库,增进代码复用,提高开发重用率和软件质量。
⑵ 业务及经验库
通过Firefly和Butterfly,可自动生成完整的开发日志及问题集合,用文字记录开发的整个过程,不会因某人的流动而消失,有利于公司积累业务经验,无论对软件维护或版本升级,都具有重要的指导作用。此外,利用Butterfly内建的FAQ模块,可以建立检索方便的经验库,传播和共享集体的智慧。
⑶ 安全性和可靠性
由于配置管理系统集中存储了企业的重要知识财富,因此对其安全性和可靠性有极高的要求。Firefly可以对所有存储的文件进行冗余校验,使用MD5作为文件的校验和,并提供备份和恢复工具,确保了数据的可靠性。同时Firefly支持用户身份验证和访问控制,支持用户组,便于权限设置。访问控制可以针对分支、目录,甚至单个文件设置,采用类似Windows
NTFS的权限管理方式,既灵活又安全。这些措施使得企业的知识财富得到了安全可靠的存储和保护。
另外,由于Hansky的产品采用了三层结构设计,其存储库完全不依赖于网络文件体统,无需共享存储目录,能够有效防止病毒攻击所导致的存储库瘫痪或损坏,同时杜绝网络非法访问。
|