APP下载

面向构件语义关系的软件体系结构演化分析

2011-06-05印桂生宋敏韦正现王红滨张万松

哈尔滨工程大学学报 2011年10期
关键词:波及语义构件

印桂生,宋敏,2,韦正现,王红滨,张万松

(1.哈尔滨工程大学计算机科学与技术学院,黑龙江 哈尔滨150001;2.北京外国语大学 信息技术中心,北京100089;3.船舶系统工程研究所,北京100036)

构造性和演化性是软件的两个基本特性[1].软件进行渐变并达到所希望的形态就是软件演化.软件演化由一系列复杂的变化活动组成,这些变化活动称为演化操作.引起软件变化的原因是多方面的,对软件演化进行理解和控制显得复杂而困难[2].而软件体系结构(software architecture,SA)作为软件的蓝图,为人们从宏观上把握软件的整体结构,为软件的整个生命周期各个阶段提供有效指导[3-4],因此,软件演化的研究应该从高层的软件体系结构,以便于对演化进程及其影响进行有效控制.SA演化研究分为静态演化和动态演化两方面.静态演化主要从非运行时SA版本更新、功能增加、删除和修改等方面入手.动态演化是在软件运行时刻SA的变换来进行深入研究[5-7].文献[2]通过语义可达矩阵给出构件对SA贡献大小来评价SA演化的波及效应,但没有从语义相关性以及不同SA演化操作具有不同特性的角度来分析SA演化.文献[8-9]分别用进程代数和图论来解释SA演化,但它们更注重SA的构造而非演化.文献[10-11]对软件演化过程进行了定性分析.本文从SA中构件及构件之间的语义关系、语义协议关系和SA演化操作特性3个方面综合分析SA静态演化及其波及效应.首先给出构件内部的语义和语义协议关系,分析了构件之间语义关系的时序性可以通过语义协议关系来表示;其次给出了SA语义关系矩阵,将SA中语义关系组成语义关系链,提出了SA语义关系链矩阵并对它的性质进行分析;再次根据SA演化操作特点提出了语义关系链波及效应与语义关系构件波及效应算法,同时,针对不同语义协议关系项对删除构件的影响程度不同,提出了删除构件的语义关系构件波及效应算法;最后给出了SA演化实验及结果分析.

1 构件及构件之间的语义关系

目前,普遍认为构件以及构件之间的关系(连接件)共同组成了软件体系结构[10].

1.1 构件的语义及语义协议关系

构件C由接口规约和内部规约两部分组成.构件接口分为两类,一类是示出接口P,它是构件C向外提供功能(服务)接口,另一类是导入接口E,它是构件C需要的功能(服务)接口[12].内部规约是对构件内部功能和属性的抽象和描述.从SA来考察构件,它表现为导入接口与构件内部规约到示出接口的关系总和.

定义1 构件的语义.设P是构件C的示出接口集(记为 C·P),E是 C的导入接口集(记为C·E),则构件C的语义S是从E到P的二元关系:S⊆E×P.

如图 1(a)中 S={(a,p),(b,p),(b,q),(d,q),(e,t)}是 P 到 E 的一个关系.显然导入接口a与示出接口p形成的有序偶(a,p)就是接口a和p之间的语义关系.

构件的语义描述了示出接口与导入接口之间存在语义关联,并没有刻画接口成员间的语义时序或逻辑的协议关系.如,导入接口a和b必须同时满足才能导致示出接口p,导入接口b和d其中一个满足就可以导致示出接口q,二者的协议关系完全不一样.示出接口与导入接口之间的语义协议关系,可以由不同的协议关系项来表示.由构件组成的软件系统,必然存在只有示出接口而没有导入接口的构件,同时也存在只有导入接口而没有示出接口的构件.

图1 构件的语义及SA语义关系模型Fig.1 Component semantic and SA semantic model

定义2 语义协议关系.构件示出接口与导入接口之间的语义协议关系由它们的语义协议关系项来确定,语义协议关系项是下列关系中的一种:

1)产生关系:构件C的示出接口p不需要任何导入接口就可以提供或引发,记为0τ→p,称为τ关系;

2)结束关系:构件C的导入接口a都不会的引发或提供任何示出接口,记为σa→0,称为σ关系;

3)对应关系:构件C满足导入接口a才可以引发或提供示出接口p,记为aθ0→p,称为θ关系;

4)选择关系:构件C需要满足导入接口a和b的其中之一或全部,才能引发或提供示出接口p,记为 a∪b→p,称为∪关系;

