APP下载

软件生态系统的角色模型和质量模型

2011-02-20孙连山

陕西科技大学学报 2011年2期
关键词:软件厂商开发者解决方案

孙连山, 李 健

(陕西科技大学电气与信息工程学院, 陕西 西安 710021)

0 引 言

随着软件复用技术的广泛应用、市场竞争的加剧,软件开发方式也随之悄然改变.很多软件厂商(Software Vendor)不再单独完成某个软件产品的全部开发任务,而是通过诸如软件或服务外包、复用或定制商用软件构件和框架、集成开源代码等各种不同的方式将软件开发过程中的一部分工作交给其它厂商完成.这种情况下,软件厂商不再单独存在,而是存在于一个相互依赖的软件厂商所构成的复杂网络之中,这种由多个组织构成的复杂网络以及维系他们联系的软件产品或服务构成了所谓的软件生态系统[1,2].为了在软件生态系统中获得竞争优势,软件厂商需要正确地评价软件生态系统的质量,明确自己的角色和责任,制定正确的策略和战略.本文借鉴自然生态系统的概念,对软件生态系统概念进行了剖析,指出软件生态系统中不同角色的期望和目标,并给出了一个软件生态系统的质量模型,为不同角色理解、评价和管理软件生态系统奠定了理论基础.

1 软件生态系统的角色模型

Bosch等[1]将软件生态系统定义为“使能相关生产或生活中各种用户活动和交易的软件解决方案以及提供这些解决方案的组织所共同构成的复杂系统.”Campbell等[2]将生态系统定义为“打破开发团体之间交流的屏障,允许多个开发团体进行协作和互操作的一个复杂系统.”生态系统的概念源于生态学,它是由生物群落和与之相互作用的自然环境以及其中的能量流动构成的系统.Dhungana等[3]指出现有软件生态系统的定义没有深入探讨软件生态系统和自然生态系统的概念内涵之间的映射,仅仅将构成软件生态系统的各类组织对应为生物群落,强调了生物群落和生物群落之间的相互作用,而没有讨论组织所处的环境以及组织之间能量流动的方式[3],如可将自然生态系统中构成自然环境的水、光、空气、土壤等有限的、可消耗的资源类比为软件开发所必需的资金、时间、人员等由组织商业模型所决定的开发投入,而将自然生态系统中的能量流动类比为不同组织之间知识的传递.Dhungana认为两类生态系统的不同之处在于知识是不会在流动过程中消失的,知识从 A 流到 B,则B获得了新知识,但A的知识却没有减少.Dhungana虽然对自然和软件生态系统进行了深入的对比,但没有给出明确的定义.我们认为软件生态系统是“遵循各自商业模型、共享市场的各类组织在生产和消费各种软件制品和服务满足不断演化的用户需求的过程中所形成的复杂系统.”此定义蕴有4层含义,首先,软件生态系统必定跨越多个组织的边界,强调多个组织的相互协作,这是与传统的软件产品和软件产品线开发方法的一个显著区别;其次,软件生态系统中各组织间的依赖关系是围绕生产或消费承载着相关知识的软件制品和服务展开的;第三,各个组织所遵循的商业模型决定了它们生产或消费知识的方式;第四,这些组织共享市场,能够针对市场中用户需求的演化进行适应性调整,否则若软件生态系统中的软件制品和服务逐渐不再满足用户的需求,则其将逐渐老化乃至死亡.

各个组织相互协作和竞争,共同为软件生态系统吸引更多的用户和第三方开发组织、创造更多的价值而努力.在此过程中,各组织所扮演的角色不同,相互之间协作的形式也多种多样.下面分析软件生态系统的角色模型.

(1) 核心平台开发和维护者.现有的软件生态系统,如Windows生态系统、Linux生态系统、Eclipse生态系统等等均从一个核心软件发展而来,这个核心软件通常被称为平台.很多软件开发厂商取得第一步成功之后(占有市场,吸引大量用户),为获得更大的持续性的成功,开放平台的编程接口,允许第三方开发者扩展平台构造满足特定用户群体需求的解决方案,从而形成了软件生态系统.因此,软件生态系统中的核心平台往往是软件生态系统诞生的基础.核心平台的开发者所生产的知识将供所有第三方开发者和用户消费.

(2) 第三方软件解决方案开发商.由于核心平台开发者开放了编程接口,第三方开发者能够针对核心软件的用户群进行研发,对核心软件进行扩展,为核心软件的用户提供更多的价值.第三方开发者需要了解核心软件的编程接口,甚至系统架构才能对核心软件进行合理的扩展,开发出符合规范、保证质量且满足用户需求的解决方案.对第三方开发者而言,核心软件的开放性、长期发展规划、技术支持等都是影响其加入软件生态系统并良好发展的关键因素.反过来,第三方开发者的需求也将反馈到平台开发者,促进其对平台的升级和改造.

