LoveUnix » 行业应用 项目实施 » OpenSource的开发模式探讨
让LU留住您的每

一天 让LU博客留住您的每一天
2003-10-27 20:24 无双
现有成功的Open Source 开发模式介绍和分类以及优缺点 <br /><br />现有的成功的Open Source 开发模式可以从两个方面来分析,首先我们来看 <br />看单个软件的开发模式,再分析Linux 发行版本的开发模式。 <br /><br />现有的单个软件的 Open Source开发模式: <br />1. 小型OpenSource软件开发模式 <br /><br />典型实例:Linux Virtual Server Project(www.linuxvirtualserver.org) <br />其特点为项目的核心开发人员很少,一般为1-2 名,核心开发人员承担主要 <br />的开发工作和维护相应的网站,用户会提出错误报告和提供少量的错误修正。 <br /><br />一般很少采用CVS 来进行代码管理,而是定期发布新版本。一般没有明确的 <br />开发计划和日程安排,其软件更新速度和质量取决于核心开发人员的投入程度和 <br />水平。目前采用这种开发模式的GNU 软件最多。而SourceForge.net 的出现又简 <br />化了这部分开发人员的重复工作。 <br /><br />2. 中型Open Source软件开发模式 <br /><br />典型实例:GTK (www.gtk.org ) <br /><br />其特点为拥有3-5 名核心维护人员,参与开发的人员10人-40 人之间,采用 <br />CVS 进行代码管理,通过maillist/irc进行开发交流,有明确的开发计划和日程。 <br /><br />用户提出的错误报告和修正数量很多,并且有一些分支产生。 <br /><br />3. 完全封闭的商业Open Source软件 <br />典型实例:QT(www.trolltech.com ) <br /><br />其特点为软件完全由商业公司内部开发,用户一般只能提供错误报告,不提 <br />供修复补丁,公司定期发布新版本的源代码。其好处是软件质量水平较高,其缺 <br />点是如果公司开发力量不足,软件发展容易停滞不前。 <br /><br />4. 比较封闭的大型Open Source软件的开发 <br /><br />典型实例:XFree86 (www.xfree86.org ) <br /><br />其特点为拥有数十名核心开发人员(一般不超过100 名),其中包括3-5 位 <br />核心开发人员,只有这些核心开发人员有权提交代码,代码使用CVS 管理,但是 <br />对外界不开放只有在发布新版本时外界才可以得到,开发计划和日程明确,发布 <br />日期一般准确,但是软件版本升级速度一般比较缓慢。这样开发的好处是代码质 <br />量比较平均,所受干扰小,缺点是由于用户不能积极参与开发过程中的测试工作, <br />增加新功能后稳定期较长。 <br /><br />5. 由商业软件转化过来的大型Open Source软件开发. <br /><br />典型实例:OpenOffice(www.openoffice.org) <br /><br />Mozilla (www.mozilla.org ) <br /><br />其特点为其软件计划开始时是基于一个被 Open Source的商业软件,一般都 <br />受到原商业公司的控制,一般都不采用GPL/BSD 形式的License ,一般都采用类 <br />似于MPL (Mozilla Public License)的版权,其特点是公司可以享有使用这些 <br />源代码的权利,他们的开发工作一般由公司的员工为核心开发人员和领导者,通 <br />过CVS 和Bugzilla进行代码和错误管理。拥有正式的QA体系,这种模式一般都进 <br />展不是很快,例如mozilla 三年多仍然不能发布1.0 版。主要原因是这种由于这 <br />些大型软件开发的起点比较高,因此自由软件程序员加入的数量都不是很多,还 <br />有就是由于商业软件公司的背景,使得部分自由程序员不太愿意加入。但是参与 <br />测试的最终用户比较多。 Mozilla的下载量一般都在数十万左右。而修复的错误 <br />数目也同比增长 <br /><br />6. &quot;独裁&quot;式的大型Open Source软件的开发. <br /><br />典型实例:Kernel(www.kernel.org) <br /><br />其特点为软件开发人员非常多,一般都在百人以上,任何自由程序员都可以 <br />提交自己的修改工作,但是只有领导者(在Linux 核心上是Linus 和Alan Cox) <br />才能够合并这些工作到正式的核心发布版本中。而且他们一般不采用CVS ,只是 <br />通过maillist来进行项目管理,交流,错误报告。经常发布新的版本,其好处是 <br />软件更新速度和发展速度很快,计划的开放性好,由于最终裁决人只有少数非常 <br />有经验的程序员,正式发布的代码质量非常优秀,由于用户数目非常庞大,最终 <br />发布版的错误一般都非常稀少。这种方式的缺点是计划的发展方向主要由核心开 <br />发人员决定,体现他们的设计思想。不过这个缺点从另外一个角度来说这些核心 <br />领导者的远见决定了工程的技术领先性。 <br /><br />7. &quot;民主&quot;式的大型Open Source 软件的开发. <br /><br />典型实例:Gnome (www.gnome.org ) <br /><br />KDE (www.kde.org ) <br /><br />其特点为核心开发人员数目较多,子软件计划非常多,利用CVS 进行代码管 <br />理,核心开发小组一般在百人以上,分成若干个小组,每个小组有1-2 个领导者, <br />权限比较分明,有明确的开发进度管理和日程安排,有严密的Alpha ,Beta,RC1 <br />,RC2测试阶段。主要开发者定期召开开发者大会,讨论开发中的问题和新版本的 <br />设计。拥有自己的开发文档库和编码/ 测试标准。 <br /><br />同商业软件公司一样,一般每隔半年左右推出一个正式版本。这种方式是目 <br />前效率最高的一种方式,也只有这种开发模式能够承担利用Internet协作开发KDE/Gnome <br />这种超大型套装软件的开发工作。 <br /><br />现有的Linux 发行版本的开发模式: <br /><br />1. 完全封闭式 <br /><br />典型实例:Caldera (www.caldera.com ) <br /><br />其特点为完全由公司内部程序员封闭开发,在正式产品前不发布任何测试版 <br />本,其缺点式显而易见的,主要体现在产品开发周期长,用户参与不足。质量完 <br />全取决于公司内部的开发管理水平和实力。 <br /><br />2. 半封闭式 <br /><br />典型实例RedHat(www.redhat.com) <br /><br />其特点为产品在Beta阶段推出1-2 个测试版本,然后推出正式版本。 RedHat <br />内部的开发制度是目前把Open Source 开发模式和传统软件的开发模式结合得比 <br />较好的一种,其特点是:公司将技术研发部门和生产部门交叉组合起来,技术研 <br />发部门的管理比较松散,其下拥有一批技术上非常领先的自由程序员,主要负责 <br />进行技术研发和前瞻性研究,而生产部门采用企业化的项目管理制度,这样的好 <br />处是既保持了产品的质量,又保持了技术上的领先地位。而且能够保守一部分技 <br />术秘密。缺点是没有强大的研发实力,是没有办法承担这种开发模式的。 <br /><br />3. 全开放式. <br />典型实例Mandrake(www.mandrake.com) <br /><br />Debian(www.debian.org) <br /><br />其特点是其开发阶段完全向用户开放,随时接受用户的错误报告,内部只维 <br />持一支相对较少的开发队伍进行管理和重点程序的攻关工作。其特点是开发速度 <br />快,质量稳定,能够最大限度地利用Open Source 社区的力量。缺点是不容易控 <br />制开发周期。 <br /><br /><br />* 如何将Open Source 开发模式同传统开发模式结合起来 <br /><br />Open Source 的开发模式的优点是在向Open Source 社区贡献代码的同时, <br />得到了大批的免费开发人员和测试人员,这是一般的Close-Source公司无法得到 <br />的。 <br /><br />但是由于Open Source 开发模式基于Internet和松散的自由程序员而造成不 <br />便管理的缺点,需要这些公司建立起完善的项目管理,质量测试,进度控制等传 <br />统开发模式中行之有效的管理模式,同Open Source 社区相合作,才有可能建立 <br />起一个良性的发展制度。 <br /><br />* 在中国Open Source 开发模式的现状和前景。 <br /><br /><br />目前在中国,Open-Source 越来越受到大家的重视,也开始有第一批基于Open-Source <br />的公司出现,如红旗Linux ,TurboLinux,深圳Pocketix公司等。但是可以说, <br />目前OpenSource在中国的发展还处于早期阶段,其特征在于: <br /><br />1.没有形成一个自由程序员阶层. <br /><br />目前中国的程序员数量并不少,看看在www.csdn.net上的文章和大量涌现的 <br />共享软件的数目就可以估计出来,而自由程序员却寥寥无几,目前在国际上有影 <br />响的自由软件计划中由中国人带队的只有LVS (Linux Virtual Server,章文嵩) <br />LIDS(Linux Intrusion Detection System谢华刚)还有 MiniGUI ( MiniGUI, <br />蓝点公司魏永明),SBM(Smart Boot Manager,苏哲)四个,其原因可以归结为下 <br />面几条: <br /><br />* 中国程序员目前的经济情况还处于温饱状态,还必须为自己的生计奔波, <br />因此不能投注更多精力在自由软件的开发。 <br /><br />* 中国程序员不熟悉自由软件开发的通行模式。一般表现为受传统开发的手 <br />工作坊模式影响,不习惯合作开发,对管理一个项目的经验不足。 <br /><br />* 基于Unix系统的程序员不多,由于自由软件大多数是基于Linux/Unix系统, <br />而在中国由于种种原因,Windows 程序员占绝大多数。 <br /><br /><br />2.没有形成完整的自由软件社区 <br /><br />国外的自由软件社区包括slashdot.org这样的论坛,freshmeat.net 这样的 <br />软件下载基地,sourceforge.net 这样的软件计划基地,而且有自己的Linux 杂 <br />志,如Linux Journal 等等。而目前,在国内,已经有了freesof.cei.gov.cn, <br />Linuxforum, Linuxaid 等论坛和下载基地,也有一些刚刚创办的Linux 杂志, <br />但是总体而言,社区的力量和影响还是很小,表现在对媒体和大众的影响不大。 <br /><br />3.Open Source的公司对如何利用和回馈自由软件社区的力量了解不足 <br /><br />这基本表现在国内Open Source 公司的开发过程基本还遵循传统软件公司的 <br />封闭开发,内部测试步骤,不能利用自由软件的开放式的开发过程。 <br /><br />此外中国的盗版软件横行,知识产权法的推广不力,个人版权意识淡漠也造 <br />成了在中国单纯模仿外国的Open Source 公司的模式是完全行不通的,目前在中 <br />国做单纯的Open Source 的公司是非常困难的,但是制作Linux 发行版的厂商和 <br />硬件产商以及一部分嵌入式厂商是可以尝试使用 Open Source同传统开发模式相 <br />结合的方式来进行开发工作的,因为对这部分厂商来说,软件盗版对他们的伤害 <br />不像普通软件公司那么大,而利用Open Source 的开发模式,他们可以起到占领 <br />市场份额,扩大公司影响力,提高软件开发速度和质量,了解用户需求的作用。 <br /><br />但是从实际中看,国内的Open Source 公司都还处在比较初级的阶段,利用 <br />CVS 进行代码管理,maillist进行用户和开发者交流,bugzilla进行错误追踪的 <br />公司基本没有。 <br /><br />更不用说领导Open Source 软件计划。 <br /><br />但实际上不足也正是机会,国内率先同国际接轨,采用Open Source 开发模 <br />式的公司一定能从这种先进的开发模式中获得很大的帮助,但是千万要结合自身 <br />情况,不要搞面子工程,要把工作做到实处,这样才有可能获得进步。

2003-10-28 15:02 tsgm
好文章

2003-10-28 20:00 流氓无产者
学习ing...

2003-10-29 11:02 rhinofly
好贴,顶~~~<br /><br />国内如果做开放源码开发会死的很惨吧?

2003-10-29 11:15 无双
差不多<br />没有那环境吧<br /><br />要做OP需要有一定的技术在里面<br /><br />就是免费的东西功能与收费的差不多<br />或是更好<br /><br />国内做的 最多是共享软件

2003-10-29 11:15 sinokonka
好铁。

2003-11-20 20:01 jmzz
<!--QuoteBegin-aborigen+2003-10-29 11:02:57--><div class='quotetop'>QUOTE(aborigen @ 2003-10-29 11:02:57)</div><div class='quotemain'><!--QuoteEBegin--> 国内如果做开放源码开发会死的很惨吧? <!--QuoteEnd--></div><!--QuoteEEnd--><br />Agree&#33;

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.