5)互斥关系:构件C在导入接口a和b之间,接口a被导入则接口b不能被导入,或者接口b被导入则接口a不能被导入,才引发或提供示出成员p,记为 a⊕b→p,称为⊕关系;

6)并发关系:构件C需要导入接口a和b都得到满足,才能引发或提供示出接口p,记为a∩b→p,称为∩关系;

7)顺序关系:构件C只有导入接口a被导入并处理完成以后,接口b才能被导入并进行处理,而引发或提供示出接口p,记为 a∞b→p,称为∞关系.

定义2中0表示空接口.不同语义协议关系项具有语义强弱之分,显然(θ≈ ∞ ≈ ∩)>(∪ ≈⊕).

在图1(a)中的构件C,e和t之间存在对应关系,a、b与p之间,b、d与q之间可能存在选择关系、并发关系、互斥关系或顺序关系.

1.2 构件之间的语义关系

在构件组成的软件系统中,构件与构件之间通过接口实现功能(服务)的交互,因此具有功能交互的构件之间就发生语义关联.

定义3 构件之间的语义关系.存在构件C1和C2,如果满足①a∈C1·P,②e∈C2·E,③a=e,则称构件C1到C2具有直接语义关系;存在构件C1、C2和 C3,如果满足①a∈C1·P,②e∈C2·E,③b∈C3·P,f∈C3·E,④a=f,b=e,⑤b 和 f之间存在对应关系、选择关系、并发关系、互斥关系或和顺序关系,则称构件C1到C2具有间接语义关系.构件之间的直接语义关系和间接语义关系统称为构件之间的语义关系,记为SR.

由定义3可知,当一个构件向外提供功能成为另一个构件请求输入功能时,这两个构件具有直接语义关联,构件之间的语义关系如图2,图中构件C1和C3具有直接语义关系,构件C1和C2具有间接语义关系.构件之间的语义关系具有方向性,图2中有SR1= <C1,C3> ,SR2= <C3,C2>,SR3= <C4,C3>.为了方便,将SR1记为C1SR→—1C3,称构件C1为SR1的射出构件,C3为SR1的射入构件,C1和C3为结点构件(简称结点),C1为 C3的前驱,C3为 C1的后继,

SR→—1为弧,它是C1的射出弧,也是C3的射入弧.图 2 中,如果 a3∩b3→p3,则 SR3∩SR1→SR2,因此不同构件之间语义关系的时序性(逻辑性)就可以采用语义协议关系项来表示.

图2 构件之间的语义关系Fig.2 Semantic relationship among conponents

2 SA的语义矩阵及语义关系链矩阵

SA是组成系统的构件以及构件与构件之间交互作用关系(连接件)的高层抽象[2,13].连接件承载构件之间的语义关系,为了方便,文章采用构件之间的语义关系SR表示连接件.由此,SA的语义关系模型可表示为SA={Cs,SRs},其中,Cs是构件集,SRs是构件之间的语义关系集.图1(b)描述了5个构件具有7个直接语义关系的SA语义关系模型.

2.1 SA语义关系矩阵

软件的功能与属性表现为构件内部以及构件之间语义关系的总和,根据SA中构件之间的语义关系,可以构建SA的语义关系矩阵.

称MS为SA的语义关系矩阵.

设图 1(b)中有:SR2θ0 →SR4、SR4θ0 →SR7、SR1@SR7→SR5,@∈{∪,∩,⊕,∞ },则其 SA 的

2.2 SA语义关系链矩阵

定义5 SA语义关系链.SA语义关系链表示为 RL={C,SR},其中 SR={SRi|SRi∈SRs,1≤i≤n,n≥0},C={Ci|Ci∈Cs∧Ci∈SR,1≤i≤n,n≥0},并且满足:

1)存在唯一的结点使得它的射出弧和射入弧之间存在τ关系,即为语义关系链的头结点;

2)存在唯一的结点使得它的射出弧和射入弧之间存在σ关系,即为语义关系链的尾结点;

3)除了头结点和尾结点,其他每个结点都有唯一的前驱和后继,并且结点的射出弧和射入弧之间存在除τ和σ以外的语义协议关系项中的一种.

根据定义5,对∀Ci∈RL,C不是RL中的构件,如果C和Ci没有语义关系,则称构件C与关系链RL无关,记作C//RL.可以将SA中包含的多个语义关系链组合起来形成矩阵.

