蘇濃光 楊貫中
(湖南大學信息科學與工程學院 湖南 長沙 410082)
本文主要研究將基于軟件產品線高度可復用[1]的開發方法引入可配置的特征模型的方法,提出了一種基于形式化可配置特征單元的特征模型——可配置特征模型CFM(Configurable Feature Model),以期提高軟件質量,提高開發軟件的效率,縮減軟件的研發成本。
軟件產品線的工程成功是實現軟件復用的方法之一[2]。領域工程與應用工程是軟件產品線工程的兩個過程[3]。可重用的平臺建立、軟件產品線可變性和公共性的定義在領域工程階段完成。需求工程、領域設計、領域實現及領域測試是領域工程的四個過程。為了加快開發產品的過程軟件平臺中的構件被應用工程重用。應用需求工程、應用設計、應用實現和應用測試應用工程包含四個過程。
本文提出的可配置特征模型CFM是面向特征的領域需求規約模型[4]。通過記錄領域中一組具有相對穩定的特征以及特征與特征之間的關系反映整個領域的產品需求,在生產線工程中開發可動態重新配置的產品的特征模型[5-6]。在軟件復用的領域工程和應用工程階段,特征模型[7]呈現出不同的特點。Lee等[8]為了便于產品線中可復用構件的設計和開發,引入了特征的操作化依賴。李玉琴等[9]定義了一系列從需求到特征的映射規則,得到一致性產品核心資產。但是這些傳統特征模型的建立過度地依賴于領域專家的分析能力[10],由于缺少對表示特征約束關系的新元素的引入,難以實現各個階段之間的平滑過渡,使得特征模型與各個軟件制品的追溯關系難以建立[11]。
本文在已有特征模型的基礎上,對可配置特征模型組成各元素進行了概念說明,給出了相應的形式語義,著重就特征屬性[12]、特征關系等問題進行了討論。創新性地把特征組合定義成特征運算實現,定義了多種特征組合運算,保證了不同抽象層次的構件及其關系具有明確和嚴格的定義,從而建立了一種層次化的可配置特征模型。并給出了從特征到可配置特征單元的映射規則,為基于特征的軟件產品線中的設計和實現提供理論支持。
軟件產品線中的特征可以被分成兩種類型:共性特征和可變特征。
某個特定的領域中每一個應用系統存在的特征就是共性特征。只在某個系統中存在的特征為可變特征。領域的核心成分和基礎設施是由共性特征構成,領域里具有的共性得以展現。可變特征體現的是領域的變化性,須基于領域中共性特征的集合前提之上,并不能單獨存在這種可變性。
可變特征可以被分為以下幾種類型:強制的(mandatory)、可選的(optional)、可替代的(alternative)。
強制特征MF(Mandatory Feature):是指在領域中每個應用系統中應該包含的特征;也可指當父特征被保留時,它的某個子特征是必選的,則該子特征相對于它的父特征為強制特征。
可選特征OF(Optional Feature):是指對于領域中的各個應用系統可有可無的特征;也可當父特征被保留時,它的某個子特征有可能被選中,則子特征相對于它的父特征為可選特征。
可替代特征AF(Alternative Feature):可替代特征又稱為多選一特征,可以被認為是對某一個一般性特征的具體化,它與可選特征的區別是可選特征能夠同時選擇多個而可替代特征只能選擇一個特征;也可指當父特征被保留時,在子特征集中每個特征和父特征之間都是可選關系,但是在保留的子特征個數上存在約束。
某個集合里特征與特征間的某種關系隱含在變化性的某種類型中,在軟件產品線里的特征選擇約束可以用特征可變性表示,形式化的特征的可變性表示為:SCf={mandatory,optional,alternative}。
特征間的關系包括層次關系和依賴關系[13]。
層次關系包括包含、特化和實現關系。在本文中,層次關系主要用到跨層約束中的父子關系。
依賴關系包括:需要和互斥兩種關系。


