OpenSource的开发模式探讨

2013/07/29 15:16
阅读数 416

OpenSource的开发模式探讨zt

http://mail.mailer.com.cn:81/article/articleview/622/1/170/

--------------------------------------------------------------------------------
现有的成功的Open Source 开发模式可以从两个方面来分析,首先我们来看
看单个软件的开发模式,再分析Linux 发行版本的开发模式。

现有的单个软件的 Open Source开发模式:
1. 小型OpenSource软件开发模式

典型实例:Linux Virtual Server Project(http://www.linuxvirtualserver.org)/
其特点为项目的核心开发人员很少,一般为1-2 名,核心开发人员承担主要
的开发工作和维护相应的网站,用户会提出错误报告和提供少量的错误修正。

一般很少采用CVS 来进行代码管理,而是定期发布新版本。一般没有明确的
开发计划和日程安排,其软件更新速度和质量取决于核心开发人员的投入程度和
水平。目前采用这种开发模式的GNU 软件最多。而SourceForge.net 的出现又简
化了这部分开发人员的重复工作。

2. 中型Open Source软件开发模式

典型实例:GTK (http://www.gtk.org/ )

其特点为拥有3-5 名核心维护人员,参与开发的人员10人-40 人之间,采用
CVS 进行代码管理,通过maillist/irc进行开发交流,有明确的开发计划和日程。

用户提出的错误报告和修正数量很多,并且有一些分支产生。

3. 完全封闭的商业Open Source软件
典型实例:QT(http://www.trolltech.com/ )

其特点为软件完全由商业公司内部开发,用户一般只能提供错误报告,不提
供修复补丁,公司定期发布新版本的源代码。其好处是软件质量水平较高,其缺
点是如果公司开发力量不足,软件发展容易停滞不前。

4. 比较封闭的大型Open Source软件的开发

典型实例:XFree86 (http://www.xfree86.org/ )

其特点为拥有数十名核心开发人员(一般不超过100 名),其中包括3-5 位
核心开发人员,只有这些核心开发人员有权提交代码,代码使用CVS 管理,但是
对外界不开放只有在发布新版本时外界才可以得到,开发计划和日程明确,发布
日期一般准确,但是软件版本升级速度一般比较缓慢。这样开发的好处是代码质
量比较平均,所受干扰小,缺点是由于用户不能积极参与开发过程中的测试工作,
增加新功能后稳定期较长。

5. 由商业软件转化过来的大型Open Source软件开发.

典型实例:OpenOffice(http://www.openoffice.org)/

Mozilla (http://www.mozilla.org/ )

其特点为其软件计划开始时是基于一个被 Open Source的商业软件,一般都
受到原商业公司的控制,一般都不采用GPL/BSD 形式的License ,一般都采用类
似于MPL (Mozilla Public License)的版权,其特点是公司可以享有使用这些
源代码的权利,他们的开发工作一般由公司的员工为核心开发人员和领导者,通
过CVS 和Bugzilla进行代码和错误管理。拥有正式的QA体系,这种模式一般都进
展不是很快,例如mozilla 三年多仍然不能发布1.0 版。主要原因是这种由于这
些大型软件开发的起点比较高,因此自由软件程序员加入的数量都不是很多,还
有就是由于商业软件公司的背景,使得部分自由程序员不太愿意加入。但是参与
测试的最终用户比较多。 Mozilla的下载量一般都在数十万左右。而修复的错误
数目也同比增长

6. "独裁"式的大型Open Source软件的开发.

典型实例:Kernel(http://www.kernel.org)/

其特点为软件开发人员非常多,一般都在百人以上,任何自由程序员都可以
提交自己的修改工作,但是只有领导者(在Linux 核心上是Linus 和Alan Cox)
才能够合并这些工作到正式的核心发布版本中。而且他们一般不采用CVS ,只是
通过maillist来进行项目管理,交流,错误报告。经常发布新的版本,其好处是
软件更新速度和发展速度很快,计划的开放性好,由于最终裁决人只有少数非常
有经验的程序员,正式发布的代码质量非常优秀,由于用户数目非常庞大,最终
发布版的错误一般都非常稀少。这种方式的缺点是计划的发展方向主要由核心开
发人员决定,体现他们的设计思想。不过这个缺点从另外一个角度来说这些核心
领导者的远见决定了工程的技术领先性。

7. "民主"式的大型Open Source 软件的开发.

展开阅读全文
0
5 收藏
分享
加载中
更多评论
打赏
0 评论
5 收藏
0
分享
返回顶部
顶部