利用支持体系结构动态变化的图文法验证体系结构的方法

文档序号:8472771阅读:458来源:国知局
利用支持体系结构动态变化的图文法验证体系结构的方法
【技术领域】
[0001] 本发明属于软件体系结构领域,具体涉及利用支持体系结构动态变化的图文法验 证体系结构的方法,尤其涉及图文法理论、软件体系结构动态演化理论。
【背景技术】
[0002] 在图形化技术中,LeM6tayer使用了图文法来形式化的定义软件体系结构,将图 中的节点映射成体系结构中的构件/连接子,边映射成构件间的交互关系,此外,他还采用 了类似通信顺序进程的标注来对支持体系结构风格和实例的定义。Hirsch等人则采用超 图的方式来定义软件体系结构,他们利用图重写规则来表达体系结构的动态演化过程。Le M6tayer和Hirsch的方法都不支持对软件体系结构模型中,接口的规约。Rekers和Schilrr 则基于对象之间的空间关系,提出了一种上下文敏感的图文法Layered图文法,它允许左 图和右图中含有任意节点的节点和边,并给出了一种高效的图解析算法。虽然layered图 文法作为一种形式化的图语言比较容易理解,但是其语法的解析较为复杂并且实现的效率 较低。Zhang等人在此基础上,提出了另一个上下敏感的图文法Reserved图文法。Reserved 图文法使用标记图的方式来改进算法的实现效率并降低了图解析的复杂度,同时结合UML 来定义、验证及转换软件系统,但未说明如何来实现软件体系结构的刻画。柏林工业大学的 图文法研宄小组也开发了一个基于规则的可视化语言Attributed图文法,用来规约复杂 的图形化数据结构。一些自适应系统也是使用了Attributed图文法实现了系统自动分析 和验证,并且可对系统的类型和约束进行建模。然而,Attributed图文法的开发和设计并 不是针对软件体系结构的设计和规约。

【发明内容】

