劉玉梅,黃鳴宇
(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210016)
基于特征的軟件產(chǎn)品線配置方法研究
劉玉梅,黃鳴宇
(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210016)
軟件產(chǎn)品線是指具有一組可管理的公共特性的軟件密集性系統(tǒng)的合集,這些系統(tǒng)滿足特定的市場需求或任務(wù)需求,并且按預(yù)定義的方式從一個(gè)公共的核心資產(chǎn)集開發(fā)得到??勺冃越J菍?shí)現(xiàn)系統(tǒng)間共性和可變性管理的有效方法以及滿足用戶特定需求的產(chǎn)品配置的關(guān)鍵。特征建模是可變性建模方法的一個(gè)主流并得到了廣泛的研究?;谔卣鞯能浖a(chǎn)品線配置方法指專門解決如何從特征模型中選擇出滿足利益相關(guān)者需求以及模型整體約束的產(chǎn)品集的問題。產(chǎn)品配置方法在學(xué)術(shù)領(lǐng)域和工業(yè)領(lǐng)域都取得了眾多的研究成果,然而很少有文獻(xiàn)對其進(jìn)行專門地分析。為有效分析產(chǎn)品配置方法領(lǐng)域,首先構(gòu)建一個(gè)分析框架用以描述配置方法家族所涉及的模型結(jié)構(gòu)、約束管理、自動(dòng)化支持以及特征選擇技術(shù)等共性和可變性特征;其次根據(jù)該框架理解并歸類不同配置方法,同時(shí)分析各方法間的共性和可變性。
軟件產(chǎn)品線;特征模型;產(chǎn)品配置;共性;可變性
近年來,用戶需求的多樣性以及軟件開發(fā)和維護(hù)的高成本壓力促使軟件開發(fā)者迫切尋求一種提高軟件復(fù)用的新技術(shù)。軟件產(chǎn)品線工程(Software Product Line,SPLE)[1]迅速成為一種可行的、重要的軟件產(chǎn)品開發(fā)范式。其目的就是最大化滿足用戶需求的同時(shí)實(shí)現(xiàn)批量開發(fā)的效率。區(qū)別于獨(dú)立開發(fā)單個(gè)系統(tǒng),軟件產(chǎn)品線工程將特定領(lǐng)域中相似的系統(tǒng)看作一個(gè)整體,抓住系統(tǒng)間的共性和可變性并通過最大化的平臺復(fù)用和批量個(gè)性化定制實(shí)現(xiàn)產(chǎn)品家族開發(fā)。該方式具有低成本、高質(zhì)量、縮短產(chǎn)品上市時(shí)間等優(yōu)勢。
軟件產(chǎn)品線工程通過領(lǐng)域工程和應(yīng)用工程兩個(gè)階段實(shí)現(xiàn)產(chǎn)品家族開發(fā)。在領(lǐng)域工程階段,關(guān)鍵是對軟件產(chǎn)品線的領(lǐng)域、共性和可變性進(jìn)行分析建模,確保軟件部件能夠被有效地復(fù)用。其中領(lǐng)域(Scope)分析指明確定義軟件產(chǎn)品線的組件,即哪些組件屬于該領(lǐng)域,哪些組件不屬于該領(lǐng)域;共性分析指明確定義哪些特征屬性為不同組件集所共享;可變性分析指描述哪些特征屬性為各組件集所區(qū)別。特征模型(Feature Model,F(xiàn)M)[2]是一種廣泛應(yīng)用于領(lǐng)域工程階段描述軟件產(chǎn)品線共性和可變性特征以及特征間關(guān)系的需求模型。在應(yīng)用工程階段,關(guān)鍵是通過對特征的取舍從特征模型中派生出滿足特定需求的具體軟件產(chǎn)品。該取舍過程也稱為產(chǎn)品配置過程,其復(fù)雜性取決于特征模型的復(fù)雜性。綜觀以上兩個(gè)過程可知,特征模型是產(chǎn)品配置的基礎(chǔ),產(chǎn)品配置是特征建模的目的。
基于特征的軟件產(chǎn)品線配置方法指專門解決如何從特征模型中選擇出滿足不同利益相關(guān)者需求以及多種約束條件的產(chǎn)品集的問題。產(chǎn)品配置方法在學(xué)術(shù)領(lǐng)域和工業(yè)領(lǐng)域都取得了眾多的研究成果,但很少有文獻(xiàn)對配置方法進(jìn)行專門的分析和研究。文中的目的在于通過對現(xiàn)有配置方法的研究,能夠幫助讀者對該領(lǐng)域的技術(shù)和發(fā)展有一個(gè)整體的把握和理解,同時(shí)能夠?qū)ξ磥砀咏Y(jié)構(gòu)化的研究奠定初步基礎(chǔ)。
為了有效而全面地分析現(xiàn)有的配置方法,文中將所有基于特征的軟件產(chǎn)品線配置方法作為一個(gè)產(chǎn)品線,利用產(chǎn)品線現(xiàn)有的技術(shù)對其進(jìn)行整體分析研究。
具體實(shí)施如下:首先構(gòu)建基于特征的軟件產(chǎn)品線配置方法領(lǐng)域的特征模型以描述配置方法間的共性和可變性,如圖1所示;其次利用該模型框架來理解和歸類不同方法間的共性和可變性。
基于特征的軟件產(chǎn)品線配置方法家族可以看作一個(gè)產(chǎn)品線,該產(chǎn)品線由一組專門用于配置特定產(chǎn)品的方法組成。因此,文中對配置方法家族構(gòu)建特征模型用以描述各方法間的共性和可變性特征并為后續(xù)進(jìn)行整體分析奠定基礎(chǔ)。
圖1是基于特征的軟件產(chǎn)品線配置方法領(lǐng)域?qū)?yīng)的特征圖。該模型描述了配置方法領(lǐng)域的共性和可變性特征以及特征間的關(guān)系。
圖1 基于特征的軟件產(chǎn)品線配置方法特征圖
在該模型中,根節(jié)點(diǎn)PCA(Product Configuration Approaches)表示該配置方法領(lǐng)域。特征FM(Feature Modelling)、AS(Automated Support)和FS(Feature Selection)分別表示配置方法中實(shí)現(xiàn)產(chǎn)品配置的三個(gè)過程:特征建模、自動(dòng)化工具支持以及特征選擇。其中特征建模過程包括對特征組織框架和約束依賴信息的建模,分別對應(yīng)特征Structure和Constraints。在特征組織框架的建模中,分為基本特征模型(Basic)、基于基數(shù)的特征模型(Cardinality-based)和擴(kuò)展的特征模型(Extended)三類。由圖1可知,所有的配置方法都支持基本特征圖的產(chǎn)品配置,部分方法支持基于基數(shù)的特征模型或擴(kuò)展的特征模型。約束依賴信息特征是一個(gè)可選特征,表示并不是所有的方法都支持包含約束信息的產(chǎn)品配置。在對約束依賴信息的建模中,分為滿足Or分解模式的布爾和非布爾約束兩種,分別對應(yīng)特征Bool和Non-bool。在自動(dòng)化工具支持過程中,SAT、BDD和CSP為該領(lǐng)域三大主流的自動(dòng)化分析工具。三者滿足Or分解模式,表示某配置方法可以包含至少一個(gè)分析工具實(shí)現(xiàn)產(chǎn)品配置。在特征選擇過程,所有的配置方法被分為兩大類:非合作配置和合作配置,分別對應(yīng)特征Non-Collaborate和Collaborate。
后續(xù)章節(jié)將根據(jù)圖1對應(yīng)的綜述框架模型來理解和歸類不同方法間的共性和可變性。具體分析從配置方法涉及的特征建模、自動(dòng)化工具支持以及特征選擇三個(gè)過程來分析該領(lǐng)域的研究成果以及各方法間的共性和可變性。
特征模型通常由特征圖和文本型的約束信息組成。特征模型是產(chǎn)品配置方法的基礎(chǔ),其復(fù)雜性決定配置方法的特性。自Kang等于1990年提出特征模型以來,特征模型得到了廣泛的擴(kuò)展。下面分別對特征圖和約束信息進(jìn)行綜述。
3.1 特征圖
特征圖是描述特征模型的一種圖形化方式,廣泛應(yīng)用于軟件產(chǎn)品線工程中的可變性管理以及產(chǎn)品配置領(lǐng)域。本節(jié)對配置方法中常見的特征圖結(jié)構(gòu)進(jìn)行綜述。
3.1.1 基本特征圖
基本特征圖一般組織成樹形結(jié)構(gòu),圖中有且僅有一個(gè)根節(jié)點(diǎn),通常表示一個(gè)領(lǐng)域系統(tǒng);一般節(jié)點(diǎn)表示特征,分為可選(Optional)和必選(Mandatory)兩類;邊表示父節(jié)點(diǎn)與子節(jié)點(diǎn)特征自上而下的層次分解關(guān)系,包括Add分解、Xor分解以及Or分解。其中在Add分解中,子節(jié)點(diǎn)由可選和必選兩類特征組成;在Xor分解中,所有的子節(jié)點(diǎn)滿足多選一的分解模式;而Or分解滿足多選多的分解模式。不同的分解模式代表著不同的配置約束。圖1所示為基本特征圖。
3.1.2 基于基數(shù)特征圖
實(shí)際需求驅(qū)動(dòng)著特征模型的擴(kuò)展。Riebisch等[3]引入U(xiǎn)ML語言中的多樣性關(guān)系描述特征模型中對應(yīng)的分解關(guān)系。方括號表示的區(qū)間[n..m]用于描述某特征是否出現(xiàn)在產(chǎn)品中,如[0..1]和[1..1]分別表示可選和必選特征;尖括號表示的區(qū)間
3.1.3 擴(kuò)展特征圖
在現(xiàn)有的軟件產(chǎn)品線工程中,特征分析主要從系統(tǒng)配置角度來構(gòu)建特征模型,如軟件和硬件部件等。Kang等[4-5]多次在文獻(xiàn)中建議考慮特征非功能屬性的必要性。FODA和FORM[6]等方法中都強(qiáng)調(diào)應(yīng)增加一些問題和決策信息作為特征選擇的標(biāo)準(zhǔn)。通常,擴(kuò)展特征模型是在基本特征模型基礎(chǔ)上增加描述特征的屬性信息,如價(jià)格等。Benavides等在文獻(xiàn)[7]中描述了一個(gè)簡單的擴(kuò)展特征圖,其中特征屬性由屬性名、屬性值和值域三部分組成,并與相應(yīng)的特征用虛線連在一起。Czarnecki等[8]提出概率特征模型,該模型是在基本特征模型的基礎(chǔ)上增加特征條件概率分布。其中條件概率分布通過數(shù)據(jù)挖掘技術(shù)從眾多應(yīng)用實(shí)例樣本中提取得到。
然而,特征屬性以定量的擴(kuò)展方式會給特征模型增加更多的負(fù)擔(dān)。多模型以定性或定量的擴(kuò)展方式實(shí)現(xiàn)對更復(fù)雜現(xiàn)實(shí)世界的上下文建模,提高了軟件產(chǎn)品線的復(fù)用性與可擴(kuò)展性。Ubayashi[9]等在上下文相關(guān)的軟件產(chǎn)品線方法中通過構(gòu)建系統(tǒng)特征模型和上下文特征模型描述領(lǐng)域信息。前者通過分析產(chǎn)品家族的特征得到,后者通過分析與系統(tǒng)家族相關(guān)聯(lián)的現(xiàn)實(shí)世界得到。Lee等[10]在應(yīng)用環(huán)境驅(qū)動(dòng)特征選擇方法中總結(jié)了影響特征選擇的兩大因素:質(zhì)量屬性和應(yīng)用環(huán)境。該方法通過對質(zhì)量屬性、應(yīng)用環(huán)境以及產(chǎn)品特征分別構(gòu)建相應(yīng)的特征模型,并通過質(zhì)量屬性和應(yīng)用環(huán)境模型與產(chǎn)品特征間的映射關(guān)系驅(qū)動(dòng)特征選擇,實(shí)現(xiàn)產(chǎn)品配置。
3.2 約束關(guān)系
在可變性管理中,特征圖只限于描述父特征與子特征之間的組合約束關(guān)系,不能很好地表示跨層次特征間的約束依賴關(guān)系。另外,作為特征選擇標(biāo)準(zhǔn)的特征屬性、用戶需求等信息更超出了特征圖所能表示的范圍。因此約束信息多以文本形式描述。本節(jié)分別從布爾約束和非布爾約束進(jìn)行綜述。
3.2.1 布爾約束
布爾表達(dá)式是由布爾運(yùn)算量和邏輯運(yùn)算符按一定語法規(guī)則組成的式子,該表達(dá)式只能取邏輯值True或False。布爾約束指所有能用布爾表達(dá)式進(jìn)行描述的約束關(guān)系。特征模型中特有的約束關(guān)鍵詞Requires和Excludes通常用布爾表達(dá)式表示。例如,對于特征A和B,ArequiresB等價(jià)于布爾表達(dá)式A→B,而AexcludesB等價(jià)于A→B。
3.2.2 非布爾約束
非布爾約束指不能用布爾表達(dá)式進(jìn)行描述的約束關(guān)系。在擴(kuò)展的特征模型中,特征屬性以及用戶需求等信息往往從定量和定性兩個(gè)角度對約束信息進(jìn)行描述。Czarneck等[8]利用概率描述特征間的約束關(guān)系,如特征A、B滿足AgiveB0.8,表示在特征A被選中的條件下,特征B被選中的概率為0.8。Etxeberria等[11]通過--,-,+,++等符號描述特征影響屬性的程度,如FeatureA++AttributeB,表示選擇特征A對屬性B有很大程度的影響。Bagheri等[12]用模糊邏輯描述用戶的軟性需求約束,實(shí)現(xiàn)產(chǎn)品線配置。
不同類型的約束與特征圖的組合,除了提高特征模型表達(dá)能力外,也給軟件產(chǎn)品線配置增加了困難。
給定一個(gè)特征模型,如何給用戶提供一個(gè)有效的配置集是一個(gè)關(guān)鍵問題。手動(dòng)進(jìn)行特征選擇是一個(gè)繁瑣且容易出錯(cuò)的過程,因此自動(dòng)化驗(yàn)證工具的支持是配置方法的共性。
本節(jié)介紹三種主流的自動(dòng)化分析工具的特性。
4.1 SAT
布爾可滿足性問題(boolean SATisfiability problem,SAT)[13]指給定一個(gè)命題公式,判斷是否存在一組使公式為真的變量賦值。使用SAT Solver分析特征模型的重點(diǎn)是實(shí)現(xiàn)特征模型到命題公式的轉(zhuǎn)換。Batory[14]將語法、特征模型和命題邏輯聯(lián)系在一起,首次提出利用SAT Solver分析特征模型。Benavides等[15]總結(jié)了基本特征模型到命題邏輯的映射關(guān)系。
SAT可以實(shí)現(xiàn)對基本特征模型以及布爾約束進(jìn)行有效性分析。盡管SAT問題是一個(gè)典型的NP完全問題,但是SAT Solver完全可以處理包含上千個(gè)特征的復(fù)雜特征模型[16]。然而,SAT無法表示非布爾約束,以致無法有效地實(shí)現(xiàn)約束復(fù)雜的產(chǎn)品配置以及解決基于資源約束的優(yōu)化問題。
4.2 BDD
類似于SAT,二叉決策圖(Binary Decision Diagrams,BDDs)[17]分析特征模型也是對等價(jià)的命題公式進(jìn)行分析。區(qū)別在于前者用合取范式表示命題公式,后者是用二叉決策圖的形式表示。
BDD的優(yōu)勢在于能夠提供高效的算法計(jì)算有效配置集的個(gè)數(shù)。BDD的不足同SAT一樣,也是NP難問題,同樣無法有效地實(shí)現(xiàn)約束復(fù)雜的產(chǎn)品配置以及解決基于資源約束的優(yōu)化問題。
4.3 CSP
約束滿足問題(Constraint Satisfaction Problem,CSP)[18]由一組變量、每一個(gè)變量對應(yīng)的值域和一組限制變量取值的約束組成。CSP Solver不僅能解決布爾型變量,同時(shí)還能解決數(shù)值型變量(如整型等),適用于分析數(shù)據(jù)類型復(fù)雜的特征模型。Benavides等[19-20]于2005年首次使用約束規(guī)劃(Constraint Programming)對特征模型進(jìn)行自動(dòng)化分析。在該方法中,作者給出將特征模型映射到CSP的機(jī)制并實(shí)現(xiàn)對擴(kuò)展的特征模型進(jìn)行分析。
盡管CSP在分析特征模型方面比較靈活,但比較適應(yīng)于分析小型特征模型。在處理中型或大型特征模型上,時(shí)間性能是其弱點(diǎn)。
上述自動(dòng)化分析工具各有其適用范圍與優(yōu)缺點(diǎn)。Benavides等[21]在產(chǎn)品線工具FAMA中集成SAT、BDD和CSP三種自動(dòng)化分析工具,可使用戶根據(jù)不同的分析操作選擇最適合的分析工具進(jìn)行產(chǎn)品配置。
產(chǎn)品配置過程也是特征選擇的過程。為了從特征模型中選出最理想的特征,需根據(jù)企業(yè)的戰(zhàn)略目標(biāo)、利益相關(guān)者的需求、模型的完整性約束等信息進(jìn)行選擇。產(chǎn)品配置過程根據(jù)參與者人數(shù)和角色的不同分為非合作配置和合作配置。在非合作配置過程中,用戶需求被解釋成配置決策,由產(chǎn)品經(jīng)理一人完成特征選擇,用戶處于一種被動(dòng)狀態(tài)。合作配置過程指多個(gè)用戶參與產(chǎn)品配置,產(chǎn)品經(jīng)理只負(fù)責(zé)分配和管理決策任務(wù)。本節(jié)從非合作配置、合作配置兩大類對基于特征的產(chǎn)品配置方法進(jìn)行綜述。
5.1 非合作配置
非合作配置過程的關(guān)鍵是對用戶的需求信息進(jìn)行分析與建模。用戶需求分為硬性需求和軟性需求。其中,硬性需求指用戶對最終產(chǎn)品功能的約束,即用戶指定包含哪些特征;軟性需求是一種模糊的概念,是用戶在選擇產(chǎn)品時(shí)的一種權(quán)衡和折中。因此,如何實(shí)現(xiàn)對軟性需求的建模是一個(gè)難點(diǎn)。
Bagheri等[12]提出基于利益相關(guān)者的軟性和硬性需求實(shí)現(xiàn)軟件產(chǎn)品線配置方法。該方法首先采用擴(kuò)展的命題邏輯P(N)語言以及模糊P(N)語言分別描述利益相關(guān)者的硬性需求和軟性需求;其次通過Mamdani-type模糊推理技術(shù)[22]計(jì)算未綁定特征滿足約束的適應(yīng)度;最后用戶根據(jù)適應(yīng)度的高低進(jìn)行特征選擇實(shí)現(xiàn)產(chǎn)品配置。
Czarnecki等[8]提出基于概率特征模型的配置方法。該方法利用特征以及特征間的聯(lián)合概率分布描述利益相關(guān)者的軟硬性需求。其中聯(lián)合概率分布是從一組已存在的軟件產(chǎn)品樣本空間中獲得。然后將概率特征模型映射到概率命題邏輯,通過使用現(xiàn)成的算法(如BN、最大化熵等)實(shí)現(xiàn)配置。
White等[23]針對移動(dòng)設(shè)備的特殊性,提出自動(dòng)化軟件產(chǎn)品變體選擇方法。移動(dòng)設(shè)備領(lǐng)域的產(chǎn)品配置特點(diǎn)是用戶可以隨時(shí)隨地根據(jù)需要訪問網(wǎng)頁或下載應(yīng)用軟件。此特點(diǎn)要求配置過程需在有限配置時(shí)間內(nèi)自動(dòng)獲取不同設(shè)備參數(shù),同時(shí)配置最優(yōu)的產(chǎn)品變體返回給移動(dòng)設(shè)備。該方法通過遠(yuǎn)程技術(shù)獲取移動(dòng)設(shè)備參數(shù),根據(jù)配置約束和資源消耗約束選擇特征,并利用CSP對多種數(shù)據(jù)類型的約束信息進(jìn)行分析實(shí)現(xiàn)產(chǎn)品配置。
White等[24]提出多步配置方法,即從一個(gè)初始配置,經(jīng)過一系列中間配置,得到一個(gè)滿足約束條件的最終配置。多步配置的特點(diǎn)是每一個(gè)中間配置都是滿足當(dāng)前市場需求的有效產(chǎn)品。該方法用有向圖描述配置路徑,其中節(jié)點(diǎn)表示有效的中間配置,邊表示相鄰配置所需滿足的約束,如年預(yù)算。特征的選擇需滿足配置點(diǎn)約束以及配置邊約束。此過程中的特征模型是固定不變的。為適應(yīng)特征模型隨著市場、環(huán)境、技術(shù)等變化而變化,White等[25]對多步配置方法進(jìn)行擴(kuò)展,實(shí)現(xiàn)隨著時(shí)間的推移調(diào)整特征模型的功能。該功能根據(jù)不同特征模型的分類實(shí)現(xiàn)不同的變化。對于基本特征模型,可實(shí)現(xiàn)增加、刪除特征和關(guān)系等;對于基于基數(shù)的特征模型可以通過基數(shù)的修改實(shí)現(xiàn)特征模型的演變;對于擴(kuò)展的特征模型,可以修改屬性值以及屬性域?qū)崿F(xiàn)演變。
Bartholdt等[26]提出一個(gè)IQ-SPLE方法。該方法支持從定量和定性兩個(gè)角度對質(zhì)量屬性需求進(jìn)行建模,通過將質(zhì)量屬性映射到特征模型實(shí)現(xiàn)特征選擇。該方法將配置問題分為問題空間和方法空間,其中問題空間由特征模型組成,用戶根據(jù)可視化的特征模型自上而下逐個(gè)進(jìn)行特征選擇;方法空間對質(zhì)量屬性進(jìn)行建模,并將為用戶在問題空間的決策映射到方法空間,通過決策函數(shù)將屬性值反射到問題空間幫助用戶決策哪些特征必選,哪些特征可選以及哪些特征不可選等。
5.2 合作配置
相比于非合作配置,多用戶合作配置可有效解決基于大而復(fù)雜特征模型的產(chǎn)品配置問題。
Hubaux等[27]提出適應(yīng)不同利益相關(guān)者切面的多視圖配置方法。該方法通過將一個(gè)大而復(fù)雜的特征模型根據(jù)不同利益相關(guān)者的切面信息裁剪出相關(guān)視圖,隱藏?zé)o關(guān)視圖以實(shí)現(xiàn)關(guān)注點(diǎn)分離。為了實(shí)現(xiàn)配置的一致性,Hubaux等在文獻(xiàn)[28]中提出基于特征配置流的工具集實(shí)現(xiàn)多視圖配置。該配置流通過約定不同利益相關(guān)者的配置順序來避免視圖間的交互沖突問題。
同樣的,Czarnecki等[29]提出多階段配置實(shí)現(xiàn)合作配置。其中每一個(gè)階段對應(yīng)不同的利益相關(guān)者,后一個(gè)階段是在前一個(gè)階段的基礎(chǔ)上進(jìn)行配置,最后通過將不同階段的配置整合成一個(gè)最終滿足用戶需求的產(chǎn)品。與多視圖方法相比,兩者目的都是根據(jù)不同的利益相關(guān)者需求分離關(guān)注點(diǎn),模型結(jié)構(gòu)都支持基數(shù)特征模型,在裁剪視圖的方法上都通過修改特征基數(shù)以實(shí)現(xiàn)特征模型的一致性。區(qū)別在于多視圖方法是通過選擇特征來移除無關(guān)特征,而多階段配置是通過逐步排除特征以實(shí)現(xiàn)特征選擇,如通過對某特征屬性賦值操作等。
后來,Czarnecki等[30]提出多層次分階段配制方法。該方法被Classen等[31]加以形式化定義并被Hubaux等[32]進(jìn)行擴(kuò)展。該方法中,多層次對應(yīng)多個(gè)子特征圖,每個(gè)特征圖針對不同的部門或者軟件供應(yīng)商。通過將子特征圖的根節(jié)點(diǎn)作為父特征圖的子節(jié)點(diǎn)整合成一個(gè)大的特征圖。最后將不同利益相關(guān)者的配置分階段進(jìn)行配置,實(shí)現(xiàn)最終的產(chǎn)品配置。該方法是在分階段配置的基礎(chǔ)上將多個(gè)子特征圖整合成一個(gè)特征圖實(shí)現(xiàn)配置。既考慮了不同利益相關(guān)者的不同需求,又通過整合子特征模型的方式來降低軟件產(chǎn)品線中特征模型的復(fù)雜性。
Mendonca等[33]提出協(xié)作產(chǎn)品配置(Collaborative Product Configuration,CPC)方法。多個(gè)利益相關(guān)者共同參與產(chǎn)品配置是一種必然趨勢。該方法通過分割特征模型(Splittng)生成對應(yīng)不同利益相關(guān)者的配置空間,根據(jù)不同配置空間的依賴強(qiáng)弱制定配置的執(zhí)行順序,如順序執(zhí)行或同時(shí)執(zhí)行等。CPC方法是對分階段配置方法的擴(kuò)展和優(yōu)化,使合作配置方法能夠更好地協(xié)助多個(gè)利益相關(guān)者在產(chǎn)品配置過程中做出更好的決策。
軟件產(chǎn)品線工程已成為一種日益突出的軟件開發(fā)范式??勺冃怨芾硎菢?gòu)建軟件產(chǎn)品線工程的關(guān)鍵。該過程對于理解特定領(lǐng)域中產(chǎn)品家族的復(fù)雜性和多樣性具有重要的作用,同時(shí)也是實(shí)現(xiàn)有效產(chǎn)品配置的基礎(chǔ)。在現(xiàn)有的可變性管理方法中,特征建模和決策建模得到了廣泛的關(guān)注和應(yīng)用。文獻(xiàn)[16]總結(jié)了近20年來基于特征模型的操作、技術(shù)、工具和經(jīng)驗(yàn)等方面的研究成果。但該綜述并沒有介紹基于特征模型的產(chǎn)品配置過程。
文中重點(diǎn)關(guān)注配置過程的方法和技術(shù),是在以上工作的基礎(chǔ)上對基于特征模型領(lǐng)域研究的一種完善和補(bǔ)充。關(guān)于決策模型的產(chǎn)品配置,Schmid等[34]比較了五個(gè)典型的基于決策模型的配置方法。與文中相比較,兩者都是從模型結(jié)構(gòu)、約束、自動(dòng)化支持部件以及產(chǎn)品配置特性等角度對配置方法進(jìn)行分析。不同點(diǎn)在于,文中是基于特征領(lǐng)域研究成果多的特點(diǎn)采用基于特征模型的綜述方式分析各配置方法的共性和可變性。
基于特征模型的產(chǎn)品配置方法在軟件產(chǎn)品線工程中得到了廣泛的研究和應(yīng)用。為實(shí)現(xiàn)對配置方法領(lǐng)域的眾多工作進(jìn)行研究,文中將特征建模應(yīng)用于文獻(xiàn)綜述,對基于特征模型的配置方法家族構(gòu)建特征模型,通過對不同特征所代表的不同配置方法特性的分析,為讀者呈現(xiàn)一個(gè)整體的概念,使讀者能夠更好地理解該領(lǐng)域的研究現(xiàn)狀以及發(fā)展前景。
在后續(xù)工作中,將進(jìn)一步完善基于特征模型的綜述方法,使其更好地支持對特定領(lǐng)域方法的分析。其次希望以該文為基礎(chǔ),進(jìn)一步研究基于特征模型和基于決策模型配置方法的共性和可變性。
[1] Pohl K,Bockle G,Linden V D.Software product line engineering:foundations,principles and techniques[M].Berlin:Springer,2005.
[2] Schobbens P Y,Heymans P,Trigaux J C,et al.Generic semantics of feature diagrams[J].Computer Networks,2007,51(2):456-479.
[3] Riebisch M,Bollert K,Streitferdt D,et al.Extending feature diagrams with UML multiplicities[C]//Proceedings of the 6th world conference on integrated design & process technology.[s.l.]:[s.n.],2002.
[4] Chastek G,Donohoe P,Kang K C,et al.Product line analysis:a practical introduction[R].Pittsburgh:Carnegie Mellon University,2001.
[5] Kang K,Cohen S,Hess J,et al.Feature-Oriented Domain Analysis (FODA) feasibility study[R].Pittsburgh:Carnegie Mellon University,1990.
[6] Kang K C,Kim S,Lee J,et al.FORM:a feature-oriented reuse method with domain-specific reference architectures[J].Annals of Software Engineering,1998,5(1):143-168.
[7] Benavides D,Trinidad P,Ruiz-Cortés A.Automated reasoning on feature models[C]//Proceedings of the 17th international conference on advanced information systems engineering.[s.l.]:[s.n.],2005:491-503.
[8] Czarnecki K,She S,Wasowski A.Sample spaces and feature models:there and back again[C]//Proceedings of international software product line conference.Washington:IEEE Computer Society,2008:22-31.
[9] Ubayashi N, Nakajima S, Hirayama M.Context-dependent product line practice for constructing reliable embedded systems[J].Lecture Notes in Computer Science,2010,6287:1-15.
[10] Lee K,Kang K C.Usage context as key driver for feature selection[J].Lecture Notes in Computer Science,2010,6287:32-46.
[11] Etxeberria L,Sagardui G.Variability driven quality evaluation in software product lines[C]//Proceedings of the 2008 12th international software product line conference.Washington:IEEE Computer Society,2008:243-252.
[12] Bagheri E,Noia T D,Ragone A,et al.Configuring software product line feature models based on stakeholders’ soft and hard requirements[C]//Proceedings of the 14th international conference on software product lines:going beyond.Berlin:Springer,2010:16-31.
[13] Cook S.The complexity of theorem-proving procedures[C]//Proceedings of the third annual ACM symposium on theory of computing.New York:ACM,1971:151-158.
[14] Batory D.Feature models,grammars,and propositional formulas[J].Lecture Notes in Computer Science,2005,3714:7-20.
[15] Benavides D,Segura S,Ruiz-Cortés A.Automated analysis of feature models 20 years later:a literature review[J].Information Systems,2010,35(6):615-636.
[16] Maric F. Formalization and implementation of modern SAT solvers[J].Journal of Automated Reasoning,2009,43(1):81-119.
[17] Bryant R.Graph-based algorithms for boolean function manipulation[J].IEEE Transactions on Computers,1986,35(8):677-691.
[18] Tsang E.Foundations of constraint satisfaction[M].[s.l.]:Academic Press,1995.
[19] Benavides D,Cortés R A,Trinidad P.Coping with automatic reasoning on software product lines[C]//Proceedings of the 2nd Groningen workshop on software variability management.Groningen:[s.n.],2004.
[20] Benavides D,Trinidad P,Ruiz-Cortés A.Using constraint programming to reason on feature models[C]//Proceedings of the 17th international conference on software engineering & knowledge engineering.[s.l.]:[s.n.],2005:677-682.
[21] Benavides D,Trinidad P,Cortés R A,et al.FaMa[M].Berlin:Springer,2013:163-171.
[22] Mamdani E H.Application of fuzzy logic to approximate reasoning using linguistic synthesis[C]//Proceedings of the sixth international symposium on multiple-valued logic.Washington:IEEE Computer Society,1976:1182-1191.
[23] White J,Schmidt D C,Wuchner E,et al.Automating product-line variant selection for mobile devices[C]//Proceedings of the 11th annual software product line conference.Berlin:Springer,2007:129-140.
[24] White J,Doughtery B,Schmidt D,et al.Automated reasoning for multi-step software product-line configuration problems[C]//Proceedings of the software product line conference.Berlin:Springer,2009:11-20.
[25] White J,Galindo J A,Saxena T,et al.Evolving feature model configurations in software product lines[J].Journal of Systems & Software,2014,87(1):119-136.
[26] Bartholdt J,Medak M,Oberhauser R.Integrating quality modeling with feature modeling in software product lines[C]//Proceedings of international conference on software engineering advances.Washington:IEEE Computer Society,2009:365-370.
[27] Hubaux A,Heymans P,Schobbens P,et al.Supporting multiple perspectives in feature-based configuration[J].Software & Systems Modeling,2013,12(3):641-663.
[28] Abbasi E K,Hubaux A,Heymans P.A toolset for feature-based configuration workflows[C]//Proceedings of the 2011 15th international software product line conference.Washington:IEEE Computer Society,2011:65-69.
[29] Czarnecki K,Helsen S,Eisenecker U.Staged configuration using feature models[J].Lecture Notes in Computer Science,2004,3154:266-283.
[30] Czarnecki K, Helsen S, Eisenecker U.Staged configuration through specialization and multilevel configuration of feature models[J].Software Process:Improvement and Practice,2005,10(2):143-169.
[31] Classen A,Hubaux A,Heymans P.A formal semantics for multi-level staged configuration[C]//Proceedings of the international workshop on variability modelling of software-intensive systems.[s.l.]:[s.n.],2009:51-60.
[32] Hubaux A,Classen A,Heymans P.Formal modelling of feature configuration workflow[C]//Proceedings of the 13th international software product lines conference.San Francisco:Carnegie Mellon University,2009:221-230.
[33] Mendon?a M,Bartolomei T T,Cowan D.Decision-making coordination in collaborative product configuration[C]//Proceedings of the ACM symposium on applied computing.New York:ACM,2008:108-113.
[34] Schmid K,Rabiser R,Grünbacher P.A comparison of decision modeling approaches in product lines[C]//Proceedings of the 5th workshop on variability modeling of software-intensive systems.[s.l.]:[s.n.],2011:119-126.
Research on Configuration Method for Software Product Based on Feature
LIU Yu-mei,HUANG Ming-yu
(College of Computer Science and Technology,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)
A Software Product Line (SPL) is a set of software-intensive systems sharing a common,managed set of features that are satisfied specific requirements of market and task,which is developed from a common set of core assets in a prescribed way.Variability modeling is a widely used in commonalities and variabilities management in software product line.Among the existing variability modeling approaches to variabilities management,feature modeling have gained most importance.The approach of product configuration based on feature is about how to select features from a feature model based on specific domain requirements and stakeholders’ goals.Although the literature on this topic has gained most importance in academic and industrial fields,only little effort is dedicated to compare and analyze them.In order to address this shortcoming and to provide a basis for more structured research on feature modeling in the future,firstly build a framework model to describe model structure,dependency management,automated support,configuration approaches and so on shared in the approaches family.Then,understand and classify different configuration method based on the framework.Meanwhile analyze the commonalities and variabilities among different approaches.
software product line;feature model;product configuration;commonalities;variabilities
2015-05-06
2015-08-09
時(shí)間:2016-01-26
國家自然科學(xué)基金資助項(xiàng)目(61170043);國家“973”重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃項(xiàng)目(2014CB744904)作者簡介:劉玉梅(1990-),女,研究生,研究方向?yàn)槟P蜋z測、軟件產(chǎn)品線。
http://www.cnki.net/kcms/detail/61.1450.TP.20160126.1517.012.html
TP311
A
1673-629X(2016)02-0001-06
10.3969/j.issn.1673-629X.2016.02.001