胡月瑩
摘要:軟件產(chǎn)品線是基于專業(yè)領(lǐng)域的大粒度可復(fù)用的一種規(guī)范化的開(kāi)發(fā)軟件產(chǎn)品的方法,基于特征模型建模是軟件產(chǎn)品線建模中最熱門的方法,由于特征模型受到廣泛關(guān)注,眾多機(jī)構(gòu)開(kāi)發(fā)了不同的建模技術(shù),選擇合適的建模技術(shù)很困難,在特征模型領(lǐng)域中開(kāi)展了對(duì)建模技術(shù)的綜述,按照綜述的方法系統(tǒng)的總結(jié)了建模技術(shù),并深入的探討建模各階段的主流技術(shù)。
關(guān)鍵詞:綜述;軟件產(chǎn)品線;特征模型
引言
軟件產(chǎn)品線是可以在短時(shí)間內(nèi)完成高質(zhì)量的軟件產(chǎn)品,成本低,類似于流水線生產(chǎn)的一種方法,得到的軟件產(chǎn)品具有多樣性和專業(yè)性[1]。獲取開(kāi)發(fā)領(lǐng)域軟件系統(tǒng)的共性特征和可變性的特征是軟件產(chǎn)品線建模的關(guān)鍵。CMU SEI工程研究所在1990年發(fā)明了面向特征的產(chǎn)品建模方法FODA,如今已經(jīng)成為軟件產(chǎn)品線建模的主流技術(shù),而且在軟件開(kāi)發(fā)階段也有了相應(yīng)的擴(kuò)展。其中FODA中的特征就是軟件產(chǎn)品線中共有特征和可變性特征的統(tǒng)稱。面向特征的軟件產(chǎn)品線技術(shù)很多,適用方向各有不同,本文總結(jié)各建模方法的關(guān)鍵技術(shù),并針對(duì)建模的各個(gè)階段主流方法進(jìn)行了深入的分析。
1面向特征的軟件產(chǎn)品線開(kāi)發(fā)方法
軟件產(chǎn)品線是使用類似于流水線的思想開(kāi)發(fā)軟件產(chǎn)品,主要是建立各個(gè)不同領(lǐng)域自身的產(chǎn)品線,在這個(gè)軟件產(chǎn)品線上就可以根據(jù)不同領(lǐng)域的獨(dú)特性,提取該領(lǐng)域所有的共同特征,使用大粒度可復(fù)用的方法建立全面的、系統(tǒng)的產(chǎn)品線。然后在產(chǎn)品線的基礎(chǔ)上,根據(jù)每款產(chǎn)品的特有功能,即可變性特征來(lái)開(kāi)發(fā)軟件產(chǎn)品。從而實(shí)現(xiàn)開(kāi)發(fā)經(jīng)濟(jì)、高效而且高質(zhì)量軟件產(chǎn)品的目的。早在20世紀(jì)70年代的時(shí)候David L.Pnaras提出了“程序家族的概念” [2],這個(gè)概念就是軟件產(chǎn)品線的前身。FODA用在美國(guó)軍隊(duì)運(yùn)動(dòng)控制領(lǐng)域,隨后CMU SEI提出了軟件產(chǎn)品線實(shí)踐框架。德國(guó)馬格德堡大學(xué) Thomas Thum等人提出了 基于特征模型的軟件產(chǎn)品線全程開(kāi)發(fā)框架(Feature IDE),該框架把軟件生產(chǎn)過(guò)程劃分為四個(gè)階段,分別是領(lǐng)域分析、需求分析、領(lǐng)域?qū)崿F(xiàn)和軟件生成階段。而四個(gè)階段都是在Eclipse 中進(jìn)行實(shí)現(xiàn),覆蓋了整個(gè)SPLs開(kāi)發(fā)過(guò)程,從而實(shí)現(xiàn)了一致的用戶界面和自動(dòng)化。
2 基于特征模型的建模方法領(lǐng)域分析方法
FODA的關(guān)鍵技術(shù)單元是特征,使用特征將問(wèn)題領(lǐng)域中需求進(jìn)行模塊化組織,在開(kāi)發(fā)其他產(chǎn)品的時(shí)候,可變的特征會(huì)發(fā)生相應(yīng)的變化,從而滿足產(chǎn)品線根據(jù)行業(yè)或者客戶的要求隨需應(yīng)變[3]。
基于特征模型的軟件產(chǎn)品線開(kāi)發(fā)方法把軟件的開(kāi)發(fā)分為四個(gè)階段,其中在領(lǐng)域分析方法研究中,F(xiàn)ODA方法的提出使得基于特征的方法是在領(lǐng)域建模中最受熱門的主流方法,隨著FODA的關(guān)注度的提升,世界各地的研究所采用不同的方式對(duì)特征結(jié)構(gòu)的構(gòu)造已經(jīng)軟件實(shí)現(xiàn)的對(duì)接進(jìn)行了擴(kuò)展。如Fuzzy等在共有特征和私有特征的理念基礎(chǔ)上,完善了特征之間的關(guān)系。德國(guó)馬格德堡大學(xué)Thomas Thum研究出Feature IDE整體框架,涉及到軟件開(kāi)發(fā)的全部過(guò)程,而且采用開(kāi)源的方式,在Eclipse中集成開(kāi)發(fā)環(huán)境(IDE),從而實(shí)現(xiàn)了軟件產(chǎn)品線(SPLs)的構(gòu)建。并且可以對(duì)接現(xiàn)有的其他面向特征的開(kāi)發(fā)方法和編程語(yǔ)言。
3 基于特征模型的建模表示方法
特征模型的表示方最常用的是圖形化表示和文本式表示,其中可以創(chuàng)建有效的軟件產(chǎn)品的配置有兩個(gè)主要的商業(yè)成果,分別為 pure::variant和 Cears。其關(guān)鍵技術(shù)是KConfig和CDL,二者都提供了編輯器和文本,其中編輯器用于配置軟件特征,而文本是使用形式化語(yǔ)言描述模型。KConfig是專們用在 Linux操作系統(tǒng),而 CDL 用于ecos嵌入式操作系統(tǒng)。而在教學(xué)和學(xué)術(shù)方面,可以使用GUIDSL語(yǔ)法來(lái)描述特征模型,該語(yǔ)法還可以生成表單來(lái)創(chuàng)建和保存配置。SPLOT是一個(gè)在線工具,可以提供在線特征模型編輯器和配置編輯器,而且可以對(duì)特征模型進(jìn)行自動(dòng)分析。FAMA也可以實(shí)現(xiàn)對(duì)特征模型的自動(dòng)分析,但該方法側(cè)重于比較不同的特征模型,并且有約束和可選配置功能。FMP使用視圖的方式表達(dá)了特征模型,主要是樹(shù)結(jié)構(gòu)。S2T2可以實(shí)現(xiàn)模型的有效配置,使用解算器提供的視覺(jué)解釋。Feature IDE覆蓋了整個(gè)軟件開(kāi)發(fā)過(guò)程,不僅滿足特征模型的建立,還可以為領(lǐng)域?qū)崿F(xiàn)和軟件生成階段提供開(kāi)發(fā)平臺(tái)和可復(fù)用構(gòu)件。
參考文獻(xiàn):
[1]蘇濃光,楊貫中.一種基于形式化可配置特征單元的特征模型[J].計(jì)算機(jī)應(yīng)用與軟件. 2018(01)
[2]趙鄂,楊博文,楊貫中.一種適用于軟件產(chǎn)品線的特征模型[J].計(jì)算機(jī)系統(tǒng)應(yīng)用. 2013(10)
[3]張偉,梅宏.面向特征的軟件復(fù)用技術(shù)——發(fā)展與現(xiàn)狀[J].科學(xué)通報(bào).2014(01)