999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于CBD的構件優化選擇模型

2013-07-31 16:28:11
赤峰學院學報·自然科學版 2013年24期
關鍵詞:優化模型

楊 曦

(福州大學陽光學院,福建福州350015)

一種基于CBD的構件優化選擇模型

楊 曦

(福州大學陽光學院,福建福州350015)

構件優化選擇模型一直是基于構件開發領域的研究熱點,但過去的二十年間這方面的理論研究一直未取得太大的成果,尤其在選擇構件時幾乎都未考慮構件間內聚和耦合的影響.本文提出一種構件優化選擇的數學模型,為如何選擇構件提供一種可量化的依據.該模型將CBD開發的功能性評級及構件的內聚性和耦合度進行了量化,試圖在功能評級和內聚性最大化,而耦合度最小化的情況下,應用遺傳算法尋求最佳的構件選擇方案.最后,通過一個小型金融系統的案例來驗證該模型的有效性.

CBD開發;耦合度;模塊化;遺傳算法

1 引言

大型軟件系統的有效性開發一直以來都是軟件工業界的挑戰.許多概念和方法的提出,比如抽象數據類型、結構化編程、面向對象方法、設計模式和建模語言等,都是為了提高軟件系統開發的有效性.而近年來,基于構件的開發CBD(ComponentBasedDevelopment)則成為一種最具潛力的軟件有效性開發方法[1].而所謂構件則被定義為有特定合約接口且有明確上下文依賴的合成化單元[2].CBD關注于按功能或邏輯將系統分解成接口定義良好的構件集,從而可以選擇合適的商業成品構件(CommercialOff-the-ShelfComponent,COTS)來集成軟件系統.這種方法已證實可以大大縮短開發時間并使得開發出來的系統具有更好的可維護性.

許多研究試圖為軟件的模塊化定義標準、開發度量,以量化模塊化行為.傳統基于模塊的軟件系統開發,通常都依循高內聚、低耦合的設計原則.內聚度高的模塊具有較好的可重用性,而低耦合性則使得軟件系統更易維護.文獻[3]提出一種基于耦合和內聚的軟件質量度量方法,該方法給出了一些好的編程實踐特性,旨在減少維護及修改的成本.文獻[4]探討了軟件系統模塊化的標準,并將此標準在傳統和非傳統的方式下進行了評估.文獻[5,6]提出了一種新的度量集,用于分析大型系統模塊間的交互性和評估軟件模塊化的質量.文獻[7]基于最小耦合度、最高內聚性的標準,提出一種定量的方法用于測量和評估軟件模塊化的方案.文獻[8]提出一種構件選擇的兩階段決策模型,通過案例檢索和(0-1)整數目標規劃,實現最優構件組合選擇.文獻[9]提出一種基于線性規劃的構件優化選擇機制,將構件選擇問題轉化為在一組線性約束條件下目標函數優選的數學問題,利用回溯法求得最優構件選擇方案.

研究表明,在可相互替換的軟件構件集中,通常認為這些構件應該具有相同的功能.而事實上,因為軟件構件由不同構件廠商提供,所以功能上就可能存在差異.因此,在選擇商業構件時,構件對于CBD功能需求的契合度也必須加以考慮.之前關于模塊化及構件選擇的研究,雖然從不同角度給出了構件選擇的依據和方法,但基于最小耦合度及最大內聚性的定量方法都無法妥善解決如何為不同軟件模塊(Module)選擇最合適的構件,更沒有考慮到構件對于系統的功能性貢獻因素,而這三種因子對于軟件系統的可重用性、易維護性及系統可用性等質量屬性又起著關鍵的決定作用.所以,本文以最小耦合度、最大內聚性為因子,同時將軟件功能契合度最大化的因素也加以考慮,用于軟件構件的選擇.基于這些因子構建的構件優化選擇模型是一組帶約束的二進制二次方程,故引入遺傳算法解決優化選擇的進化問題.

2 構件選擇的優化模型

2.1 基礎選擇模型

將內聚性和耦合度做為構件選擇的考慮因子這方面,本文引用文獻[7]的定量測量內聚和耦合的方法,用模塊內耦合度(Intra-modular Coupling Density,ICD)的概念來表示模塊的內聚和耦合間的定量關系,公式如下:

