联系我们contact

电话:027-59760188-801

地址:武汉市东湖高新开发区光谷大道120号现代森林小镇A座609室

如何挑选免费开源软件

发布时间:2018-07-05 浏览次数:362次

在科研及其他领域,挑选免费开源软件变得越来越流行。在通常人们的概念里公司用户更倾向于使用商业化的软件,而研究机构更喜欢挑选开源免费的。最根本的原因还是缺钱。

然而,为特定的业务需求挑选一款最适合的软件本身并不是一件容易的工作。很多人会对着一堆种类繁多的清单不知所措。本文的目的就是要给大家理一理思路,看看在选型的过程中要注意些什么,避免脑瓜一热就上了个系统,用着用着发现自己给软件绑架了,从而陷入用也不是不用也不是的两难境地。读者可以根据自己的实际情况,结合我们介绍的通用选型程序,对软件进行更深入的评估,在充分考虑得失风险的前提下选择最适合的软件。

目前在SourceForge.net上有超过30万的开源免费软件,种类涵盖了各个方面;而在github上更是有超过1000万的库,用户可以十分轻易地找到海量的开源代码。例如用户需要搭建实验室信息管理系统(LIMS),办公系统,文档管理系统都可以找到免费的资源。早几年的时候SourceForge更火一些,而这几年相对github要人气旺一些。当然能够很好利用这些资源前提是有一定的英文水平,如果英文差点,也可以访问国内的开源中国社区练练手。
http://git.oschina.net/

知道了这海量的免费的资源可以利用,是一件幸福而烦恼的问题,很多时候我们并不知道如何去挑选,因为这类软件一般只有开发者提供的简短的描述,并没有一个详细的说明。

这里要做的第一步是要想清楚要解决的核心问题是什么,对症下药才能挑出适合的软件。

从自身需求出发定义好系统需要有哪些功能,其中哪些功能是必须的,哪些功能是有更好的。

对于哪些可有可无的功能可以通过对软件的深入了解进行打分,例如完全满足打2分,部分满足1分,不满足0分。这样就可以针对不同的软件有个量化的评价。

功能是基础,在满足的前提下我们还需要考虑系统的其他因素:

 

    ●    软件成本


对免费开源软件来说,软件授权费用是没有的,但是并不代表没有其他的花销。针对成本我们可以从下面几个方面考虑:

         1. 软件支持维护的成本,如果软件本身需要很多的维护工作,那实际上持续投入的成本是不低的,还有维护人员离职造成无法很好使用的风险。

         2. 硬件成本。有软件一般就得买服务器,服务器用什么CPU,内存,硬盘空间都得考虑。还有的软件需要商业数据库,那用什么数据库(Oracle, SQLserver)这些都得考虑。

         3. 培训的成本,这点其实是很重要的,很多考虑免费开源软件的人会忽略这点,如果软件本身很难上手,需要使用者通过大量的培训才能上手,那这些花在培训时间上的成本其实也是软件成本的一部分。


    ●    流行程度


如果选择一款主流的免费开源软件相对的风险会小些。总的说来,用的人多系统一般会好些,而且用户基础好的此类软件相对bug少,也方便找到其他用的人交流心得,从而更好的评价软件的优劣点。例如科研中常用的免费开源软件R就是此类软件中的典型。

    ●    产品支持及维护


包括用户使用手册,系统管理员手册,应用开发人员手册,系统设计手册,是否有数据库表结构详细说明(针对有数据库的系统),产品支持是由产品开发团队支持还是有独立的组织支持。如果出现内部解决不了的问题,有没有商业化的产品支持, 如果有,收费多少,是通过远程还是可以现场技术支持。

    ●    可靠性


在选型的时候往往会忽略,在追求系统功能全的前提下,可靠性会影响用户的使用和数据的安全性。对C/S架构而已,还要考虑与其他软件的兼容性,B/S架构,要考虑在断网的情况下,再恢复需要的时间,以及内容会不会丢失。

    ●    性能


最终用户对性能的要求是很高的,如果速度太慢,很多用户就会不愿意使用。这一点在前期调研以及小规模试用的情况下很难发觉。对性能要从多方面考虑,有的软件性能差是由于软件本身设计的问题,可能在人少的情况下没问题,但人多就会有瓶颈。有些则可能考虑要增加硬件配置,例如增加客户端电脑配置或者增加服务器端。

    ●    可扩展性


随着业务的发展,很多时候软件需要增加新功能或者和其他系统做整合,有些软件由于本身的限制很难进行扩展。这时候可能就会需要换系统,所有在早期我们就应该考虑在未来5年内软件可能扩展的内容及方向。

    ●    易用性


易用性本身就信息量很大,不光是指软件能用,而且是指好不好学,好不好用。所有的用户都喜欢简洁的界面,一看就会用最好了。如果看培训文档是不是很容易上手,在软件内部的操作是不是很简便。

    ●    安全性


对组织来说,安全性是非常重要的,不光要预防信息的泄露,也要防止信息丢失的维修。如果有监管要求,软件是否符合法规。软件能否提供审计追踪的功能也是评价特定项目的重要衡量标准。

    ●    灵活性/可定制程度


对于免费开源的软件来说,很多人看中的是其灵活性,这里的灵活有三个层次去评价。

         1. 配置 – 在不涉及代码的情况下可以增加多少功能,配置的过程是否简单。配置一般来说对未来升级影响不大。

         2. 定制化 – 这会涉及到应用中的一些代码的修改,很多应用会有自己的一套类似脚本语言的编辑代码帮助用户进行一些功能的扩展。

         3. 可扩展 – 考察软件的API接口都提供哪些,在升级和扩展的情况下这些接口是否够用,是否稳定。

最终对以上提到的这些注意点根据项目的特点分配不同的权重,进行评分,这样就能够比较客观的对软件进行评价了。当然这只是一个通用的选型思路,读者可以针对不同的项目进行适当的修改,希望本文能给大家带来一些帮助。