定义6 语义关系链构件矩阵.构造一个矩阵,将一条语义关系链RL的构件Ci按照先后顺序组成矩阵同一列,其他语义关系链的构件依次构成其他列,以构件最多的语义关系链为基准(n),不足n个构件的语义关系链所形成列的空位置补充空构件(NULL),这样组成一个n×m的语义关系链构件矩阵MRV.

定义7 语义关系链矩阵.将一条语义关系链RL的构件语义关系SRi按照先后顺序组成矩阵同一列,其他语义关系链的语义关系依次构成其他列,以构件语义关系最多的语义关系链为标准(n-1),不足n-1列的空位置补充0,则构成一个(n-1)×m的语义关系链矩阵MRI,m是SA的关系链的条数.

空构件与任意语义关系链无关NULL∥RLi.如果两条语义关系链上的构件都不产生语义关系,则这两条语义关系链无关,否则相关.

根据定义6和定义7,图1(b)所对应的语义关系链构件矩阵和语义关系链矩阵为:

定义8 语义关系链无关.语义关系链RLi和RLj无关,如果∀SRi和 ∀SRi,使(SRi∈ RLi∧SRi∉RLj)∧(SRj∈RLj∧SRj∉RLi)成立,记作 RLi∥RLj,同时有 SRi∥RLj,SRj∥RLi.

定义9 语义关系链相关.语义关系链RL1和RL2相关,如果∃SRi,使 SRi∈RL1∧SRi∈RL2成立,把所有这样的SR集合记作S12=RL1∩RL2.

由定义9,如果2条语义关系链相关,则这2条语义关系链必然通过同一个构件发生关系,则该构件的射出弧或射入弧不是唯一,可将构件Ci的射出弧集合记为SOi,射入弧集合记为SIi.

定义10 语义关系链相关度.如果 S12=RL1∧RL2≠Ø,SRi∈S12,Ci为 SRi的射出构件,∀SRj∈SIi并且 SRj∈RL1,同时∀SRk∈SIi并且SRk∈RL2,使 SRj@SRk→SRi,当@ ∈{∩,∞ ,θ},则称RL1和 RL2是强相关;当@∈{∪,⊕},则称RL1和RL2是弱相关.

定义11 语义关系链矩阵相关性.对于SA的MRV和 MRI,如果∀RLi,∀RLj,有 RLi//RLj,则称MRV和 MRI为无关矩阵;如果∃RLi,∃RLj,RLi和 RLj是强相关,则称 MRV和 MRI为强相关矩阵;∃RLi,∃RLj,使 RLi和 RLj是弱相关,同时∃RLk,∃RLl,使RLk和RLl是强相关,则称 MRV和 MRI为弱相关矩阵.强相关矩阵和弱相关矩阵统称为相关矩阵.

根据语义关系链矩阵相关性定义,有以下定理.

定理1 如果MRV是无关矩阵,则任意2个元素Cij和 Ckl(j≠l)无关.

证明:在 MRV中,假设存在 2个构件 Cij和Ckl(j≠l)具有语义相关性.根据定义6和定义7,有Cij∈RLj,Ckl∈RLl,RLj≠RLl;根据定义 11,如果j≠l,则RLj//RLl,与MRV相关性定义矛盾,证毕.

定理2 如果MRI是无关矩阵,则任意2个RLi和RLj无关.

证明:同定理1,略.

定理3 如果MRV和MRI是相关矩阵,则存在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)假设对于任意 SR,使SR∈RLi∧SR∉RLj(j≠i)为真,根据定义 8,有RLi∥RLj;2)假设对于任意 C,使 C∈RLi∧C∉RLj(j≠i)为真,根据定义5,有 C∥RLj,再根据定义6,可知RLi∥RLj;根据1)、2)以及定义7和定义8,MRV和MRI为无关矩阵,矛盾,证毕.

定理1和2说明SA的MRV和MRI是无关矩阵,则不同语义关系链上的构件和SR不会产生关系.定理3说明SA的MRV和MRI是相关矩阵,则不同语义关系链上的构件和SR可能会产生关系.

3 SA演化波及效应算法

SA演化操作主要包括SA中构件增加、修改、删除、合并和拆分等.SA演化的波及效应δ表现为变化构件与其存在直接或间接语义关联构件的修改、组合和归整[2,14].

定义12 语义关系链波及效应δL.当SA中构件C发生变化时,与之产生语义关系并受到影响语义关系链的数量.

定义13 语义关系构件波及效应δC.当SA中构件C发生变化时,与之产生语义关系并受到影响构件的数量.