CIIN是模塊內部構件與構件之間的交互數,而CIOUT是某一模塊中的構件與另一模塊的構件之間的交互數.如圖1所示,CIIN=6(圖中實線的數目),CIOUT=6(圖中虛線的數目),則ICD=0.5.本文ICD用于表示耦合和內聚的比例關系,這樣,模塊j的內聚與所有交互數的比例可以表示為ICDj.

圖1 CBD軟件模塊的內聚和耦合

然而,我們很容易發現,若有些模塊只有一個構件(比如圖1中的模塊2與模塊3),則這些模塊ICD的值勢必為0.為彌補這個缺陷,我們將公式(1)的分子簡單地加上1,于是得到如下表示第j個模塊耦合度的公式:

眾所周知,高內聚、低耦合可以使軟件系統具有較高的可維護性.所以ICD的值對于以CBD方式開發的軟件系統的可維護性而言至關重要.

2.2 優化選擇模型

CBD開發首先應該將模塊識別出來,并且每個模塊至少要有一個構件組成.軟件構件是包含可執行程序代碼的軟件產品,通常由第三方構件廠商提供.CBD開發中一個最主要的問題是如何從市場中選擇合適的構件來組成模塊.通常,CBD采用自頂向下的開發方法.這種方法,首先需定義功能/客戶需求.然后再確定模塊的數目及特性,最后選擇合適的構件組成模塊.選擇構件的原則必須遵循模塊內部的構件之間的交互最大化(最大內聚性),而模塊與其他模塊的構件之間的交互最小化(最小耦合度).

為構建構件選擇的優化模型,需要先定義、說明一些參數,如表1所示:

表1 構件優化選擇模型參數表

則第j個模塊的內聚值(CIIN)j的計算公式為:

第j個模塊的交互性(包括內聚和耦合)CAj的計算公式為:

軟件系統所有模塊的交互性CA的計算公式為:

所有模塊內聚值的和CIIN為:

這樣,基于上一節確定的標準(即公式2),我們構建的構件選擇的優化數學模型如下:

顯然,為了優化選擇構件,目標函數(7)是軟件系統功能性最大化的量化公式,目標函數(8)是ICD值最大化的量化公式,即基于系統模塊間耦合度最小,而模塊本身內聚度最大的情況構建的計算公式.等式(9)顯示從待選構件集中只能為所服務的模塊選擇一個構件.不等式(10)限定每個模塊里至少要有一個構件.為了簡化優化模型,我們用Fmax和Fmin分別表示F的最大值和最小值,用Imax和Imin表示ICD的最大值和最小值,將多目標優化模型轉化為集成的單一目標優化模型.這樣,目標函數(7)~(9)轉化為:

這里,wf、wl分別代表F和ICD在系統中的權重,故wf+wl=1.Fmax的值可以通過求解(7)、(9)、(10)、(11)而確定.同理,Fmin可以通過求解(14)、(9)、(10)、(11)來獲得.而Imax可以通過求解(8)、(9)、(10)、(11)獲得,Imin可以通過求解(15)、(9)、(10)、(11)獲得.

2.3 基于遺傳算法的優化選擇

由于優化模型是帶約束的二元二次方程,所以優化選擇問題事實上是一個NP完全問題,而解決這類問題最重要的就是如何有效解決“組合爆炸”的問題,顯然遺傳算法[10]是一種明智選擇.

我們通過一個案例來分析優化選擇模型的有效性,其中遺傳算法染色體表示如圖2(a)所示.在這個案例中,將軟件系統分成三個模塊m1、m2、m3,而由市面上選定的12個商業構件(sc1~sc12)組成5個可選構件集(s1~s5),每一個可選集中只有一個構件可以被選中用于某個特定模塊,同一可選集中的構件都提供相似的功能并可相互替換.如圖2所示,sc2、sc4、sc8、sc10及sc12分別從s1、s2、s3、s4、s5中被選中.

圖2 染色體表示及ZIP編碼示例

關于編碼,本文采用ZIP編碼方式,其結構如圖2(b)所示.每一對基因分別代表軟件構件編號及選中該構件的模塊編號,例如,第一對編碼表示構件sc2被模塊m2選中,同理第二對編碼表示sc4被m1選中.這種編碼方式除了能較高概率地獲得有效方案,而且也滿足了約束條件.故而,在每一次交叉和變異之后,算法都無需驗證個體是否能令人滿意.與經典遺傳算法相似的是,2個交叉點也是隨機產生的,并且將兩個父基因在交叉點處互換部分的染色體.然而,本文中的交叉點必須在染色體的相同位置.

