软件生态系统初探:概念解析及生命周期模型

2011-04-12 11:19:29孙连山
陕西科技大学学报 2011年3期
关键词:开发者生命周期解决方案

孙连山,李 健

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

0 引 言

大规模定制(Mass Customization)[1]商业模型要求在不显著提高生产成本的前提下,大规模生产个性化的产品,满足不同用户的个性化需求.为了实现大规模定制模型,软件产业效仿传统制造业,采用了软件产品线方法[2].软件产品线方法指导企业围绕具有相似功能的一组产品所构成的产品线开展软件开发活动,如建立领域模型捕获产品线的共性和变化性特征以及定制领域模型导出满足个性化需求的新产品等,适用于单个软件企业内部的软件开发和复用.然而,随着软件系统的用户群体与日俱增且逐渐分化,单个软件企业无法预测不同类型用户对软件产品的潜在需求,也没有足够的人力和物力及时演化产品线满足用户不断变化的需求.为了取得并维持竞争优势,一些软件企业将其所维护的软件产品线以某种形式开放给第三方开发者,允许外部开发者对其产品进行二次开发,满足用户的个性化需求,例如,Linux操作系统、Eclipse开发平台、FireFox浏览器等等.这时,软件企业及其产品、第三方开发者及其解决方案以及最终用户一起构成了一个相互作用的复杂系统.单个软件企业不能完全控制该系统,大量的第三方开发者与软件企业一起分担满足层出不穷、不可预测的用户的个性化需求的任务.软件工程学科借鉴生物学中“生态系统”的概念,引入所谓“软件生态系统”来刻画这种复杂系统的特性.本文将介绍软件生态系统的概念、分类并给出一个软件生态系统的生命周期模型.

1 概念与分类

实际上,研究者早就将生态系统的概念引入到了经济学领域,形成了商业生态系统(business ecosystems)的概念.所谓商业生态系统是指一群相互连结,共同创造价值与分享价值的企业[3].软件生态系统本质上是商业生态系统在软件产业中的特殊具现.

Bosch等[4]将软件生态系统定义为“使能相关生产或生活中的各种用户的活动和交易的软件解决方案以及提供这些解决方案的组织所共同构成的复杂系统.”强调软件生态系统主要包含两个方面的成分,分别是软件解决方案以及提供这些解决方案的组织,但未刻画这些组织之间、以及相应的解决方案之间的关系.

Campbell等[5]将生态系统定义为“打破开发团体之间交流的屏障,允许多个开发团体进行协作和互操作的一个复杂系统.”强调软件生态系统区别于传统开发方式的特点就在于突破了不同开发团体之间的交流屏障,但没有明确地表述组织软件解决方案在软件生态系统中的地位.

Kittlaus等[6]将生态系统定义为“不同的法律上独立的、能够促进软件产品创造更大的经济效益的企业所共同构成的一个非正式的网络.”该定义强调了构成软件生态系统的各个组织的特点,即法律上独立且能够促进软件产品创造更大的经济效益.

Jansen[7]等认为软件生态系统是“多个角色以及它们之间的关系,这些不同的角色协同工作,相互影响,共享软件和服务市场.”该定义强调了组织之间的关系是相互协调、影响且共享市场.

综上所述,研究者分别从软件生态系统中的开发组织、组织间的关系以及他们的特点、软件解决方案、市场环境等不同侧面刻画了软件生态系统的特点,给出了不同的定义,但仍然没有一个广泛认可的定义.我们认为,软件生态系统是“遵循各自商业模型、共享市场的各类组织在生产和消费各种软件制品和服务满足不断演化的用户需求的过程中所形成的复杂系统.”区别于软件产品线,软件生态系统更强调多个组织的协作,其中的软件解决方案也可能覆盖不同的功能区域.软件生态系统具有动态性,其边界和内部结构可能随时发生变化,其演化的动力可能来自生态系统内部,也可能来自生态系统外部.软件生态系统具有层次性,较大软件生态系统中可能包含较小的软件生态系统.

软件生态系统的内涵丰富、种类繁多,对其进行有效地分类能够帮助人们认识和管理软件生态系统,如,Bosch等[4]根据软件生态系统中软件产品的类型以及所依赖的计算平台将软件生态系统组织在一个二维空间中,如表1所示.其中计算平台包括桌面计算、web计算和移动计算等3类,而系统类型则可分为系统软件、应用软件、终端编程系统等3个类别.该分类与软件类型、计算平台等众所周知、广泛认可的分类体系结合,简明直观.