根據前面的分類形式化,形式化的特征依賴表示為:Deff={require,exclude}。
特征依賴是可傳遞的,但不包括排斥的依賴,即指直接依賴的相鄰能夠組合成隱含的某一種依賴關系。不包括排斥關系的任何依賴關系稱作“requisite”(需要的)依賴關系。重復使用這種傳遞性可以找出兩個不相鄰的特征之間隱含的某種依賴關系。
本文中的特征描述采用形式化描述方法[14],使用形如數學符號的形式化語法和語義來刻畫可配置特征模型的組成元素,行為的組裝與特征模型規約的描述,可以避免描述可配置特征模型圖形符號或者自然語言等不是形式化的方法在產生二義性的問題。特征模型設計采用形式化方法,主要是希望可以像其他的工程領域內的學科一樣,通過一定的數學分析,來設計的魯棒性和可靠性得以提高。接下來對各組成元素進行詳細描述并給出其對應的圖形符號表示。
定義1特征 特征F(Feature)定義為軟件產品中具有用戶可見的顯著的相對獨立的功能、有特定的屬性、和上下文有明顯關系可獨立部署的軟件實體。
一個特征描述了它所提供的服務特點,特征的類型、特征的屬性和特征之間相互的關系,是軟件復用的基本單元。一個特征F是一個四元組,其形式化表示為:
F=
(1)
式中:
?FName是特征名稱,是特征的唯一標識符。
?T表示特征的類型,主要分為能力特征、運行環境特征、領域技術特征和實現技術特征。
能力特征描繪了特定領域的應用系統的性能、特定服務、功能或操作,用戶可以看見并可以被用戶選擇來實現所需的應用系統的需求。
運行環境特征是指該領域應用中最終選擇和運行環境的屬性,主要包括接口協議、網絡環境以及軟硬件平臺等。
領域技術特征針對具體領域按照不同的技術層次描述了實現細節。
實現技術特征與領域技術類似,區別在于領域技術特征是針對具體領域而言,無法用于其他領域,實現技術特征則更加通用,可以用于其他領域。
能力特征可以被進一步劃分為功能性特征、操作性特征和表示性特征。
功能性特征是應用系統提供的基本服務。
操作性特征是與應用系統操作有關的特征(從用戶的角度),用來描述用戶是如何應用系統進行交互的。
表示性特征是指那些與將要呈現給用戶的信息內容以及這些信息以什么方式呈現給用戶這兩方面相關的特征。
?C表示特征的屬性,指明該特征是強制的、可選的還是可替代的。
?RX表示特征之間的關系,特征之間的關系對外是不可見的,特征與特征之間存在依賴關系:層次關系(parent或child)、需要關系(require)以及互斥關系(exclude)。其形式化表示為:
(2)
式中:Fi、Fni分別表示特征i和特征i對應的特征集,X表示特征Fi與特征Fni之間的關系,即:




規范1特征之間的關系規范Fni表示與特征Fi相關的一個特征集,其特征數量可以為0,也可以為多個。
定義2可配置特征單元必備集合 在配置特征單元F時,必須出現當前配置中的特征集合,則Require(F),縮寫為R(F)。
定義3可配置特征單元排除集合 在配置特征單元F時,必須不在當前配置中的特征集合,則Exclude(F),縮寫為E(F)。
定義4.運算 運算實現提取特征部分內容,如A是特征集合F中的特征,且滿足CFM(A)∈CFM(F),則A就可以表示為F.A。
定義5特征相等關系 若f1、f2是特征集F中的特征,當f1、f2滿足下面條件時:
(3)
稱f1、f2相等,記作f1?f2,其中?表示邏輯等價。
定義6直接連接運算 若f1、f2是特征集F中的特征,當f1、f2滿足下面條件時:

