有效的SCM管理是企业实现ISO 9000 和SEI CMM的强有力助推器。 Hansky公司的软件配置管理系统Firefly是Hansky软件开发管理套件中的重要组件。使用Firefly可以轻松管理、维护整个企业的整个软件资产,包括程序代码和相关文档。Firefly是一个功能完善、运行速度极快的软件配置管理系统,可以支持不同的操作系统和多种集成开发环境,因此它能在整个企业中的不同团队,不同项目中都得以广泛应用。 Firefly基于真正的客户机/服务器体系结构,不依赖于任何特殊的网络文件系统,可以平滑地运行在不同的LAN、WAN环境中。它的安装配置过程简单易用,开发团队可以快速掌握Firefly的使用技巧,立即进入高效率的工作状态。Firefly可以自动、安全地保存代码的每一次变化内容,避免代码被无意地覆盖、修改。 项目管理人员使用Firefly可以有效地组织开发力量进行并行开发和管理项目中各阶段点的各种资源,使得产品发布易于管理;并可以快速地回溯到任一历史版本。系统管理员使用Firefly的内置工具可以方便的进行存储库的备份和恢复,而不依赖于任何第三方工具。 为什么需要Firefly软件配置管理系统 在项目开发过程中,由于软件版本的不断变化,开发时间的紧迫以及多平台开发环境,企业往往无法有效地管理软件变更,这使得企业在软件开发过程中经常面临着如下风险和挑战: 1. 部门主管无法确切得知项目的进展情况; 2. 开发人员沟通不够,代码复用难,使开发工作重复,留下大量难以维护的代码; 3. 团队工作时,开发人员无法并行工作,使开发进度减缓; 4. 随着软件产品的需求日益增加,无法快速标识和查找软件的历史版本; 5. 开发的环境日趋复杂,无法支持更多的运行开发平台; 6. 缺乏规范化的管理,无意的变更有可能破坏整个系统,而且不易跟踪; 7. 对于客户提出的问题,响应及解决迟缓。 随着企业开发团队的日益扩大,开发项目的不断增加,软件配置管理逐渐成为企业进行软件开发管理的重要工具。 应用Hansky Firefly,将帮助企业解决软件配置管理中的许多问题。一旦拥有Firefly,企业可非常清楚地了解: 软件将在什么时间发布; 当前发布版本中有哪些功能; 当前版本中加入了针对哪些Bug的修改; 软件的某个修改是谁认可的; 如何建立新的发布版本等等。 应用Firefly,团队的软件开发过程实现了环环相扣,规范管理。管理者能够轻松控制产品的进度、质量;开发人员将有更多的时间进行创造性的工作;测试人员将依照一个标准的流程高效完成日常工作; 产品发布人员能够确保交到用户手中的产品的质量。 应用Firefly,开发团队将不再浪费时间于重复劳动,管理负担和开发人员工作负荷大大减少,软件错误数量得以有效控制。内部科学而规范的产品管理,将有效提高产品质量,加速产品市场推广速度,提高市场响应能力,从而更大限度地提高客户满意度,增强企业的市场竞争能力。 Firefly产品技术特点 以下为Firefly的功能特色介绍: 跨平台使用 汉星天的所有产品都是基于Java1.2开发的。 它可以在支持JDK1.2或更高版本的任何一个平台上运行,如Window NT,Windows 2000, Linux, Solaris, HP-UX, AIX等,其移植非常方便,设想用户以前是在Windows 2000 Server上使用该系统,而现在要运行在Solaris平台上,不需作任何改动,只需简单的拷贝和配置,在短短几分钟之内就可以完成。对于使用多个不同的平台进行软件开发、测试、运行的公司来说,一个统一、支持多平台的配置管理系统是最理想的。如果使用的配置管理系统只支持单一平台,那么势必给开发、测试、发布的各环节带来很大的不便,大量的时间将被浪费于代码的手工上传、下载中。 并发版本控制 Firefly支持多用户并行开发。它是一个基于Copy-Modify-Merge(拷贝、修改、合并) 的并行开发模式,团队的开发人员之间无须好象排队一样等待修改代码。开发人员可以并行开发、更改代码。并行开发可能会带来代码冲突,如两个同时修改了同一个文件,工具可以自动检测到代码冲突,并自动合并,或帮助开发人员手动解决。并行开发使团队开发快速、高效。 异地开发支持 Firefly 通过在每个开发地点建立复制、能自动或手动同步的存储库,为地理分布的开发团队提供很好的支持。支持两种异地开发模式:并行开发——每个地点在自己的工作空间中进行开发工作,互不干扰,然后通过归并的手段集成所有的开发工作;连续开发模式——开发团队在同一工作空间工作,通过控制权限的转换,实现顺序开发。 基于TCP/IP协议,支持不同的LAN或WAN 客户端和服务器端的程序完全通过TCP/IP协议来通信,因此不依赖于象NFS那样的共享文件系统,SCM系统更加安全可靠,能在任何局域网(LAN)或广域网(WAN)中正常工作。如果依赖于NFS等文件系统,则需要将存储区共享出来,客户端才能使用,这样使得存储数据极不安全,前段时间广泛蔓延的尼姆达(Nimda)和尼姆达二号病毒就是专门攻击网络上的共享文件夹,致使很多配置管理系统瘫痪,数据严重损坏。 一旦将文件从服务器上复制到用户自己的机器上,普通的用户操作是无需访问网络的,如编译、删除、移动。支持脱机工作、移动办公,在不同网络环境中提供100%的兼容性,所以无论在什么样的操作系统下,所有客户端程序和服务器端程序都是兼容的。 原子事务 在产品中引入了原子事务的概念。对于一个包含多个文件改变的入库操作都有一个单一的提交点,保证原子级的事务交易。例如,您为了修改一个Bug而修改了三个文件,当您提交这些改变时,会确保您在服务器端同时改变了这三个文件,或者一个都没改变,服务器的workspace能够保证数据的一致性。这样能够处理一些操作过程中的异常情况,比如提交过程中网络中断等。大多数SCM系统尚不支持这一功能,一个不完整的putback将有可能导致同事无法build。 Defect 跟踪的整合 Firefly完全整合于Butterfly(汉星天公司的错误跟踪系统)。在Firefly上的每一个改变,都能与Butterfly中的一个Defect、RFE (建议请求Request for Enhancement) 或Task相联接。这两个系统都提供了基于浏览器的用户界面,当你修改了一些文件,在putback到Firefly时提供了相应的Bug ID, 那么两个系统中都会建立相互的链接。此时,Butterfly中全面记载了整个开发的历史过程,包括谁作了修改,修改了什么,为什么修改;便于管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。 Visual Studio集成 Firefly支持Microsoft SCC API, 用户能够在Visual Studio中直接使用Firefly进行源代码版本控制。 快速标记(标签) 在Firefly中标记一个workspace是极快的,并且对于数据库来说大小几乎是没有改变的。在workspace中建立一个检查点(Checkpoint)也是相当容易的。 标记Workspace有很多作用,如保存一个基线版本或发布版本。有了标记,查找一个文件的某一历史版本,如/src/main.c在alpha1版中的内容,将非常容易。 易于代码检验 Firefly在服务器上可以跟踪所有客户端的workspace,在putback到父workspace之前,用户可以把local workspace中的修改先上载到服务器端的镜像中。这样代码检验的人甚至不用离开座位,就可以通过使用浏览器浏览这些代码,检查哪些文件修改了、新加了、删除了、移动位置了,及修改哪些内容。 跟踪workspace的改变 Firefly中一个workspace的修改可以记录一系列的文件改变,并不只针对某一单一文件的改变。每个workspace修改基本上是为了完成一件工作,并且相应的有一个详细的描述。Firefly中workspace的修改记录着相关文件的新建、删除、移动、复制以及更新。这样我们可以从整体的角度了解项目的变化,例如可以迅速列出为了增加一个新功能而改动或新添的文件列表。 跟踪branch的改变 Firefly中一个branch的修改可以记录一系列的文件改变,并不只针对某一单一文件的改变。每个branch修改基本上是为了完成一件工作,并且相应的有一个详细的描述。Firefly中branch的修改记录着相关文件的新建、删除、移动、复制以及更新。这样我们可以从整体的角度了解项目的变化,例如可以迅速列出为了增加一个新功能而改动或新添的文件列表。 安全性 Firefly支持身份验证和访问控制。用户需要一个用户名/密码来访问Firefly的服务器,并且Firefly的服务器workspace能对权限进行配置,诸如以下操作update、bringover、putback和admin。这些都能帮助企业保护机密数据。 处理二进制文件 Firefly不仅可以处理文本文件,并且也可以管理二进制文件,修改后的二进制文件只存储其不同的部分,大大节省了存储空间。 文件的重命名 Firefly允许文件重命名和移动位置。这些操作也能象文件的修改操作一样传播给其他关联workspace。 大多数SCM系统对于文件改名、移动和删除的处理能力很低,而且使用繁琐。Firefly对这些操作有极好的支持。这个功能对于代码的组织是极为重要的。 数据的完整性 Firefly可以对于每个文件和每个delta(文件修改的部分)进行校验。因为这些数据很重要,每一个文件Firefly都提供冗余校验,使用MD5作为文件的校验和。文件的内容错误可能是由坏的存储(DIMM),出错的NFS,或是SPARC/Linux的缓存别名中的Bug所导致。这些错误都可以被Firefly发现。 Email通知 对于每一个workspace用户可以针对bringover/putback操作设定Email通知。这样,当一个开发人员putback了一些修改,系统可以自动通知其他相关人员。