一种基于信息隐藏的图转换系统模型检测方法

文档序号:9667128阅读:390来源:国知局
一种基于信息隐藏的图转换系统模型检测方法
【技术领域】
[0001] 本发明属于计算机软件工程开发领域,特别涉及一种基于信息隐藏的图转换系统 模型检测方法。
【背景技术】
[0002] 模型检测技术是一种验证有限状态系统是否满足规约的形式化方法,主要针对标 记转换系统(LabeledTransitionSystem,LTS),其目的是将给定的系统和系统属性分别 用有穷状态模型描述出来,然后采用模型检测器来判断系统模型是否满足原先的系统属 性。模型检测技术的一般流程是对待检验的系统进行建模,然后使用一种形式化的语言如 时序逻辑表达式来描述系统属性,最后使用相应的模型检测分析技术来判断此系统模型是 否满足系统属性。由此我们可以看出模型检测技术一般分为三个部分:描述系统的建模语 言,描述系统属性的说明性语言和一项验证系统满足正确性需求的分析技术。模型检测工 具在检测算法的支持下会自动执行,当系统不满足待测性质时将提供反例路径。研究反例 路径可以得到性质不成立的原因,因此能为模型的修正提供依据。但是当软件系统的并发 分量较多时,模型检测工具通常无法直接对所有的状态空间进行搜索,这就是所谓的状态 爆炸问题。由于软件系统通常涉及无穷域上的运算,状态爆炸问题是模型检测应用于软件 系统上的一个难题。
[0003] GROOVE是我们在本案中所用到的图转换系统验证工具,它的设计旨在用简单的图 来模拟面向对象系统在设计阶段、编译阶段及运行阶段的结构,并用图转换作为模型转换 的操作语义的基础。该工具通过自动分析生成的图转换系统,能够验证模型转换是否满足 属性约束验证。
[0004] 在软件工程领域,图转换系统是支持软件开发的有力工具。大多数的软件构建 可以建模为适当的带注释的图,这些构件的动态演化可以被看作不同状态的图与图之间 的转换。在本案中用到的GROOVE是一种验证图转换系统的模型检测器。在GROOVE中, 图(Graph)表示为一组节点和边。节点可以有类别,属性。边带有方向和名称。图文法 (GraphGrammar)是图文转换规则,主图,类型图还有属性约束的集合。图转换规则(Graph TransformationRule)是一个指定主图应该如何被转换的图。一个图文转换规则首先寻 找主图的一个特定的子图,如果找到了这个子图,那么规则就匹配了,然后在应用这个规则 时会添加或删除子图里的元素。类型图(Typegraph)是指定系统中图允许的结构,和节 点类型分层结构。实例图(InstanceGraph)是指的一个类型图的实际例子。主图(Host graph)指的是正在被应用图文转换规则的图,它是一个实例图。一个图转换规则实际上是 一个四元组0^,1?批,嫩(^(:},其中,1^,1?批,嫩(:都是图,而4(:是一个谓词。1^,顾名 思义就是指应用规则的左部(LeftHandSide),它代表了一个拓扑关系上的肯定应用条 件,它描述了必须出现在即将应用规则的主图上的子图。规则右部RHS(RightHandSide) 描述了如果满足应用条件,图是怎样被规则修改的,即图修改之后的样子。NAC(NegatiVe ApplicationCondition)是拓扑关系上的一个否定应用条件,它不能出现在应用规则的主 图之上。AC(ApplicationCondition)是一个谓词,它以LHS的属性为基础,指明要应用规 则时必须满足的那些条件。
[0005] 对于复杂的系统而言,分层结构是一种合理的表示。在系统的不同组件之间可以 定义他们的从属关系。除了这种从属关系,组件之间也可以是水平相关的,它们相关但没有 从属关系,所以是同一层次。而图可以恰当地对层次结构进行建模。在层次结构中的一个 层次中,只显露出与低层次之间部分信息的交互接口而隐藏其他层次的部分细节对软件的 模型验证很有帮助,这就是信息隐藏的思想。
[0006] 之前人们都把工作集中在如何用图文转换系统模拟和分析软件系统,而对带层次 的软件系统关注较少,也没有考虑信息隐藏的问题。

【发明内容】

[0007] 本发明的目的,在于提供一种基于信息隐藏的图转换系统模型检测方法,其利用 层次结构和信息隐藏的概念,来减少验证过程中的状态数目,以缓解状态空间爆炸问题;利 用假设-保证技术处理层次结构,解决了之前的验证方法无法验证带层次结构的图转换系 统的问题。
[0008] 为了达成上述目的,本发明的解决方案是:
[0009] -种基于信息隐藏的图转换系统模型检测方法,包括如下步骤:
[0010] (1)根据系统需求与系统的特点,利用信息隐藏的原理将系统分为两层,将可见部 分定义为第一层,将内部部分定义为第二层;
[0011] (2)根据步骤(1)中的分层情况,构建系统的全局类型图,标记出其中的所有节 点,并用不同颜色的背景将所有节点区分为可见部分和内部部分;每个节点都有一个包含 了层次结构的可见部分,其描述了与分层结构中当前层次相关的节点的接口;还有一个内 部部分,其描述了较低抽象层次中节点的详细结构;
[0012] (3)根据系统的实际需求,定义一组规则来描述系统的行为,通过这些规则展现整 个系统是如何演化的;
[0013] (4)用假设-保证技术验证图转换系统。
[0014] 上述步骤(1)应用于任务调度系统中,将任务调度系统分为两层:任务提出请求, 且获得系统分配的资源是第一层的分层结构,第二层结构是系统在接受多个请求之后,使 用何种策略对资源进行分配,以及具体是如何进行的。
[0015] 上述步骤(2)应用于任务调度系统中,根据分层构建系统的全局类型图,在最高 的抽象层次,只有三种交互层次的节点,即任务节点Task,调度节点Schedule和资源节点 Resource,其中Schedule用于分配资源;Schedule的可见部分只存在一个资源请求节点 ResReq,代表在接受请求之后生成一个ResReq。
[0016] 上述步骤(1)中,第一层和第二层的图文法均通过图转换验证工具GROOVE创建。
[0017] 上述步骤(4)的具体内容是:
[0018] (41)提出待验证的属性,并将其用线性逻辑公式表示;
[0019] (42)分析待验证的属性涉及的层次结构,第二层中会依赖于一个新的属性;
[0020] (43)对步骤(42)中新的属性进行必要的假设,并把它作为待验证属性的一种必 要保证,然后直接验证第一层;
[0021] (44)把步骤(43)中假设的新的属性,在它所在的层次中分别验证。
[0022] 采用上述方案后,本发明通过利用分层结构和信息隐藏的概念,描述系统的建模 语言,然后利用线性逻辑公式描述系统属性的说明性语言,最终通过假设-保证技术验证 系统的正确性,从而减少了验证过程中的状态数目,缓解了状态空间爆炸问题。
【附图说明】
[0023] 图1是本发明的流程图;
[0024] 图2是任务调度系统的全局类型图;
[0025] 图3(a)-(i)是为描述系统定义的规则;
[0026] 图4是待验证的属性的实例匹配图;
[0027] 图5是待验证的属性在第二层中所依赖的属性。
[0028] 图6至图9是传统方法与本发明的对比图。
【具体实施方式】
[0029] 本发明提供一种基于信息隐藏的图转换系统模型检测方法,配合图1所示,以下 将以任务调度系统为例,对本发明的技术方案进行详细说明。
[0030] (1)根据系统需求与系统的特点,利用信息隐藏的原理将系统分为两层。将可见部 分定义为第一层,将内部部分定义为第二层,这两层的图文法都可以通过GROOVE创建。
[0031] 在本实施例中,由于任务调度系统最主要的需求就是当很多个任务要求分配资源 时,这个系统可以有序地为发出请求的任务分配资源,同时,我们认为,在任务提出请求之 后,系统具体如何为任务分配资源,任务是不需要知道的,它只需要知道系统具体给它分配 了哪一个资源。根据这个特点,我们将任务调度系统分为两层:任务提出请求,且获得系统 分配的资源就是第一层的分层结构,第二层结构就是系统在接受多个请求之后,使用何种 策略对资源进行分配,与具体是如何进行的。
[0032] (2)根据步骤(1)中的分层情况,构建系统的全局类型图,标记出其中的所有节 点,并用不同颜色的背景将所有节点区分为可见部分和内部部分,在本实施例中,使用白色 背景代表可见部分,灰色背景代表内部部分。每个节点都有一个包含了层次结构的可见部 分,其描述了与分层结构中当前层次相关的节点的接口;还有一个内部部分,其描述了较低 抽象层次中节点的详细结构。
[0033] 在本实施例中,根据前面的分层构建系统的全局类型图,如图2,在最高的抽象层 次,只有三种交互层次的节点,即Task(任务节点),Schedule(调度节点)和Resource(资 源节点),而Schedule可以为其分配资源。在图2中,Schedule的可见部分只存在了一个 ResReq(资源请求节点),代表在接受请求之后生成一个"ResReq"。在
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1