更新时间:2024-01-12 02:35
firefly是汉星天公司开发的软件配置管理工具。
随着软件产业的崛起,软件工程技术正吸引着越来越多关注的目光。作为软件工程的一个重要的领域,软件配置管理也日益受到人们的重视。“工欲善其事,必先利其器。”配置管理软件可以优化软件流程,进行有效的度量,很大程度决定着软件项目的成败。
Firefly是汉星天公司开发的新一代软件配置管理工具,具有良好的易用性,开发团队可以快速掌握Firefly的使用技巧,立即进入高效率的工作状态。Firefly具有6大特性:基于项目的分支和标记管理、方便的分支比较和分支归并、强大高效的并行开发支持、面向任务的开发模式、完善的异地分布式开发支持、良好的跨平台能力。
为什么需要Firefly软件配置管理系统?
在项目开发过程中,由于软件版本的不断变化,开发时间的紧迫以及多平台开发环境,企业往往无法有效地管理软件变更,这使得企业在软件开发过程中经常面临着如下风险和挑战:
1. 部门主管无法确切得知项目的进展情况;
2. 开发人员沟通不够,代码复用难,使开发工作重复,留下大量难以维护的代码;
3. 团队工作时,开发人员无法并行工作,使开发进度减缓;
4. 随着软件产品的需求日益增加,无法快速标识和查找软件的历史版本;
5. 开发的环境日趋复杂,无法支持更多的运行开发平台;
6. 缺乏规范化的管理,无意的变更有可能破坏整个系统,而且不易跟踪;
7. 对于客户提出的问题,响应及解决迟缓。
随着企业开发团队的日益扩大,开发项目的不断增加,软件配置管理逐渐成为企业进行软件开发管理的重要工具。
应用Hansky Firefly,将帮助企业解决软件配置管理中的许多问题。一旦拥有Firefly,企业可非常清楚地了解:
软件将在什么时间发布;
当前发布版本中有哪些功能;
当前版本中加入了针对哪些Bug的修改;
软件的某个修改是谁认可的;
如何建立新的发布版本等等。
应用Firefly,团队的软件开发过程实现了环环相扣,规范管理。管理者能够轻松控制产品的进度、质量;开发人员将有更多的时间进行创造性的工作;测试人员将依照一个标准的流程高效完成日常工作; 产品发布人员能够确保交到用户手中的产品的质量。
应用Firefly,开发团队将不再浪费时间于重复劳动,管理负担和开发人员工作负荷大大减少,软件错误数量得以有效控制。内部科学而规范的产品管理,将有效提高产品质量,加速产品市场推广速度,提高市场响应能力,从而最大限度地提高客户满意度,增强企业的市场竞争能力。
Firefly产品技术特点
以下为Firefly的功能特色介绍。
跨平台使用
汉星天的所有产品都是基于Java1.4开发的。 它可以在支持JDK1.4或更高版本的任何一个平台上运行,如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了一些修改,系统可以自动通知其他相关人员。
软件配置管理SCM(Software Configuration Management)是一套规范、高效的软件开发基础结构。SCM 可以系统地管理软件系统中的多重版本;全面记载系统开发的历史过程;管理和跟踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。SCM 能够对开发过程进行有效的管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,从而保护企业宝贵的代码资源,帮助企业积累软件财富,提高软件重用率,加快投资回报。
有效的SCM管理是企业实现ISO 9000 和SEI CMM的强有力助推器。
Hansky公司的软件配置管理系统Firefly是Hansky软件开发管理套件中的重要组件。使用Firefly可以轻松管理、维护整个企业的整个软件资产,包括程序代码和相关文档。Firefly是一个功能完善、运行速度极快的软件配置管理系统,可以支持不同的操作系统和多种集成开发环境,因此它能在整个企业中的不同团队,不同项目中都得以广泛应用。
Firefly,它的安装配置过程简单易用,开发团队可以快速掌握Firefly的使用技巧,立即进入高效率的工作状态。Firefly可以自动、安全地保存代码的每一次变化内容,避免代码被无意地覆盖、修改。 项目管理人员使用Firefly可以有效地组织开发力量进行并行开发和管理项目中各阶段点的各种资源,使得产品发布易于管理;并可以快速地回溯到任一历史版本。系统管理员使用Firefly的内置工具可以方便的进行存储库的备份和恢复,而不依赖于任何第三方工具。
Firefly具有优秀的底层架构和良好的可扩展性,可以支撑到具有上百个开发人员的企业级应用项目中,通过使用ServerSync模块,Firefly可以支持物理上分布的开发团队在同一个项目上进行异地开发。在一个中等配置的计算机上(PIII 1.8G,256M),Firefly服务器可以很好的支持50G以上的存储库数据和50个以上的并发访问用户。同时它也兼具良好的灵活性,可以在于3到5人的小规模开发团队中灵活部署使用。
Firefly不仅提供图形化的用户界面、基于命令行方式的访问以及基于Web的访问界面,并且能够和大多数主流的IDE工具集成,比如:WebLogic Workshop、IBM WSAD/Eclipse 、Microsoft Visual Studio、Microsoft Visual Studio .NET以及Borland JBuilder等等。
Firefly为Server/Client架构的应用程序,采用Java Remoting技术作为客户端和服务器的通讯协议。该协议是一种快速的基于TCP/IP的协议,无需Firefly服务器共享任何目录,从而确保了服务器端数据的安全性。Firefly使用特有的存储库。应用Firefly,并不需要其它第三方的数据库。并且,Firefly内置了对存储库的备份(支持全备份和增量备份)和恢复功能。这样,也是保护的企业数字资产的安全。
Firefly具有强大的并行开发处理能力,使用业界领先的FleXtream技术,Firefly使得处理并行开发变得非常容易;用户可以方便的实现Stream-Based开发模式。用户可以方便的进行分支的建立、比较、归并等操作。 使用分支来隔离开发路线(code line, stream),可以保证开发任务的隔离,不会互相干扰,保证开发效率且确保每个开发线路的安全;并且在适当的时候可以对分支之间的改动进行归并(merge)。
Firefly具有独有的文件级安全访问控制功能。类似NTFS中对文件和目录的访问控制,Firefly中的分支管理员可以设置不同的用户对分支中的不同文件(或目录)具有不同的权限(CD、List、Read、Update、Move、Insert)。通过该种设置,企业可以最大限度的达到保护数字资产的目的:没有权限的用户绝对不会得到没有权限的数据或文件。
使用Firefly,可以达到保护企业数字资产的目的,集中管理原来散落在不同人员处的文档、源代码,使之对其它用户可视化;并且建立完美的协同工作环境,帮助企业提高效率和核心竞争力。作为优秀的配置管理工具,Firefly可以完整的记录项目发展历史以及文件开发历史,真正的做到可追溯性,并且保证用户可以在任何时间准确地重建历史信息。通过使用Firefly,用户可以在最大限度上降低项目的风险,使一切改变都记录在案,保证项目在安全的轨道上顺利前进。
作为新一代的配置管理系统,Firefly具有卓越的底层架构,使其在性能、可扩展性、适用性等方面明显优于其他配置管理工具,能够帮助企业建立规范化的软件环境,规范开发过程,提高软件开发效率。 目前使用Firefly的国内知名软件企业以及研发机构超过1000家。每天有数万名工程师在该平台进行软件开发工作的管理