亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向構(gòu)件語義關(guān)系的軟件體系結(jié)構(gòu)演化分析

        2011-06-05 08:59:18印桂生宋敏韋正現(xiàn)王紅濱張萬松
        哈爾濱工程大學(xué)學(xué)報 2011年10期
        關(guān)鍵詞:波及語義構(gòu)件

        印桂生,宋敏,2,韋正現(xiàn),王紅濱,張萬松

        (1.哈爾濱工程大學(xué)計算機科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱150001;2.北京外國語大學(xué) 信息技術(shù)中心,北京100089;3.船舶系統(tǒng)工程研究所,北京100036)

        構(gòu)造性和演化性是軟件的兩個基本特性[1].軟件進行漸變并達(dá)到所希望的形態(tài)就是軟件演化.軟件演化由一系列復(fù)雜的變化活動組成,這些變化活動稱為演化操作.引起軟件變化的原因是多方面的,對軟件演化進行理解和控制顯得復(fù)雜而困難[2].而軟件體系結(jié)構(gòu)(software architecture,SA)作為軟件的藍(lán)圖,為人們從宏觀上把握軟件的整體結(jié)構(gòu),為軟件的整個生命周期各個階段提供有效指導(dǎo)[3-4],因此,軟件演化的研究應(yīng)該從高層的軟件體系結(jié)構(gòu),以便于對演化進程及其影響進行有效控制.SA演化研究分為靜態(tài)演化和動態(tài)演化兩方面.靜態(tài)演化主要從非運行時SA版本更新、功能增加、刪除和修改等方面入手.動態(tài)演化是在軟件運行時刻SA的變換來進行深入研究[5-7].文獻(xiàn)[2]通過語義可達(dá)矩陣給出構(gòu)件對SA貢獻(xiàn)大小來評價SA演化的波及效應(yīng),但沒有從語義相關(guān)性以及不同SA演化操作具有不同特性的角度來分析SA演化.文獻(xiàn)[8-9]分別用進程代數(shù)和圖論來解釋SA演化,但它們更注重SA的構(gòu)造而非演化.文獻(xiàn)[10-11]對軟件演化過程進行了定性分析.本文從SA中構(gòu)件及構(gòu)件之間的語義關(guān)系、語義協(xié)議關(guān)系和SA演化操作特性3個方面綜合分析SA靜態(tài)演化及其波及效應(yīng).首先給出構(gòu)件內(nèi)部的語義和語義協(xié)議關(guān)系,分析了構(gòu)件之間語義關(guān)系的時序性可以通過語義協(xié)議關(guān)系來表示;其次給出了SA語義關(guān)系矩陣,將SA中語義關(guān)系組成語義關(guān)系鏈,提出了SA語義關(guān)系鏈矩陣并對它的性質(zhì)進行分析;再次根據(jù)SA演化操作特點提出了語義關(guān)系鏈波及效應(yīng)與語義關(guān)系構(gòu)件波及效應(yīng)算法,同時,針對不同語義協(xié)議關(guān)系項對刪除構(gòu)件的影響程度不同,提出了刪除構(gòu)件的語義關(guān)系構(gòu)件波及效應(yīng)算法;最后給出了SA演化實驗及結(jié)果分析.

        1 構(gòu)件及構(gòu)件之間的語義關(guān)系

        目前,普遍認(rèn)為構(gòu)件以及構(gòu)件之間的關(guān)系(連接件)共同組成了軟件體系結(jié)構(gòu)[10].

        1.1 構(gòu)件的語義及語義協(xié)議關(guān)系

        構(gòu)件C由接口規(guī)約和內(nèi)部規(guī)約兩部分組成.構(gòu)件接口分為兩類,一類是示出接口P,它是構(gòu)件C向外提供功能(服務(wù))接口,另一類是導(dǎo)入接口E,它是構(gòu)件C需要的功能(服務(wù))接口[12].內(nèi)部規(guī)約是對構(gòu)件內(nèi)部功能和屬性的抽象和描述.從SA來考察構(gòu)件,它表現(xiàn)為導(dǎo)入接口與構(gòu)件內(nèi)部規(guī)約到示出接口的關(guān)系總和.

        定義1 構(gòu)件的語義.設(shè)P是構(gòu)件C的示出接口集(記為 C·P),E是 C的導(dǎo)入接口集(記為C·E),則構(gòu)件C的語義S是從E到P的二元關(guān)系:S?E×P.

        如圖 1(a)中 S={(a,p),(b,p),(b,q),(d,q),(e,t)}是 P 到 E 的一個關(guān)系.顯然導(dǎo)入接口a與示出接口p形成的有序偶(a,p)就是接口a和p之間的語義關(guān)系.

        構(gòu)件的語義描述了示出接口與導(dǎo)入接口之間存在語義關(guān)聯(lián),并沒有刻畫接口成員間的語義時序或邏輯的協(xié)議關(guān)系.如,導(dǎo)入接口a和b必須同時滿足才能導(dǎo)致示出接口p,導(dǎo)入接口b和d其中一個滿足就可以導(dǎo)致示出接口q,二者的協(xié)議關(guān)系完全不一樣.示出接口與導(dǎo)入接口之間的語義協(xié)議關(guān)系,可以由不同的協(xié)議關(guān)系項來表示.由構(gòu)件組成的軟件系統(tǒng),必然存在只有示出接口而沒有導(dǎo)入接口的構(gòu)件,同時也存在只有導(dǎo)入接口而沒有示出接口的構(gòu)件.

        圖1 構(gòu)件的語義及SA語義關(guān)系模型Fig.1 Component semantic and SA semantic model

        定義2 語義協(xié)議關(guān)系.構(gòu)件示出接口與導(dǎo)入接口之間的語義協(xié)議關(guān)系由它們的語義協(xié)議關(guān)系項來確定,語義協(xié)議關(guān)系項是下列關(guān)系中的一種:

        1)產(chǎn)生關(guān)系:構(gòu)件C的示出接口p不需要任何導(dǎo)入接口就可以提供或引發(fā),記為0τ→p,稱為τ關(guān)系;

        2)結(jié)束關(guān)系:構(gòu)件C的導(dǎo)入接口a都不會的引發(fā)或提供任何示出接口,記為σa→0,稱為σ關(guān)系;

        3)對應(yīng)關(guān)系:構(gòu)件C滿足導(dǎo)入接口a才可以引發(fā)或提供示出接口p,記為aθ0→p,稱為θ關(guān)系;

        4)選擇關(guān)系:構(gòu)件C需要滿足導(dǎo)入接口a和b的其中之一或全部,才能引發(fā)或提供示出接口p,記為 a∪b→p,稱為∪關(guān)系;

        5)互斥關(guān)系:構(gòu)件C在導(dǎo)入接口a和b之間,接口a被導(dǎo)入則接口b不能被導(dǎo)入,或者接口b被導(dǎo)入則接口a不能被導(dǎo)入,才引發(fā)或提供示出成員p,記為 a⊕b→p,稱為⊕關(guān)系;

        6)并發(fā)關(guān)系:構(gòu)件C需要導(dǎo)入接口a和b都得到滿足,才能引發(fā)或提供示出接口p,記為a∩b→p,稱為∩關(guān)系;

        7)順序關(guān)系:構(gòu)件C只有導(dǎo)入接口a被導(dǎo)入并處理完成以后,接口b才能被導(dǎo)入并進行處理,而引發(fā)或提供示出接口p,記為 a∞b→p,稱為∞關(guān)系.

        定義2中0表示空接口.不同語義協(xié)議關(guān)系項具有語義強弱之分,顯然(θ≈ ∞ ≈ ∩)>(∪ ≈⊕).

        在圖1(a)中的構(gòu)件C,e和t之間存在對應(yīng)關(guān)系,a、b與p之間,b、d與q之間可能存在選擇關(guān)系、并發(fā)關(guān)系、互斥關(guān)系或順序關(guān)系.

        1.2 構(gòu)件之間的語義關(guān)系

        在構(gòu)件組成的軟件系統(tǒng)中,構(gòu)件與構(gòu)件之間通過接口實現(xiàn)功能(服務(wù))的交互,因此具有功能交互的構(gòu)件之間就發(fā)生語義關(guān)聯(lián).

        定義3 構(gòu)件之間的語義關(guān)系.存在構(gòu)件C1和C2,如果滿足①a∈C1·P,②e∈C2·E,③a=e,則稱構(gòu)件C1到C2具有直接語義關(guān)系;存在構(gòu)件C1、C2和 C3,如果滿足①a∈C1·P,②e∈C2·E,③b∈C3·P,f∈C3·E,④a=f,b=e,⑤b 和 f之間存在對應(yīng)關(guān)系、選擇關(guān)系、并發(fā)關(guān)系、互斥關(guān)系或和順序關(guān)系,則稱構(gòu)件C1到C2具有間接語義關(guān)系.構(gòu)件之間的直接語義關(guān)系和間接語義關(guān)系統(tǒng)稱為構(gòu)件之間的語義關(guān)系,記為SR.

        由定義3可知,當(dāng)一個構(gòu)件向外提供功能成為另一個構(gòu)件請求輸入功能時,這兩個構(gòu)件具有直接語義關(guān)聯(lián),構(gòu)件之間的語義關(guān)系如圖2,圖中構(gòu)件C1和C3具有直接語義關(guān)系,構(gòu)件C1和C2具有間接語義關(guān)系.構(gòu)件之間的語義關(guān)系具有方向性,圖2中有SR1= <C1,C3> ,SR2= <C3,C2>,SR3= <C4,C3>.為了方便,將SR1記為C1SR→—1C3,稱構(gòu)件C1為SR1的射出構(gòu)件,C3為SR1的射入構(gòu)件,C1和C3為結(jié)點構(gòu)件(簡稱結(jié)點),C1為 C3的前驅(qū),C3為 C1的后繼,

        SR→—1為弧,它是C1的射出弧,也是C3的射入弧.圖 2 中,如果 a3∩b3→p3,則 SR3∩SR1→SR2,因此不同構(gòu)件之間語義關(guān)系的時序性(邏輯性)就可以采用語義協(xié)議關(guān)系項來表示.

        圖2 構(gòu)件之間的語義關(guān)系Fig.2 Semantic relationship among conponents

        2 SA的語義矩陣及語義關(guān)系鏈矩陣

        SA是組成系統(tǒng)的構(gòu)件以及構(gòu)件與構(gòu)件之間交互作用關(guān)系(連接件)的高層抽象[2,13].連接件承載構(gòu)件之間的語義關(guān)系,為了方便,文章采用構(gòu)件之間的語義關(guān)系SR表示連接件.由此,SA的語義關(guān)系模型可表示為SA={Cs,SRs},其中,Cs是構(gòu)件集,SRs是構(gòu)件之間的語義關(guān)系集.圖1(b)描述了5個構(gòu)件具有7個直接語義關(guān)系的SA語義關(guān)系模型.

        2.1 SA語義關(guān)系矩陣

        軟件的功能與屬性表現(xiàn)為構(gòu)件內(nèi)部以及構(gòu)件之間語義關(guān)系的總和,根據(jù)SA中構(gòu)件之間的語義關(guān)系,可以構(gòu)建SA的語義關(guān)系矩陣.

        稱MS為SA的語義關(guān)系矩陣.

        設(shè)圖 1(b)中有:SR2θ0 →SR4、SR4θ0 →SR7、SR1@SR7→SR5,@∈{∪,∩,⊕,∞ },則其 SA 的

        2.2 SA語義關(guān)系鏈矩陣

        定義5 SA語義關(guān)系鏈.SA語義關(guān)系鏈表示為 RL={C,SR},其中 SR={SRi|SRi∈SRs,1≤i≤n,n≥0},C={Ci|Ci∈Cs∧Ci∈SR,1≤i≤n,n≥0},并且滿足:

        1)存在唯一的結(jié)點使得它的射出弧和射入弧之間存在τ關(guān)系,即為語義關(guān)系鏈的頭結(jié)點;

        2)存在唯一的結(jié)點使得它的射出弧和射入弧之間存在σ關(guān)系,即為語義關(guān)系鏈的尾結(jié)點;

        3)除了頭結(jié)點和尾結(jié)點,其他每個結(jié)點都有唯一的前驅(qū)和后繼,并且結(jié)點的射出弧和射入弧之間存在除τ和σ以外的語義協(xié)議關(guān)系項中的一種.

        根據(jù)定義5,對?Ci∈RL,C不是RL中的構(gòu)件,如果C和Ci沒有語義關(guān)系,則稱構(gòu)件C與關(guān)系鏈RL無關(guān),記作C//RL.可以將SA中包含的多個語義關(guān)系鏈組合起來形成矩陣.

        定義6 語義關(guān)系鏈構(gòu)件矩陣.構(gòu)造一個矩陣,將一條語義關(guān)系鏈RL的構(gòu)件Ci按照先后順序組成矩陣同一列,其他語義關(guān)系鏈的構(gòu)件依次構(gòu)成其他列,以構(gòu)件最多的語義關(guān)系鏈為基準(zhǔn)(n),不足n個構(gòu)件的語義關(guān)系鏈所形成列的空位置補充空構(gòu)件(NULL),這樣組成一個n×m的語義關(guān)系鏈構(gòu)件矩陣MRV.

        定義7 語義關(guān)系鏈矩陣.將一條語義關(guān)系鏈RL的構(gòu)件語義關(guān)系SRi按照先后順序組成矩陣同一列,其他語義關(guān)系鏈的語義關(guān)系依次構(gòu)成其他列,以構(gòu)件語義關(guān)系最多的語義關(guān)系鏈為標(biāo)準(zhǔn)(n-1),不足n-1列的空位置補充0,則構(gòu)成一個(n-1)×m的語義關(guān)系鏈矩陣MRI,m是SA的關(guān)系鏈的條數(shù).

        空構(gòu)件與任意語義關(guān)系鏈無關(guān)NULL∥RLi.如果兩條語義關(guān)系鏈上的構(gòu)件都不產(chǎn)生語義關(guān)系,則這兩條語義關(guān)系鏈無關(guān),否則相關(guān).

        根據(jù)定義6和定義7,圖1(b)所對應(yīng)的語義關(guān)系鏈構(gòu)件矩陣和語義關(guān)系鏈矩陣為:

        定義8 語義關(guān)系鏈無關(guān).語義關(guān)系鏈RLi和RLj無關(guān),如果?SRi和 ?SRi,使(SRi∈ RLi∧SRi?RLj)∧(SRj∈RLj∧SRj?RLi)成立,記作 RLi∥RLj,同時有 SRi∥RLj,SRj∥RLi.

        定義9 語義關(guān)系鏈相關(guān).語義關(guān)系鏈RL1和RL2相關(guān),如果?SRi,使 SRi∈RL1∧SRi∈RL2成立,把所有這樣的SR集合記作S12=RL1∩RL2.

        由定義9,如果2條語義關(guān)系鏈相關(guān),則這2條語義關(guān)系鏈必然通過同一個構(gòu)件發(fā)生關(guān)系,則該構(gòu)件的射出弧或射入弧不是唯一,可將構(gòu)件Ci的射出弧集合記為SOi,射入弧集合記為SIi.

        定義10 語義關(guān)系鏈相關(guān)度.如果 S12=RL1∧RL2≠?,SRi∈S12,Ci為 SRi的射出構(gòu)件,?SRj∈SIi并且 SRj∈RL1,同時?SRk∈SIi并且SRk∈RL2,使 SRj@SRk→SRi,當(dāng)@ ∈{∩,∞ ,θ},則稱RL1和 RL2是強相關(guān);當(dāng)@∈{∪,⊕},則稱RL1和RL2是弱相關(guān).

        定義11 語義關(guān)系鏈矩陣相關(guān)性.對于SA的MRV和 MRI,如果?RLi,?RLj,有 RLi//RLj,則稱MRV和 MRI為無關(guān)矩陣;如果?RLi,?RLj,RLi和 RLj是強相關(guān),則稱 MRV和 MRI為強相關(guān)矩陣;?RLi,?RLj,使 RLi和 RLj是弱相關(guān),同時?RLk,?RLl,使RLk和RLl是強相關(guān),則稱 MRV和 MRI為弱相關(guān)矩陣.強相關(guān)矩陣和弱相關(guān)矩陣統(tǒng)稱為相關(guān)矩陣.

        根據(jù)語義關(guān)系鏈矩陣相關(guān)性定義,有以下定理.

        定理1 如果MRV是無關(guān)矩陣,則任意2個元素Cij和 Ckl(j≠l)無關(guān).

        證明:在 MRV中,假設(shè)存在 2個構(gòu)件 Cij和Ckl(j≠l)具有語義相關(guān)性.根據(jù)定義6和定義7,有Cij∈RLj,Ckl∈RLl,RLj≠RLl;根據(jù)定義 11,如果j≠l,則RLj//RLl,與MRV相關(guān)性定義矛盾,證畢.

        定理2 如果MRI是無關(guān)矩陣,則任意2個RLi和RLj無關(guān).

        證明:同定理1,略.

        定理3 如果MRV和MRI是相關(guān)矩陣,則存在SRk、Ch、RLi和 RLj,使 SRk∈RLi∧SRk∈RLj∧Ch∈RLi∧Ch∈RLj(j≠i)成立.

        where A is constant, h is Planck’s constant, and Eg is the band gap width. n is a parameter that depends on the nature of the transition. For direct permitted transitions n= 1/2,while for indirect allowed transitions n = 2, and for direct forbidden transitions n = 3/2.

        證明:在 MRV和 MRI中,1)假設(shè)對于任意 SR,使SR∈RLi∧SR?RLj(j≠i)為真,根據(jù)定義 8,有RLi∥RLj;2)假設(shè)對于任意 C,使 C∈RLi∧C?RLj(j≠i)為真,根據(jù)定義5,有 C∥RLj,再根據(jù)定義6,可知RLi∥RLj;根據(jù)1)、2)以及定義7和定義8,MRV和MRI為無關(guān)矩陣,矛盾,證畢.

        定理1和2說明SA的MRV和MRI是無關(guān)矩陣,則不同語義關(guān)系鏈上的構(gòu)件和SR不會產(chǎn)生關(guān)系.定理3說明SA的MRV和MRI是相關(guān)矩陣,則不同語義關(guān)系鏈上的構(gòu)件和SR可能會產(chǎn)生關(guān)系.

        3 SA演化波及效應(yīng)算法

        SA演化操作主要包括SA中構(gòu)件增加、修改、刪除、合并和拆分等.SA演化的波及效應(yīng)δ表現(xiàn)為變化構(gòu)件與其存在直接或間接語義關(guān)聯(lián)構(gòu)件的修改、組合和歸整[2,14].

        定義12 語義關(guān)系鏈波及效應(yīng)δL.當(dāng)SA中構(gòu)件C發(fā)生變化時,與之產(chǎn)生語義關(guān)系并受到影響語義關(guān)系鏈的數(shù)量.

        定義13 語義關(guān)系構(gòu)件波及效應(yīng)δC.當(dāng)SA中構(gòu)件C發(fā)生變化時,與之產(chǎn)生語義關(guān)系并受到影響構(gòu)件的數(shù)量.

        變化的構(gòu)件通過與之產(chǎn)生語義關(guān)系的傳播而引起波及效應(yīng),這個波及效應(yīng)可以通過SA中構(gòu)件之間的語義關(guān)系來確定.根據(jù)定理1和2,如果SA的MRV和MRI是無關(guān)矩陣,則對構(gòu)件的演化操作,僅影響到該構(gòu)件所在語義關(guān)系鏈的其他構(gòu)件.如果SA的MRV和MRI是相關(guān)矩陣,則對構(gòu)件的演化操作,不僅影響該構(gòu)件所在的語義關(guān)系鏈的其他構(gòu)件,而且可能影響到與該語義關(guān)系鏈相關(guān)的其他語義關(guān)系鏈上的構(gòu)件,根據(jù)定理3,能夠從SA的MRV和MRI來界定受其影響或波及到的其他構(gòu)件范圍.本節(jié)設(shè)計計算SA中構(gòu)件Ci的語義關(guān)系鏈波及效應(yīng)與語義關(guān)系構(gòu)件波及效應(yīng)算法.

        3.1 算法1

        算法1:Ci語義關(guān)系鏈波及效應(yīng)與語義關(guān)系構(gòu)件波及效應(yīng)算法描述:

        輸入:SA的語義關(guān)系鏈相關(guān)矩陣MRV和SA的構(gòu)件Ci.

        輸出:構(gòu)件Ci的語義關(guān)系鏈波及效應(yīng)和語義關(guān)系構(gòu)件波及效應(yīng).

        1)初始化Ci語義關(guān)系鏈波及效應(yīng)l=0,構(gòu)件Ci的語義關(guān)系構(gòu)件波及效應(yīng)n=0,參數(shù)i=0,j=0,k=0,ki=0關(guān)系鏈的鏈表 LineRL,LineRL中每個元素的構(gòu)件鏈表數(shù)組 Line[|LineRL|],并為 Line[|LineRL|]的每個元素設(shè)置一個印記;

        2)在MRV中從左至右找到構(gòu)件Ci的第i個位置,即Ci∈RLi并確定Ci所在位置,如果找到,則置Ci語義關(guān)系鏈效應(yīng)數(shù)l=l+1,i=i+1,進入步驟3);如果找不到,進入步驟4);

        4)從 LineRL中取出第 j個元素 LineRL[j],如果,則進入步驟 8),否則進入步驟 5);

        5)取出Line[|LineRL|]對應(yīng)的第k個元素獲得對應(yīng)的構(gòu)件Ck所在的LineRL[j]的位置L(Ck),如果Ck 是 LineRL[j]的尾節(jié)點,則刪除并且將 LineRL[j]從鏈表中刪除,j=j+1,重復(fù)步驟4);如果印記為1并且Ck不是LineRL[j]的尾節(jié)點,則k=k+1,重復(fù)步驟5),如果印記為0并且Ck不是LineRL[j]尾節(jié)點,則進入步驟6);

        6)查找對比 Line[|LineRLj|]的各個元素,如果Line[|LineRLj|]不存在 L(Ck),則計算 n=n+[L(Cn)-L(Ck)],L(Ck)進入 Line[LineRLj]并打上印記1;如果存在L(Ck)并且L(Ck)>,則計算 n=n+[L(Cn)-L(Ck)],打上印記1;如果存在L(Ck)并且L(Ck)<,則計算L(Ck)],打 上 印 記 1,表 示的第一個元素構(gòu)件所在的語義關(guān)系鏈的位置;L(Ck+1),…,L(Cn)分別和Line[Lin-的各個元素相比較,如果不存在,則進入鏈表并打上印記0,執(zhí)行下一步;如果存在則直接執(zhí)行下一步;

        7)在MRV中從左至右找到構(gòu)件Ck的第ki個位置,即 Cki∈RLki并確定 Cki所在位置,將 RLki和 LineRL中的元素相比較,如果相等,則ki=ki+1,重復(fù)步驟7)直到遍歷MRV后重復(fù)執(zhí)行步驟4);如果不等,則置語義關(guān)系鏈效應(yīng)數(shù)l=l+1,ki=ki+1,計算n=n+[L(Cn)-L(Ci)],RLki進入鏈表 LineRL,L(Cki)進入 Line[LineRLki]并打上印記 1,L(Cki+1),…,L(Cn)進入 Line[LineRLki]并打上印記 0,重復(fù)步驟7)直到遍歷MRV后重復(fù)執(zhí)行步驟4);

        8)算法結(jié)束.

        算法1可以界定SA中產(chǎn)生語義關(guān)系之間的構(gòu)件波及效應(yīng),用于分析SA中構(gòu)件增加和構(gòu)件修改引起SA中其他構(gòu)件變化的范圍.

        然而,算法1并沒有考慮不同構(gòu)件之間語義關(guān)系的時序性(邏輯性),即構(gòu)件Ci的SOi中成員與SIi中成員的語義協(xié)議關(guān)系.不同語義協(xié)議關(guān)系對構(gòu)件刪除產(chǎn)生不同影響,圖2中如果存在SR3∩SR1→SR2,即SR3和SR1強相關(guān),則刪除構(gòu)件C4,則C3和C2必然受到影響而需要修改;如果存在SR3∪SR1→SR2,即SR3和SR1弱相關(guān),則刪除構(gòu)件C4,則C3和C2可以不修改.因此為了界定不同的語義關(guān)系鏈相關(guān)度在構(gòu)件刪除中產(chǎn)生的波及效應(yīng),設(shè)計了算法2.

        3.2 算法2

        算法2:考慮不同語義協(xié)議關(guān)系項對刪除構(gòu)件語義關(guān)系構(gòu)件波及效應(yīng)(δDC)算法:

        1)根據(jù)算法1找到在MRV中構(gòu)件Ci所在的關(guān)系鏈和相應(yīng)的位置,初始化n=0,l=0,進入步驟2);

        2)根據(jù)找到的關(guān)系鏈,在MRI中找到對應(yīng)的列,進行兩兩對比,判斷某個RLi中是否存在與其他RLj相同的元素,即 SRk∈RLi∧SRk∈RLj(i≠j),如果存在則將這些關(guān)系鏈提取出來形成一個系列(RLh1,RLh2,…,RLhn),進入步驟3);如果不存在,則計算n=n+[L(Cn)-L(Ci)],l=l+1,進入步驟5);

        4)如果 SRk-1和 SRk強相關(guān),則計算 n=n+[L(Cn)-L(Ci)],l=l+1;否則計算 n=n+[L(Ck)-L(Ci)],l=l+1,進入步驟5);

        5)算法結(jié)束.

        算法2可以界定不同SR的語義協(xié)議關(guān)系在構(gòu)件刪除中產(chǎn)生的波及效應(yīng).

        構(gòu)件拆分和構(gòu)件合并操作導(dǎo)致構(gòu)件之間語義關(guān)系的合并或修改進而影響SA的語義關(guān)系,因此需要重新構(gòu)造SA的MS、MRV、MRI進行分析.

        4 實驗與分析

        SA的演化分析用于界定由于演化操作引起的波及效應(yīng),預(yù)測和分析演化操作可能帶來的SA變化以及引起其他構(gòu)件變化的范圍等[2,19].以某艦艇信息仿真系統(tǒng)為實驗案例,說明SA演化操作引起SA變化及其波及效應(yīng).該系統(tǒng)從版本1(V1)到版本2(V2)的演化中,增加通信指示信息功能,并將通信指示目標(biāo)與本艦艇的探測目標(biāo)信息實現(xiàn)融合,取消TMA(目標(biāo)運動分析)人工修改信息輸入,將武器類型單獨控制改進為武器綜合控制,同時將武器的回復(fù)信息參與效果評估.

        在實驗中,首先建立V1和V2的語義關(guān)系模型、MS、MRV和MRI,根據(jù)算法1和算法2計算相關(guān)的波及效應(yīng)參數(shù),然后以文獻(xiàn)[15]的方法分析檢測V1、V2相應(yīng)構(gòu)件的代碼相似度(Sim),在此基礎(chǔ)上,對2個版本的代碼進行詳細(xì)地分析,最后對實驗結(jié)果進行對比分析和總結(jié).由于篇幅,V1和V2的MS、MRV、MRI這里不做介紹.V1和V2的SA語義關(guān)系模型如圖 3(a)和 3(b).V1的語義關(guān)系有:SR12θ0→SR15,(SR1∪SR10∪SR8)∩SR6→SR11,(SR1⊕ SR10⊕SR8)∩SR6→(SR12,SR13,SR14),(SR4∪SR2)∩SR5→SR7,SR3∩SR5→SR8,SR13θ0→SR16,SR7∪SR9→SR10,SR14θ0→SR17;V2的語義關(guān)系有:SR7θ0→SR10,(SR1⊕ SR10 ⊕ SR8⊕ SR19)∩SR6→SR12,(SR4∪SR2)∩SR5→SR7,SR12θ0 →(SR15,SR16,SR17),(SR18∪SR3)∩SR5→SR8,SR16θ0→SR20,SR15θ0→SR21,(SR1∪SR10∪SR8∪SR19)∩SR6→SR11,SR17θ0→SR22.實驗結(jié)果如表 1 所示.

        圖3 V1和V2的SA語義關(guān)系模型Fig.3 SA semantic relationship model of V1and V2

        表1 V1/V2波及效應(yīng)參數(shù)和相應(yīng)構(gòu)件的SimTable 1 V1/V2ripple-effect data and corresponeling components of Sim %

        很顯然,從V1到V2的SA演化中,V2中刪除了Cont,增加了 Conn,將 CMis、CTor和 CDes 合并為CW,增加了 SR18~ SR22,刪除了 SR9,將 SR12、SR13和SR14合并為SR12.下面對實驗結(jié)果進行分析:

        1)刪除 Cont構(gòu)件,δDC=0,δC=9,V1和 V2的TMA的代碼相似度為100%,說明文章算法2的實驗結(jié)果與文獻(xiàn)[20]的方法檢測相吻合.

        2)從SA語義關(guān)系上,增加Conn構(gòu)件是在原來SA上增加兩個語義關(guān)系(SR18和SR19),生成新的語義關(guān)系鏈.因此兩個版本的δL,F(xiàn)use由20變成24,Comp由32 變成 36,Eval、Mis、Tor和 Des由 8 變成9.Fuse和 Comp的代碼相似度檢測結(jié)果分別為89.3%和86.8%.在人工分析代碼中,F(xiàn)use對 SR18進行處理而增加代碼,Comp處理SR19而增加代碼,同時對SR8的處理增加并修改部分代碼.從實驗結(jié)果來看,文章算法1的實驗結(jié)果、代碼相似度檢測結(jié)果及人工分析結(jié)果相吻合.

        3)在 V2中,對構(gòu)件 Mis、Tor和 Des的修改,是增加相應(yīng)輸出接口,構(gòu)件Eval則調(diào)用這些接口.從SA演化上看,是在Mis、Tor和Des所在的語義關(guān)系鏈尾結(jié)點增加了相應(yīng)的構(gòu)件(虛擬構(gòu)件),而這些虛擬構(gòu)件合并在構(gòu)件Eval中,同時Eval還需要對SR8、SR20、SR22和SR22進行相關(guān)處理而增加和修改代碼.因此,兩個版本Mis、Tor和Des的代碼相似度非常高,而構(gòu)件Eval的代碼相似度就比較低(78.6%).

        4)從實驗結(jié)果上看,將 CMis、CTor和 CDes合并為CW并沒有改變SA的語義關(guān)系鏈數(shù)目,因而也未從語義關(guān)系上改變SA的MRV和MRI.但因構(gòu)件數(shù)目減少而改變SA的MS,因此構(gòu)件合并有利于SA優(yōu)化.構(gòu)件合并后需要對合并后的代碼進行修改,因此構(gòu)件代碼的相似度比較低.

        從實驗結(jié)果及分析來看,從構(gòu)件及構(gòu)件之間的語義關(guān)系的角度,根據(jù)不同SA演化操作特性設(shè)計的波及效應(yīng)算法的實驗結(jié)果、代碼相似度檢測結(jié)果以及人工代碼分析結(jié)果是相吻合的.

        5 結(jié)束語

        SA的語義關(guān)系總和體現(xiàn)了軟件的功能與屬性,SA演化描述了軟件功能和屬性的變遷,對軟件功能及其變遷的控制一直都是業(yè)界難題.文章將SA演化分析建立在構(gòu)件之間的語義關(guān)系及其語義協(xié)議關(guān)系上,把SA中語義關(guān)系組成語義關(guān)系鏈,通過構(gòu)建SA語義關(guān)系模型、語義關(guān)系矩陣和語義關(guān)系鏈矩陣,從構(gòu)件本身和構(gòu)件之間的語義關(guān)系以及這些語義關(guān)系之間的相關(guān)性兩個方面,根據(jù)不同SA演化操作特性,計算分析SA不同演化操作的波及效應(yīng),進而界定它的影響范圍,從而能夠為SA演化的控制和預(yù)測提供了可量化的依據(jù).目前,在構(gòu)件組成的系統(tǒng)中,對SA的構(gòu)建及其構(gòu)件的析出主要以人工為主,如何自動識別并構(gòu)建SA,自動解析出其中的構(gòu)件,并實現(xiàn)智能控制SA的演化將是下一步研究重點.

        [1]LIU Y,ZHANG S K,WANG L F,et al.Component-based software frameworks and role extension form[J].Journal of Software,2003,14(8):1364-1370.

        [2]WANG Y H,ZHANG S K,LIU Y,et al.Ripple effect analysis of software architecture evolution based on reachability matrix[J].Journal of Software,2004,15(8):1107-1115.

        [3]MEDVIDOVIC N,GRüNBACHER P,EGYED A,et al.Bridging models across the software lifecycle[J].Journal of Systems and Software,2003,68(3):199-215.

        [4]JIA Y,GU Y Q.Domain feature space based semantic representation of component[J].Journal of Software,2002,13(2):311-316.

        [5]ZENG J,SUN H L,LIU XD,et al.Dynamic evolution mechanism for trustworthy software based on service composition[J].Journal of Software,2010,21(2):261-276.

        [6]SONG Wei,MA Xiaoxing,LU Jian.Instance migration in dynamic evolution of web service compositions[J].Chinese Journal of Computers,2009,32(9):1816-1830.

        [7]HUANG G,MEI H,YANG F Q.Runtime recovery and manipulation of software architecture of component-based systems[J].Journal of Automated Software Engineering,2006,13(2):251-278.

        [8]MAGEE J,KRAMER J.Dynamic structure in software architectures[C]//Proc of the ACM SIGSOFT Symp on Foundations of Software Engineering.New York:ACM Press,1996:3-14.

        [9]SHEN J R,SUN X,HUANG G,et al.Towards a unified formal model for supporting mechanisms of dynamic component update[C]//Proc of the ACM SIGSOFT Symp on Foundations of Software Engineering.New York:ACM Press,2005.80-89.

        [10]SUN C A,JIN M Z,LIU C.Overviews on software architecture research[J].Journal of Software,2002,13(7):1228-1237.

        [11]RYDER B G,TIP F.Change impact analysis for object-oriented programs[C]//Proc of 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering.New York:ACM Press,2001:46-53.

        [12]張世琨,張文娟,常欣,等.基于軟件體系結(jié)構(gòu)的可復(fù)用構(gòu)件制作和組裝[J].軟件學(xué)報,2001,12(9):1351-1359.

        ZHANG Shikun,ZHANG Wenjuan,CHANG Xin,et al.Building and assembling reusable components based on software architecture[J].Journal of Software,2001,12(9):1351-1359.

        [13]MEI H,CHEN F,F(xiàn)ENG Y D,et al.ABC:an architecture based,component oriented approach to software development[J].Journal of Software,2003,14(4):721-732.

        [14]XU Jiaqing,PENG Xin,ZHAO Wenyun.An evolution analysis method based on fuzzy concept lattice and source code analysis[J].Chinese Journal of Computers,2009,32(9):1833-1844.

        [15]趙長海,晏海華,金茂忠.基于編譯優(yōu)化和反匯編的程序相似性檢測方法[J].北京航空航天大學(xué)學(xué)報,2008,34(6):711-715.

        ZHAO Changhai,YAN Haihua,JIN Maozhong.Approach based on compiling optimization and disassembling to detect program similarity[J].Journal of Beijing University of Aeronautics and Astronautics,2008,34(6):711-715.

        猜你喜歡
        波及語義構(gòu)件
        語言與語義
        聚合物流變性對非均質(zhì)油藏波及效率的影響
        建筑構(gòu)件
        建筑構(gòu)件
        建筑構(gòu)件
        建筑構(gòu)件
        消除相互影響的基波及諧波相量測量算法
        基于I-O模型船舶工業(yè)關(guān)聯(lián)與波及效應(yīng)研究
        “上”與“下”語義的不對稱性及其認(rèn)知闡釋
        認(rèn)知范疇模糊與語義模糊
        精品人妻一区二区三区蜜桃 | 极品少妇小泬50pthepon| 亚洲欧美另类激情综合区| 国产欧美精品一区二区三区,| 亚洲成av在线免费不卡| 午夜一区二区视频在线观看| 摸进她的内裤里疯狂揉她动图视频 | 又黄又爽又高潮免费毛片| 久久99精品久久久久九色| 极品 在线 视频 大陆 国产| 亚洲精品一区二区视频| 国产精品麻豆一区二区三区 | 国产农村妇女毛片精品久久麻豆 | 国产超碰人人爽人人做人人添| 精品深夜av无码一区二区| 中文字幕熟妇人妻在线视频 | 亚洲精品中文字幕无码蜜桃| 亚洲V无码一区二区三区四区观看| 视频一区中文字幕在线观看| 成人性生交大全免费看| 国产放荡对白视频在线观看| 国产免费一区二区三区在线观看| 国产乱人伦AⅤ在线麻豆A| 精品嫩模福利一区二区蜜臀| 国产免费av手机在线观看片| 日韩成人无码| 久久狠狠高潮亚洲精品暴力打| 亚洲成生人免费av毛片| 国产无套内射又大又猛又粗又爽| 色先锋av影音先锋在线| 中文字幕一区二区三区乱码| 麻豆国产av尤物网站尤物| 色婷婷亚洲十月十月色天| 蜜桃视频在线观看网址| 岳毛多又紧做起爽| 成人无码h真人在线网站| 中文字幕日韩一区二区不卡| 极品少妇xxxx精品少妇偷拍| 麻豆高清免费国产一区| 亚洲欧美日韩精品香蕉| 久久一区二区三区老熟女|