当前位置: 首页 > 专利查询>夏寿民专利>正文

一种基于动态系统实现复合断言计算的方法技术方案

技术编号:8271244 阅读:122 留言:0更新日期:2013-01-31 03:24
本发明专利技术是一种基于动态系统实现复合断言计算的方法。本发明专利技术所述的方法将有效地支持将任意复合断言转换为动态系统,并进一步实现其计算求值。这些断言包括单个简单断言、多个简单断言的顺序多个复合断言的顺序组合、多个简单断言的并行组合、多个复合断言的并行组合、以及上述多个断言的顺序和并行混合组合。本发明专利技术与现有的复合断言实现方法相比,具有表达方式更通用、高效率并行化求值、以及使用更简单更简洁的特点。

【技术实现步骤摘要】
本专利技术是有关于图形表达法或者图形语言的设计,用来描述断言、布尔表达式、条件表达式、流程控制、活动、业务流程、系统行为以及如何借助软件工具来进行系统行为的实施。
技术介绍
由于基于文本的电脑语言具有连贯顺序的特性,而对一个有很多并行活动的复杂行为,比如业务流程,用文本型语言就不太容易来描述。半个世纪以来,流程图已被用于克服文本型语言的这个弱点。但是,流程图有它自己的局限性。近年来,许多新的电脑图形语言被设计出来用以克服其中的一些限制,比如Business Process ModelingNotation (BPMN)、United Modeling Language (UML)活动图(Activity Diagram)和动态系统图(Dynamic Systems Chart, DSC)。虽然相对于流程图有很多改进,但这些新的图形语言仍有一个和流程图同样的弱点,就是在描述复杂判断或者条件时,仍然是使用了基于文本型的表达式。在流程图中,决策点(decision point) —般是用菱形来表示的。在菱形的内部,布尔表达式则是用文本描述的。一个决策点可以有两个或者更多向外的箭头,而每个箭头则指向下一个步骤。例如,一个菱形有两个箭头。菱形里面的布尔表达式可以定义为“X和Y”,一个箭头可能被标注为“真”,另一个箭头可能被标注为“假”。这个决策点所描述的是,如果X和Y都为真,为“真”的箭头将会继续。否则,为“假”的箭头将会继续。在BPMN中,有多种形式的“Gateway”用来描述一个决策点。一个“ConditionExpression属性可以用来定义一个Gateway或者其向外的箭头(在BPMN中叫做“sequence flow”)。而这个 ConditionExpression 属性通常是用 XML Path Language(XPath)的基于文本的表达式来定义的。在UML活动图(Activity Diagram)中,一个决策节点(node)可以有多个向外的直线(edge),其中每条直线有一个guard条件定义了什么情况下该直线将被选择。UML活动图中的join节点也可以有一个join条件的定义,该join条件的定义描述了在什么情况下会沿着其单一的输出直线继续。在这两种情况下,这些条件都是由基于文本的布尔表达式来定义的。DSC是一种以动态系统(Dynamic System, DS)为单元来描述行为的图形语言。在DSC中,有两个地方需要制订决策。一个是在和迁移箭头相关联的迁移条件中,另一个是在和结束点相关联的结束条件中。迁移条件和结束条件都可以定义为布尔表达式。当描述一个简单条件时,基于文本的布尔表达式就可以做的很好,比如“X和Y”。但是,当描述一个需要使用“和”或“或”的逻辑操作符来连接多个简单表达式的复杂条件时,由于下面一些原因,一个基于文本的布尔表达式就不是很理想了。首先,基于文本的行为描述、复杂布尔表达式可能是违反直觉的,因为运算的顺序依赖于一些隐含的优先法则。比如“A| B&&C ID&&E”是一个C/C++/Java表达式,其中,I I代表“或”的逻辑符,而&&代表“和”的逻辑符。在这些编程语言中,有一些隐含的优先法则,比如&&比I I有更高的优先级。因此,“Al B&&C |D&&E”实际上意味着“Al I (B&&C) I I (D&&E)”,而不是一些人可能期望的 “((A| B)&&C |D)&&E”。第二,基于文本的布尔表达式在同一时间只能有两个操作数,所以不能同时操作多个操作数。如果许多操作数需要被同时检验,就需要重复定义一些逻辑操作符,比如AND和0R。例如如果我们想要描述一个条件“A,B,C,D,和E全都为真”,那么表达式必须定义 为“A&&B&&C&&D&&E”。而理想情况下,应当不需要重复地定义这些逻辑操作符。另外,因为同一时间只有两个操作数被运算,重复应用这些操作符无意中可能产生一些不必要的副作用。第三,当有多个操作数时,基于文本的布尔表达式通常不能描述若这些操作数中有任何两个为真,该条件即满足。它也不能描述若这些操作数中至少或者至多有两个为真,该条件即满足。如果一个决策是基于有多少个为真的操作数,那么又如何来定义呢? 一个布尔表达式是没有一个机制来简单地处理这些情况的。但是,这些都是可能需要在电脑系统中被描述的现实世界的条件。第四,一个布尔表达式通常只被运算为两个不同的结果,叫做是(真)或者否(伪)。但用来定义需要同时选择多个选项的一个决策,这就不合适了。为了要定义一个决策的多个选项,这些多个选项中的每个都要定义一个布尔表达式,使得当相关联的布尔表达式被测试为真时,这些选项中的一个就会被选择。在BPMN中,可以通过为一个Gateway的每个向外的sequence flow定义一个布尔表达式来做到这点。如果该条件比较简单,这个方法是可行的。但是,对于比较复杂的条件,写多个长的布尔表达式会显得冗长。比如,下面是可能需要定义布尔表达式的部分列表I)如果年龄小于5岁,宗教信仰为X,国籍为A ;2)如果年龄小于5岁,宗教信仰为Y,国籍为A ;3)如果年龄大于20岁,宗教信仰为X,国籍为B ;4)如果年龄大于20岁,宗教信仰为X,国籍为C等等。最坏的情况下,需要定义Ν*Μ*0个布尔表达式,其中N是年龄范围,M是宗教种类数目,O是国家种类数目。更坏的情况下,为了找到一个为真的条件,年龄、宗教、国籍可能会被重复测试Ν*Μ*0次。因此,有必要对复杂条件有更加结构化的描述。第五,复杂的决策逻辑和条件不能像其他行为的定义一样用图形来显示。因为决策逻辑是任何复杂行为的基础部分,如果仍然保持复杂决策逻辑为文本的形式,则不能达到将一个计算机系统行为彻底地图形化。需要解决的问题是如何将复杂的决策和条件也能以图形语言来描述,并克服了上面谈到的所有基于文本的布尔表达式的不足。本专利技术就提供了这样一个解决方案。
技术实现思路
本专利技术描述了 如何使用复合断言和图形用户界面(GUI)来定义作为计算机系统行为的一部分的复杂决策或者条件。此外,可以对复合断言的GUI广义化,使得计算机系统的整个行为都可以用一致的方式图形化地加以描述。本专利技术的一个目的是在应用系统中通过图形表现来定义复杂决策和复杂条件,从而能够更加方便地理解系统中的决策是如何做出来的。另一个目标是改进如何对可能有多个参数和多个结果的复杂决策或者条件进行定义。为了达到这些目标,本专利技术中提供了如何定义复合断言的系统和如何图形化地展示这些复合断言。 本专利技术使用复合断言来描述复杂决策或者条件。复合断言有如下组件1)子断言;2)迁移;3)终点;4)结束点。并且描述了处理或者执行一个复合断言的过程。本专利技术也描述了如何使用一种图形语言将复合断言用图形展现出来,包括动态系统图(DSC),BPMN和UML活动图。为了描述计算机系统更多的常见行为,复合断言的复合结构被广义化为复合动态系统(以下简称为复合DS)。一个复合DS有如下组件1)子动态系统(子DS本文档来自技高网
...

【技术保护点】
一种将软件中做决策时来检验一个条件集是否为真的断言转换为动态系统并计算的方法,包括步骤如下:第1、将所述断言转化为对应的动态系统;第2、将步骤1中所述断言作为一个当前断言;第3、若所述当前断言为简单断言,直接计算所述简单断言以得到所述当前断言的结果,所述当前断言的计算即结束;第4、所述当前断言为复合断言,其所对应的所述动态系统中包括第一多个并行序列,而每个序列包括对应的顺序子断言,则遍历所述第一多个并行序列并将所述第一多个并行序列中的每个序列分别作为当前序列以执行如下子步骤:第4.1、在步骤4中的遍历操作中,若存在下一个序列,则执行第4.2步骤;若不存在下一个序列,则所述当前断言的结果为假值,所述当前断言的计算即结束;第4.2、将步骤4.1中的所述下一个序列作为当前序列;第4.3、将当前序列中第一个子断言作为当前子断言,并执行如下子步骤:第4.3.1、以当前子断言作为一个当前断言,递归执行步骤3以获得所述当前子断言的结果;第4.3.2、获取当前子断言的第一个迁移,作为当前迁移;第4.3.3、计算所述当前迁移的迁移条件值;第4.3.4、若所述迁移条件值为假,则执行步骤4.3.7;否则执行接下来步骤;第4.3.5、将当前迁移的目标所指的子断言设定为当前子断言,判断所述当前子断言是否为终点;第4.3.6、若所述当前子断言是终点,则终点值就是所述当前序列的结果,执行步骤5;否则执行4.3.1步骤;第4.3.7、获取所述当前子断言的下一个迁移,若存在下一个迁移,则将下一个迁移作为当前迁移,并执行步骤4.3.3;否则执行接下来步骤;第4.3.8、所述当前序列的结果为假值,执行下面步骤5;第5、检查步骤4中所述复合断言的每个结束条件,若有结束条件为真,则所对应的结束点的结束值就是所述当前断言的结果,所述当前断言的计算即结束;否则执行步骤4.1。...

【技术特征摘要】
2007.09.11 US 60/993,2581.一种将软件中做决策时来检验一个条件集是否为真的断言转换为动态系统并计算的方法,包括步骤如下 第I、将所述断言转化为对应的动态系统; 第2、将步骤I中所述断言作为一个当前断言; 第3、若所述当前断言为简单断言,直接计算所述简单断言以得到所述当前断言的结果,所述当前断言的计算即结束; 第4、所述当前断言为复合断言,其所对应的所述动态系统中包括第一多个并行序列,而每个序列包括对应的顺序子断言,则遍历所述第一多个并行序列并将所述第一多个并行序列中的每个序列分别作为当前序列以执行如下子步骤 第4. I、在步骤4中的遍历操作中,若存在下一个序列,则执行第4. 2步骤;若不存在下一个序列,则所述当前断言的结果为假值,所述当前断言的计算即结束; 第4. 2、将步骤4. I中的所述下一个序列作为当前序列; 第4. 3、将当前序列中第一个子断言作为当前子断言,并执行如下子步骤 第4. 3. I、以当前子断言作为一个当前断言,递归执行步骤3以获得所述当前子断言的结果; 第4. 3. 2、获取当前子断言的第一个迁移,作为当前迁移; 第4. 3. 3、计算所述当前迁移的迁移条件值; 第4. 3. 4、若所述迁移条件值为假,则执行步骤4. 3. 7 ;否则执行接下来步骤; 第4. 3. 5、将当前迁移的目标所指的子断言设定为当前子断言,判断所述当前子断言是否为终点; 第4. 3. 6、若所述当前子断言是终点,则终点值就是所述当前序列的结果,执行步骤5 ;否则执行4. 3. I步骤; 第4. 3. 7、获取所述当前子断言的下一个迁移,若存在下一个迁移,则将下一个迁移作为当前迁移,并执行步骤4. 3. 3 ;否则执行接下来步骤; 第4. 3. 8、所述当前序列的结果为假值,执行下面步骤5; 第5、检查步骤4中所述复合断言的每个结束条件,若有结束条件为真,则所对应的结束点的结束值就...

【专利技术属性】
技术研发人员:夏寿民
申请(专利权)人:夏寿民
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1