事实上,软件生态系统分类方法多种多样.例如,还可根据软件生态系统中供应商所构成的软件供应网的结构特性对软件生态系统进行分类,指导研究者进行软件生态系统管理、规划、评估和监控等方面的研究.例如,对于简单的软件生态系统,可能仅有少数软件供应商进行有计划的深度协作开发、对于较复杂的软件生态系统则可能允许相互独立、甚至互不了解的软件开发商协作完成各自的目标.又如,可根据软件生态系统中软件产品之间的结构关系进行分类,指导开发者进行软件生态系统的设计、实现和管理研究.例如,软件生态系统可能是单个企业将其产品的编程接口向第三方开放的结果,而有些软件生态系统则可能是不同企业对标准规范的不同实现所构成的.

2 软件生态系统的生命周期模型

软件工程研究的一个重大贡献就是明确地划分了软件生命周期中的不同阶段.例如,单个软件产品的开发活动包括需求分析、概要设计、详细设计、实现、测试以及维护等6个阶段;而软件产品线的开发活动大致分为领域分析、领域设计、领域实现等不同的阶段.类似地,软件生态系统也有其产生、发展和消亡的过程.明确各阶段的主要目标和任务有助于企业在软件生态系统中更好的生存和发展.

如图1所示,我们将软件生态系统的生命周期分为3个阶段,分别完成系统分析、核心平台及管理框架的开发、第三方软件解决方案的开发以及核心平台、管理框架和第三方解决方案的维护和演化.

首先,在系统分析阶段,已经在市场竞争中获得一定成功的软件企业为了确立未来的竞争优势,需要对市场进行调查和分析,着重分析不同用户群的个性化需求以及现有软件产品满足这些个性化需求时所存在的差距,最终做出在企业内部演化产品或向软件生态系统迁移的决策.一旦做出向生态系统迁移的决策,企业需要制定迁移策略和原则并制定生态系统管理策略.

其次,软件企业需要在企业内部软件产品线的基础上构造软件生态系统赖以存在的核心软件平台,并联合可能的涉众完成管理框架的分析、设计和实现任务.核心平台的设计和实现本质上对产品线的重构,第三方提供编程接口.而最初的管理框架大都由核心软件平台开发商提供且集成在平台中.

第三,第三方开发者将分析用户的个性化需求并采用基于复用的软件开发方法,着重考虑开放平台所带来的约束进行相应的第三方软件产品的分析、设计、实现、测试和部署工作.与此同时,核心平台和管理框架以及平台上的其它第三方软件产品均可能独立演化.值得注意的是,第三方解决方案在部署之前必须通过相应的认证,确保其满足平台所要求的质量规范.

3 结束语

软件生态系统的概念被提出以实现大规模定制的商业模型.本文介绍了软件生态系统的概念和分类及其生命周期模型.后续工作包括对软件生态系统需求建模和管理技术以及软件生态系统构建方法和相关支撑工具的研究.

参考文献

[1] Da Silveira, G., Borenstein, D., Fogliatto, F.. Mass customization: Literature review and research directions[J]. International journal of production economics, Elsevier, 2001, (72): 1-13.

[2] Pohl, K., B ckle, G., Linden, F. J. Software Product Line Engineering: Foundations, Principles and Techniques[M]. Springer-Verlag New York, Inc, 2005.

[3] Iansiti, M., Levien, R.. The Keystone Advantage: What the New Dynamics of Business Ecosystems Mean for Strategy, Innovation, and Sustainability[M], Boston, MA: Harvard Business School Press, 2004.

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

[5] 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.

[6] Kittlaus, H.-B., Clough,P. N. Software Product Management and Pricing: Key Success Factors for Software Organizations[M]. Springer Publishing Company, 2009.

[7] S. Jansen, S., Brinkkemper, A.. Finkelstein. A Sense of community: A research agenda for software ecosystems[C]. In Proceedings of the 31st International Conference on Software Engineering, New and Emerging Research Track, pp. 187-190, 2009.

猜你喜欢
开发者生命周期解决方案
动物的生命周期
全生命周期下呼吸机质量控制
解决方案和折中方案
简洁又轻松的Soundbar环绕声解决方案
从生命周期视角看并购保险
中国外汇(2019年13期)2019-10-10 03:37:46
民用飞机全生命周期KPI的研究与应用
16%游戏开发者看好VR
CHIP新电脑(2016年3期)2016-03-10 13:06:42
4G LTE室内覆盖解决方案探讨
iOS开发者调查
电脑迷(2015年8期)2015-05-30 12:27:10
iOS开发者调查
电脑迷(2015年4期)2015-05-30 05:24:09