没有合适的资源?快使用搜索试试~ 我知道了~
网址:http://www.elsevier.nl/locate/entcs/volume51.html14页两种基于图的软件体系结构重构技术Dan Hirsch1;2 Ugo Montanari3;4Departamento de Computacion,Universidad de Buenos Aires,Ciudad Universitaria,Pab.I,(1428),布宜诺斯艾利斯,阿根廷Dipartimento di Informatica,Universita' di Pisa,Corso Italia 40,(56125),比萨,意大利摘要软件体系结构风格标识了呈现可区分的共性的软件体系结构的类别软件体系结构规范中的一个主要问题是演化何时包括重构和移动性。考虑到这一点,并理解视觉语言的相关性,特别是在设计层面上,我们在本文中提出了一个图形模型,使用超边缘替换系统作为一个正式的模型来表示风格和他们的recon gurations。为了对样式的重构进行建模,我们提出了两种方法。第一种方法使用同步超边缘替换系统,并添加名称移动性来模拟动态重构。第二种方法是建立一致的侦察模型,基于微积分的类型化能力,在重写系统推导上对一种风格进行保证。1引言大多数表示软件架构的非正式方法都是基于框线绘制,目的是在项目团队成员之间传达开发中系统结构的直觉。但是,这种形式的缺乏也妨碍了清楚地定义组件和连接的语义、动态对象的定义以及系统的相关属性的规范。所有这些图都可以被看作和概括为一些类型的图。1dhirsch@dc.uba.ar2研究部分由UBACyT项目TW72和X094支持。3ugo@di.unipi.it4研究部分由CNR项目Metodi per Sistemi Connesi mediante Reti支持;由MURST项目Theory of ConcurrencyandHigher Order and Types支持;由TMR Network GETGRATS支持;由Esprit Working GroupsAPPLIGRAPH支持。c2002年由Elsevier Science B出版。V.CC BY-NC-ND许可下的开放访问。2软件体系结构风格识别软件体系结构的类别,这些类别呈现可区分的共性[1]。 图文法是一种强有力的工具,它可以刻画具有相似结构特征的图。同时,软件体系结构规范中的一个主要问题是演化何时包括重构和移动。考虑到这一点,并理解视觉语言的相关性,特别是在设计层面上,我们在本文中提出了一个图形模型,使用超边缘替换系统作为一个正式的模型来表示风格和他们的recon-G- urations。超图(或简单地为图)表示体系结构的静态配置的状态,并且从一个状态到另一个状态的演变将被建模为从一个图到另一个图的图重写。这样,在实现构造与演化分离的同时,获得了系统的更清晰的表示。超边(或简单的边)对应于组件,节点是组件之间的通信端口。组件的名称和其他属性可以被视为图形的标签。在[2]提出的方法的基础上,我们使用了超边替换文法[8](或简单的语法)来描述风格。这样一个清晰的描述在样式的每个组件类型上获得。为了对样式的重构进行建模,我们提出了两种方法。遵循自组织方法,第一种方法使用同步超边缘替换系统,并添加名称移动性来模拟动态重构,而无需中央协调[4]。产品在节点(即端口)上装饰有同步要求,以表示组件之间的协调。创建和共享端口以及多个同步的能力为我们提供了一个非常强大的工具来指定更复杂的演进,通过合并特定端口来重新配置多个组件。除了图形方面,我们可以将我们的微积分与微积分联系起来[7]。不同之处在于,微积分是顺序的,在这个意义上,它只允许一个同步的时间,而同步重写允许多个和并发的同步整个图。这些概念的形式化是通过使用句法判断给出的。重构的概念意味着通过改变组件和连接来改变体系结构。这就引出了一个问题,即我们如何确保一个系统在进化过程中可能发生的动态变化与它所属的风格一致。我们提出的第二种方法建议将复杂的重构指定为文法推导上的变换[3]。 通过这种方式,一旦获得了转换,就可以确保它是关于风格的一致的重建。针对导子上相容变换的特殊性,基于-演算的类型化能力,提出了重写系统的概念图、产生式和导子被刻画为单类型- 演算,和超边缘替换可以有效地实现为-3转换.作为使用图变换进行软件体系结构重构的相关工作,我们可以提到[5],[9]和[10]。2Hyperedge置换系统在本节中,我们将介绍超边缘替换系统的概念。由于篇幅所限,我们参考[8]以广泛介绍该主题。超边是一个带有标签的原子项(来自排序字母表LE = fLEn gn=0;1;:),并且具有与其标签的秩一样多的(有序)触角。一组节点和一组这样的边构成一个超图,如果每条边都通过它的触角连接到它的附着节点。一个图配备有一组外部节点,这些节点由不同的名称标识。外部节点可以被视为图与其环境(即上下文)的连接点。图在本文中被认为是同构的。一个与上下文无关的超边替换产生式,或者简单地说是一个产生式,将一条边重写成一个任意的图。为此,我们定义一组NT的非终端边缘标签(即, 标签在产品的左边部分)和T一组终端边缘标签(即标签只出现在产品的右边部分),T\NT = ;。一个非终结图是一个图的有序列表的边缘标记的非终结。 作品将被写成L!R. A生产p =( L! R ) 可 应 用 于 图 G , 若 G 中 存 在 由 y L 标 记 的 边 , 则 H(G)p(H). 将p应用于G的结果是图H,该图H通过移除具有标签L的边的出现而从G获得,并且通过将图R的外部节点与由L标记的边的对应附着节点合并来将图R的新副本嵌入G中。L的附着节点数必须等于G的外部节点数这个概念的超边替换产生的超边替换文法的推导过程中的基本步骤。一个超边替换文法(HRG)由一个初始图G0,一个产生式集P和两个不相交的非终结符集和终结符集组成.3带同步重写的重构在这一节中,我们形式化超图和同步超边替换系统的概念,以及从一组公理和推理规则生成的形式良好的句法判断。对于一个广泛的介绍,我们参考[4]。4结构公理(AG 1)(G 1 jG 2)jG 3G 1 j(G 2 jG 3)(AG 2)G 1 jG 2G 2 jG 1(AG3)GjnilGx:Gy:Gfy=xg(AG4)x:GGifx2=fn(G)(AG5)x:y:Gy:x:G(AG6)如果y2=fn(G)(AG7)x:(G1jG2)(x:G1)jG2如果x2=fn(G2)句法规则x1;:;xn`nilL 2 LEm yi 2fxjgx1;::;xn`L(y1;::;ym)`G1 `G2`G1 jG2;x`G`x:G(RG1)(RG2)(RG3)(RG4)表1合式判断3.1超图与句法判断现在,我们提出了一个图的定义作为句法判断,其中节点对应于名称,外部节点对应于自由名称,边对应于L(x1;:;xn)形式的基本项,其中xi是任意名称,L2 LE。定义3.1[作为句法判断的图]设N是nite名称集合中的xed,LE是标签的排序字母表。一个句法判断,或简单地说,是这样的形式 G在哪里N是一组名称(图的接口),G是由以下语法生成的项G::=L(~x)jGjGj(x)Gjnil其中~x是名字向量,L是边标号,ran k(L)=j~xj.我们用符号;x来表示将x加到的集合,假设x为62。类似地,我们将写1; 2来说明所得到的名称集合是1和2的不相交并集。定义3.2 [结构同余]项的结构同余服从表1中的公理。构造LE和N上的图的良构判断是通过应用表1中的规则直到结构同余公理而生成的。公理(AG1)到(AG7)通常在nil,j和上定义。规则(RG 1)创建一个没有边和n个节点的图,规则(RG 2)创建一个有n个节点和一个用L标记的边和m个触角的图(注意,在~ y中的n个节点之间可以有关系,即, 某些终端可以被附接到相同的节点)。规则(RG3)允许将共享相同外部节点集的两个图放在一起(使用j)。最后,规则(RG4)允许从环境中隐藏节点。5CC3.1.1环示例边是组件,节点是通信端口。外部节点将端口连接到环境。共享节点的边意味着它们之间存在通信链路。因此,让我们取图1a中的图,它表示具有两个连接端口的四个组件的环。表示组件的边绘制为附加到其相应端口的框。边的标签是零部件的名称,箭头指示附着节点的顺序。在这种情况下,我们只有两个触角的边缘。在有符号的节点上的名字标识外部节点,而空的圆圈是绑定节点。图1b显示了如何获得相应的良构判断。xC(RG2)x,y,z,wC(x,w)x,y,z,wC(RG2)x,y,z,wC(w,y)C(x,w)|C(w,y)(RG3)C(RG2)x,y,z,wC(y,z)x,y,z,wC(RG2)x,y,z,wC(z,x)C(y,z)|C(z,x)x,y,z,wC(x,w)|C(w,y)|C(y,z)|C(z,x)x、y、z坐标系好吧C(x,w)|C(w,y)|C(y,z)|C(z,x)(RG4)(RG3)x,y,z,w. C(x,w)|C(w,y)|C(y,z)|C(z,x)(RG4)a)b)、图1.一、环图及其判定3.2具有名称移动性的同步超边缘替换在本节中,我们将介绍同步边缘替换的概念,并为其添加名称创建和移动性的功能为了对同步替换进行建模,我们向生产(现在称为同步生产)中的节点添加一些标签。假设有一个alphabet的行动法案,然后我们将行动与一些节点。 通过这种方式,边的每次重写都必须与其相邻边(许多)同步动作,然后所有参与者也必须移动(有多少取决于同步策略)。很明显,协调重写将允许同步在应用产生式的整个图上传播。现在我们已经协调了重写,我们需要向产品添加共享节点的功能。这是通过让生产为其创建的节点声明新名称,并通过使用同步过程与图的其余部分共享这些名称和/或其他现有名称来实现的。这在生产中通过向节点中的动作添加它想要通信的名称元组来完成因此,重写规则的同步不仅要匹配操作,还要匹配名称的元组。在获得匹配并应用产生式之后,被匹配的声明名称被用于通过合并对应节点来获得重写的nal图。为了形式化同步重写,我们定义了转换的概念yCC6001定义3.3[转换]设N是一个nite名称集,Act是一个ranked action集,其中每个action与一个arity(表示它可以共享的节点数我们需要一个过渡,“G! ;`G0with:!(第N幕)=fzj9x:(x)=(a;~y);z2=;z2set(~y)g一个变迁被表示为一个逻辑的符号,它表示G被重写为满足一组条件的G0。图G0的自由结点必须包括G的自由结点和在同步中挤出的新结点()。请注意,它由相应转换的和决定。要 求 集ActN在其第 一章 中 被 定 义 为 部 分 函 数, 即 , 若(x;a;~y)2∈n(x)=(a;~y)其中y(a)=j~yj.定义3.4[同步生产]同步生产是一个形式的特殊转换,x ;::; x “L(x ;::;x)!x;::;x;“G。产品展示1n1n1n中的名称可以进行字母转换。定义3.5[同步语法]设N为nite中的名称集合,LE为标签的排序字母表,Act为动作的排序集合。一个文法由一个初始图0`G0和一个同步产生式集合P组成.派生是一个nite或nite序列的形式`G!11`克!2“ ……”nn`G n:,其中I1 Gi1!我i`Gi,i =1:n是由P生成的转换集合T(P)中的转换,通过以下获得:可能同步多个制作。转换T(P)由P通过应用所选同步机制的转换规则而生成3.3霍尔同步由于篇幅所限,本文仅介绍霍尔同步的“实现”。在[4]中可以找到Milner同步,并且为了研究该方法的表达能力,我们给出了-演算的翻译[7]。对于霍尔同步,边的每次重写必须在每个附接节点上与连接到该节点的所有边共享相同的动作由于并非所有节点都需要成为同步的场所,因此标识动作“的定义为arity 0,因此如果它被强加在节点上,则没有名称可以 在这个节点上共享。特别地,为了对不移动的边缘进行建模,在转换中,我们需要在其外部节点上具有身份动作的产生式,其中具有标签L的边被重写为自身。这被称为id生产id(L)。ForanyrelationRActN wede nen(R)=S(x;a;~y)2R集(~y)7x;::;x “L(x;::;x)!x;::;x;`G 2 P(人)1n1n1n(x;::;x);`(L(x;::;x(())))(x;::;x)的情况下进行;;0`((G))1N1你好! 1N哪里=mgu(())和((xi)2N=([))^((y)=yf或y2)1 2`G 1 !;1`G 01 `G 2 !(二)`G0 2(com)(1[ 2])`G 1 jG 2!;`(G01 jG02)哪里1\2=;和=mgu(1[2])(开放)[f(x;a;~y)g;x `G!; x;G0‘G!;0`Z:G0x 2 n()(隐藏)[f(x;a;~y)g;x `G!; x;G0‘G!;0`x; Z:G0x2=n()其中Z=set(~y)n(0[)表2霍尔同步的并调用映射: !n(R)R的最一般单位5(mgu),当(R)是第一个参数的函数时,如果,在所有0 使用此属性,合并最小的名称集。mgu是解决同步操作的结果名称(即节点)的识别和避免名称捕获所必需的。定义3.6[Hoare转换系统]设G; P >是一个文法.使用霍尔同步的所有转换T(P)从表2中的转换规则获得 。规则(ren)是必要的,允许将产生式应用于具有可能有多个触角连接到同一节点的边的图,并且还使自由名称适合于应用产生式的图的名称。Rule(com)是完成同步过程的规则5该映射是方程(a=b)^(~y=~z)(当ver(x;a;~y);(x;b;~z)2R)的最一般的单位,并且直到注入重命名时是唯一的. 如果存在(x;a;~y);(x;b;~z)2R且a6=b,或者方程~y=~z蕴含方程v=w且v; w有不同的旧名,则它不存在.因此,外部节点(即,x 2)都被认为是常数。这样,新的名称可以与新的或旧的名称统一,但不可能在旧的名称之间进行统一(两个不同的常数不能统一)。8CCCC哥哥CCCCCCCCCCSSRule(open)允许与环境共享最初有界的节点。另外,rule(open)用于所谓的挤出,允许创建私有共享端口。规则(hide)处理名字的隐藏。3.3.1例如在这个例子中,一个环形架构风格的实例开始于一个环形构造,在其演化的某个点上被侦察到一个恒星。图2a显示了语法。最初的图与生产兄弟一起构造环。生产星重组用于通过创建一个新节点(w)并使用操作r进行同步来将环重组为星新节点分布在组件之间,以将其标识为星的中心需求(x; r; w>);(y; r; w>)以图形方式表示,将(r; w >)施加在右侧的x; y上。图2b显示了一个可能的推导,其中四个分量的环被重构(粗箭头)。由于空间限制,我们省略了id的产生式。图3显示了部分证明,对应于推导的最终步骤,图2b.初始图表:哥哥:联系<我们恒星重新配置:联系我们XC(RG2)XC(x,x)yyX zX联系我们yXx为ohC(x,y)ySX联系我们{(x,r, w>),(y,r,w>)}(w)x,y,wS(w,y)x为ohC(x,y){(x,y,<> x,y,x,> xx哥哥哥zWStarRec.zWr t1>zr t1>(一)y(二)y(三)b)、y(四)yr t1>(五)图二. 星重组{(x,r,t1>),(w,r,t1>)}{(y,r,t2>),(w,r,t2>)}x,y,z,wC(x,w)(一)x,y,z,w,t1S(t1,w)x,y,z,wC(w,y)x,y,z,w,t2S(t2,y)(Com)=x,y,z,wC(x,w)|C(w,y){(x,r,t1>),(y,r,t1>),(w,r,t1>)}x,y,z,w,t1S(t1,y)|S(t1,w)x,y,z,wC(y,z){(y,r,t3>),(z,r,t3>)}x,y,z,w,t3(B)S(t3,z)x,y,z,wC(z,x){(x,r,t4>),(z,r,t4>)}x,y,z,w,t4S(t4,x)(Com)=x,y,z,wC(y,z)|C(z,x){(x,r,t3>),(y,r,t3>),(z,r,t3>)}x,y,z,w,t3S(t3,x)|S(t3,z)(A)(B)(Com)x,y,z,wC(x,w)|C(w,y)|C(y,z)|C(z,x){(x,r,t1>),(y,r,t1>),(w,r,t1>),(z,r,t1>)}x,y,z,w,t1C(t1)SS9=S(t1,x)|S(t1,y)|S(t1,w)|S(t1,z)(4)(五)图三. 图2B中图(4)和图(5)的转移证明10KLL|{nz}4导子上的一致重构在这一节中,我们提出了一个超边替换系统和高阶项的a演算之间的关系的分析。为此,我们定义了一个类型类的结构,用于实现超边替换系统中出现的实体的形式化对于广泛的介绍,我们参考[3]。4.1高阶置换由于篇幅的限制,我们不记得经典的简单类型演算的一般性,并参考[6]以获得对该主题的广泛介绍。特别地,我们考虑y ped-项(或简称项)在!;;,即,指数类型、产品类型和单位的术语。 正如我们下面所展示的,图被描述为微积分的一个术语,其类型由它所表示的图的外部节点和非终结符的数量给出。 由于非终结符定义了用于派生上的产生式应用的接口,在这里,它们对应的项的类型将具有相同的作用,以确保派生的正确构造。此外,产生式和派生式也表示为项。为此,我们必须定义-签名=hB;语言的Ci。 单元式只有一个值(空我们把它写成>。 首先,我们定义一个类型常量的集合B。类型常数:B=f1;g[Tl Tl=STk其中,T1是标签类型的排序集合,其中对于出现在产生式中的每个k超边缘非终结符符号,类型在Tk这些类型需要在具有相同数量的附着节点的非终结边之间进行区分。这个集合将根据每个特定情况而变化。我们将表示11:n = 0。现在我们定义项常数的集合C。 我们在签名中引入了两个操作符。j运算符用于将边放在一起。 运算符用于由产生式和项(n:M)创建的新节点,缩写为n:M。温度常数:C=fj:!;:(1!)!g[Tc[N Tc其中Tc是终端常数的集合,对于出现在产生式中的每个终端边都有一个常数,NTc是非终端常数的集合,对于出现在产生式中的每个非终端符号都有一个常数。Tc中的项的类型是图类型(如第4.2节中所定义的),并且NTc中的项的类型是T1。这些集合将针对每个特定情况而改变公理:p j q=q j pm:n:M=n:m:Mpj(q j r)=(p j q)j r M jn:N= n:M j N;n 62fv(M)11CBBC1C14C1C2个3C1C2C1C1P11C2个1C14.1.1环树语法示例在本文的其余部分,我们将使用一个软件体系结构风格的例子来描述一类分布式系统,这些系统被排列为树(例如WAN),其中它们的节点是组件的环(例如LAN)。不同的环使用桥组件互连图4a示出了初始图和语法生成。我们有三种类型的组件:C是环的通用组件,P是端口组件,指示可以创建新环的点,b是插入环中的外部连接两个这样的b分量形成桥。C和P是非终结符,b和c是终结符,其中c是C类型组件的终结符。ProductionsBrother和Port分别创建一个新的组件或端口,而productionBridge用一个连接现有环和新环的桥来替换规则组件是组件C的终端规则。编号节点表示产生式的外部节点的顺序,非终结边上的编号表示它们在非终结图中的顺序图4b是文法上的部分推导的示例初始图(初始化):兄弟:端口:网桥:组件:2222222 21C1a)、1 1 11哥哥1哥哥港大桥b)、见图4。环树格式在这种情况下,Tl=fC;Pg,Tc=fb:3! ;c:2! g和NTc=fcC:C;cP:Pg.4.2图作为函数图和微积分的某些术语之间的对应关系是去-ned使用一组类型类,其特征在于对应于图的术语图形类型:T g::= T节点!T节点::= 0 j 1j:Nonterminal Edge T types:T ne::= T Tnodes! T T节点::=0T l0j1T l1j::N onterminal Graph类型:T ng::= T nonterm! T gT nonterm::=j T nontermT neT g类是表示为n型二阶项的终端图的类型类!其中n是对应的外部节点的数量,C4C1C3CBB2C3C1C2C2C1C121(n(平BB(m12(n2)(立graph. Tne类是表示非终结边的一阶项的类型类。Tng类是非终结图的类型类。在这种情况下,类型指定的函数接受与非终结符一样多的参数,并返回终结图类型(Tg)的值4.2.1环树图示例以图5中的两个例子为例,我们可以定义相应的术语。 上的终端图图5a可以由项(::m:x C1(n 1; n 2; c C)j b(n 2; m; n 1)j b(n 3; m;n 4)jx C2(n 4; n 3; c C):(2C!)(2C!)!(4!))。对于图5a,我们定义了两个外部节点,对于图5 b,我们定义了四个外部节点。其余的节点是使用操作符创建的。图中带括号的节点标签只是为了与术语进行对应,但并不需要。1 3C c2 4a)b)、图五、终结图和非终结图的示例4.3作为函数的在这一节中,我们定义了产生式和导子与项的对应关系。我们首先介绍使用的环境中的演算表示的概念,图重写系统。然后,一组类型类被定义为对应于产生式和派生式的类型项。的环境是一组变量定义,为每个变量Vari是对应项ti:i(即,= [ti= Var1;::tn= Varn])。 这允许在环境中包含变量,变量的类型与其解释的类型相同。 在项M上的应用M是一个替换,其中M的每个自由变量被它在中的定义所替换。现在,我们定义类型类需要类型的生产和派生。生产类型:T p::= T nonterm! T ne类Tp定义了表示为高阶项的产生式的类型。应该注意到,在通常的图形表示中,要替换的超边的符号在左侧,而替换图形在右侧。这种表示在函数类型中是颠倒的。作为一个例子,我们用图4a中的产生式和初始图的项定义了环树的环境。1CBB2C13defdefM:;N:不!M:;N:!哥哥def=< x C1; x C2>::m:x C1(m; n 2; c C)j x C2(n 1; m; c C):(2C!)(二)C!)!(二)C!)的方式波特=< x C; x P>::m:x C(m; n 2; c C)j x P(n 1; m; c P):(2)C!)(二)P!)!(二)C!)的方式def桥=::m1:m2:m3:b(n 1; m 1; n 2)j b(m 2; m 1; m 3)j x C(m 3; m 2; c C):(2C!)!(二)P!)的方式组件=<>::c(n 1; n 2) : !(二)C!)defInit = < x C>: :x C(n; n; c C):(2 C!)!(1!)的方式在导子的情况下,我们有从系统的初始图开始并结束于终端图的导子,以及从系统的初始图开始并结束于非终端图的偏导子。因此,导出类型是图类型Tg,部分导出类型是非终结图类型Tng。则通过定义,导子(偏导子)是形式为G0)p1G1)p2:)pnGn的乘积的应用序列,其中p1; :;pn在P中,Gn是终结(非终结)图.在函数设置中,每个推导步骤Gi)pi+1Gi+1可以被看作是在出现在Gi上的非终结符号Li+1上应用产生式pi +1的并行组合,其中具有用于Gi中的其余非终结边的恒等式集合。 然后,表示派生的相应项可以被描述为并行组成的产品名称(从初始图开始)和标识的函数组成序列。在封闭项id、(M_ N)和(M_N)上的恒等式和顺序与并行复合的运算被定义为:恒等式并行组合顺序组合MN=:::()!()M<$N=x::M(Nx):!Æ例如,图4b的偏导项是(1)InitBrother(id2C! Bro r)(Prtid2C! ID2C! )(id2C!Bridgeid2C! ID2C!)的方式:((2C!)(二)C!)(二)C!)(二)C!)!(1!)的情况)4.4衍生转换一旦派生被表示为项,所需要的是重写系统的概念,其确保派生被重写为派生。因此,特定架构风格的实例将被重写为相同风格的实例我们通过将文法的派生段L变换为派生段R的形式的重写规则来实现这一点很容易看出,图导出的普通概念,即。一系列的图表和产品,不能达ID= x: :x:!14到这一目的。 事实上,15BB2C11C1BBC1C12C1C1C1CCC1段被两个图限制(我们也可以说:是用两个图类型化的),并且可以合理地仅用用相同的两个图类型化的段来替换,从而最终产生相同的结果。通过前面介绍的派生概念,我们为派生段配备了一个不太严格的类型概念。在我们的运行示例中,我们有一个由四个步骤组成的推导(公式1),其中步骤的合成是通过二阶函数合成运算符实现的。如果第一个函数值域的(函数)类型与第二个函数定义域的类型相同,则组合是可能的,这清楚地表达了在推导的那个阶段仍然要扩展4.4.1转换示例例如,我们可能需要对环树样式进行转换,指定一个重新配置,该重新配置允许将树的任何环分成两个较小的环,以获得样式的新一致实例。转换由以下重写规则指定Br 其 他)的方式Port ( id2C ! Bridge ) : ( ( 2C! )(2C! )!(1C!)的情况)换句话说,它用P组件的创建以及其演变成桥和新C组件来代替新C组件的创建注意,用一个派生段替换另一个派生段,派生的其余部分保持不变,在本例中是两个C非终结符的演化图6以图形形式示出了变换的初始和最终导出段以及应用于图4b上的导出的变换。注意,上述类型的变换可以依次应用以构建更复杂的对象,并且它们也可以同时应用于派生的非重叠段。初始段:22最终环节:22转型应用:221222哥哥端口(id2 xC)2*桥 )见图6。的变换5结论与未来工作本文综述了我们在软件体系结构风格的规范及其重构方面所做的工作。我们提出了两种方法。第一种方法采用同步替换,为图形移动演算提供了坚实的基础,非常适合于分布式和并发系统的高层描述。2111CBBBB2C3C4C2111CBB3C4C2C1C1C16第二种方法允许指定的一致recon gurations的推导给出了一个明确的表示结构作为高阶项,表明它可以有一个有效的实施,也允许定义一个更有表现力的概念推导,这是必要的,以获得一个有用的概念一致的转换。作为未来的工作,我们计划研究这两种方法的关系和组合,以及基于中间(可能)不一致步骤的一致变换的规范。引用[1] Garlan,D. Shaw,M.:软件架构:一个新兴学科的观点。普伦蒂斯·霍尔一九九六年。[2] Hirsch,D.,Inverardi,P.,蒙塔纳里大学:用图文法和约束求解建模软件体系结构在第一次IFIP软件架构会议的会议记录中,德克萨斯州圣安东尼奥,1999年2月22日至24日[3] Hirsch,D.,蒙塔纳里大学:高阶超边缘替换系统及其转换:软件架构重构。图变换系统研讨会论文集(GRATRA 2000),ETAPS 2000。TR ofCSDepartment/TUBerlin , No.2000-2002 年 , pp.215 -223 ,2000。[4] Hirsch,D.,蒙塔纳里大学:同步超边替换与名称移动性:移动系统的图形演算。CONCUR 2001,LNCS,待出版,2001年。[5] Le M etayer,D.使用图文法描述软件架构风格。IEEE软件工程汇刊。第24卷,第7期,1998年7月。[6] Mitchell,J.:《编程语言基础》。 MIT Press,1996.[7] 米尔纳,R.:通信和移动系统:微积分。剑桥大学出版社,1999年。[8] 罗森伯格,G.,编者:《图形语法和图形变换计算手册:基础》,第一卷。World Scienti c,1997.[9] Taentzer,G.,Goedicke,M.,Meyer,T.:通过分布式图转换的动态变更管理:面向可配置分布式系统。Proc. 第六届国际图变换理论与应用研讨会,1998年[10] Wermelinger,M.,Fiadeiro,J.:代数学软件构架Recon guration.软件工程 -ESEC/FSE'99 , LNCS 第 1687 卷 , Springer-Verlag , pp. 393-409 ,1999年。
下载后可阅读完整内容,剩余1页未读,立即下载
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![.pdf](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)