變異可以發生在染色體的任意位置.一對基因由隨機生成的構件和模塊替換.交叉和變異后,需在個體上做一個有效性測試,以確保構件與模塊的結合是有效的.若無效,則放棄該解決方案,而新的個體將會被創建直至通過有效性測試.

3 案例研究

為驗證構件優化選擇模型的有效性,本節以一個小型金融系統的CBD開發為例,闡述優化選擇模型的整個應用流程并對結果進行分析.該系統由10個功能需求構成,開發團隊經過分析討論將其分為Business(m1)、Security(m2)和Assistant(m3)三個模塊.從構件市場上選取了20個商業構件(sc1~sc20)進入可選集(s1~s10).表2列出了10個功能需求及由20個商業構件組成的10個構件可選集,并且列出了每個商業構件對于系統不同模塊的功能性評級.功能性評級表示構件之于不同功能需求對軟件系統模塊的功能貢獻率程度.1代表對系統功能貢獻非常大,0代表對系統無功能貢獻.功能性評級的數值大小由開發團隊根據商業構件特點共同討論決定.

表2 商業構件的功能性評級表

表3列出了軟件構件間的交互性評級,取值范圍為1~10.交互性評級也是由開發團隊根據系統分析討論確定的.根據上一節給定的優化選擇模型,可以計算出Fmax、Fmin、I-max、Imin如下所示:

表3 軟件構件間的交互數

在這個案例分析中,取功能性和ICD的權值wf、wl都為0.5,而模塊ICD的門限值H設為0.這樣根據上一節構建的構件優化選擇模型,即公式組(12).基于遺傳算法,設定種群規模為50,變異率為0.08,交叉點為1.

基于遺傳算法解決優化問題的結果如圖4所示,圖中的小方點表示每一代適應度的平均值,而小菱形點代表每一代適應度的最大值.可以看到,大概在第12代之后,適應度的值基本趨于穩定并且達到了最優解.對于不同的門限值H,我們又重新用遺傳算法求解,表4列出了不同H值所獲得的構件選擇方案,從表中數據我們可以看到,雖然增加H的值可以提高系統的可維護性,但系統的功能性卻呈現非線性的變動.

圖4 遺傳算法解決優選問題的結果

表4 不同H值的構件選擇結果

例如,若開發團隊將H的值設為第2項,則第3至第7種方案是可以考慮的,至于選擇哪一種方案,得由開發團隊結合多個條件綜合考慮,比如優先級,比如客戶的期望值.若客戶認為可維護性于他們而言更加重要,則相比之下,第7種選擇方案更適合.相反,若客戶希望系統有較高的功能性,則可以考慮第5種選擇方案.

實踐證明,若問題域是一個較小規模的系統或門限值H設定得過大,則種群規模的設置就顯得尤為重要.門限值H需慎重選定,否則很難取得合適的種群來生成最終可行的方案.

4 結束語

基于構件的開發通過集成現有的商業構件來構建新的軟件系統,不僅大大提高了軟件開發質量和開發效率,而且在分布、開放、動態的Internet計算環境下,可以充分利用網絡節點中的大量經實踐檢驗的構件,降低開發成本.本文基于商業構件之于系統的內聚性、耦合度和功能性評級三個考量因子,提出了一種構件優化選擇的公式化數學模型,試圖調和最大內聚性、最小耦合度、最大功能性之間的平衡關系,通過遺傳算法解決優化選擇和進化問題,找出最佳的、最合適的解決方案.但該模型仍然需要依賴一些人為的判斷,比如功能性評級和交互性評級都需要通過開發團隊的分析探討來確定.故下一步的工作可以引入模糊理論來解決需要主觀判定的數據,也可以引入信息理論和復雜度理論來測量系統的內聚性和耦合度.

〔1〕Szyperski,C.,Gruntz,D.,&Murer,S.(2004).Component software:Beyond object-oriented programming. Addison-W esley Professional.

〔2〕Szyperski,C.,&P?ster,C.(1996).Component-oriented programm ing:WCOP’96 workshop report.Special issues in object-oriented programm ing.In W orkshop reader of the 10th European conference on object-oriented programm ing(pp.127–130).

〔3〕Stevens,W.,M yers,G.,&Constantine,L.(1974). Structured design.IBM Systems Journal,13(2),115–139.