变化的构件通过与之产生语义关系的传播而引起波及效应,这个波及效应可以通过SA中构件之间的语义关系来确定.根据定理1和2,如果SA的MRV和MRI是无关矩阵,则对构件的演化操作,仅影响到该构件所在语义关系链的其他构件.如果SA的MRV和MRI是相关矩阵,则对构件的演化操作,不仅影响该构件所在的语义关系链的其他构件,而且可能影响到与该语义关系链相关的其他语义关系链上的构件,根据定理3,能够从SA的MRV和MRI来界定受其影响或波及到的其他构件范围.本节设计计算SA中构件Ci的语义关系链波及效应与语义关系构件波及效应算法.

3.1 算法1

算法1:Ci语义关系链波及效应与语义关系构件波及效应算法描述:

输入:SA的语义关系链相关矩阵MRV和SA的构件Ci.

输出:构件Ci的语义关系链波及效应和语义关系构件波及效应.

1)初始化Ci语义关系链波及效应l=0,构件Ci的语义关系构件波及效应n=0,参数i=0,j=0,k=0,ki=0关系链的链表 LineRL,LineRL中每个元素的构件链表数组 Line[|LineRL|],并为 Line[|LineRL|]的每个元素设置一个印记;

2)在MRV中从左至右找到构件Ci的第i个位置,即Ci∈RLi并确定Ci所在位置,如果找到,则置Ci语义关系链效应数l=l+1,i=i+1,进入步骤3);如果找不到,进入步骤4);

4)从 LineRL中取出第 j个元素 LineRL[j],如果,则进入步骤 8),否则进入步骤 5);

5)取出Line[|LineRL|]对应的第k个元素获得对应的构件Ck所在的LineRL[j]的位置L(Ck),如果Ck 是 LineRL[j]的尾节点,则删除并且将 LineRL[j]从链表中删除,j=j+1,重复步骤4);如果印记为1并且Ck不是LineRL[j]的尾节点,则k=k+1,重复步骤5),如果印记为0并且Ck不是LineRL[j]尾节点,则进入步骤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,表 示的第一个元素构件所在的语义关系链的位置;L(Ck+1),…,L(Cn)分别和Line[Lin-的各个元素相比较,如果不存在,则进入链表并打上印记0,执行下一步;如果存在则直接执行下一步;

7)在MRV中从左至右找到构件Ck的第ki个位置,即 Cki∈RLki并确定 Cki所在位置,将 RLki和 LineRL中的元素相比较,如果相等,则ki=ki+1,重复步骤7)直到遍历MRV后重复执行步骤4);如果不等,则置语义关系链效应数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,重复步骤7)直到遍历MRV后重复执行步骤4);

8)算法结束.

算法1可以界定SA中产生语义关系之间的构件波及效应,用于分析SA中构件增加和构件修改引起SA中其他构件变化的范围.

然而,算法1并没有考虑不同构件之间语义关系的时序性(逻辑性),即构件Ci的SOi中成员与SIi中成员的语义协议关系.不同语义协议关系对构件删除产生不同影响,图2中如果存在SR3∩SR1→SR2,即SR3和SR1强相关,则删除构件C4,则C3和C2必然受到影响而需要修改;如果存在SR3∪SR1→SR2,即SR3和SR1弱相关,则删除构件C4,则C3和C2可以不修改.因此为了界定不同的语义关系链相关度在构件删除中产生的波及效应,设计了算法2.

3.2 算法2

算法2:考虑不同语义协议关系项对删除构件语义关系构件波及效应(δDC)算法:

1)根据算法1找到在MRV中构件Ci所在的关系链和相应的位置,初始化n=0,l=0,进入步骤2);

2)根据找到的关系链,在MRI中找到对应的列,进行两两对比,判断某个RLi中是否存在与其他RLj相同的元素,即 SRk∈RLi∧SRk∈RLj(i≠j),如果存在则将这些关系链提取出来形成一个系列(RLh1,RLh2,…,RLhn),进入步骤3);如果不存在,则计算n=n+[L(Cn)-L(Ci)],l=l+1,进入步骤5);

4)如果 SRk-1和 SRk强相关,则计算 n=n+[L(Cn)-L(Ci)],l=l+1;否则计算 n=n+[L(Ck)-L(Ci)],l=l+1,进入步骤5);

5)算法结束.

算法2可以界定不同SR的语义协议关系在构件删除中产生的波及效应.

构件拆分和构件合并操作导致构件之间语义关系的合并或修改进而影响SA的语义关系,因此需要重新构造SA的MS、MRV、MRI进行分析.

4 实验与分析

