自由软件开发的模块化理论解释与启示.docx

上传人:b****4 文档编号:912132 上传时间:2022-10-13 格式:DOCX 页数:7 大小:23.71KB
下载 相关 举报
自由软件开发的模块化理论解释与启示.docx_第1页
第1页 / 共7页
自由软件开发的模块化理论解释与启示.docx_第2页
第2页 / 共7页
自由软件开发的模块化理论解释与启示.docx_第3页
第3页 / 共7页
自由软件开发的模块化理论解释与启示.docx_第4页
第4页 / 共7页
自由软件开发的模块化理论解释与启示.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

自由软件开发的模块化理论解释与启示.docx

《自由软件开发的模块化理论解释与启示.docx》由会员分享,可在线阅读,更多相关《自由软件开发的模块化理论解释与启示.docx(7页珍藏版)》请在冰豆网上搜索。

自由软件开发的模块化理论解释与启示.docx

自由软件开发的模块化理论解释与启示

自由软件开发的模块化理论解释与启示

 

  

  【关键字】自由软件;模块化;公共物品;博弈

  【摘要】本文以/为例讨论了源代码的内部结构在自由软件开发中所起的重要作用。

为此,我们考虑了源代码的模块化属性。

源代码的模块化将直接影响开发者是否参与对自由软件的开发。

基于模块化的自由软件开发不仅实现了劳动的分工,同时也实现了劳动价值的分割,在自由软件的开发过程中较好地解决了搭便车问题。

同时,模块化理论对我国发展软件产业也有一定的借鉴作用

  一、引言

  在计算机工业的初期,软件是硬件的附属品。

企业只是卖硬件,随系统赠送软件。

在这_时期,软件的设计思想,新的算法和软件的源代码在专家、学者和公司研究人员之间相互交流,促进了软件的迅速发展。

但是,企业很快认识到软件的价值,对软件实施了版权控制,并限制了源代码的发布。

同时,软件的开发方式也发生了变化,变成以商业企业为主体的封闭的开发模式。

系统是其中最典型的例子。

在发展的早期,源代码是可以自由拷贝的,每个人都可以借鉴他人的思想,以完善程序。

但是,随着软件产业的发展,年公司对具有独立知识产权的操作系统——×申请了专利,软件被贴上了版权标识,也被强制实施版权控制,阻止了程序员之间的交流与合作,一些优秀的程序员也相继离开实验室,去各个公司任职。

商业企业对软件的知识产权保护成为其他厂商进入相关市场的“壁垒”,在没有替代产品特别是系统软件的情况下就形成了事实上的垄断。

年,在麻省理工学院的支持下,在计算机界掀起了﹁场数字改革运动——自由软件运动。

从此,自由软件得到了蓬勃的发展,成为软件开发者们非常关注的热点。

  自由软件是指允许任何人使用、复制、修改、分发包括再分发修改过的版本,而且提供全部源代码的软件。

自由软件的源代码可以免费获得,是一种典型私人提供公共物品的经济现象。

成千上万的“志愿者”参与了诸如操作系统、网页服务器、邮件服务器等大型复杂软件的开发,并且这些软件的质量例如,性能和稳定性要优于一般的商业软件。

显然,传统经济学难以对自由软件的成因做出有说服力的解释。

传统的经济学理论认为,在产权不清晰的情况下,私人代理面临着严重的“搭便车”及外部性问题,对于信息产品往往会出现严重的投资不足现象;私人代理参与公共物品的开发是无效率的,,并且自由软件的开发者仅得到其所开发软件的私人收益,并没有从其他消费者那里得到任何补偿。

由于得到的仅仅是私人收益,按照传统经济学的逻辑,自由软件开发者所付出的努力会远小于社会的最优数量。

另外,商业企业所开发的标准化软件产品能够累积不同消费者的需求,这样就可以弥补大量的开发成本;相对于自由软件开发者来说,商业企业倾向于做更多的投资,开发更好的产品,满足更多消费者的不同需求。

  关于开发者参与自由软件开发的动机问题的研究已引起经济学家们广泛的关注。

等从劳动经济学和产业组织理论的角度展开了分析,认为自由软件开发的动机主要是出于对自身的职业发展以及得到公众的赞誉等方面的考虑,,。

与等系统分析了开发者加人自由软件开发的激励问题,主要包括:

①诱发商业企业比如,软件开发商持续不断地改进。

自由软件的开发者会把自己的创新之处免费提供给商业企业,从而商业企业可以对此做出改进并投人市场。

②互惠与声誉效应。

自由软件开发者向他人展示自己的创新之处,这就形成了一种互惠环境,其他的开发者也会倾向于发布自己的创新之处。

