?

Feature IDE理論與技術研究

2018-10-21 13:35胡月瑩
科技信息·中旬刊 2018年9期
關鍵詞:綜述

胡月瑩

摘要:Feature IDE 在 Eclipse軟件中的插件,可以用于軟件產品線中面向特征的軟件開發(FOSD)。FOSD 是軟件整體系統結構、個性定制和合成的一種方法。Feature IDE 支持FOSD的所有軟件開發階段,并將其分為四個階段,分別為領域分析、需求分析、領域實現和軟件生成。在特征模型領域中對Feature IDE理論與技術進行綜述,按照綜述的方法重點的探討了Feature IDE前兩個開發階段的技術。

關鍵詞:綜述;軟件產品線;特征模型;Feature IDE

引言

軟件產品線是可以高效率的完成高質量的軟件產品的生產,和工業領域中流水線生產方法類似,生產出來的軟件產品功能多樣,符合特定領域的軟件需要[1]。FOSD是軟件產品線的主流技術,是在特定領域中軟件產品公共性特征基礎上結合可變特征生產軟件產品。Feature IDE是一種比較成熟FOSD的技術,很有實用價值。本文總結Feature IDE理論與技術的四個開發階段的理論基礎和主流技術。

1 Feature IDE

特征是指明顯的、用戶可見的軟件系統的具有獨立功能的特性。FOSD的基本思想是將軟件系統分解為許多個特征,從而根據特征的選擇進行配置,從而生成具體的軟件系統。Feature IDE技術從設計生成軟件具體包括四個階段:

(1)領域分析,用來獲取獲取軟件體系領域的需求特征,并對這些特征進行分類,分為可變特征和公共特征,最終以特征模型的方式展現出來。

(2)需求分析,選取特征模型的特征組合方案,從而完成軟件特征的組裝和配置。

(3)領域實現,將特征用代碼進行映射和表示。

(4)軟件生成,描述特征如何映射到實現工件,生成定制的軟件系統。

德國馬格德堡大學計算機學院Thomas Thum 等人開發了基于Eclipse 的Feature IDE開源框架,它包含了整個軟件開發周期,還可以子啊集成開發環境(IDE)中建立軟件產品線(SPLs),可以建立特征模型,還可以為軟件生成提供開發平臺和可復用構件。在2005年Thomas Thum等人首次提出了一個Feature IDE的原型版本[2]作為AHEAD工具套件的前端的編程語言[3],隨后提出了FOSD可復用的實現工具Feature House和Feature C++和FOSD 集成框架Feature IDE。到目前為止,Feature IDE 集成了 Aspect J、Delta J[4]、Antenna和 Munge等技術。隨后為了解決 Feature IDE 實現和測試的問題,Thomas 等人開發了相關 Eclipse插件。Feature IDE 架構整合了 Feature IDE C++(支持 C++)、Feature House(支持 C、 C#、java 1.5、JML、Haskell、XML 和 Java CC 等)、面向方面程序設計(Aspect J)和面向 Delta編程,所以該架構支持現有的FOSD編程語言。Feature IDE 支持 FOSD 的所有階段:領域分析、需求分析、領域實現和軟件生成。下面對領域分析和需求分析階段進行重點描述。

2 領域分析

在領域分析中繪制的特征模型中,存在很多的無效特征,會導致最終省的軟件沒辦法使用。所以在制作模型過程中要選定有效特征,制成有效的特征組合。特征模型(FM)不僅描述了有效特征,還體現了特征之間密切關系特征模型是一種層次結構,特征可以有子特征。特征和其子特征集的關系包括為 And-group(與關系)、Or-group(或關系)和 Alternative-group(二選一關系)。子特征根據他是否具有公共性又分為強制特征(Mandatory)和可選特征(Optional)。強制特征是具有公共性,所有軟件產品線的軟件都需要具備的特征,所以具有強制性??蛇x特征具有獨特性,是某個或者某部分軟件產品所包含的特征;除此之外特征中有些特征只是特征分解中一個中間件,不會映射具體的工件,稱為抽象特征(Abstract),而最終軟件產品中具有的特征稱為具體特征(Concrete)。

Feature IDE 創建特征模型有兩種方式,圖形式和文本式。Feature IDE 可以在Eclipse中導入特征建模工具,包括 GUIDSL、Feature Modeling Plug-In [37]、S.P.L.O.T., 和 SPLConqueror。特征模型可以存儲為多種圖形格式,也可以以 PDF格式進行打印。

3 需求分析

特征模型中特征之間的除了層次關系,還有約束關系,Feature IDE使用Cross-tree 約束去定義這種約束關系。Cross-tree 約束命題公式,由是一組特征的組成,在特征圖下方。

特征模型包括一下四點:

(1)當一個特征最終成為某一軟件產品的特征,那么它的父特征也必然出現在這個軟件產品中。

(2)當一個特征最終成為某一軟件產品的特征,則其 And-group 中的所有的強制類型的子特征必然出現在這個軟件產品中。

(3)在 Or-group 中,其多個子特征中,最后至少有一個特征屬于最終的軟件產品。

(4)在 Alternative-group 中,有且只有一個特征屬于最終的軟件產品。

Feature IDE 提供了約束編輯器。該編輯器有內容幫助功能,可以方便的處理語法語義的有效性檢查。圖 2 展示了約束的有效性檢查??梢詸z查可以檢測括號不匹配、假可選特性、不可滿足的約束和冗余約束。

上式表示特征F依賴于特征A,B或者C以及它們的任意組合。

上式表示特征F依賴于特征對(A,X),(B,Y),(B,Z)或C以及它們的任意組合。排斥

也有相同的表達。綜上所述,可以得出非語法約束可以是任意命題約束。語法為特征模

型提供了一個圖形中性的表示,例如圖3(b)的語法可以表達圖3(a)的特征模型。

獲取特征集合,繪制特征模型之后,需要選擇合適的特征組合,即特征子集,稱為配置。其中默認配置是特征模型中包含的所有特征的集合。而且要保證配置得到的特征集合有效,可以生成有效的軟件產品。

參考文獻:

[1] 郭健美.基于共性與可變性分析的適應性軟件復用與配置技術研究[D].上海交通大學,2011.

[2] 趙鄂,楊博文,楊貫中.一種適用于軟件產品線的特征模型[J].計算機系統應用. 2013(10)

[3] Zhang W,Mei H,Zhao H.Feature-driven requirement dependency analysis and high-lev

[4]Batory D.A tutorial on feature oriented programming and the ahead tool suite [M],Berlin Heidelberg:Springer,2006:3-35.

猜你喜歡
綜述
銀行網絡間風險傳染研究綜述
SAPHO綜合征1例報道并文獻綜述
我國工業遺產檔案研究綜述
基于遷移學習模型的小樣本學習綜述
關于港口物流服務質量的文獻綜述
知識追蹤綜述
共指消解技術綜述
面向自動問答的機器閱讀理解綜述
我國中學校本課程建設實踐發展路徑研究綜述
我國中學校本課程建設實踐發展路徑研究綜述
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合