〔4〕Parsa,S.,&Bushehrian,O.(2004).A framework to investigate and evaluate genetic clustering algorithms for automatic modularization of software systems.Lecture Notes in Computer Science,699–702.

〔5〕Sarkar,S.,Kak,A.C.,&Nagaraja,N.S.(2005).Metrics for analyzing module interactions in large software systems.In Proceedings of the 12th Asia Pacific software engineering conference(pp.264–271).

〔6〕Sarkar,S.,Rama,G.M.,&Kak,A.C.(2007).API-based and information-theoretic metrics for measuring the quality of software modularization.IEEE Transactions on Software Engineering,33(1),14–32.

〔7〕Abreu,F.B.,&Goul?o,M.(2001).Coupling and cohesion as modularization drivers:Are we being overpersuaded.In Proceedings of the?fth European conference on software maintenance and reengineering. W ashington,DC,USA:IEEE Computer Society.

〔8〕原欣偉,覃正,蔡俊.COTS軟構件選擇決策模型研究[J].計算機工程,2006,32(11):69-71.

〔9〕王懷軍,李軍懷,張璟,樓文曉.基于線性規劃的構件優選機制研究[J].西安理工大學學報,2010,2(2):186-191.

〔10〕Marian,R.M.,Luong,L.,&Abhary,K.(2006).A genetic algorithm for the optim isation of assembly sequences.Computers&Industrial Engineering,50(4),503–527.

TP311

A

1673-260X(2013)12-0013-04

國家自然科學基金資助項目(No.60963007),福建省教育廳科技項目(No.JB11251)資助

猜你喜歡
優化模型
一半模型
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
由“形”啟“數”優化運算——以2021年解析幾何高考題為例
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 亚洲欧洲自拍拍偷午夜色无码| 99久久精品国产麻豆婷婷| 国产精品无码AV中文| 亚洲一级色| 国产欧美日韩视频怡春院| 成人午夜视频免费看欧美| 久久免费观看视频| 亚洲成肉网| 精品久久久久无码| 国产视频一区二区在线观看| 成人va亚洲va欧美天堂| 日韩欧美中文字幕一本| 国产丝袜精品| 亚洲香蕉伊综合在人在线| 精品1区2区3区| 乱人伦中文视频在线观看免费| 99在线观看免费视频| 国产91视频免费观看| 中文字幕无码av专区久久| 久久国产黑丝袜视频| 国产男人天堂| 五月天久久婷婷| 久久永久免费人妻精品| 国产欧美日韩精品综合在线| 国产高清国内精品福利| AV在线天堂进入| 在线无码九区| 国产亚洲精久久久久久无码AV| 五月激情综合网| 亚洲成人免费看| 色网站在线免费观看| 久久五月天综合| 日韩美女福利视频| 国产自在线拍| 国产综合精品一区二区| 又粗又大又爽又紧免费视频| 精品欧美一区二区三区久久久| 毛片网站观看| 国产一区免费在线观看| 国产精彩视频在线观看| 亚洲美女一区二区三区| 国产在线啪| 日韩高清一区 | 国产va视频| 欧美一区二区三区不卡免费| 99热这里只有免费国产精品| 婷婷综合亚洲| 欧美日在线观看| 久久无码av三级| 特级欧美视频aaaaaa| 久久这里只有精品免费| 国产精品吹潮在线观看中文| 2021国产精品自产拍在线观看| 亚洲大学生视频在线播放| 国产精品蜜芽在线观看| 日本亚洲欧美在线| 男女性色大片免费网站| 女人天堂av免费| 青青操国产视频| 激情乱人伦| 国产色偷丝袜婷婷无码麻豆制服| 日韩精品成人网页视频在线| 亚洲美女一区| 国产一区成人| 人妻丝袜无码视频| 亚洲精品在线影院| 亚洲视频影院| 无码国产伊人| 国产欧美日韩精品综合在线| 99在线观看国产| 草逼视频国产| 国产激情第一页| 天天做天天爱天天爽综合区| 青青青国产免费线在| 国产成人综合日韩精品无码不卡| 久久青草免费91观看| 久久99国产综合精品1| 亚洲无码熟妇人妻AV在线| 中文字幕亚洲精品2页| 激情五月婷婷综合网| 国产在线观看91精品亚瑟| 2020极品精品国产 |