对于最初发布创新的人,则会得到公众的赞誉。

③较弱的竞争条件。

竞争在自由软件开发者之间是相对比较弱的,向他人公开自己的源代码并不会对自己造成很大的损害,,。

关于此问题更多的讨论可参考达尔构建的一个关于管理自由软件开发项目的理性代理人行为模型,,。

自由软件开发模式一个很重要的优势就是拥有一个强大的人才库。

成千上万的开发者可以参与这个项目的开发。

受雇于一家商业企业的开发者数量毕竟是有限的。

更重要的是,自由软件顷月对于需要编写什么样的代码具有更好的知识优势。

在商业企业中,开发者并不能意识到用户所面临的所有可能的参数,。

关于自由软件开发的其他问题也引起了各个学科领域学者极大的兴趣。

主要包括:

分析自由软件和商业软件的竞争关系问题,;,,;,,自由软件的虚拟沟通机制,以及把自由软件作为一种复杂的公共物品。

  在经济学与管理学的理论研究文献中,模块化被看做是企业生产制造,;,、组织设计,,的一种新的范例。

软件产品可以被看做是由一系列具有特定功能的组件组成,作为一个完整的系统也可以被分解成一系列功能模块,这些模块之间的相互作用就形成了系统的所有功能,;,,。

所谓模块是指可组成系统的、具有某种确定独立功能的半自律性的子系统,可以通过标准的界面和其他同样的子系统按照一定的规则相互联系而构成的更加复杂的系统青木昌彦,。

每个模块的研发和改进都独立于其他模块的研发和改进,每个模块所特有的信息处理过程都被包含在模块的内部,如同一个“黑箱”,但是有一个或数个通用的标准界面与系统或其他模块相互连接。

国内的学者朱瑞博、陈向东、周鹏等人分别就价值模块的整合、模块化在知识管理、组织分析中的应用展开了讨论朱瑞博,,;陈向东,;周鹏,。

朱瑞博认为价值模块是产业融合的载体,模块化、产业融合不仅使生产结构基础改变了,竞争的基础也发生了改变。

青木昌彦则认为模块化是新产业结构的本质。

  为什么自由软件在某些市场上会表现得如此出色呢在以往探讨自由软件的文献当中,人们并没有就自由软件的内部结构进行讨论。

本文仅从自由软件源代码的内部结构这个角度来探讨这一现象。

自由软件的开发从其内部结构来看,往往具有模块化的特性。

在产品的模块化设计过程中,每个模块由不同的设计者单独设计完成,实现了劳动的分工。

同时,每个模块按照一定的标准界面与系统中的其他模块统一起来,其单独的研发与改进并不影响系统中其他模块的运行,从这个意义上来讲,模块化也实现了产品开发过程中劳动价值的分割。

本文首先从一个简单的博弈模型开始,结合/开发的历程,分析了自由软件源代码内部结构的模块化属性在软件开发中所起的重要作用。

在此基础上探讨了模块化理论在其他相关产业中的应用。

  二、自由软件开发的模块化理论解释

  对于某一个特定的理性开发者而言,在其做出是否参与某个自由软件开发的决策时,主要考虑两方面的问题:

一是参与自由软件开发的成本是什么二是具体的收益是什么参与自由软件开发对于开发者来说成本即为他们所花费时间的机会成本。

从开发者的收益上来讲,参与自由软件开发,可以从多方面得到非货币的补偿。

例如,系统管理员可以通过解决所使用开放源代码软件的,从而提高整个网络的绩效,,;开发者可以通过自由软件的开发,得到一个很好的声誉,从而为个人将来的职业发展奠定基础。

  自由软件代码的一个基本特征是具有非竞争性。

这就意味着一个开发者在使用代码的时候并不影响其他的开发者或者其他群体来使用这些代码。

任何一个局中人所做的努力对其他局中人来讲都具有正的外部性,这种外部性并不由局中人的主观愿望所决定。

这是一种典型的公共物品的私人提供。

约翰逊曾经把这种博弈形式运用到自由软件的开发过程中,分析了福利、努力程度以及成本对开发者数量的影响,。

在约翰逊分析的基础上,下文首先从一个简单的博弈形式出发来分析模块化特性在自由软件开发中所起的重要作用。

  一个简单的理论模型

  为了分析模块化在自由软件开发过程中所起的重要作用,我们首先考虑一种简单的情形,即自由软件内部结构及其开发过程中不存在模块化现象。

任何一个开发者都需要一个具有特定功能的软件代码,任何一个开发者都可以选择参与该软件的开发或者不参与。

在这种情况下,所需要开发的源代码是不可分割的,也就是整个系统的价值并没有被分割。

  代码的开发对任何一个开发者的价值均为ν,成本为。

