孫連山,李 健
(陜西科技大學(xué)電氣與信息工程學(xué)院, 陜西 西安 710021)
大規(guī)模定制(Mass Customization)[1]商業(yè)模型要求在不顯著提高生產(chǎn)成本的前提下,大規(guī)模生產(chǎn)個性化的產(chǎn)品,滿足不同用戶的個性化需求.為了實現(xiàn)大規(guī)模定制模型,軟件產(chǎn)業(yè)效仿傳統(tǒng)制造業(yè),采用了軟件產(chǎn)品線方法[2].軟件產(chǎn)品線方法指導(dǎo)企業(yè)圍繞具有相似功能的一組產(chǎn)品所構(gòu)成的產(chǎn)品線開展軟件開發(fā)活動,如建立領(lǐng)域模型捕獲產(chǎn)品線的共性和變化性特征以及定制領(lǐng)域模型導(dǎo)出滿足個性化需求的新產(chǎn)品等,適用于單個軟件企業(yè)內(nèi)部的軟件開發(fā)和復(fù)用.然而,隨著軟件系統(tǒng)的用戶群體與日俱增且逐漸分化,單個軟件企業(yè)無法預(yù)測不同類型用戶對軟件產(chǎn)品的潛在需求,也沒有足夠的人力和物力及時演化產(chǎn)品線滿足用戶不斷變化的需求.為了取得并維持競爭優(yōu)勢,一些軟件企業(yè)將其所維護的軟件產(chǎn)品線以某種形式開放給第三方開發(fā)者,允許外部開發(fā)者對其產(chǎn)品進行二次開發(fā),滿足用戶的個性化需求,例如,Linux操作系統(tǒng)、Eclipse開發(fā)平臺、FireFox瀏覽器等等.這時,軟件企業(yè)及其產(chǎn)品、第三方開發(fā)者及其解決方案以及最終用戶一起構(gòu)成了一個相互作用的復(fù)雜系統(tǒng).單個軟件企業(yè)不能完全控制該系統(tǒng),大量的第三方開發(fā)者與軟件企業(yè)一起分擔(dān)滿足層出不窮、不可預(yù)測的用戶的個性化需求的任務(wù).軟件工程學(xué)科借鑒生物學(xué)中“生態(tài)系統(tǒng)”的概念,引入所謂“軟件生態(tài)系統(tǒng)”來刻畫這種復(fù)雜系統(tǒng)的特性.本文將介紹軟件生態(tài)系統(tǒng)的概念、分類并給出一個軟件生態(tài)系統(tǒng)的生命周期模型.
實際上,研究者早就將生態(tài)系統(tǒng)的概念引入到了經(jīng)濟學(xué)領(lǐng)域,形成了商業(yè)生態(tài)系統(tǒng)(business ecosystems)的概念.所謂商業(yè)生態(tài)系統(tǒng)是指一群相互連結(jié),共同創(chuàng)造價值與分享價值的企業(yè)[3].軟件生態(tài)系統(tǒng)本質(zhì)上是商業(yè)生態(tài)系統(tǒng)在軟件產(chǎn)業(yè)中的特殊具現(xiàn).
Bosch等[4]將軟件生態(tài)系統(tǒng)定義為“使能相關(guān)生產(chǎn)或生活中的各種用戶的活動和交易的軟件解決方案以及提供這些解決方案的組織所共同構(gòu)成的復(fù)雜系統(tǒng).”強調(diào)軟件生態(tài)系統(tǒng)主要包含兩個方面的成分,分別是軟件解決方案以及提供這些解決方案的組織,但未刻畫這些組織之間、以及相應(yīng)的解決方案之間的關(guān)系.
Campbell等[5]將生態(tài)系統(tǒng)定義為“打破開發(fā)團體之間交流的屏障,允許多個開發(fā)團體進行協(xié)作和互操作的一個復(fù)雜系統(tǒng).”強調(diào)軟件生態(tài)系統(tǒng)區(qū)別于傳統(tǒng)開發(fā)方式的特點就在于突破了不同開發(fā)團體之間的交流屏障,但沒有明確地表述組織軟件解決方案在軟件生態(tài)系統(tǒng)中的地位.
Kittlaus等[6]將生態(tài)系統(tǒng)定義為“不同的法律上獨立的、能夠促進軟件產(chǎn)品創(chuàng)造更大的經(jīng)濟效益的企業(yè)所共同構(gòu)成的一個非正式的網(wǎng)絡(luò).”該定義強調(diào)了構(gòu)成軟件生態(tài)系統(tǒng)的各個組織的特點,即法律上獨立且能夠促進軟件產(chǎn)品創(chuàng)造更大的經(jīng)濟效益.
Jansen[7]等認為軟件生態(tài)系統(tǒng)是“多個角色以及它們之間的關(guān)系,這些不同的角色協(xié)同工作,相互影響,共享軟件和服務(wù)市場.”該定義強調(diào)了組織之間的關(guān)系是相互協(xié)調(diào)、影響且共享市場.
綜上所述,研究者分別從軟件生態(tài)系統(tǒng)中的開發(fā)組織、組織間的關(guān)系以及他們的特點、軟件解決方案、市場環(huán)境等不同側(cè)面刻畫了軟件生態(tài)系統(tǒng)的特點,給出了不同的定義,但仍然沒有一個廣泛認可的定義.我們認為,軟件生態(tài)系統(tǒng)是“遵循各自商業(yè)模型、共享市場的各類組織在生產(chǎn)和消費各種軟件制品和服務(wù)滿足不斷演化的用戶需求的過程中所形成的復(fù)雜系統(tǒng).”區(qū)別于軟件產(chǎn)品線,軟件生態(tài)系統(tǒng)更強調(diào)多個組織的協(xié)作,其中的軟件解決方案也可能覆蓋不同的功能區(qū)域.軟件生態(tài)系統(tǒng)具有動態(tài)性,其邊界和內(nèi)部結(jié)構(gòu)可能隨時發(fā)生變化,其演化的動力可能來自生態(tài)系統(tǒng)內(nèi)部,也可能來自生態(tài)系統(tǒng)外部.軟件生態(tài)系統(tǒng)具有層次性,較大軟件生態(tài)系統(tǒng)中可能包含較小的軟件生態(tài)系統(tǒng).
軟件生態(tài)系統(tǒng)的內(nèi)涵豐富、種類繁多,對其進行有效地分類能夠幫助人們認識和管理軟件生態(tài)系統(tǒng),如,Bosch等[4]根據(jù)軟件生態(tài)系統(tǒng)中軟件產(chǎn)品的類型以及所依賴的計算平臺將軟件生態(tài)系統(tǒng)組織在一個二維空間中,如表1所示.其中計算平臺包括桌面計算、web計算和移動計算等3類,而系統(tǒng)類型則可分為系統(tǒng)軟件、應(yīng)用軟件、終端編程系統(tǒng)等3個類別.該分類與軟件類型、計算平臺等眾所周知、廣泛認可的分類體系結(jié)合,簡明直觀.
事實上,軟件生態(tài)系統(tǒng)分類方法多種多樣.例如,還可根據(jù)軟件生態(tài)系統(tǒng)中供應(yīng)商所構(gòu)成的軟件供應(yīng)網(wǎng)的結(jié)構(gòu)特性對軟件生態(tài)系統(tǒng)進行分類,指導(dǎo)研究者進行軟件生態(tài)系統(tǒng)管理、規(guī)劃、評估和監(jiān)控等方面的研究.例如,對于簡單的軟件生態(tài)系統(tǒng),可能僅有少數(shù)軟件供應(yīng)商進行有計劃的深度協(xié)作開發(fā)、對于較復(fù)雜的軟件生態(tài)系統(tǒng)則可能允許相互獨立、甚至互不了解的軟件開發(fā)商協(xié)作完成各自的目標.又如,可根據(jù)軟件生態(tài)系統(tǒng)中軟件產(chǎn)品之間的結(jié)構(gòu)關(guān)系進行分類,指導(dǎo)開發(fā)者進行軟件生態(tài)系統(tǒng)的設(shè)計、實現(xiàn)和管理研究.例如,軟件生態(tài)系統(tǒng)可能是單個企業(yè)將其產(chǎn)品的編程接口向第三方開放的結(jié)果,而有些軟件生態(tài)系統(tǒng)則可能是不同企業(yè)對標準規(guī)范的不同實現(xiàn)所構(gòu)成的.
軟件工程研究的一個重大貢獻就是明確地劃分了軟件生命周期中的不同階段.例如,單個軟件產(chǎn)品的開發(fā)活動包括需求分析、概要設(shè)計、詳細設(shè)計、實現(xiàn)、測試以及維護等6個階段;而軟件產(chǎn)品線的開發(fā)活動大致分為領(lǐng)域分析、領(lǐng)域設(shè)計、領(lǐng)域?qū)崿F(xiàn)等不同的階段.類似地,軟件生態(tài)系統(tǒng)也有其產(chǎn)生、發(fā)展和消亡的過程.明確各階段的主要目標和任務(wù)有助于企業(yè)在軟件生態(tài)系統(tǒng)中更好的生存和發(fā)展.
如圖1所示,我們將軟件生態(tài)系統(tǒng)的生命周期分為3個階段,分別完成系統(tǒng)分析、核心平臺及管理框架的開發(fā)、第三方軟件解決方案的開發(fā)以及核心平臺、管理框架和第三方解決方案的維護和演化.
首先,在系統(tǒng)分析階段,已經(jīng)在市場競爭中獲得一定成功的軟件企業(yè)為了確立未來的競爭優(yōu)勢,需要對市場進行調(diào)查和分析,著重分析不同用戶群的個性化需求以及現(xiàn)有軟件產(chǎn)品滿足這些個性化需求時所存在的差距,最終做出在企業(yè)內(nèi)部演化產(chǎn)品或向軟件生態(tài)系統(tǒng)遷移的決策.一旦做出向生態(tài)系統(tǒng)遷移的決策,企業(yè)需要制定遷移策略和原則并制定生態(tài)系統(tǒng)管理策略.
其次,軟件企業(yè)需要在企業(yè)內(nèi)部軟件產(chǎn)品線的基礎(chǔ)上構(gòu)造軟件生態(tài)系統(tǒng)賴以存在的核心軟件平臺,并聯(lián)合可能的涉眾完成管理框架的分析、設(shè)計和實現(xiàn)任務(wù).核心平臺的設(shè)計和實現(xiàn)本質(zhì)上對產(chǎn)品線的重構(gòu),第三方提供編程接口.而最初的管理框架大都由核心軟件平臺開發(fā)商提供且集成在平臺中.
第三,第三方開發(fā)者將分析用戶的個性化需求并采用基于復(fù)用的軟件開發(fā)方法,著重考慮開放平臺所帶來的約束進行相應(yīng)的第三方軟件產(chǎn)品的分析、設(shè)計、實現(xiàn)、測試和部署工作.與此同時,核心平臺和管理框架以及平臺上的其它第三方軟件產(chǎn)品均可能獨立演化.值得注意的是,第三方解決方案在部署之前必須通過相應(yīng)的認證,確保其滿足平臺所要求的質(zhì)量規(guī)范.
軟件生態(tài)系統(tǒng)的概念被提出以實現(xiàn)大規(guī)模定制的商業(yè)模型.本文介紹了軟件生態(tài)系統(tǒng)的概念和分類及其生命周期模型.后續(xù)工作包括對軟件生態(tài)系統(tǒng)需求建模和管理技術(shù)以及軟件生態(tài)系統(tǒng)構(gòu)建方法和相關(guān)支撐工具的研究.
參考文獻
[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.