[0003] 本发明的目的在于对通用图文法进行扩展,引入接口、接口标签集、状态及附加属 性的信息,从而能够高层抽象软件系统的组成结构、连接方式以及系统结构配置及属性等 要素,完整地支持软件体系结构的建模、分析和动态演化。同时,通过给出Breeze图文法中 的产生式规则,能够描述软件体系结构的动态重配置(增、删操作),满足开放的网络环境 和变化的用户需求。此外,通过Breeze图文法在对软件体系结构进行规约的同时还可以捕 获在软件开发初期和后期演化过程中动态变换,基于Breeze图文法的形式化基础,通过推 导验证,保证演化后的一致性和完整性。
[0004] 根据本发明提供的一种利用支持体系结构动态变化的图文法验证体系结构的方 法,包括如下步骤:
[0005] 步骤1,定义Breeze图文法
[0006] 将&'eeze图文法定义为六元组(G,P,TL,NL,TA,NA),其中:
[0007]-G表不Breeze图;
[0008] -P表示可应用于G的产生式规则集;
[0009] -TL表示终端标签集;
[0010] -NL表示非终端标签集;
[0011] -TA表示终端属性集;
[0012] -NA表示非终端属性集;
[0013] Breeze图G定义为一个七元组(N,E,1N, 1E, s, t,aN),其中:
[0014] -Breeze图G七元组中的N记为N(G),N(G)是一个有限的节点集;
[0015] -Breeze图G七元组中的E记为E(G),E (G)是一个有限的边集;E (G)定义为{(n. CNi,m.CNj)GN.CNXN.CN},n,mGN并且i,jGI;其中,n表示复合节点n,m表示复合节 点m,CNi表示子节点i,CN」表示子节点j,n.CN丨表示复合节点n上的接口子节点CNpm.CNj 表示复合节点m上的接口子节点C%,N表示通用节点集,CN表示接口子节点集,N.CN表示 节点集中的接口集,下标i表示节点索引号,即第i个节点,下标j表示表示节点索引号,BP 第j个节点;I表示索引集;
[0016]-Breeze图G七元组中的]^记为IN(G),In(G)是给定的节点标签函数,表示在 Breeze图G中,将通用节点集N与节点标签集关联;其中,Breeze图G中的1^记为 Ln(G),Ln(G)定义为KUj)GTXS},i,jGI;其中,凡表示节点类型集T中的第i种节 点类型,Sj表示节点状态集S中的第j个状态类型;T定义为{component,connector,X}, component表示构件,connector表示连接子,X表示节点初始化时的类型;S定义为 {Waiting,Active,TemporaryFailure,FatalFailure},Waiting表不构件或连接子创建 后的初始状态,Active表示构件或连接子正常工作状态,TemporaryFailure表示构件或连 接子临时失效状态,FatalFailure表示构件或连接子致命失效状态;
[0017]-Breeze图G七元组中的Ie记为IE(G),Ie(G)是给定的边标签函数,表示在Breeze 图G中,将通用边集E与边标签集1^相关联;
[0018] -Breeze图G七元组中的aN记为aN (G),aN (G)是节点属性标记函数,表示在Breeze 图G中,将通用边集E与构件或连接子属性集ANffi关联;
[0019]-Breeze图G七元组中的s, t记为s(G), t (G),s(G), t (G)是函数,表示在Breeze 图G中,将每条边与该边对应的源节点和目标节点的接口相关联;
[0020]I(G): =1CN (n) U In(G) U Ie(G)代表Breeze图G中所有接口、节点和边的标签 集;
[0021] 产生式规则集P由左手边规则图LHS、右手边规则图RHS构成;LHS与RHS拥有一 个公共子图CG,其中,公共子图CG需满足如下条件:
[0022] -任何一个属于CG的节点也一定属于LHS和RHS;
[0023]-任何一个属于CG的边也一定属于LHS和RHS;
[0024] -CG的标签集是LHS的标签集和RHS的标签集的公共部分;
[0025] -CG的属性集是LHS的属性集和RHS的属性集的公共部分;
[0026] 对于产生式规则集P中的任意一个产生式规则实例p,定义为一个二元组(L,R), 其中:
[0027] -L表示左手边规则;
[0028] -R表示右手边规则;
[0029]R是一个非空的连通图,L和R都是基于相同的标签集Le和属性集Ae,Le由TL和 NL构成,Ae由TL和NL构成;
[0030] Breeze图文法中的节点为复合节点,即将接口作为子节点引入到构件节点中;
[0031]复合节点定义为一个四元组(pn,CN, 1CN,aCN),其中:
[0032]-复合节点四元组中的pn是一个父节点,即构件或连接子的主体部分;
[0033] _复合节点四元组中的CN是一个子节点集,即构件或连接子的接口;
[0034]-复合节点四元组中的Icm是作用在子节点上的标记函数,表示将复合节点上的子 节点集CN与标签集Lcn相关联,其中,L^定义为{IVGT'},iGI;Ti'表示第i个复合节 点的接口类型,接口类型集T'定义为{1,0, 1/0,X},其中,1、0、I/O分别代表接口是服务请 求者、服务提供者、服务请求/提供者,X表示处于初始化期间的接口还未指派接口类型;
[0035] _复合节点四元组中的aCN是作用在子节点上的接口属性标签函数,表示将复合 节点上的子节点集CN与接口属性集A。#关联;其中,Acm是构件或连接子的接口属性集;
[0036] 步骤2,定义Breeze图文法重配置操作;
[0037] 步骤3,利用Breeze图文法推导验软件证体系结构的一致性或完整性。
[0038] 优选地,所述步骤2包括:重配置添加构件和连接子,具体为:
[0039] 假定当前Breeze图为CS,CS中含有构件类型为S的构件s,若需要引入与构件s 通讯且构件类型为C的构件c,则令该构件c通过其接口Req发送请求,同时引入连接子类 型为CON的连接子con,该连接子con通过其接口Res接收来自构件c的请求,构件s通过 其接口Res接收来自连接子con的接口Req发来的请求。
[0040] 优选地,所述步骤2包括:删除构件和连接子,具体为:
[0041] 假定当前Breeze图为CS,需要删除与构件类型为S的构件s相连接的构件类型为 C的构件c,则删除构件c,同时移除负责构件s与构件c之间通讯的连接子类型为CON的连 接子con〇
[0042] 优选地,所述步骤3包括步骤:
[0043] 利用Breeze图文法推导验证体系结构的一致性,包括:
[0044] 假设通过重配置添加操作给体系结构SA增加了一个新的构件Coms,并通过连接子 Connz进行交互,K、T分别是构件Com3和连接子Conn2对外隐藏的操作,则一致性保障验证 条件为如下
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1