稱f2是f1的父特征,在特征圖中可以將f1直接與f2相連。圖1展示了f1直接與f2相連的結果。
此外,孔子在《論語·泰伯》中說過:“邦有道,貧且賤焉,恥也。邦無道,富且貴焉,恥也。”意思是國家政治清明,自己貧賤,是恥辱。國家政治黑暗,自己富貴,是恥辱。也就是說,國家有道,應該出來做事,在為國家服務后,必然會獲得奉祿,此乃理所當然。而國家昌明之時,自己依舊貧賤,只能說明自己無才無德,不足以服務于國家,沒能建功立業,應以此為恥。若國家無道,而自己富貴,那你捫心自問,你是依據何道而富貴的呢?思考一下,一定會感到可恥。

圖1 特征直接連接運算
定義7特征添加運算 若對于任意特征f,在可配置特征單元CFU中都存在一個特征F,滿足f.parent=F且f∈CFU.CF,則定義將f加入到可配置特征單元CFU中,作為CFU的子特征的過程,稱為CFU與f的一次添加運算,記為CFU⊕f,其形式化表示為:
?f((f∈CFU.CF)∧(?F∈CFU.CF)∧
(f.parent=F))?CFU⊕f
(4)
推論若f本身為一個可配置特征單元,在可配置特征單元CFU中都存在一個特征F,滿足f.Root.parent=F且f.Root∈CFU.CF,則定義將f加入到可配置特征單元CFU中,作為CFU的子特征的過程,稱為CFU與f的一次添加運算,記為CFU⊕f,其形式化表示為:
f((f.Root∈CFU.CF)∧(?F∈CFU.CF)∧
(f.Root.parent=F))?CFU⊕f
(5)
定義8特征刪除運算 在可配置特征單元CFU中,若對于任意可選特征f且f∈CFU.CF,則定義刪除運算為將f從CFU中刪除,記為CFUΘf,其形式化表示為:
?f((f∈CFU.CF)∧(f.C=Optional))?CFUΘf
(6)
例如在智慧教室特征圖中,通過運算添加特征抽風機(智慧教室⊕抽風機),添加特征單元CO2傳感器(智慧教室⊕CO2傳感器),以及刪除特征LED顯示屏(智慧教室ΘLED顯示屏),其特征圖的變化見圖2。

圖2 智慧教室特征運算的特征圖
識別產品線里產品對用戶可見的某些活動特性并構建成特征模型的過程就是特征建模。軟件產品線的非功能特性、技術特征、服務以及操作都可以是特征。特征的層次結構圖形化之后就是特征樹,主要是可變特征和共性特征還有特征間的關系。進一步對特征模型分析研究發現,當保留或刪除特征模型內某個特征時,另外存在某些特征也會跟隨被保留或刪除。由此,本文提出了可配置特征單元的概念。下面對可配置特征單元的概念進行研究討論。
定義9可配置特征單元 可配置特征單元CFU定義為在特征模型里某一組可變性彼此相關的特征,一個可配置特征單元描述了這組特征的屬性Commonality、特征之間相互的關系Relationship,以及可配置特征單元中包含的一組特征集合。一個可配置特征單元CFU是一個四元組,其形式化表示為:
CFU=
(7)
式中:
?CFUName是的名稱,是可配置特征單元的唯一標識符。
?C(Commonality) 表示可配置特征單元的屬性,指明該可配置特征單元是強制的、可選的還是可替代的。
?RX表示可配置特征單元之間的關系(Relationship),通過對特征之間關系的提升操作,實現從特征關系到可配置特征單元關系的轉化,本文定義可配置特征單元具有三種關系:層次關系(parent或child)、需要關系(require)以及互斥關系(exclude)。其形式化表示為:
(8)
式中:CFUi、CFUj分別表示可配置特征單元i和可配置特征單元j, X表示可配置特征CFUi與可配置特征CFUj之間的關系,即:




