王汗 周翔
摘要:軟件產(chǎn)品線作為利用公共資產(chǎn)來(lái)構(gòu)建一系列相關(guān)系統(tǒng)的方法,能夠顯著提高生產(chǎn)率、縮短上市時(shí)間、提升產(chǎn)品質(zhì)量和客戶滿意度。在過(guò)去數(shù)十年的實(shí)踐中,軟件產(chǎn)品線技術(shù)取得了廣泛的成功,但也同時(shí)暴露了諸多問(wèn)題,引來(lái)了許多爭(zhēng)議。本文闡述了軟件產(chǎn)品線的基本概念,根據(jù)實(shí)際案例探討了在軟件企業(yè)中實(shí)施軟件產(chǎn)品線面臨的機(jī)遇和挑戰(zhàn),指出了軟件產(chǎn)品線的企業(yè)工程實(shí)踐前景。
關(guān)鍵詞:軟件體系結(jié)構(gòu) 軟件產(chǎn)品線 軟件重用
1 概述
軟件產(chǎn)品線工程是使用平臺(tái)和大規(guī)模定制開(kāi)發(fā)軟件應(yīng)用(軟件密集型系統(tǒng)和軟件產(chǎn)品)的一個(gè)范例[1]。在過(guò)去數(shù)十年的實(shí)踐中,研究者認(rèn)識(shí)到軟件產(chǎn)品線的實(shí)施能夠顯著提高生產(chǎn)率、縮短上市時(shí)間、提高產(chǎn)品質(zhì)量和客戶滿意度。但同時(shí)部分軟件開(kāi)發(fā)組織也發(fā)現(xiàn)軟件產(chǎn)品線的實(shí)施并不總是一帆風(fēng)順,它有時(shí)不但不能提高效益,反而影響了企業(yè)正常的開(kāi)發(fā)進(jìn)度,造成了開(kāi)發(fā)進(jìn)程的混亂[2][3]。本文將針對(duì)這些問(wèn)題,對(duì)軟件產(chǎn)品線的工程實(shí)踐及其前景展開(kāi)研究。
2 軟件產(chǎn)品線概述
2.1 軟件產(chǎn)品線的基本概念
軟件產(chǎn)品線的定義為:“具有一組可管理的公共特性的軟件密集性系統(tǒng)的集合,這些系統(tǒng)滿足特定的市場(chǎng)需求或任務(wù)需求,并且按照預(yù)定義的方式從一個(gè)公共的核心資產(chǎn)集開(kāi)發(fā)得到”[4]。在這個(gè)定義中,所謂核心資產(chǎn),指的是那些構(gòu)成軟件產(chǎn)品線基礎(chǔ)的資產(chǎn)。核心資產(chǎn)通常包括(但不局限于)構(gòu)架、可重用軟件組件、領(lǐng)域模型、需求陳述、文檔和規(guī)格說(shuō)明、性能模型、進(jìn)度表、預(yù)算、測(cè)試計(jì)劃、測(cè)試用例、工作計(jì)劃和過(guò)程描述。構(gòu)架是核心資產(chǎn)集合中的關(guān)鍵?;诋a(chǎn)品線的軟件產(chǎn)品開(kāi)發(fā)的特點(diǎn)就在于維護(hù)這樣一個(gè)核心資產(chǎn)庫(kù),并在開(kāi)發(fā)過(guò)程中實(shí)現(xiàn)對(duì)這些核心資產(chǎn)的重用。軟件產(chǎn)品從產(chǎn)品線體系結(jié)構(gòu)獲取自己的體系結(jié)構(gòu),實(shí)例化并配置產(chǎn)品線構(gòu)件集的一個(gè)子集,并開(kāi)發(fā)產(chǎn)品特定的代碼。實(shí)例化的軟件產(chǎn)品構(gòu)成了領(lǐng)域軟件產(chǎn)品家族。
2.2 軟件產(chǎn)品線的基本特征
■
圖1 軟件產(chǎn)品線開(kāi)發(fā)活動(dòng)[4]
簡(jiǎn)而言之,產(chǎn)品線包括了核心資產(chǎn)的開(kāi)發(fā)和利用了核心資產(chǎn)的產(chǎn)品開(kāi)發(fā),這兩者均需要技術(shù)和組織的管理。通常而言,產(chǎn)品和核心資產(chǎn)的開(kāi)發(fā)密不可分、彼此相關(guān)。它們的關(guān)系如圖1所示。每個(gè)圓圈代表一個(gè)基本活動(dòng),三者連接在一起并持續(xù)運(yùn)轉(zhuǎn),表明這三者是必不可少的、緊密連接的、可能以任何次序出現(xiàn),并緊密循環(huán)。
軟件產(chǎn)品線是一個(gè)系統(tǒng)性的大規(guī)模的復(fù)用方法,貫穿軟件開(kāi)發(fā)的所有階段,其本質(zhì)特點(diǎn)在于強(qiáng)調(diào)領(lǐng)域體系結(jié)構(gòu)的重要性以及面向特定領(lǐng)域的市場(chǎng)導(dǎo)向。它具有如下幾個(gè)特征:重用導(dǎo)向貫穿始終、以體系結(jié)構(gòu)為核心、市場(chǎng)目標(biāo)驅(qū)動(dòng)、面向特定領(lǐng)域[6]。
在軟件產(chǎn)品線方法中,重用是有計(jì)劃的、能夠?qū)崿F(xiàn)的和強(qiáng)制的(而非偶然的小粒度的重用)。所有核心資產(chǎn)都是為重用而設(shè)計(jì),為能夠重用于多個(gè)系統(tǒng)進(jìn)行優(yōu)化。整個(gè)產(chǎn)品線被視為一個(gè)整體,而不是可以區(qū)別對(duì)待和維護(hù)的多個(gè)產(chǎn)品。軟件產(chǎn)品線中的產(chǎn)品由核心資產(chǎn)中的組件組織而成,但這些組件都是由產(chǎn)品線構(gòu)架指定的,且按照預(yù)定義的方式進(jìn)行組裝。開(kāi)發(fā)組織為最終用戶提供的每個(gè)產(chǎn)品都不過(guò)是核心資產(chǎn)的一個(gè)簡(jiǎn)單定制。
3 軟件開(kāi)發(fā)案例分析
3.1 “基于海量視頻的事件軌跡快速檢索平臺(tái)”(MVRP)概述
某單位與全國(guó)多地的公安機(jī)關(guān)有著長(zhǎng)期的良好合作關(guān)系,在市場(chǎng)調(diào)研中該單位發(fā)現(xiàn)目前警方迫切需要一套軟件系統(tǒng)對(duì)海量監(jiān)控視頻進(jìn)行智能分析,以實(shí)現(xiàn):實(shí)施視頻摘要,減少監(jiān)控視頻時(shí)長(zhǎng);檢索用戶關(guān)注目標(biāo),進(jìn)行目標(biāo)跟蹤和目標(biāo)關(guān)聯(lián);將目標(biāo)軌跡映射至真實(shí)空間,結(jié)合地理信息系統(tǒng),獲取目標(biāo)運(yùn)動(dòng)軌跡,預(yù)測(cè)目標(biāo)運(yùn)動(dòng)路線。警方希望該軟件系統(tǒng)能夠減輕案件偵查過(guò)程中線索目標(biāo)的查詢檢索工作,縮短目標(biāo)檢索所需時(shí)間,提高破案效率。
■
圖2 MVRP總體架構(gòu)
該單位在進(jìn)行軟件開(kāi)發(fā)時(shí),將此軟件系統(tǒng)定名為“基于海量視頻的事件軌跡快速檢索平臺(tái)”(MVRP)。并將MVRP設(shè)計(jì)為如下三個(gè)部分(如圖2所示):
①目標(biāo)軌跡時(shí)空分析子系統(tǒng):該子系統(tǒng)與用戶直接交互,供用戶調(diào)看監(jiān)控視頻,指定檢索目標(biāo),將用戶指令進(jìn)行下發(fā);并實(shí)現(xiàn)目標(biāo)運(yùn)動(dòng)軌跡的真實(shí)空間顯示,預(yù)測(cè)目標(biāo)可能的運(yùn)動(dòng)軌跡。
②綜合調(diào)度控制服務(wù)子系統(tǒng):該系統(tǒng)接收用戶指令,向合適的智能視頻分析單元下發(fā)指令;接收智能視頻分析單元的運(yùn)行匯報(bào),向用戶加以匯報(bào)。
③智能視頻分析服務(wù)子系統(tǒng):該系統(tǒng)接收指令;進(jìn)行視頻摘要、檢索與分析。
3.2 MVRP開(kāi)發(fā)分析
在MVRP的開(kāi)發(fā)進(jìn)程中,系統(tǒng)架構(gòu)人員為了保證其設(shè)計(jì)的系統(tǒng)架構(gòu)穩(wěn)妥可靠,能夠按期實(shí)現(xiàn),同時(shí)也根據(jù)自身經(jīng)驗(yàn),直接以其親身參與開(kāi)發(fā)的另一個(gè)軟件系統(tǒng)“高級(jí)視頻監(jiān)控系統(tǒng)”(AVSS)為藍(lán)本,進(jìn)行開(kāi)發(fā)。
AVSS是一個(gè)集視頻圖像監(jiān)控和安保綜合管理為一體的大型分布式網(wǎng)絡(luò)平臺(tái)。該系統(tǒng)實(shí)現(xiàn)對(duì)分布在大范圍內(nèi)的視頻監(jiān)控設(shè)施進(jìn)行調(diào)度管理,同時(shí)結(jié)合地理信息服務(wù)系統(tǒng),使得用戶能夠在直觀、良好的界面中接收?qǐng)?bào)警信息,調(diào)看指定地點(diǎn)的監(jiān)控視頻。該系統(tǒng)主要由兩個(gè)分系統(tǒng)構(gòu)成:視頻應(yīng)用分系統(tǒng)和視頻服務(wù)分系統(tǒng)。視頻應(yīng)用分系統(tǒng)實(shí)現(xiàn)與用戶交互,使用戶在一目了然的地圖界面上調(diào)看監(jiān)控點(diǎn)視頻,監(jiān)控各點(diǎn)報(bào)警信息及監(jiān)控區(qū)域整體態(tài)勢(shì)。視頻服務(wù)分析同實(shí)現(xiàn)后臺(tái)的數(shù)據(jù)服務(wù),實(shí)現(xiàn)視頻轉(zhuǎn)發(fā)、視頻存儲(chǔ)、通信控制等功能。AVSS總體架構(gòu)如圖3所示。
■
圖3 AVSS總體架構(gòu)
由這兩個(gè)系統(tǒng)的總體構(gòu)成可見(jiàn),MVRP在很大程度上借鑒了AVSS的架構(gòu)。因?yàn)镸VRP需要調(diào)度多個(gè)客戶端和多個(gè)智能視頻分析單元,引入了獨(dú)立的綜合調(diào)度控制服務(wù)子系統(tǒng)。其余如地理信息顯控、調(diào)度管理等需要與用戶直接交互的部分集成為一個(gè)目標(biāo)軌跡時(shí)刻分析子系統(tǒng)(對(duì)應(yīng)AVSS的視頻應(yīng)用分系統(tǒng)),如視頻處理等需要服務(wù)端自行完成的功能集成為一個(gè)視頻分析服務(wù)子系統(tǒng)(對(duì)應(yīng)AVSS的視頻服務(wù)分系統(tǒng))。事實(shí)上,在MVRP的總體設(shè)計(jì)階段,系統(tǒng)開(kāi)發(fā)人員是直接以AVSS的設(shè)計(jì)文檔作為藍(lán)本進(jìn)行討論,最終完成MVRP的總體架構(gòu)設(shè)計(jì)。
3.3 軟件產(chǎn)品線視角的分析
在軟件產(chǎn)品線中,重用是有計(jì)劃的、能夠?qū)崿F(xiàn)的和強(qiáng)制的,其重用的資產(chǎn)也是明確為重用而設(shè)計(jì)的[4]。軟件產(chǎn)品線絕非偶然的小粒度重用。因此前面所討論的MVRP開(kāi)發(fā)只能說(shuō)是利用了軟件重用的思想,而不是軟件產(chǎn)品線的實(shí)踐。然而試圖以軟件產(chǎn)品線的視角對(duì)這一案例進(jìn)行研究依然是有意義的,它可以探討如果在某單位的軟件開(kāi)發(fā)實(shí)踐中引入軟件產(chǎn)品線方法,將會(huì)面對(duì)怎樣的困難和收益。
3.3.1 實(shí)施軟件產(chǎn)品線的困難
經(jīng)過(guò)對(duì)該單位的軟件開(kāi)發(fā)實(shí)踐進(jìn)行分析,認(rèn)為該單位引入軟件產(chǎn)品線方法,面臨著如下困難:
①延誤產(chǎn)品交付時(shí)間。研究表明,傳統(tǒng)的軟件產(chǎn)品線方法需要軟件開(kāi)發(fā)組織在引入新的軟件產(chǎn)品線時(shí)投入過(guò)去開(kāi)發(fā)2到3個(gè)項(xiàng)目的精力[5],有時(shí)甚至需要近100名開(kāi)發(fā)人員,投入900至1350個(gè)人月[6]。各地警方對(duì)能夠輔助進(jìn)行智能視頻分析的軟件系統(tǒng)的需求無(wú)比迫切,甚至提出希望該單位能夠盡快提供可以實(shí)現(xiàn)基礎(chǔ)功能的軟件系統(tǒng)Demo,然后再在使用中不斷完善??紤]到該單位目標(biāo)客戶對(duì)產(chǎn)品的迫切需求,在開(kāi)發(fā)MVRP時(shí)新引入軟件產(chǎn)品線顯然是不可接受的。
②缺乏系統(tǒng)架構(gòu)人員。該單位作為一個(gè)發(fā)展中的軟件開(kāi)發(fā)企業(yè),缺少有足夠經(jīng)驗(yàn)的架構(gòu)設(shè)計(jì)師。在過(guò)去幾年間有過(guò)成功的軟件架構(gòu)實(shí)踐的架構(gòu)師幾乎都成為了中層領(lǐng)導(dǎo),離開(kāi)了開(kāi)發(fā)一線。但在以開(kāi)發(fā)軟件產(chǎn)品線時(shí),必須有足夠優(yōu)秀的軟件架構(gòu)師設(shè)計(jì)軟件產(chǎn)品線核心資產(chǎn)庫(kù)中的軟件架構(gòu),才能使得軟件架構(gòu)能夠適應(yīng)未來(lái)不同產(chǎn)品的配置需求。
③缺乏管理層支持。一般而言對(duì)軟件開(kāi)發(fā)技術(shù)缺乏深入了解的管理人員需要一定時(shí)間和實(shí)踐以理解為何需要專門(mén)的開(kāi)發(fā)人員從事難以見(jiàn)到實(shí)際產(chǎn)品的技術(shù)工作。此外,如果引入獨(dú)立的軟件產(chǎn)品線開(kāi)發(fā)小組,這必然對(duì)企業(yè)的組織架構(gòu)和企業(yè)文化造成相當(dāng)?shù)挠绊懀瑢?duì)企業(yè)管理造成一定挑戰(zhàn)。這就使得管理層在面對(duì)軟件產(chǎn)品線方法時(shí)需要做出更多權(quán)衡。
3.3.2 實(shí)施軟件產(chǎn)品線的收益
盡管前面述及的困難使得該單位在開(kāi)發(fā)MVRP時(shí)新引入軟件產(chǎn)品線方法幾乎成為不可能,但假如該單位已經(jīng)開(kāi)發(fā)了成熟的軟件產(chǎn)品線體系,也將帶來(lái)諸多顯而易見(jiàn)的收益:
①降低開(kāi)發(fā)難度。雖然目前該單位缺少有經(jīng)驗(yàn)的架構(gòu)設(shè)計(jì)師,但如果該單位具備了完善的軟件產(chǎn)品線,那么新產(chǎn)品的開(kāi)發(fā)難度就可以大大降低。如果該單位能夠組織公司內(nèi)最優(yōu)秀的架構(gòu)設(shè)計(jì)師,對(duì)這樣一些工作于網(wǎng)絡(luò)上的綜合服務(wù)平臺(tái)進(jìn)行分析,確定一個(gè)產(chǎn)品線架構(gòu)。具體的產(chǎn)品開(kāi)發(fā)就無(wú)需重新進(jìn)行架構(gòu)設(shè)計(jì),而只需進(jìn)行實(shí)例化,可以降低開(kāi)發(fā)風(fēng)險(xiǎn),降低開(kāi)發(fā)難度。
②節(jié)約開(kāi)發(fā)成本。盡管該單位目前十分欠缺有經(jīng)驗(yàn)的軟件開(kāi)發(fā)人員,但由于不同部門(mén)經(jīng)常會(huì)開(kāi)發(fā)有著一些具有共性的系統(tǒng),造成了大量的人力浪費(fèi)。如果該單位已經(jīng)具有了完備的軟件產(chǎn)品線,那么就可以以得力的工程師開(kāi)發(fā)具有一定功能的組件,減少人力浪費(fèi),投入到單個(gè)產(chǎn)品中的人員就可以大大削減。節(jié)約出的人力可以用于開(kāi)發(fā)其他產(chǎn)品或者研究新的技術(shù)。
③減少開(kāi)發(fā)時(shí)間。如前所述,在建立軟件產(chǎn)品線之后,新產(chǎn)品的開(kāi)發(fā)過(guò)程僅僅是產(chǎn)品線構(gòu)架的實(shí)例化。這樣可以節(jié)省大量初期設(shè)計(jì)、代碼編制時(shí)間,最終減少產(chǎn)品的開(kāi)發(fā)時(shí)間。
4 結(jié)束語(yǔ)
軟件產(chǎn)品線作為一種在過(guò)去數(shù)十年的實(shí)踐中取得了廣泛成功的一種方法,雖然其在部分企業(yè)工程實(shí)踐中存在一定的困難和挑戰(zhàn),但其仍可以為企業(yè)的軟件開(kāi)發(fā)實(shí)踐提供新的思路方法、帶來(lái)新的改進(jìn)提升,值得廣大軟件開(kāi)發(fā)組織加以研究和采納。
參考文獻(xiàn):
[1]Pohl K,Bockle G, van der Linden F.軟件產(chǎn)品線工程[M].張佳驥,李彥平譯.北京:國(guó)防工業(yè)出版社,2010.
[2]Faust D,Verhoef C.Software product line migration and deployment.In Horspool RN,Wellings AJ eds.Software:Practice and Experience[M].New York:John Wiley & Sons,2003.933-
955.
[3]楊芙清,梅宏,李克勤.軟件復(fù)用與軟件構(gòu)件技術(shù)[J].電子學(xué)報(bào),1999,27(2):69-75.
[4]Clements P,Northrop L.軟件產(chǎn)品線實(shí)踐與模式[M].張莉,王雷譯.北京:清華大學(xué)出版社,2004.
[5]Clements PC,Jones LG, Northrop LM, McGregor JD. Project management in a software product line organization[J]. IEEE Software,2005,22(4):54-62.
[6]李弈遠(yuǎn).基于特征的軟件產(chǎn)品線開(kāi)發(fā)關(guān)鍵技術(shù)研究[D].杭州:浙江大學(xué),2007.
作者簡(jiǎn)介:王汗(1989-),男,江蘇沭陽(yáng)人,碩士研究生,研究方向:軟件架構(gòu);周翔(1973-),男,湖北宜昌人,研究員、碩士生導(dǎo)師,研究方向:智慧城市、信息系統(tǒng)架構(gòu)。