开放源码的基本思想很简单,最初由于计算机硬件造价昂贵,许多公司认为计算机软件不值钱,将其仅看作是整个计算机的附属产品。因此,当时网络上的程序员可以任意阅读、重新分布和修改软件的源码,也正因为此才使得软件业得以飞速的发展。
然而,随着计算机硬件成本的不断下降,软件在整个计算机系统的成本中占有越来越高的比例,如何提高软件开发生产率、降低成本、提高质量是整个计算机软件行业的重大课题。按照传统封闭的开发模式,只有很少一部分程序员能够看到源代码,其他任何人只能使用不透明的二进制软件,这使得程序源码中的大量潜在错误难以被及时发现和消除,造成巨大的维护费用。
开放源码主要目标就是提高软件质量,其方法就是通过开放源代码以获得广泛的对等评审及用户测试效应。与传统的封闭开发模式相对,传统模式采取严密组织的开发队伍(如同构筑大教堂的组织模式),开放源码则是由分散的发烧友通过Inte.net组成的开发队伍进行组织(如同市集的组织模式),这就是开放源码社区领袖Eric Raymond在其著名的《大教堂与市集》一文中提出的论点,Linux的开发就是“市集模式”的成功典范,也从实践上说明“市集模式”能够开发出可用性优于“大教堂模式”的软件。
然而,“市集模式”也并非万能,Eric Raymond指出了市集模式成功运用的先决条件,包括包括开放源码项目工程领导人的资格问题和在把项目公开和开始建造一个协作开发人员的社团的时候代码的状态。可以认为,不能以一个市集模式从头开发一个软件,可以通过市集模式进行测试、调试和改进,但是以市集模式从头开始一个项目将是非常困难的,初期的开发人员的社团应该有一个可以运行和测试的东西来玩,尽管它可以很粗糙、很笨拙、不完整和缺少文档,但不能忽略的东西是要吸引哪些人卷入一个整洁的项目。同时,“市集模式”的成功依赖Internet和控制版本进化的领导者(例如Richard Stallman,Linus Torvalds)。作为项目领导者而言,能够提出卓越的原始设计思想不是最关键的,最关键的是要能把从他人那里得到的好的设计重新组织起来,同时必须有良好的人际和交流能力,必须能够吸引他人共同建造一个开发社团。
与开放源码紧密相关的是所谓自由软件运动,后者的主要目标是使得开发的软件是Free(是自由,freedom,不是免费的意思)的,它们之间最简单的区别是各自的优先权不同,在此不对二者区别进行更深入的哲学讨论。在开放源码/自由软件思想下已经积累了相当一批财富,包括操作系统级、平台软件级、甚至应用级的源程序已经被放在网站上,供软件爱好者自由使用。尽管目前软件业的主要商业模式是以出售拷贝为基本商业基点的,但这种商用软件的思路目前正逐渐被开放源码、以服务和培训为商业获取利润的思想所取代。而且,开放源码软件可以把很多人的智力集聚到一起,尤其既有利于基础软件教育事业,又可以加快高质量的共性软件发展。因此,开放源码思想已经受到来自政府、企业、科研教育机构的高度关注,随着大量人力物力的不断投入,开放源码软件正在逐步走向工业化。
但是,开放源码也带来了一些新的问题,由于完全本着自愿的原则,任何人都可以自由参与开源软件的开发,也可以将自己编制的软件放到网上让别人共享,因而软件版本如何管理、质量如何保证、软件错误如何跟踪和修正等都摆在人们的面前。同时,开放源码的测试、整理与推广也是一个比较重要的任务。可以认为,将开放源码思想与传统的软件工程进行有机结合将对未来软件业的发展产生深远影响,也将为软件质量提高工作探索新的途径。
文章来源于领测软件测试网 https://www.ltesting.net/