?CF表示可配置特征單元中包含的一組特征的集合。
通常將可配置特征單元的命名是以它所對應的特征子樹中的根特征作為命名的主要依據,輔以考慮其他子特征的功能,來設定可配置特征單元的名稱。可配置特征單元的內部CF就是一個由組成這個可配置特征單元的特征所構成的特征子樹。可配置特征單元的屬性是由這棵特征子樹的根節點的可變性決定的:可配置特征單元是強制的該可配置特征單元的根節點強制,若可配置特征單元是可選的即指該可配置特征單元的根節點可選;若可配置特征單元根節點可替代,則該可配置特征單元是可替代的。同時,可配置特征單元中的特征必須存在一定的約束關系,具體如下:
規范2可配置特征單元中關于特征數目的規范 一個可配置特征單元內至少必須包含一個特征,即可配置特征單元集數目大于1,‖CF‖≥1。
規范3可配置特征單元的屬性規范 可配置特征單元的根特征是強制特征、可選特征或者可替代特征中的某一種。其他特征可以是其中任意一種特征,并能通過可配置特征單元的運算對其他特征進行運算。
規范4可配置特征單元葉子特征的規范 可配置特征單元中每個葉子特征在特征模型中的子特征一定是可選的或可替代的。
上述可配置特征單元的幾種約束關系,能夠作為可配置特征單元驗證的依據,以保證可配置特征單元分割的合理性。
由于這樣的分組方式使得可配置特征單元產品配置管理過程中的變體復雜性得以降低,可以幫助開發者分析選擇該特征而引起的改變情況。同時,通過CFU的映射規則進行識別,方便進一步地有效管理。
由特征的選擇約束可得,可配置特征單元的選擇約束其形式化表示為:SCCFU={mandatory,optional,alternative}。
根據特征依賴具有可傳遞的特性可知,不包括排斥的可配置特征單元的依賴關系也是具備傳遞性。意思是直接依賴的相鄰能夠組合成隱含的某一種依賴關系。不包括排斥關系的任何依賴關系稱作“requisite”(需要的)依賴關系。重復使用這種傳遞性可以找出兩個不相鄰的特征之間隱含的某種依賴關系。
定義10可配置特征單元根特征,Root Feature of CFU 一個CFU的根特征是組成這個可配置特征單元的特征所構成的特征子樹的根節點。
特征模型中,特征與特征之間存在依賴關系:層次關系、需要關系以及互斥關系。依據可配置特征單元的定義可知,可配置特征單元包含的特征可以表示為一顆特征子樹,并且這顆特征子樹是整個特征模型的片段配置。因此,通過提升操作,實現從特征關系到可配置特征單元關系的轉化。本文定義可配置特征單元具有三種關系:層次關系、需要關系,以及互斥關系。
定義11可配置特征單元的結構關系 結構關系是指可配置特征單元存在父子關系,如果一個可配置特征單元的根特征是另一個可配置特征單元中任意一個特征的孩子特征,則這兩個可配置特征單元之間存在結構關系,其形式化表示為:
?f1?f2((f1∈CFU1.CF)∧(f2CFU2.CF.Root)∧
(f2∈f1.child))?(CFU2.parent=CFU1)∧
CFU2∈CFU1.child
(9)
定義12可配置特征單元的需要關系 可配置特征單元中的需要關系是指可配置特征單元之間存在的某種必需的關系,若一個可配置特征單元中一個特征和另外一個可配置特征單元中的某一個子特征存在需要關系,那么這兩個可配置特征單元存在需要關系,其形式化表示為:
?f1?f2((f1∈CFU1.CF)∧(f2∈CFU2.CF)∧

(10)
定義13可配置特征單元的互斥關系 可配置特征單元的互斥關系是指可配置特征單元之間的排斥關系,若一個可配置特征單元的某一個特征與另一個可配置特征單元中的某一個子特征存在互斥關系,那么這兩個可配置特征單元存在互斥關系,其形式化表示為:
?f1?f2((f1∈CFU1.CF)∧(f2∈CFU2.CF)∧

(11)
如果可配置特征單元是從特征一一映射而來,特征之間的依賴關系就和可配置特征單元之間的依賴關系是相同。但事實上,可配置特征單元不是特征的一一映射,所以特征之間的依賴關系和可配置特征單元之間的依賴不是同樣的,但是我們可以假定特征之間和可配置特征單元之間相同的依賴類別存在,那么前面討論的關于特征的依賴關系和可變性同樣實用于可配置特征單元。
特征和可配置特征單元之間存在多對多(n×m)的關系。在特征和可配置特征單元選擇約束的關系如圖3所示。

圖3 特征和可配置特征單元選擇約束之間的關系
在領域工程中,特征被表示為F,在軟件產品當中可以生成多個特征,特征數量是v,每個特征有一個唯一的標識號。
1)F≡{Fi|1≤i≤v}。
2) ?Fi∈F,Fj∈F?(i=j)∨(Fi≠Fj)∧(i≠j)產品特征指定了可配置特征單元CFU,產品中可配置特征單元數是n,每個可配置特征單元有一個唯一標識號。
3)CFU≡{CFUi|1≤i≤n∧specify(F,CFUi)}。
4) ?CFUi∈CFU,CFUj∈CFU?(i=j)∨(CFUi≠CFUj)∧(i≠j)。
基于第1.1節的定義,每個特征對應一個選擇約束SCf。
5)SCf∈{common,mandatory,optional,alternative}。
每個可配置特征單元同樣也有一個選擇約束SCcfu。
6)SCcfu∈{mandatory,optional,alternative}。
映射規則1強制的特征映射到強制的可配置特征單元。如果指定一個可配置特征單元的所有特征都是強制的,那么這個可配置特征單元成為強制的可配置特征單元,其形式化表示為:
?f((f∈CFU.CF)∧(f.C=Mandatory))?
CFU.C=Mandatory
(12)
7) ?CFUi∈CFU,?Fk∈F,specify(Fk,CFUi)∧(?Fl∈Fk,SCf(Fk)=Mandatory)?SCcfu(CFUi)=Mandatory。
映射規則2共性的特征映射到強制的可配置特征單元。如果指定一個可配置特征單元的所有特征都是共性的,那么這個可配置特征單元成為強制的可配置特征單元。
8) ?CFUi∈CFU,?Fk∈F,specify(Fk,CFUi)∧(?Fl∈Fk,SCf(Fk)=Common)?SCcfu(CFUi)=Mandatory。
映射規則3可選的特征映射到可選的可配置特征單元。如果指定一個可配置特征單元的根特征都是可選的,那么這個可配置特征單元成為可選的可配置特征單元,其形式化表示為:
?f((f=CFU.CF.Root)∧(f.C=Optional))?
CFU.C=Optional
(13)
9) ?CFUi∈CFU,?Fk∈F,specify(Fk,CFUi)∧(?Fl∈Fk,Fl=CFU.CF.Root,SCf(Fk)=Optional)?SCcfu(CFUi)=Optional。
映射規則4可替代的特征映射到可替代的可配置特征單元。如果指定一個可配置特征單元的根特征都是可替代的,那么這個可配置特征單元成為可替代的可配置特征單元,其形式化表示為:
?f((f=CFU.CF.Root)∧(f.C=Alternative))?
CFU.C=Alternative
(14)
10) ?CFUi∈CFU,?Fk∈F,specify(Fk,CFUi)∧(?Fl∈Fk,Fl=CFU.CF.Root,SCf(Fk)=Alternative)?SCcfu(CFUi)=Alternative。
映射規則5可選的特征映射到強制的可配置特征單元。如果一個可配置特征單元由可選的特征指定,并且存在一個強制的特征對這個可選的特征之間有“需要的”依賴關系,那么這個可配置特征單元成為強制的可配置特征單元。
11) ?CFUi∈CFU,?Fk∈F,specify(Fk,CFUi)∧(?Fj∈F,?Fl∈Fk,dep(Fj,Fl)=Requisite,SCf(Fj)=Mandatory,SCf(Fk)=Optional,F1=CFU.CF.Root)?SCFcfu(CFUi)=Mandatory。
映射規則6可替代的特征映射到強制的可配置特征單元。如果一個可配置特征單元由可替代的特征指定,并且存在一個強制的特征對這個可選的特征之間有“需要的”依賴關系,那么這個可配置特征單元成為強制的可配置特征單元。
12) ?CFUi∈CFU,?Fk∈F,specify(Fk,CFUi)∧(?Fj∈F,?Fl∈Fk,dep(Fj,Fl)=Requisite,SCf(Fj)=Mandatory,SCf(Fk)=Alternative,Fl=CFU.CF.Root)?SCcfu(CFUi)=Mandatory。
這些映射規則被應用到特征到可配置特征單元的轉換過程之后,可配置特征單元的可變性有可能和指定這些可配置特征單元的特征原來的可變性不相同了。
可變性改變將進一步指導軟件產品線中的構件和體系結構設計,做軟件產品線的共性部分也包括其中從可變的特征轉變成強制的可配置特征單元。
在領域工程中,特征模型是面向特征的領域需求規約模型,通過記錄領域中一組具有相對穩定的特征,以及特征與特征之間的關系反映整個領域的產品需求。特征模型對特征本質及特征間關系是抽象描述。特征模型關注特征屬性和特征之間的關系,是特征組裝的依據和保證,并為特征的不同生產者和使用者提供了一個為大家所接受的一致性描述。
本文以智慧教室產品線為例,智慧教室系統通過管理和控制一組設備來保證整個教學樓或者教室的理想教育學習環境。綜合上述對軟件產品線特征模型的定義,以智慧教室集成系統為例,給出智慧教室產品線特征模型,如圖4所示。