(3) 软件生态系统策略和战略制定者.软件生态系统所包含的各类组织具有自主性,这些组织相互协作或竞争实现各自的目标.这种协作和竞争需要遵守一定的策略或原则,才能有助于软件生态系统的发展和壮大,否则可能造成恶性竞争,最终导致软件生态系统的衰落.可能的策略或战略包括如何实施标准化活动、如何认证第三方开发者交付的软件解决方案,是否设立固定的交付渠道,是否为软件生态系统中的成员提供价格优惠、如何组织软件生态系统的成员会议实行民主决策等等.软件生态系统中的一些特殊成员承担着制定这些策略或战略的任务,称为策略制定者.例如Eclipse联盟的成员,在一定程度上共同负责制定Eclipse社区所必须遵守的策略或规则等.策略制定者需要能够评估各种策略对生态系统健康发展的作用.

(4) 软件生态系统管理框架的开发和维护者.软件生态系统中的各种软件解决方案由不同的开发者独立开发和管理,但却往往需要相互配合、集成在一个应用当中服务于用户.不同的用户均需要对产品进行定制和配置,选择不同的特征.因此,软件生态系统的解决方案在发布供用户使用之时均需要配置有公共管理框架,如Firefox和Eclipse的插件管理机制,Windows的应用程序安装和卸载工具等等.一般,软件生态系统管理工具是核心产品的一部分,但也有些第三方的管理工具.

不同厂商可能同时在一个软件生态系统中扮演多个角色,也有可能从一个角色转化到另外一个角色.例如,第三方软件开发者若开发出扩展性较强的产品,则有可能转化成为一个新的软件生态系统的核心软件平台开发商.

2 软件生态系统的质量模型

软件生态系统将不同的软件厂商协同起来,为用户创造价值.软件厂商必须学会如何在生态系统中生存、发展和壮大.而其前提是对软件生态系统的认识和评价.本节初步讨论了软件生态系统的质量模型.

类比自然生态系统,软件生态系统最重要的质量就是可持续性[3](Sustainability),即意味着其能够持续提供用户所需的价值,能够维持一定规模的用户和第三方开发者,保证一定的市场占有率.借鉴软件质量模型[4]的设计经验,可以将软件生态系统的质量模型组织为一个层次结构,如图1所示.

软件生态系统的可持续性依赖于众多组织的紧密协作、市场需求、及时为用户提供更多、更好、价格更低的功能和服务.根据第一节给出的软件生态系统的定义,可以从商业模型、产品和组织协作等3个方面对软件生态系统进行评价.图1将软件生态系统的可持续性可进一步分解为商业质量模型、产品质量模型和协同质量模型.

图1 软件生态系统质量模型

软件生态系统的商业质量模型主要考察软件生态系统中的产品与主流商业模型的一致性、软件生态系统的规模和多样性、市场占有率等,如产品升级计划是否适应市场变化,最大限度地提高用户的粘度.

软件生态系统的产品质量模型则考察软件生态系统中各类软件解决方案的质量,除单个软件产品所必须具备的性能、安全、易用性、可靠性等质量属性之外,软件解决方案还须具有高度的可组装性和开放性,不但允许用户灵活地选择不同的软件解决方案组合扩展核心软件平台实现其个性化的需求,也为第三方开发者进一步扩展各个解决方案发展子生态系统奠定基础,如Eclipse中EMF[5]就是开放性较强的第三方解决方案, Eclipse生态系统中已经形成了以EMF为核心的子生态系统.

软件生态系统的协同质量模型主要考察软件生态系统在支持多个开发团体协作方面的能力,如开发团体之间协同的灵活性、协同过程的成熟度、协同中是否支持民主决策、协同中出现问题的反馈周期、以及鉴定第三方开发者所发布软件解决方案的认证服务和发布管理服务等等.

3 结束语

作者从软件生态系统的概念入手,分析了软件生态系统的角色模型,并给出了一个评价软件生态系统的质量模型,为不同的组织评价软件生态系统奠定了基础.

参考文献

[1] Bosch, J. From software product lines to software ecosystems[C]. Proceedings of the 13th International Software Product Line Conference, 2009:111-119.

[2] Campbell, P. R. J., Ahmed, F. A three-dimensional view of software ecosystems[C]. Proceedings of the Fourth European Conference on Software Architecture: Companion Volume, ACM, 2010: 81-84.

[3] Dhungana, D., Groher, I., Schludermann, E.,etal. Software ecosystems vs. natural ecosystems: learning from the ingenious mind of nature[C]. Proceedings of the Fourth European Conference on Software Architecture: Companion Volume, ACM, 2010: 96-102 .

[4] B. Boehm. Characteristics of software quality[M]. North-Holland, 1978.

[5] Dave Steinberg, Frank Budinsky, Marcelo Paternostro,etal. EMF: Eclipse Modeling Framework, 2nd Edition[M]. Addison-Wesley Professional, 2008.

猜你喜欢

软件厂商开发者解决方案
解决方案和折中方案
简洁又轻松的Soundbar环绕声解决方案
“85后”高学历男性成为APP开发新生主力军
16%游戏开发者看好VR
4G LTE室内覆盖解决方案探讨
栝楼产业开发者谢献忠
Moxa 802.11n WLAN解决方案AWK-1131A系列
IT应用要从懵懂中醒来
移动设备要拼“软实力”
工业软件合作并购潮起