摘 要:為了滿足軟件體系結(jié)構(gòu)復(fù)雜性的預(yù)測(cè)和評(píng)價(jià)需求,通過(guò)抽取構(gòu)件之間的連接,提出了基于復(fù)合關(guān)系的分層式軟件體系結(jié)構(gòu),從而能夠清晰、準(zhǔn)確地表達(dá)構(gòu)件之間的關(guān)系。在該結(jié)構(gòu)基礎(chǔ)上,提出了基于加權(quán)圖的復(fù)雜性評(píng)價(jià)模型,并結(jié)合實(shí)例分析了模型的使用效果。模型能夠準(zhǔn)確地刻畫系統(tǒng)結(jié)構(gòu)及構(gòu)件關(guān)系,而且能夠較為客觀地定量評(píng)估系統(tǒng)結(jié)構(gòu)復(fù)雜性。它具有實(shí)現(xiàn)過(guò)程簡(jiǎn)單、通用性強(qiáng)等特點(diǎn)。
關(guān)鍵詞:構(gòu)件; 軟件體系結(jié)構(gòu); 軟件復(fù)雜性; 評(píng)價(jià)模型
中圖分類號(hào):TP301 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2008)08-2377-03
Approach to evaluating for complexity of software architecture
JIAO Feng1,2, WANG Li-ping3, HOU Jian-min2
(1. School of Information Engineering, University of Science Technology Beijing, Beijing 100083, China; 2. Computer Center, Hebei University of Engineering, Handan Hebei 056038, China; 3. Dept. of Information Engineering, Handan Polytechnic College, Handan Hebei 056002, China)
Abstract:In order to satisfy the requirements of predicting and evaluating complexity of software architecture, this paper presented composite relationships based and layered software architecture, which could exhibit the relationships between components explicitly and accurately, through the separate links between components. Based on the software architecture, proposed weighted graph based evaluation model for complexity, with an example to be analyzed and explained how to use the model. Moreover, the experiment indicates that the software architecture can reflect real structure and the evaluation model can quantitate complexity of software architecture. Finally, it can be concluded that the model owned the characteristics such as simplicity to process, strong universality.
Key words:component; software architecture(SA); software complexity; evaluation model
基于構(gòu)件的軟件開(kāi)發(fā)已經(jīng)成為解決大規(guī)模復(fù)雜軟件開(kāi)發(fā)的有效方法和途徑。除了構(gòu)件之外,軟件體系結(jié)構(gòu)的作用功不可沒(méi)。由于它體現(xiàn)了軟件系統(tǒng)的基本思想和基本結(jié)構(gòu),不僅可以用于提高系統(tǒng)的開(kāi)發(fā)效率和靈活性,也可以作為早期軟件質(zhì)量預(yù)測(cè)和控制的主要依據(jù)。近年來(lái),預(yù)測(cè)和評(píng)價(jià)軟件體系結(jié)構(gòu)質(zhì)量的研究已成為熱點(diǎn)。這些研究多集中在SA的可靠性、安全性、可理解性、可維護(hù)性、效率等性能方面的分析和評(píng)價(jià)[1],而對(duì)結(jié)構(gòu)本身復(fù)雜性的研究相對(duì)較少。但在實(shí)際應(yīng)用中,體系結(jié)構(gòu)復(fù)雜性對(duì)系統(tǒng)質(zhì)量的影響卻是不容忽視的,過(guò)于復(fù)雜的體系結(jié)構(gòu)會(huì)帶來(lái)較低的可理解性和可維護(hù)性;過(guò)于簡(jiǎn)潔的體系結(jié)構(gòu)的又有可能造成可靠性和安全性的下降,所以各性能屬性之間是相互影響、相輔相成的[2]。如何客觀正確地度量系統(tǒng)的復(fù)雜性,如何找出它與其他屬性之間的平衡關(guān)系都是SA評(píng)價(jià)研究的重要內(nèi)容。
與傳統(tǒng)的結(jié)構(gòu)化軟件關(guān)注語(yǔ)句細(xì)節(jié)不同,基于構(gòu)件的軟件體系結(jié)構(gòu)更多地關(guān)注構(gòu)件及構(gòu)件之間交互的關(guān)系,因此對(duì)于復(fù)雜性的分析和評(píng)價(jià)有其獨(dú)特性。文獻(xiàn)[2]定義并詳細(xì)闡述了各種復(fù)雜性屬性,但并未給出復(fù)雜性的度量方法或模型。文獻(xiàn)[3]利用類聯(lián)系圖描述構(gòu)件之間的交互關(guān)系,進(jìn)而通過(guò)模塊化程度分析構(gòu)件的耦合性和內(nèi)聚性,以此得出SA的質(zhì)量。該方法理論性較強(qiáng),結(jié)構(gòu)較為嚴(yán)謹(jǐn),主要用于對(duì)已實(shí)現(xiàn)系統(tǒng)的分析和評(píng)價(jià)。文獻(xiàn)[4,5]則建立基于有向圖的依賴模型,借以反映構(gòu)件間的依賴關(guān)系,但每個(gè)依賴關(guān)系的耦合性可能有所不同,將有可能影響對(duì)SA評(píng)價(jià)結(jié)果,而且構(gòu)件自身的復(fù)雜性也會(huì)對(duì)系統(tǒng)有影響。本文基于這些研究,提出了一種基于復(fù)合關(guān)系的復(fù)雜性評(píng)價(jià)模型。模型通過(guò)引入業(yè)務(wù)概念,將構(gòu)件之間的復(fù)雜交互關(guān)系提取為一種分層的復(fù)合關(guān)系,并將這種復(fù)合關(guān)系抽象為一種邏輯復(fù)合構(gòu)件。轉(zhuǎn)換后的結(jié)構(gòu)使得構(gòu)件之間的交互關(guān)系層次分明、邏輯清晰,易于分析評(píng)價(jià)。不僅考慮到構(gòu)件自身復(fù)雜性,還考慮了不同的交互關(guān)系對(duì)于系統(tǒng)結(jié)構(gòu)的影響,其分層的結(jié)構(gòu)使其更能適用于大規(guī)模復(fù)雜軟件系統(tǒng)。
1 基于加權(quán)圖的復(fù)雜性評(píng)價(jià)模型
在面向領(lǐng)域的應(yīng)用系統(tǒng)中,根據(jù)業(yè)務(wù)特性抽象出業(yè)務(wù)構(gòu)件,不僅大大提高領(lǐng)域軟件的重用粒度,縮短開(kāi)發(fā)周期,提高開(kāi)發(fā)效率,而且有利于生命周期各階段之間的無(wú)縫對(duì)接以及業(yè)務(wù)對(duì)象的可追蹤。本文提出的基于復(fù)合關(guān)系的軟件體系結(jié)構(gòu)就是利用這個(gè)特點(diǎn),將所有構(gòu)件按業(yè)務(wù)概念不斷地由小到大進(jìn)行組合,直到最后形成一個(gè)層次結(jié)構(gòu)。最低層是真實(shí)的構(gòu)件,其他層的構(gòu)成是組合起來(lái)的邏輯構(gòu)件,即復(fù)合構(gòu)件,作為構(gòu)成SA的一個(gè)基本元素。但復(fù)合構(gòu)件并不是構(gòu)件的疊加,而是封裝了構(gòu)件之間的交互關(guān)系,如膠合代碼、腳本。
1.1 基于復(fù)合關(guān)系的軟件體系結(jié)構(gòu)
基于復(fù)合關(guān)系的軟件體系結(jié)構(gòu)(composite relationship based software architecture,CRSA)核心思想是整個(gè)應(yīng)用系統(tǒng)被看成最大的一個(gè)復(fù)合構(gòu)件,它由若干較小的構(gòu)件復(fù)合而成,這些構(gòu)件又由更小的構(gòu)件復(fù)合而成,如此反復(fù),直到原子構(gòu)件(即不可拆分的構(gòu)件稱為原子構(gòu)件)。CRSA形式化定義如下:
定義1 復(fù)合構(gòu)件和復(fù)合關(guān)系。由多個(gè)不同的構(gòu)件組合而成的構(gòu)件,稱為復(fù)合構(gòu)件(Cc)。Cc={vi|vi是原子構(gòu)件或復(fù)合構(gòu)件,i=1,2,…,n}。
復(fù)合構(gòu)件與被復(fù)合構(gòu)件之間的關(guān)系稱為復(fù)合關(guān)系,用“→”表示。例如復(fù)合關(guān)系集合E={Cc→Cb1,Cc→Cb2 ,Cc→Cb2}中的三個(gè)關(guān)系表示復(fù)合構(gòu)件Cc由構(gòu)件Cb1、構(gòu)件Cb2、構(gòu)件Cb3復(fù)合而成。
定義2 CRSA。設(shè)有非空的原子構(gòu)件集合Ω,CRSA是由非空集合Ω的部分子集構(gòu)成的Ω的集類,記為UΩ。設(shè)SΩ表示Ω的所有子集構(gòu)成的冪集,則有UΩSΩ。
設(shè)同一抽象粒度的復(fù)合構(gòu)件歸為一層,構(gòu)成層集合A,則UΩ可以演變?yōu)楠蒼層集合構(gòu)成的集類,UΩ={Ai,i=1,2,…,n},且是一個(gè)單調(diào)集類,即A1A2…Ai…An。其中:A1表示抽象層次最高的構(gòu)件集合;An表示抽象層次最低的構(gòu)件集合,即原子構(gòu)件的全集,A2~An-1的各集合分別對(duì)應(yīng)第2~n-1層構(gòu)件集合。
圖1是一個(gè)CRSA的結(jié)構(gòu)示意圖。它是一個(gè)四層結(jié)構(gòu),包含有四個(gè)原子構(gòu)件(AC1、AC2、AC3、AC4)和三個(gè)復(fù)合構(gòu)件(CC1、CC2、CC3)。其中,AC1與AC2合成復(fù)合構(gòu)件CC1、CC1又與AC4合成CC2、CC2與AC3合成CC3、CC3就相當(dāng)于最終的系統(tǒng)。CC1、CC2都具有相對(duì)完整的業(yè)務(wù)功能和較強(qiáng)的封裝性。這種由復(fù)合構(gòu)件和原子構(gòu)件組成的軟件體系結(jié)構(gòu)具有原理簡(jiǎn)單、實(shí)現(xiàn)容易等特點(diǎn)。
定義3 構(gòu)件關(guān)聯(lián)度和構(gòu)件貢獻(xiàn)度。復(fù)合關(guān)系的關(guān)聯(lián)依賴程度,稱為構(gòu)件的關(guān)聯(lián)度。如Cb1到構(gòu)件Cc的關(guān)聯(lián)度,記為w(Cc→Cb1)。
設(shè)構(gòu)件Ck的功能集為FC={fci,i=1,2,…,n},復(fù)合構(gòu)件P需要構(gòu)件Ck提供服務(wù),將Ck提供的功能集記為HC={hcj|hcj∈FC, j=1,2,…,m,m≤n}, HcFc,則s=m/n(s≤1),s稱為構(gòu)件Ck對(duì)復(fù)合構(gòu)件P的貢獻(xiàn)度,記為D(Cc→Cb1)。構(gòu)件的貢獻(xiàn)度是構(gòu)件關(guān)聯(lián)度的重要組成部分,它為評(píng)估系統(tǒng)復(fù)雜性提供了度量手段。
1.2 基于加權(quán)圖的復(fù)雜性評(píng)價(jià)模型定義
在CRSA基礎(chǔ)上,提出基于有向加權(quán)圖的復(fù)雜性評(píng)價(jià)模型GEMC(graph-based evaluation model for complexity)。
定義4 GEMC模型。GEMC是一個(gè)帶權(quán)的有向無(wú)環(huán)圖DAG,表示為一個(gè)二元組D={V,E},且D是一個(gè)偏序集合。其中, V、E分別是節(jié)點(diǎn)集合和有向邊集合。節(jié)點(diǎn)集合V={v1,v2,…,vn}中的每一個(gè)元素v對(duì)應(yīng)于CRSA中的一個(gè)構(gòu)件,邊集合E={eij| eij=〈vi,vj〉,vi,vj∈V, i,j= 1,2,…,n }中的一個(gè)元素eij對(duì)應(yīng)于CRSA中一個(gè)復(fù)合關(guān)系。E中的每一條邊,賦予一個(gè)非負(fù)數(shù)的權(quán)重,記為w(eij),且w(eij)∈[0,1]。w(eij)對(duì)應(yīng)于節(jié)點(diǎn)(即構(gòu)件)vi到vj的關(guān)聯(lián)度w(vi→vj )。
定義5 構(gòu)件的共享度和構(gòu)件的復(fù)雜度。GEMC中一個(gè)構(gòu)件節(jié)點(diǎn)的入度稱為該構(gòu)件節(jié)點(diǎn)的共享度。一個(gè)構(gòu)件節(jié)點(diǎn)的出度稱為該構(gòu)件的復(fù)雜度。
定義6 體系結(jié)構(gòu)的復(fù)雜性通路。體系結(jié)構(gòu)的復(fù)雜性通路P是指從頂級(jí)節(jié)點(diǎn)到葉節(jié)點(diǎn)的一條通路,記為P=(e1,e2,…,en)。其中ei是GEMC模型中的邊。通路P上各邊的權(quán)值之和稱為通路的權(quán),記為w(P)=∑ei∈Pw(ei)。其中,ei權(quán)值最大的那條通路稱為最大權(quán)通路,權(quán)值最小的那條通路稱為最小權(quán)通路。
在CBD開(kāi)發(fā)中,復(fù)雜性通路提供了分析和預(yù)測(cè)系統(tǒng)復(fù)雜性瓶頸的方法。
2 工作原理及特點(diǎn)
基于CRSA和GEMC模型實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)復(fù)雜性評(píng)估的基本思想是:復(fù)雜性由原子構(gòu)件本身的復(fù)雜性和復(fù)合構(gòu)件的復(fù)雜性構(gòu)成。
a) 原子構(gòu)件復(fù)雜性:其度量方法受構(gòu)件實(shí)現(xiàn)方法的影響,具體是,若構(gòu)件內(nèi)部是結(jié)構(gòu)化程序,則需采用傳統(tǒng)的度量方法,如McCabe方法、Halstead方法等;若是面向?qū)ο蟪绦颍瑒t宜采用面向?qū)ο蟮亩攘糠椒ā?/p>
b) 復(fù)合構(gòu)件的復(fù)雜性:復(fù)合構(gòu)件反映構(gòu)件之間的交互關(guān)系。交互關(guān)系有多種類型,如調(diào)用關(guān)系、事件、數(shù)據(jù)訪問(wèn)、連接、流、仲裁器、適配器、分配器等。文獻(xiàn)[6]進(jìn)行了詳細(xì)的分類和闡述。這些關(guān)系歸納起來(lái)主要分為兩類,即直接交互關(guān)系和間接交互關(guān)系。直接交互關(guān)系就是直接方法調(diào)用,如方法、事件委托、RPC等。相應(yīng)的構(gòu)件模型有Enterprise JavaBeans、CORBAComponent Model、 COM、 UML2.0 等。這類關(guān)系沒(méi)有明顯的代碼,硬連接在構(gòu)件程序中,沒(méi)有獨(dú)立的實(shí)體。而間接交互關(guān)系則不同,它有獨(dú)立的實(shí)體,有相應(yīng)的代碼,如膠合代碼或腳本等。該連接實(shí)體通過(guò)在構(gòu)件之間傳遞信息,起著協(xié)調(diào)的作用。相應(yīng)的構(gòu)件模型有JavaBeans、Koala等[7]。
這些不同類型的交互關(guān)系有著不同的耦合性和內(nèi)聚性,它們對(duì)SA的復(fù)雜性有較大影響。在本文中通過(guò)分配不同的分值以表示各種關(guān)系的復(fù)雜程度,分值獲得后重新映射在[0,1]之間。因?yàn)榻换リP(guān)系分為兩大類,且直接交互關(guān)系是強(qiáng)耦合的,間接交互關(guān)系是弱耦合的所以直接交互關(guān)系的分值限定在(0,0.5)內(nèi),而間接交互關(guān)系的分值限定在[0.5,1)內(nèi)。各類型的具體分值則可以采用經(jīng)驗(yàn)值、專家打分等方法確定。如何確定權(quán)值的細(xì)節(jié)問(wèn)題不在本文的討論范圍。
2.1 工作原理
評(píng)價(jià)模型采用自下而上的方法,即先獲取原子構(gòu)件的復(fù)雜性,再逐層計(jì)算復(fù)合構(gòu)件的復(fù)雜性,最后獲得系統(tǒng)的復(fù)雜性。
1) 第一層復(fù)合構(gòu)件復(fù)雜性度量
第一層復(fù)合構(gòu)件是由原子構(gòu)件復(fù)合而成,其評(píng)價(jià)方法與其他層復(fù)合構(gòu)件的評(píng)價(jià)方法略有不同,因此單獨(dú)考慮。圖2是一個(gè)第一層構(gòu)件結(jié)構(gòu)示意圖,顯示了原子構(gòu)件層和第一層復(fù)合構(gòu)件。復(fù)合構(gòu)件Ck由原子構(gòu)件集{P1, P2,…,Pi,…,Pn}復(fù)合而成,它們之間的邊eki被賦予了一定的權(quán)值wki,用于表示復(fù)合關(guān)系的關(guān)聯(lián)度,它的值并不等于交互關(guān)系的分值,而等于該分值的比例,具體到圖2的例子,就是該分值的1/2(一般情況下)。DC(ck)表示復(fù)合構(gòu)件Ck的度量值,n表示原子構(gòu)件的個(gè)數(shù),yi表示原子構(gòu)件Pi的度量值,則復(fù)合構(gòu)件Ck的度量計(jì)算見(jiàn)式(1)。
DC(ck)=∑ni=1wkiyi(1)
其中:wki≤1,yi≤1。因此Yk≤n,n也是節(jié)點(diǎn)k的出度,wki就是交互關(guān)系的分值,yi的計(jì)算如下:
yi=DA(pi)×βki(2)
其中:βki表示原子構(gòu)件i對(duì)復(fù)合構(gòu)件k的貢獻(xiàn)度;DA(pi)表示原子構(gòu)件pi的復(fù)雜性的度量值。用γ表示構(gòu)件i的所有關(guān)聯(lián)度的均值,則其計(jì)算如下:
γ=1/n∑nk=1βki(3)
其中:n是構(gòu)件節(jié)點(diǎn)i的入度;βki是構(gòu)件節(jié)點(diǎn)i對(duì)上層構(gòu)件節(jié)點(diǎn)k的關(guān)聯(lián)度。根據(jù)實(shí)踐經(jīng)驗(yàn),若γ<0.5,說(shuō)明構(gòu)件i的設(shè)計(jì)可能不合理(如功能過(guò)多、規(guī)模過(guò)大等),存在隱患,建議重新設(shè)計(jì)。另一條經(jīng)驗(yàn)是:設(shè)wki中的最大值與最小值之差為Δ=wmaxi-wmini,當(dāng)Δ≥0.5且γ≥0.5時(shí),說(shuō)明構(gòu)件i的可重用性差。
2)第二層以上復(fù)合構(gòu)件復(fù)雜性度量
不同于原子構(gòu)件,復(fù)合構(gòu)件反映交互關(guān)系的一種邏輯構(gòu)件,一般情況下,復(fù)合構(gòu)件的貢獻(xiàn)度為1。第二層以上復(fù)合構(gòu)件復(fù)雜性的度量如式(4)所示,DC(cc)表示復(fù)合構(gòu)件的度量值,Yk表示下層復(fù)合構(gòu)件的度量值。
DC(cc)=∑nk=1wckDC(ck)(4)
由GEMC原理可以得出,頂層復(fù)合構(gòu)件的復(fù)雜性就是系統(tǒng)的復(fù)雜性。GEMC通過(guò)計(jì)算原子構(gòu)件的復(fù)雜性、復(fù)合構(gòu)件的復(fù)雜性,可以完成對(duì)CRSA的復(fù)雜性評(píng)價(jià)。基于加權(quán)圖的模型計(jì)算可以通過(guò)鄰接矩陣計(jì)算得出每一個(gè)復(fù)合構(gòu)件或系統(tǒng)的復(fù)雜性。
2.2 模型特點(diǎn)
GEMC復(fù)雜性評(píng)價(jià)模型具有如下特點(diǎn):
a)實(shí)用性強(qiáng)。易于理解、易于使用,實(shí)現(xiàn)過(guò)程簡(jiǎn)單且速度快,有利于工具化和自動(dòng)化。
b)靈活性高。適用于不同規(guī)模的體系結(jié)構(gòu)。
c)可用于設(shè)計(jì)階段。可以在軟件開(kāi)發(fā)生命周期的早期實(shí)施復(fù)雜性分析與控制,有利于降低系統(tǒng)開(kāi)發(fā)的風(fēng)險(xiǎn)和成本,而不必像其他模型那樣等到所有的構(gòu)件都已經(jīng)基本實(shí)現(xiàn)之后才能進(jìn)行評(píng)估。
3 示例分析
經(jīng)典的GoF設(shè)計(jì)模式中的Facade模式和Mediator模式通過(guò)代入本模型分析,充分驗(yàn)證了兩種模式較低的復(fù)雜性和較強(qiáng)的靈活性。除此之外,GEMC模型還可以分析原子構(gòu)件對(duì)于整個(gè)結(jié)構(gòu)的影響。下面是一個(gè)實(shí)例,即石油鉆井模擬的套管層次設(shè)計(jì)系統(tǒng)(application for casing program design,ACPD )。ACPD是一個(gè)典型四層CRSA,從下到上依次為基本功能構(gòu)件層、基本業(yè)務(wù)構(gòu)件層、業(yè)務(wù)構(gòu)件層和應(yīng)用系統(tǒng)構(gòu)件層,抽象層次依次增高。
a)基本功能構(gòu)件層:有四個(gè)原子構(gòu)件,分別是邏輯構(gòu)件C31、計(jì)算構(gòu)件C32、顯示構(gòu)件C33和數(shù)據(jù)構(gòu)件C34。
b)基本業(yè)務(wù)構(gòu)件層:由基本的業(yè)務(wù)構(gòu)件組成,是復(fù)合構(gòu)件,包括確定表層套管C21、確定技術(shù)套管C22、確定尾管C23和確定套管數(shù)據(jù)C24四個(gè)構(gòu)件。
c) 業(yè)務(wù)構(gòu)件層:面向業(yè)務(wù)的構(gòu)件,也是復(fù)合構(gòu)件,包括確定套管個(gè)數(shù)構(gòu)件C11、確定套管長(zhǎng)度構(gòu)件C12、確定水泥返高構(gòu)件C13和確定套管直徑構(gòu)件C14。
d) 應(yīng)用系統(tǒng)層:由業(yè)務(wù)構(gòu)件復(fù)合而成。在本例中,通過(guò)業(yè)務(wù)層的四個(gè)復(fù)合構(gòu)件,最終得到了套管層次的套管直徑、套管長(zhǎng)度、套管個(gè)數(shù)等參數(shù)。
ACPD的GEMC描述為
G={V,E}
V={C0,C11,C12,C13,C14,C21,C22,C23,C24,C31,C32,C33,C34}
E={C0→C11,C0→C12,C0→C13,C0→C14,C11→C24,C12→C21,
C12→C22,C12→C23,C13→C33,C13→C24,C14→C22,C14→C24,C21→C33,C21→C34,C22→C31,C22→C32,C22→C33,C22→C34,C23→C31C23→C32 C23→C33,C22→C34,C24→C34 }
w(Ci→Cj)=1(構(gòu)件之間的關(guān)系均設(shè)為同樣的類型)。
在本例中考慮最理想情況下,GEMC中最底層的四個(gè)構(gòu)件C31、C32、C33、C34的復(fù)雜性DA(pi)均取1,且貢獻(xiàn)度βki也均為1,此時(shí)得到的系統(tǒng)復(fù)雜性DC(s)為14,作為基準(zhǔn)值。然后其他條件不變,當(dāng)每個(gè)原子構(gòu)件的復(fù)雜性DA(pi)分別取0.6時(shí),得到的DC(s)分別為13.70、13.70、13.40、13.10,這四個(gè)值與基準(zhǔn)值一起構(gòu)成一條線,如圖3所示的“◆”連線,C00表示基準(zhǔn)值,C31、C32、C33、C34表示這四個(gè)構(gòu)件的復(fù)雜性分別取0.6時(shí)系統(tǒng)復(fù)雜性的度量值;同理可得每個(gè)原子構(gòu)件復(fù)雜性DA(pi)分別取0.85時(shí)系統(tǒng)復(fù)雜雜性由0.6提高到0.85時(shí),系統(tǒng)的復(fù)雜性增大,表明原子構(gòu)件的共享度越大對(duì)系統(tǒng)結(jié)構(gòu)影響也越大也越高。
實(shí)驗(yàn)結(jié)果表明,CRSA模型能準(zhǔn)確刻畫系統(tǒng)結(jié)構(gòu)和構(gòu)件關(guān)系,GEMC模型能夠客觀、準(zhǔn)確、定量地評(píng)估系統(tǒng)結(jié)構(gòu)復(fù)雜性,而且能夠幫助設(shè)計(jì)人員和開(kāi)發(fā)人員確定系統(tǒng)的復(fù)雜性瓶頸。
4 結(jié)束語(yǔ)
針對(duì)領(lǐng)域工程,給出了基于復(fù)合關(guān)系的分層式軟件體系結(jié)構(gòu)CRSA,并針對(duì)CRSA提出了基于加權(quán)有向圖的復(fù)雜性評(píng)價(jià)模型GEMC。實(shí)踐當(dāng)中,該模型不僅可以評(píng)價(jià)已有系統(tǒng)的復(fù)雜性,也可早期評(píng)價(jià)設(shè)計(jì)階段的系統(tǒng)復(fù)雜性。
同時(shí)從實(shí)驗(yàn)結(jié)果看,GEMC模型簡(jiǎn)單、定性準(zhǔn)確、容易實(shí)現(xiàn),適用于不同規(guī)模的系統(tǒng)復(fù)雜性評(píng)價(jià)。但同時(shí),本文中沒(méi)有詳細(xì)闡述如何確定復(fù)合關(guān)系權(quán)值大小,也沒(méi)有討論復(fù)雜性與其他SA屬性之間的依存關(guān)系,這些都將在以后的工作中繼續(xù)深入研究。
參考文獻(xiàn):
[1]DOBRICA L,NIEMELA .A survey on software architecture analysis methods[J]. IEEE Trans on Software Engineering, 2002,28(7):638-653.
[2]MAZHELIS O, LEHTO J A, MARKKULA J, et al. Defining Complexity factors for architecture evaluation framework:[C]// Proc of the 39th Hawaii International Conference on System. Hawaii: IEEE Computer Society,2006: 1-10.
[3]SARTIP K I.IEEE International Workshop on Program Comprehension[M].Toronto:IEEE Computer Society,2001:259-268.
[4]ALHAZBI S M. Measuring the complexity of component-based system architectzere[C]// Proc of International Conference on Information and Communication Technologies: From Theory to Applications. 2004:593-594.
[5]SANGAL N,JORDAN E, SINHA V ,et al.Proc of the 20th annual ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications [C].San Diego: ACM Press,2005:167-176.
[6]MEHTA N R,MEDVIDOVIC N, PHADKE S. Towards a taxonomy of software connectors[C]// Proc of the 22nd Int’l Conf on Software Engineering.New York:ACM Press,2000: 178-187.
[7]LAU K K,UKIS V,VELASCO P,et al. A component model for separation of control flow from computation in component-based systems[J]. Electronic Notes in Theoretical Computer Science,2006,163(1):57-69.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文