圖4 智慧教室特征模型
在圖4中的智慧教室產品線特征模型可以看出,特征模型采用類似樹形的結構來表示,其中,節點表示特征,連接線表示特征之間的層次關系。圖4所示的特征模型中包含可選、強制和可替代三種類型的特征。它通過記錄領域中一組具有相對穩定的特征與特征之間的關系反映整個智慧教室的產品需求。
識別產品線里產品對用戶可見的某些活動特性并構建成特征模型的過程就是特征建模。軟件產品線的非功能特性、技術特征、服務,以及操作都可以是特征。特征的層次結構圖形化之后就是特征模型,主要是可變特征和共性特征還有特征間的關系。進一步對特征模型分析研究發現,當保留或刪除特征模型內某個特征時,另外存在某些特征也會跟隨被保留或刪除。基于此特點,我們提出了一種基于可配置特征單元的形式化特征模型(CFM)。還以智慧教室集成系統為例,綜合前文對軟件產品線基于可配置特征單元的形式化特征模型(CFM)的定義,對特征的選擇約束的說明,通過映射規則,可以很快得出智慧教室產品線基于可配置特征單元的形式化特征模型,并對其特征模型進行分析,如圖5所示。

圖5 智慧教室可配置特征模型
在圖5中的智慧教室產品線基于可配置特征單元的形式化特征模型可以看出,特征模型同樣采用類似樹形的結構來表示,其中,節點表示可配置特征單元,連接線表示可配置特征單元之間的層次關系。圖5所示的特征模型中包含可選、強制和可替代三種類型的可配置特征單元。
在智慧教室的傳統特征模型中,總共包含54個特征,然而在基于可配置特征單元的特征模型中僅僅包含20個可配置特征單元。因此,基于可配置特征單元的特征模型縮小了傳統特征模型的規模。這樣我們就可以根據智慧教室領域中某個系統的需求快速、準確地找到該系統所需要的可配置特征單元,用被選中的可配置特征單元構成的特征模型來描述系統需求規約。分析對比,發現傳統特征單元研究中不宜察覺的特征約束關系,對從特征到可配置特征單元使用映射規則后,我們得到的特征和可配置特征單元是一致的。
本文主要研究將基于軟件產品線高度可復用的方法引入可配置的特征模型的方法,提出了一種形式化可配合的特征模型,是面向特征的領域需求規約模型,通過記錄領域中一組相對穩定的特征,以及特征與特征之間的關系反映整個領域的產品需求。本文以特征為切入點,對可配置特征模型組成各元素進行了概念說明,并給出了相應的形式化的語義。著重就特征屬性,特征關系等問題進行了討論,創新性地把特征組合定義成特征運算實現。定義了多種特征組合運算,保證了不同抽象層次的特征及其關系具有明確嚴格的定義。在此基礎上,建立了一種形式化可配置特征模型,并給出了一套從特征映射到可配置特征單元的映射規則,為基于可配置特征單元的軟件產品線中的設計和實現提供理論支持。
但是,本文還存在著一些不足,對于特征的依賴和映射規則,我們只在一個抽象層次上研究了依賴對體系結構的影響。在后續工作中,我們將繼續研究不同特征依賴關系對體系結構的影響,建立領域需求和領域實現之間的映射關系,以提高軟件開發的效率。
[1] 王勇.軟件過程資產庫的研究與實現[J].計算機應用與軟件,2016,33(7):106-108,144.
[2] Moon M,Yeom K,Seok Chae H.An Approach to Developing Domain Requirements as a Core Asset Based on Commonality and Variability Analysis in a Product Line[J].IEEE Transactions on Software Engineering,2005,31(7):551-569.
[3] Paul Clements,Linda Northrop.Software Product Lines:Practices and Patterns[M].Addison-Wesley,New York,2001.
[4] 鄧惠月,楊貫中,張大方.面向嵌入式產品線的非功能特征模型[J].計算機應用與軟件,2016,33(1):244-248.
[5] Lee J,Kang K C.A feature-oriented approach to developing dynamically reconfigurable products in product line engineering[C]//Software Product Line Conference,2006,International.IEEE,2006:131-140.
[6] Yang G Z,Deng T.Sample-system-based domain feature model validation[C]//International Conference on Natural Computation and,Fuzzy Systems and Knowledge Discovery.2016:2104-2108.
[7] 趙鄂,楊博文,楊貫中.一種適用于軟件產品線的特征模型[J].計算機系統應用,2013,22(10):114-118.
[8] Lee K,Kang K C.Feature Dependency Analysis for Product Line Component Design[C]//Software Reuse:Methods,Techniques and Tools:,International Conference,ICSR 2004,Madrid,Spain,July 5-9,2009.Proceedings.DBLP,2004:69-85.
[9] 李玉琴,趙文耘.從領域需求到產品線體系結構的映射——一種面向特征的方法[J].計算機研究與發展,2007,44(7):1236-1242.
[10] 聶坤明,張莉.基于模型對比和組合的軟件產品線領域需求建模[J].計算機學報,2014,37(3):539-550.
[11] 張偉,梅宏.面向特征的軟件復用技術——發展與現狀[J].科學通報,2014(1):21-42.
[12] Yang G,Zhou R.A feature dependency graph analysis method based on object[C]//International Conference on Natural Computation and,Fuzzy Systems and Knowledge Discovery,2016:1587-1593.
[13] Sun R,Yang G,Zhang D,et al.ECM:An formal embedded component model for embedded system[J].International Journal of Control & Automation,2015,8.
[14] Lee Y,Yang C,Zhu C,et al.An approach to managing feature dependencies for product releasing in software product lines[C]//International Conference on Reuse of Off-The-Shelf Components.Springer-Verlag,2006:127-141.