2008年4月6日星期日

Open Source Collaboration Platform

多人协作的软件开发如果没有一定的CASE工具来支持,开发的过程将会变得非常难于控制,特别是当开发人员在地理上是分布时,软件开发协作平台就显得尤为重要。下面将介绍进行开源组织里都使用什么样的平台和工具来进行分布式的协同开发与管理。

开放源码组织的最大一个特点就是分布.

1.人员分布: 所有的开发人员,贡献者可能来自世界不同的角落,在地理上是完全分散的,有可能其中的一个他/她就是旁边的同事,也有可能他/她在地球的另一端。

2.平台分布: 由于开源组织里规模大小不同,他们提供的服务也不一样,大的组织资金充足,硬件设备齐全,他们有自己的CVS服务器,邮件服务,Web站点等,例如: 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系统

740)this.width=740" border="undefined">

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现在已经广泛的被很多大型的软件公司以及开源组织所使用,详细情况, 下图是http://www.huihoo.org/所使用的JIRA(Huihoo的JIRA服务将在2004年第3季度推出)

740)this.width=740" border="undefined">

项目管理工具:

1. 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 (http://www.objectweb.org/)

2. Groupware

辅助开源团队进行交流的计算机辅助工具被称为Groupware. Groupware通常分为两类,

(1)同步: 如ICQ, 视频会议,投票系统

(2)异步: 电子邮件,工作流系统

小结:

综上所述,管理一个开放源码项目需要四种软件工具:一个基于Internetclearinghouse, 一个用于项目管理的群件系统,一个用于协调开发人员变更的版本控制系统,一个用于构建软件的问题管理工具。所有这些工具都是为了使开源团队能够更加流畅,及时地沟通。

没有评论: