Open Source Collaboration Platform :: Open Source Thoughts
来源: BlogBus 原始链接: http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=134883 存档链接: https://web.archive.org/web/20041208133003id_/http://www.blogbus.com:80/blogbus/blog/diary.php?diaryid=134883
Open Source Thoughts The more work you have done, the more you are allowed to do. Do One Thing, and Do It Well. <<<Open Source Collaboration Model | 主页 | Measure Your Code>>> Open Source Collaboration Platform 2004-04-10 多人协作的软件开发如果没有一定的CASE工具来支持,开发的过程将会变得非常难于控制,特别是当开发人员在地理上是分布时,软件开发协作平台就显得尤为重要。下面将介绍进行开源组织里都使用什么样的平台和工具来进行分布式的协同开发与管理。 开放源码组织的最大一个特点就是 分布. 1. 人员分布: 所有的开发人员,贡献者可能来自世界不同的角落,在地理上是完全分散的,有可能其中的一个他 / 她就是旁边的同事,也有可能他 / 她在地球的另一端。 2. 平台分布: 由于 开源组织里规模大小不同,他们提供的服务也不一样,大的组织资金充足,硬件设备齐全,他们有自己的 CVS 服务器,邮件服务,W eb 站点等,例如: http://www.objectweb.org , 而 小的组织可能是借助像 http://sourceforge.net 这样公共的开源服务协作平台。这些平台在物理上也是分布的,对于一个开发人员来讲,你完全不知道你所访问的服务器具体在什么地方,所以整个组织是一个虚拟的网络。 下面我们就来看一看,开源组织都使用哪些工具来进行开发、协作、交流。 通常这些工具分为两类 : 产品管理工具 和 项目管理工具 : 产品管理工具 : 1. 版本控制工具: 现在软件开发中使用的版本控制工具很多,商业化的产品(费用昂贵的产品),如 Rational ClearCase, Microsoft SourceSafe, 等等;这里简单介绍一个目前为止最流行的开源版本控制系统 CVS(Concurrent Version System), 由于这篇文章不是讨论 CVS 的具体使用 , 感兴趣的读者可以访问 http://www.cvshome.org 参考详细的细节。 CVS CVS 是一种基于客户端
服务器的访问方式,并且能让开发人员通过 Internet 从任何地方获得最新的代码的并发版本控制系统。 CVS 通过文件日志的方式保留了存放在系统中文件的历史变更记录,这使开发人员能够控制在开发的整个过程中跟踪程序所有的变更情况,并且能够在出现 bugs 时很容易恢复到原有的代码版本,以便检查代码问题的所在。 当多个开发人员协作开发时,常常会出现代码冲突, CVS 提供了发现冲突的机制,但是冲突最终是由人来解决的,而不是 CVS 系统本身。下面的图 给出了 Huihoo 开源项目所 CVS 系统 CVS 现在也正被很多流行的开源项目所使用,如 : Mozilla http://www.mozilla.org/cvs.html The Gimp http://www.gimp.org/devel_cvs.html Xemacs http://cvs.xemacs.org KDE http://www.kde.org/anoncvs.html Gnome http://developer.gnome.org/tools/cvs.html 2. 问题管理工具 任何软件都是有问题,这个世界上没有十全十美的软件。软件有出现问题不要紧,但是如果出现了问题无法跟踪就是一个很大的问题了。 尽管现在的软件开发方法中引入了很多的机制尽量来检测软件的 bug, 如单元测试,集成测试等等,但这些方法只能在有限的范围内尽可能的减少产品最终交付到用户手中后的错误,就算是现在流行的 Windows 系统,也常常会由于系统的问题而发生死机。有人可能会说,我做的软件系统简单,不需要什么问题跟踪。 但是对于任何大规模的系统,可能涉及到几千开发人员,上千万行代码,多种不同的发布版本,不同的模块的集成,在这样的情况下,系统的复杂程度不是一般人能想象的。所以要管理这样复杂系统的开发,人员的协作就必须使用问题跟踪与报告系统,对系统的问题进行分类,标示各个模块的状态,并且能够让分布的开发人员能够很容易的了解到他们所开发模块的状态,以及与其他模块间的关系,以便能够更好的进行协作。流行的问题管理系统有 : Bugzilla Bugzilla 是由 Mozilla 团队开发的问题管理系统。 JIRA JIRA 是由澳大利亚的 Atlassian 公司开发的基于 J2EE 的问题管理系统,它被称为J2EE的bugzilla,在易用性上比bugzilla有了很大的改进,当然它还有很多的优点,就不一一列举了,我推荐大家使用这个软件来进行项目的开发管理,JIRA现在已经广泛的被很多大型的软件公司以及开源组织所使用, 详细情况 , 下图是 www.huihoo.org 所使用的JIRA(Huihoo的JIRA服务将在2004年第3季度推出) 项目管理工具 :
- Clearinghouse Clearinghouses 是软件开发人员为寻找感兴趣的项目而从其它开发人员那里寻求帮助的地方 . 现在 Internet 上最著名的 clearinghouse 平台之一是 SourceForge, 下面我们就介绍一下 SourceForge SourceForge 为开放源码开发人员提供免费主机服务,同时还包括, CVS 仓库,邮件列表,问题跟踪,消息论坛,任务管理, Web 站点主机,永久文件归档,备份等基于 Web 的管理。 SourceForge 的使命是为开放源码开发人员控制和管理开放源码软件的开发提供了一个集中的环境。 那么 SourceForge 平台上的开源软件的版权有谁来负责呢,是属于 SourceForge 吗 ? 答案是否定的, SourceForge 上任何软件的作者都拥有自己软件的版权,任何与版权相关的问题都由软件作者自己负责, SourceForge 本身之负责为开源软件提供服务,不涉及软件本身。通常对开源软件的一个误解就是开源软件是没有版权的,因为它是免费的。事实并非如何,每一个托管在 SourceForge 上的软件都由它自己的版权。这些版权都是由开发人员在创建项目时确定的,如 : GPL, LGPL 等等。 其他使用 SourceForge 系统作为协作平台的站点有 : Bioinformatics.org ( http://bioinformatics.org/ ) Handhelds.org ( http://handhelds.org/SourceForge/ ) Linuxalpha ( http://www.linuxalpha.compaq.com/sourceforge/ ) Open Source Directory ( http://www.opensourcedirectory.org/ ) University of South Carolina ( http://source.cse.sc.edu ) ObjectWeb ( www.objectweb.org )
Groupware 辅助开源团队进行交流的计算机辅助工具被称为Groupware. Groupware通常分为两类, (1)同步: 如ICQ, 视频会议,投票系统 (2)异步: 电子邮件,工作流系统 小结: 综上所述,管理一个开放源码项目需要四种软件工具:一个基于 Internet 的 clearinghouse, 一个用于项目管理的群件系统,一个用于协调开发人员变更的版本控制系统,一个用于构建软件的问题管理工具。所有这些工具都是为了使开源团队能够更加流畅,及时地沟通。 founder_chen 发表于 2004-04-10 21:38 引用Trackback(0) | 编辑 Comments 看到有人说起JIRA真是很开心,我已经取得代理权 www.20six.co.uk/slovenboy slovenboy ( slovenboy.blogdriver.com ) 发表于 2004-04-13 18:10 你写的这些工具,我正好在上个月上海javaeye 论坛上演讲的时候都说过,基本是目前能够使用的现状了.目前bug trace我推荐mantis 曹晓钢 ( caoxg.blogone.net ) 发表于 2004-05-05 20:37 发表评论 最近更新 Measure Your Code JFox Service-Oriented Appplication Framework 1.0 M2 Release Presentation at 2th China Software Conference Go BEA dev2dev Chinese Day JFoxSOAF 1.0-M1 Release My Paper Published Meet Huihoo In BeiJing, :) The Next Big Thing - Open Source ESB Simple Service-Oriented Motif Service-Oriented Application Framework Open Source Thoughts (EN) Huihoo Enterprise Open Source Free Software Foundation Huihoo Open Source Middleware The ServerSide.COM JFox Live !