SA的演化分析用于界定由于演化操作引起的波及效应,预测和分析演化操作可能带来的SA变化以及引起其他构件变化的范围等[2,19].以某舰艇信息仿真系统为实验案例,说明SA演化操作引起SA变化及其波及效应.该系统从版本1(V1)到版本2(V2)的演化中,增加通信指示信息功能,并将通信指示目标与本舰艇的探测目标信息实现融合,取消TMA(目标运动分析)人工修改信息输入,将武器类型单独控制改进为武器综合控制,同时将武器的回复信息参与效果评估.

在实验中,首先建立V1和V2的语义关系模型、MS、MRV和MRI,根据算法1和算法2计算相关的波及效应参数,然后以文献[15]的方法分析检测V1、V2相应构件的代码相似度(Sim),在此基础上,对2个版本的代码进行详细地分析,最后对实验结果进行对比分析和总结.由于篇幅,V1和V2的MS、MRV、MRI这里不做介绍.V1和V2的SA语义关系模型如图 3(a)和 3(b).V1的语义关系有: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的语义关系有: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.实验结果如表 1 所示.

图3 V1和V2的SA语义关系模型Fig.3 SA semantic relationship model of V1and V2

表1 V1/V2波及效应参数和相应构件的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.下面对实验结果进行分析:

1)删除 Cont构件,δDC=0,δC=9,V1和 V2的TMA的代码相似度为100%,说明文章算法2的实验结果与文献[20]的方法检测相吻合.

2)从SA语义关系上,增加Conn构件是在原来SA上增加两个语义关系(SR18和SR19),生成新的语义关系链.因此两个版本的δL,Fuse由20变成24,Comp由32 变成 36,Eval、Mis、Tor和 Des由 8 变成9.Fuse和 Comp的代码相似度检测结果分别为89.3%和86.8%.在人工分析代码中,Fuse对 SR18进行处理而增加代码,Comp处理SR19而增加代码,同时对SR8的处理增加并修改部分代码.从实验结果来看,文章算法1的实验结果、代码相似度检测结果及人工分析结果相吻合.

3)在 V2中,对构件 Mis、Tor和 Des的修改,是增加相应输出接口,构件Eval则调用这些接口.从SA演化上看,是在Mis、Tor和Des所在的语义关系链尾结点增加了相应的构件(虚拟构件),而这些虚拟构件合并在构件Eval中,同时Eval还需要对SR8、SR20、SR22和SR22进行相关处理而增加和修改代码.因此,两个版本Mis、Tor和Des的代码相似度非常高,而构件Eval的代码相似度就比较低(78.6%).

4)从实验结果上看,将 CMis、CTor和 CDes合并为CW并没有改变SA的语义关系链数目,因而也未从语义关系上改变SA的MRV和MRI.但因构件数目减少而改变SA的MS,因此构件合并有利于SA优化.构件合并后需要对合并后的代码进行修改,因此构件代码的相似度比较低.

从实验结果及分析来看,从构件及构件之间的语义关系的角度,根据不同SA演化操作特性设计的波及效应算法的实验结果、代码相似度检测结果以及人工代码分析结果是相吻合的.

5 结束语

SA的语义关系总和体现了软件的功能与属性,SA演化描述了软件功能和属性的变迁,对软件功能及其变迁的控制一直都是业界难题.文章将SA演化分析建立在构件之间的语义关系及其语义协议关系上,把SA中语义关系组成语义关系链,通过构建SA语义关系模型、语义关系矩阵和语义关系链矩阵,从构件本身和构件之间的语义关系以及这些语义关系之间的相关性两个方面,根据不同SA演化操作特性,计算分析SA不同演化操作的波及效应,进而界定它的影响范围,从而能够为SA演化的控制和预测提供了可量化的依据.目前,在构件组成的系统中,对SA的构建及其构件的析出主要以人工为主,如何自动识别并构建SA,自动解析出其中的构件,并实现智能控制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]张世琨,张文娟,常欣,等.基于软件体系结构的可复用构件制作和组装[J].软件学报,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,FENG 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]赵长海,晏海华,金茂忠.基于编译优化和反汇编的程序相似性检测方法[J].北京航空航天大学学报,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.

猜你喜欢

波及语义构件
语言与语义
聚合物流变性对非均质油藏波及效率的影响
建筑构件
建筑构件
建筑构件
建筑构件
消除相互影响的基波及谐波相量测量算法
基于I-O模型船舶工业关联与波及效应研究
“上”与“下”语义的不对称性及其认知阐释
认知范畴模糊与语义模糊