也就是说当ν的时候,任何一个开发者都有进行源代码开发的动机。

由于自由软件的特性,任何一位开发者只要完成了代码的开发,就会选择把代码向其他人公开,但是并不会影响自己的价值。

基于上述的表述,我们可以得出:

任何一方都没有权力阻止另外一方开发或者使用源代码:

当一方已经开发好源代码之后会自动地向另外一方公开。

如果只有两个开发者,其博弈矩阵表述如图。

  对于参与博弈中的两个开发者而言,他们可以自由选择是否参与该系统的开发。

如果选择参与开发,则其收益为ν;如果选择搭便车,则其收益为ν。

当然,如果双方都选择不开发这样的系统,对于一个开发者来讲其收益都为。

我们可以非常轻松地得到这个博弈矩阵具有两个纯策略下的纳什均衡:

如果一个开发者选择开发,另外一个开发者就选择不开发“搭便车”。

从社会效率上来讲,这两个均衡都是有效的,处于该均衡下,集体收益均大于其他情况下的集体收益。

但同时这样的均衡却是不公平的,存在严重的“搭便车”现象,选择“搭便车”可得的。

的收益将明显大于参与自由软件开发者的收益ν。

按照传统的经济学理论,像这种公共物品的私人提供现象必然会导致公共物品的供给不足或者过度使用现象。

这与像这样的自由软件蓬勃发展的情形不符。

接下来我们将从自由软件源代码的内部结构出发来讨论这种现象。

  理论模型中加入模块化结构

  在自由软件的模块化开发过程中,把一个源代码的结构分割成一个元系统和一系列的模块。

元系统指的是一个能够保持系统运转的最小的系统。

模块是一个较大系统的独特的部件,它能够由设计者独立设计出来,同时又可以作为一个整体在系统中运转。

把一个大系统切割成互相独立的不同的小系统,可以使一些并不是经常见面的开发者减少必要的交流次数。

另外,一个旧版本的模块可以被新版的模块所替换,同时却又不影响整个系统的运转。

这样,在新模块中所增加的功能就可以及时在现存的系统中体现出来,同时也不需要更改系统中的其他模块。

  在传统的软件开发过程中,源代码是不可以分割的即软件开发过程中有时候也会存在劳动的分工,但是却没有实现劳动价值的分割。

代码内部所隐含的结构形式并不具有模块化的特征。

在模块化的自由软件开发过程中,已经存在的最小系统元系统或者内核具有模块化特性,在这种情况下任何一个模块都可以独立地进行开发。

由于初始的内核已经存在,由于一个模块的失败并不会对其他模块的价值造成直接的影响。

因此,在这种情况下,不仅劳动得到了分工,每个开发者创造的价值也实现了分割。

  为了表述的需要,我们对自由软件的模块化开发过程做如下的假设:

①由于像这样的自由软件开发过程中,元系统也就是内核已经存在。

但是只有元系统的软件却没有任何的价值,就像有了操作系统而没有应用程序一样,为了方便起见,在分析过程中我们假设元系统的价值和成本均为;②整个系统由两部分组成:

个元系统即内核和个模块,在整个源代码的开发过程中有个开发者其中有个开发者参与了系统的开发,≤;③系统的价值和成本在所有的模块中平均分配,即每个模块的价值为其成本为也就是说每开发一个模块,系统增加的价值为增加的成本为④在此过程中,任何一个开发者开发的模块都会与其他人共享。

  对于某一个软件开发者来说,如果选择参与自由软件的开发,其净收益为

  ()

  如果选择不参与自由软件的开发,其净收益为

  ()

  因为,显然有。

即在基于模块化的自由软件开发过程中,一个理性的开发者会选择参与自由软件的开发。

这样就较好地解决了“搭便车”的问题。

  出于问题的简化,我们只考虑在自由软件的开发过程中只有个开发者、个模块的情形。

对于每个开发者而言,可以选择参与开发或者不开发模块。

如果某一个开发选择参与开发模块,其同样也可以选择开发模块或者开发模块。

基于以上的假设,该博弈矩阵的表述如图。

  在该博弈中,由于只有个开发者、个模块,所有任何一个模块的价值为ν,参与开发任何一个模块的成本为。

两个开发者参与开发相同的模块,其得到的收益均为ν,如果两个开发者选择开发不同的模块,其得到的收益均为ν。

如果其中一个选择了搭便车,其得到的收益均为ν因为,此时整个系统的价值只有ν。

  如图所示,该博弈也同样存在两个纯策略下的纳什均衡:

两个开发者同时都会参与自由软件的开发,但是他们会开发不同的模块。

也就是说,如果一个开发者选择开发模块,另

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1