CN110175019B - 一种基于中断序列图的中断驱动系统验证方法 - Google Patents
一种基于中断序列图的中断驱动系统验证方法 Download PDFInfo
- Publication number
- CN110175019B CN110175019B CN201910480184.9A CN201910480184A CN110175019B CN 110175019 B CN110175019 B CN 110175019B CN 201910480184 A CN201910480184 A CN 201910480184A CN 110175019 B CN110175019 B CN 110175019B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- automaton
- sequence diagram
- state
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010586 diagram Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012795 verification Methods 0.000 title claims abstract description 41
- 230000003993 interaction Effects 0.000 claims abstract description 62
- 230000002452 interceptive effect Effects 0.000 claims abstract description 45
- 239000002131 composite material Substances 0.000 claims abstract description 11
- 230000007704 transition Effects 0.000 claims description 27
- 238000013508 migration Methods 0.000 claims description 20
- 230000005012 migration Effects 0.000 claims description 19
- 239000012634 fragment Substances 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 206010048669 Terminal state Diseases 0.000 claims description 2
- 238000004891 communication Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 claims description 2
- 239000002243 precursor Substances 0.000 claims 2
- 238000010200 validation analysis Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于中断序列图的中断驱动系统验证方法,包括如下步骤,步骤1:基于中断序列图来建立中断驱动系统模型;步骤2:根据步骤1得到的中断序列图,将其中的交互片段划分为基本交互和复合交互片段;步骤3:将基本交互片段和复合交互片段依次转换成自动机;步骤4:将步骤3中得到的多个自动机组合成一个混成自动机;步骤5:提取中断序列图的约束,将约束添加到转换得到的自动机模型上;步骤6:提取中断序列图中的验证属性信息,将验证属性作为约束添加到转换得到的自动机模型上;步骤7:将自动机描述成自动机验证工具可接受的输入格式;步骤8:采用自动机验证工具进行验证。
Description
技术领域
本发明属于软件工程,系统设计验证领域。本发明涉及一种基于中断序列图的中断驱动系统验证方法。中断驱动系统设计人员可以采用该方法简单直观地描述中断驱动系统并进行验证。
背景技术
随着计算机技术的高速发展,计算机系统已经进入到我们生活的方方面面,轨道交通系统、金融系统、医疗系统等都已经高度计算机化。而中断驱动系统已经被广泛应用于软硬件资源相对受限的中断驱动系统中,如航空航天、工业过程控制等,而这些系统通常都是安全关键系统,其不正确的功能或失效会造成重大经济损失、大规模破坏甚至人员伤亡等事故。在中断驱动系统中,大部分的任务调度及处理过程都是由中断发起的,实时控制、故障自动处理、设备与设备间的数据传送往往采用中断驱动的方式实现,这主要是因为中断开销小,能够适应系统硬件资源相对有限的条件,另外中断响应快,能够满足许多系统的实时性需求。中断驱动系统的可靠性保证十分重要。
但是对于中断驱动系统的可靠性保障是非常困难的,这主要是由于中断的特征所带来的。在中断系统中,中断的发生具有不确定性和中断嵌套使得系统运行的时序尤为复杂,而系统中的潜在错误只有在特定的中断触发时序下才能显现出来,因此在中断驱动系统中由中断引发的运行超时、数据竞争等问题很难验证。
中断序列图是基于UML序列图的扩展,提供了对于中断组合片段用于对中断任务的处理过程进行建模,提出了相应的语义和语法要求,另外中断序列图还扩展了对时间约束的表达,增强了模型对系统实时性需求的表达能力。基于中断序列图描述的中断驱动系统模型能够很直观的展示中断驱动系统中的交互行为,并用简洁的时间约束方式来表达出系统的实时性需求,它提供的易于理解的、直观的图形化表达方式使得中断驱动系统设计人员可以方便、简单、快速的对中断驱动的交互场景进行建模。
在模型验证方面,基于模型验证的思想对软件系统进行全面的检测一般采用的是自动机模型,事实上,基于自动机模型表示的中断驱动系统不利于中断驱动系统设计人员对系统进行建模,而且自动机模型不能像序列图那样能够直观地表达出系统的交互行为和实时性需求。对于一些复杂的系统交互场景,系统的状态空间很大,构造出这样的自动机模型是一件很困难且极易出错的事情。结合上述情况,有必要将中断序列图转换成自动机模型,通过自动机模型的验证工具将中断驱动系统的属性验证问题转换成自动机可达性的判定问题。这样,开发人员能够方便、快速的对中断系统的交互场景进行建模和验证工作。
发明内容
本发明基于中断序列图,通过将中断序列图转换成为与之等价的自动机模型,从而使用自动机的验证工具对中断驱动系统进行验证。该发明提供了将中断序列图模型转换为相应的自动机模型的方法,减少了直接构建自动机模型时的错误产生,降低了模型构建成本,并可以直接使用自动机模型的验证工具对中断驱动系统进行验证工作。
为了实现上述发明目的,本发明采用的技术方案为:一种基于中断序列图的中断驱动系统验证方法,它包含如下步骤:
步骤1:基于中断序列图来构建中断驱动系统模型;
中断序列图由交互对象、交互片段、约束、验证属性等元素构成,为一个二维图。横向轴依次列出交互对象,纵向轴是时间轴,时间沿竖线向下延伸,用于描述对象交互时间的先后顺序。交互对象用生命线表示,对象之间的交互用消息描述。消息是对象之间的一种通信机制,由发送对象向另一个或其他几个接受对象发送信号,用箭头来描述消息传递过程,消息名放置在带箭头的线上下,消息的发送和接收事件都有唯一的事件名称,放置在箭头线的起点和终点。中断序列图中的复杂控制流用组合片段表示,不同组合片段的功能由其交互操作的类型决定,loop表示循环操作,alt表示分支操作,opt表示可选操作,其表示方法和UML序列图中的相同,而int操作则是中断序列图相对于序列图的扩展操作,其同样由一个框来表示组合片段的边界,在框的左上方,字符串int表示组合片段的类型是中断操作类型,p表示中断优先级,id为中断组合片段的名称,condition为条件表达式,表示中断发生的条件。由于中断的发生和处理在时间上具有不确定性,规定中断组合片段内的交互事件与其之外的事件不存在时间上的偏序关系,对于中断优先级,规定高优先级的中断片段的执行可以打断低优先级的中断的执行,但低优先级的中断的执行不可打断高优先级中断的执行,对于条件表达式,当条件表达式为真的时候则表示该中断任务可以被触发,反之则不可被触发。
步骤2:根据步骤1得到的中断序列图,将其中的交互片段划分为基本交互和复合交互片段;
步骤3:将基本交互片段和复合交互片段转换为自动机;
1)对于基本交互片段,我们用一个四元组BIS=(O,M,E,V)来表示基本交互序列,O表示交互对象集合,M表示消息集合,E表示事件集合,V则表示交互事件之间的偏序关系,由此我们可以得到交互序列的迹的集合T,之后我们根据以下算法进行转换。
首先我们生成初始状态q0,集合L表示的意义是从状态q0经过若干迁移达到状态q所发生事件的集合,接着我们在集合E-L中找出没有前驱事件或者前驱事件在集合L中的事件,从而生成新的迁移和状态,然后更新各个集合继续进行迭代,直到不再有新的迁移和状态产生。在生成自动机的过程中,我们还会将集合L相同的状态节点进行合并,从而生成最简的自动机。
2)对于复合交互片段,我们将其内部的交互序列按照基本交互片段的转换方法生成相应的自动机,其中q0为起始状态,qn为终止状态。同时需要根据其不同的类型来进行完整自动机的生成,其方法如下:
21)对于循环次数为最少a次,最多b次(a≤b)的循环组合片段,首先生成两个新的位置节点q和qf,同时生成控制变量i,i在所有节点都可以随时间递增,接着我们生成下列迁移其中的卫式用于循环次数的限制,而赋值操作i:=i+1则用于记录循环执行次数,每次执行之后自增1;其中卫式i≥a表示只有当循环执行次数超过a之后,才允许进入状态qf,否则将迁移回状态q,最后我们将位置节点q和qf标记为当前自动机的新的起始状态和终止状态。
22)对于可选组合片段,为了表示是否满足卫式g,首先生成一个新的位置节点q,添加新的迁移表示只有当卫式g满足的时候才执行组合交互片段内的交互行为,否则直接转入终止状态qn,最后将q标记为当前自动机的新的起始状态。
23)对于分支组合片段,为了表示是否满足卫式g,首先生成新的位置节点,添加状态q到已生成自动机初始状态的迁移,表示当满足卫式g时执行该交互片段内的行为,否则执行另一交互片段内的行为,最后将q标记为当前自动机的新的起始状态。
24)对于中断组合片段,中断组合片段内的交互事件和中断外的交互事件没有时序关系,我们将中断组合片段看作一个独立的子系统来处理,根据其内部交互片段用上述方法生成相应的自动机。
步骤4:将步骤3中得到的多个自动机合并成一个自动机;
1)将除了中断组合片段之外的其他所有交互片段合并为一个的自动机,因为这些交互片段都存在有一定的关系,我们根据其关系将其相应的自动机进行合并。假设有两个自动机A和自动机B,自动机A对应的所有事件的发生时间都先于自动机B中的所有事件,那么我们合并的操作步骤如下:
11)将自动机A的终止状态qa与自动机B的起始状态lb进行合并,并重新标记状态为q;
12)将自动机A中的任意迁移(l,e,qa)改为(l,e,q),其中l为自动机A中的状态,e为自动机A中的事件;
13)将自动机B中的任意迁移(lb,e′,l′)改为(q,e′,l′),其中l′为自动机B中的状态,e′为自动机B中的事件;
2)将中断组合片段对应的自动机模型合并到1)中生成的自动机中。对于非中断的交互片段,我们可以把它看作是优先级为0的交互片段,任何其他中断都可以打断其任务执行,那么我们合并操作的步骤如下:
21)按照高优先级打断低优先级任务的原理,将高优先级的自动机连接到低优先级的自动机中。假设自动机A的优先级为1,自动机B的优先级为2,那么自动机B的状态可以发生在自动机A的任何状态之后。q为自动机A的任意一个状态节点,l0为自动机B的起始状态节点,ln为自动机B的终止状态节点,添加以下新的迁移其中mark为记录进入当前中断和退出中断时的唯一配对标志,gMacher为全局变量,用来记录当前中断进入的标志,而macher则是用来记录进入中断之前的配对标志。迁移q→l0表示进入高优先级的自动机时通过macher来储存进入之前的配对标志,gMacher记录当前迁移的配对标志,迁移ln→q的卫式表示当配对标志一致才能通过该迁移到达状态q,gMacher重新记录进入中断之前的配对标志以便上一级中断退出时迁移配对用。对于自动机A中的所有状态进行同样的操作,得到合并的自动机C;
22)按照21)所述方法将所有的自动机按照高优先级打断低优先级的方式进行连接,得到合并后的自动机。
步骤5:提取中断序列图的约束,将约束添加到转换得到的自动机模型上;
1)对于每一条普通时间约束,我们都会生成一个时钟变量c,它在任何状态节点都可以随时间递增。时间约束为ey-ex<a表示事件ey必须在事件ex发生后a个时间单位内完成。对于所有的事件序列,我们在事件ex发生时将时钟c置为0,在事件ey发生时添加转换卫式c<a表示当条件满足时,迁移才会发生自动机到达下一个状态。
2)对于每一条投影时间约束,我们同样都会生成一个时钟变量c。假设投影时间约束(ey-ex)↑<a表示事件ey必须在事件ex发生后(去除中断任务的运行时间)a个时间单位内完成。这时,时钟变量c在事件ey和ex所在自动机的所有状态节点的可以随时间递增,而在其他自动机的状态节点的保持不变。同样,对于所有的事件序列,我们在事件ex发生时将时钟c置为0,当中断发生时,由于时钟变量c在其他状态节点的变化率为0,因此暂停计时,当中断任务结束,回到当前任务执行序列时,时钟重新开始计时,我们在事件ey发生时添加转换卫式c<a表示当条件满足时,迁移才会发生自动机到达下一个状态。
步骤6:提取中断序列图中的验证属性信息,将验证属性作为约束添加到转换得到的自动机模型上;对于任务超时属性和数据一致性属性,我们将描述其属性的表达式进行取反,按照步骤5所述方法作为时间约束表达式添加到自动机中。
步骤7:将自动机描述成自动机验证工具可接受的输入格式;我们根据步骤6得到的自动机,将其信息转换成验证工具可接受的文件格式。
本发明的技术效果为:
1)提供了中断序列图模型到自动机模型的转换算法,能够将直观形象、易于理解的中断序列图模型自动的转换为相应的自动机模型,减少了建模成本以及模型出错的几率,将约束表达式作为时钟变量添加到自动机中,有效的表达了中断驱动系统的实时性要求;
2)通过将中断组合片段得到的自动机和中断组合片段外的交互片段得到的自动机进行合并,有效的减少了大量的无效迁移;
3)使用自动机模型的验证工具将中断驱动系统的属性验证问题转换成自动机可达性的判定问题,间接对中断序列图模型进行了验证,为开发设计人员提供帮助;
4)本发明使用中断序列图对中断驱动模型进行建模,同时提供了将中断序列图模型转换为相应的自动机模型的方法,并利用自动机模型的验证工具间接对中断序列图模型进行验证,便于开发人员对中断驱动系统进行建模和验证。
附图说明
图1为本发明实施例的中断序列图模型图示。
图2为本发明实施例的基本交互片段生成的自动机模型。
图3为本发明实施例的循环组合交互片段生成的自动机模型。
图4为本发明实施例的中断组合交互片段生成的自动机模型。
图5为本发明实施例的除中断外的所有交互片段生成的自动机模型。
图6为本发明实施例的所有交互片段合并后的自动机模型。
图7为本发明实施例的普通时间约束作为时钟变量添加后的自动机模型。
图8为本发明实施例的投影时间约束作为时钟变量添加后的自动机模型。
图9为图1转换得到的自动机模型。
具体实施方式
下面将结合一个简单的中断序列图模型,阐述使用本方法进行模型转换以及模型验证的详细过程。
本实施例的基于中断序列图的中断驱动系统验证方法,1)首先介绍中断序列图模型实例。该模型情况如图1所示:
11)系统中有三个交互对象:代理对象(Agent),中断服务对象(Service)和外部设备对象(Peripheral)。
12)系统中有三个组合交互片段,一个循环组合片段,两个中断组合片段IRQ1和IRQ2,优先级分别是1和2。IRQ1是代理对象和中断服务对象的交互,IRQ2是代理对象和外部设备对象的交互。
13)若干约束和验证属性,包括普通时间约束和投影时间约束。
2)根据步骤2将其中的交互片段划分为基本交互片段和组合交互片段,根据图1我们可以的到一个基本交互片段和三个组合交互片段(一个循环组合交互片段和两个中断组合交互片段);
3)将得到的所有交互片段转化为相应的自动机模型;
31)对于图1中的一组基本交互片段,其四元组表示如下:交互对象集合O={Agent,Service,Peripheral},消息集合M={e12,e34},事件集合E={e1,e2,e3,e4},交互事件的时序关系V={e1<e2,e2<e3,e3<e4},得到基本交互片段的迹的集合为T={e1→e2→e3→e4},首先根据算法的第1行生成自动机的起始位置q0,此时生成的自动机有且仅有一个非终止状态q0,并且没有任何迁移,进入第2行的循环后,L为空集,它表示的意义为从起始状态q0,经过若干条迁移到达位置q后,所发生的事件的集合。随后在第4行中,我们有E-L={e1,e2,e3,e4},接着在第5行中找出所有没有前驱事件并且不在已发生过的事件集合L中的事件e,然后在第6行生成相应的位置和迁移,此时自动机的状态集合为{q0,q1},迁移集合为{(q0,e1,q1)},经过不断的迭代,当不会再有新的状态节点和迁移添加到自动机中,将最终的状态节点标记为终止节点,得到的自动机如图2所示。
33)对于中断组合片段,由于中断交互片段与中断外的交互片段没有时序关系,因此我们将中断组合片段看作一个单独的子系统,得到的自动机如图4所示。
4)将得到的所有自动机合并成一个自动机。
41)首先将除了中断交互片段生成的自动机以外的所有自动机根据时序关系合并为一个自动机,将时序关系中在前的自动机的终止状态和时序关系中在后的自动机的起始状态进行合并,并将相关的迁移中的状态变量进行修改,得到新的自动机如图5所示。
42)将41)中得到的自动机描述的交互片段看作是优先级为0的交互片段。由于高优先级的自动机可以在任意状态节点打断低优先级的自动机,因此需要将高优先级的自动机连接到低优先级的自动机中,在低优先级所有的状态节点添加进入和退出高优先级自动机的迁移,以状态节点q1为例,假设中断IRQ1发生在状态q1,那么我们需要添加两个新迁移(q8和q10分别为中断IRQ1的起始和终止状态),其中gMacher用来记录其入边和出边的唯一配对标志,macher用来记录进入高优先级自动机之前的配对标志。对其他所有的状态节点都进行上述操作,同样,对于IRQ2也进行相应的操作,需要注意的是,IRQ2不仅能打断基本交互片段,同样可以打断IRQ1。最终得到的自动机模型如图6所示,图中,迁移的卫式和赋值如下:
1:macher:=gMacher;gMacher:=0
2:macher:=gMacher;gMacher:=1
3:macher:=gMacher;gMacher:=2
4:macher:=gMacher;gMacher:=3
5:macher:=gMacher;gMacher:=4
6:macher:=gMacher;gMacher:=5
7:macher:=gMacher;gMacher:=6
8:macher:=gMacher;gMacher:=7
9:gMacher=0;gMacher:=macher
10:gMacher=1;gMacher:=macher
11:gMacher=2;gMacher:=macher
12:gMacher=3;gMacher:=macher
13:gMacher=4;gMacher:=macher
14:gMacher=5;gMacher:=macher
15:gMacher=6;gMacher:=macher
16:gMacher=7;gMacher:=macher
17:macher:=gMacher;gMacher:=0
18:macher:=gMacher;gMacher:=1
19:macher:=gMacher;gMacher:=2
20:macher:=gMacher;gMacher:=3
21:macher:=gMacher;gMacher:=4
22:macher:=gMacher;gMacher:=5
23:macher:=gMacher;gMacher:=6
24:macher:=gMacher;gMacher:=7
25:gMacher=0;gMacher:=macher
26:gMacher=1;gMacher:=macher
27:gMacher=2;gMacher:=macher
28:gMacher=3;gMacher:=macher
29:gMacher=4;gMacher:=macher
30:gMacher=5;gMacher:=macher
31:gMacher=6;gMacher:=macher
32:gMacher=7;gMacher:=macher
33:macher:=gMacher;gMacher:=0
34:macher:=gMacher;gMacher:=1
35:macher:=gMacher;gMacher:=2
36:gMacher=0;gMacher:=macher
37:gMacher=1;gMacher:=macher
38:gMacher=2;gMacher:=macher。
5)提取中断序列图的约束,将约束添加到转换得到的自动机模型上;
51)对于普通时间约束表达式,我们以2<e4-e3<4为例,设置时钟变量c43,在所有状态节点该时钟的变化率都为1,我们在自动机模型上找到事件e3发生所在的迁移,将c43初始化为0,在事件e4发生的迁移添加卫式2<c43<4,表示只有当时钟变量满足的时候,才能通过该迁移到达下一个状态节点,该部分自动机模型如图7所示。
52)对于投影时间约束表达式,我们以1<(e2-e1)↑<2为例,设置时钟变量c21,在事件e2和e1所在的自动机的所有状态节点中,该时钟变量的变化率都为1,而在其他的自动机的状态节点,变化率为0。同样在事件e1发生所在的迁移,将c21初始化为0,在事件e2发生的迁移添加卫式1<e2-e1<2,表示只有当时钟变量满足的时候,才能通过该迁移到达下一个状态节点,该部分我们以IRQ1打断事件e2和e1之间的消息传送为例,自动机模型如图8所示。
6)提取中断序列图中的验证属性信息e2-e1<10,我们将表达式进行取反,得到e2-e1≥10,然后按照普通时间约束添加到自动机模型中,最终生成的完整的自动机模型如图9所示,图中,迁移的卫式和赋值如下:
1:macher:=gMacher;gMacher:=0
2:macher:=gMacher;gMacher:=1
3:macher:=gMacher;gMacher:=2
4:macher:=gMacher;gMacher:=3
5:macher:=gMacher;gMacher:=4
6:macher:=gMacher;gMacher:=5
7:macher:=gMacher;gMacher:=6
8:macher:=gMacher;gMacher:=7
9:gMacher=0;gMacher:=macher
10:gMacher=1;gMacher:=macher
11:gMacher=2;gMacher:=macher
12:gMacher=3;gMacher:=macher
13:gMacher=4;gMacher:=macher
14:gMacher=5;gMacher:=macher
15:gMacher=6;gMacher:=macher
16:gMacher=7;gMacher:=macher
17:macher:=gMacher;gMacher:=0
18:macher:=gMacher;gMacher:=1
19:macher:=gMacher;gMacher:=2
20:macher:=gMacher;gMacher:=3
21:macher:=gMacher;gMacher:=4
22:macher:=gMacher;gMacher:=5
23:macher:=gMacher;gMacher:=6
24:macher:=gMacher;gMacher:=7
25:gMacher=0;gMacher:=macher
26:gMacher=1;gMacher:=macher
27:gMacher=2;gMacher:=macher
28:gMacher=3;gMacher:=macher
29:gMacher=4;gMacher:=macher
30:gMacher=5;gMacher:=macher
31:gMacher=6;gMacher:=macher
32:gMacher=7;gMacher:=macher
33:macher:=gMacher;gMacher:=0
34:macher:=gMacher;gMacher:=1
35:macher:=gMacher;gMacher:=2
36:gMacher=0;gMacher:=macher
37:gMacher=1;gMacher:=macher
38:gMacher=2;gMacher:=macher。
7)将自动机描述成自动机验证工具可接受的输入格式并在自动机验证工具中进行验证。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于中断序列图的中断驱动系统验证方法,其特征在于,包括如下步骤:
步骤一、基于中断序列图来建立中断驱动系统模型;中断序列图包括交互对象、交互片段、约束、验证属性;由于中断的发生和处理在时间上具有不确定性,规定中断组合片段内的交互事件与其之外的事件不存在时间上的偏序关系,对于中断优先级,规定高优先级的中断片段的执行可以打断低优先级的中断的执行,但低优先级的中断的执行不可打断高优先级中断的执行,对于条件表达式,当条件表达式为真的时候则表示该中断任务可以被触发,反之则不可被触发;
步骤二、根据步骤一得到的中断序列图,将其中的交互片段划分为基本交互和复合交互片段;
步骤三、将基本交互片段和复合交互片段依次转换成相应的自动机模型;
步骤四、将步骤三中得到的多个自动机模型组合成一个自动机模型,即得到中断驱动模型所转换成的自动机模型;
步骤五、提取中断序列图中的约束,将约束添加到转换得到的自动机模型上;
步骤六、提取中断序列图中的验证属性信息,将验证属性作为约束添加到转换得到的自动机模型上;
步骤七、将自动机描述成自动机验证工具可接受的输入格式;
步骤八、采用自动机的验证工具进行验证。
2.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:
步骤一中的中断序列图为一个二维图;横向轴依次列出交互对象,纵向轴是时间轴,时间沿竖线向下延伸,用于描述对象交互时间的先后顺序;交互对象用生命线表示,对象之间的交互用消息描述;消息是对象之间的一种通信机制,由发送对象向另一个或其他几个接受对象发送信号,用箭头来描述消息传递过程,消息名放置在带箭头的线上下,消息的发送和接收事件都有唯一的事件名称,放置在箭头线的起点和终点;中断序列图中的复杂控制流用组合片段表示,不同组合片段的功能由其交互操作的类型决定,loop表示循环操作,alt表示分支操作,opt表示可选操作,其表示方法和UML序列图中的相同,而int操作则是中断序列图相对于序列图的扩展操作,其同样由一个框来表示组合片段的边界,在框的左上方,字符串int表示组合片段的类型是中断操作类型,p表示中断优先级,id为中断组合片段的名称,condition为条件表达式,表示中断发生的条件。
3.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:
步骤三中将基本交互片段和复合交互片段转换为相应的自动机模型的方法为:
1)对于基本交互片段,用一个四元组BIS=(O,M,E,V)来表示基本交互序列,O表示交互对象集合,M表示消息集合,E表示事件集合,V则表示交互事件之间的偏序关系,由此得到交互序列的迹的集合T,之后根据以下算法进行转换:
首先生成初始状态q0,集合L表示的意义是从状态q0经过若干迁移达到状态q所发生事件的集合,接着在集合E-L中找出没有前驱事件或者前驱事件在集合L中的事件,从而生成新的迁移和状态,然后更新各个集合继续进行迭代,直到不再有新的迁移和状态产生;在生成自动机的过程中,将集合L相同的状态节点进行合并,从而生成最简的自动机;
2)对于复合交互片段,将其内部的交互序列按照基本交互片段的转换方法生成相应的自动机,其中q0为起始状态,qn为终止状态;同时需要根据其不同的类型来进行完整自动机的生成,其方法如下:
21)对于循环组合片段,循环次数为最少a次,最多b次,首先生成两个新的位置节点q和qf,同时生成控制变量i,i在任何状态节点都保持不变,接着生成下列迁移其中的卫式用于循环次数的限制,而赋值操作i:=i+1则用于记录循环执行次数,每次执行之后自增1;其中卫式i≥a表示只有当循环执行次数超过a之后,才允许进入状态qf,否则将迁移回状态q,最后将位置节点q和qf标记为当前自动机的新的起始状态和终止状态;
22)对于可选组合片段,为了表示是否满足卫式g,首先生成一个新的位置节点q,添加新的迁移表示只有当卫式g满足的时候才执行组合交互片段内的交互行为,否则直接转入终止状态qn,最后将q标记为当前自动机的新的起始状态;
23)对于分支组合片段,为了表示是否满足卫式g,首先生成新的位置节点,添加状态q到已生成自动机初始状态的迁移,表示当满足卫式g时执行该交互片段内的行为,否则执行另一交互片段内的行为,最后将q标记为当前自动机的新的起始状态;
24)对于中断组合片段,规定中断组合片段内的交互事件和片段外的交互事件没有时序关系,将中断组合片段看作一个独立的子系统来处理,根据其内部交互片段用上述方法生成相应的自动机。
4.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:
步骤四中将步骤三中生成的多个自动机合并成一个自动机,其方法如下:
1)将除了中断组合片段之外的其他所有交互片段合并为一个的自动机,因为这些交互片段都存在有一定的关系,根据其关系将其相应的自动机进行合并;对于两个自动机A和自动机B,自动机A对应的所有事件的发生时间都先于自动机B中的所有事件,合并的操作步骤如下:
11)将自动机A的终止状态qa与自动机B的起始状态lb进行合并,并重新标记状态为q;
12)将自动机A中的任意迁移(l,e,qa)改为(l,e,q),其中l为自动机A中的状态,e为自动机A中的事件;
13)将自动机B中的任意迁移(lb,e′,l′)改为(q,e′,l′),其中l′为自动机B中的状态,e′为自动机B中的事件;
2)将中断组合片段对应的自动机模型合并到1)中生成的自动机中;对于非中断的交互片段,把它看作是优先级为0的交互片段,任何其他中断都可打断其任务执行,合并操作的步骤如下:
21)按照高优先级打断低优先级任务的原理,将高优先级的自动机连接到低优先级的自动机中;假设自动机A的优先级为1,自动机B的优先级为2,那么自动机B的状态可以发生在自动机A的任何状态之后;q为自动机A的任意一个状态节点,l0为自动机B的起始状态节点,ln为自动机B的终止状态节点,添加以下新的迁移其中mark为记录进入当前中断和退出中断时的唯一配对标志,gMacher为全局变量,用来记录当前中断进入的标志,而macher则是用来记录进入中断之前的配对标志;迁移q→l0表示进入高优先级的自动机时通过macher来储存进入之前的配对标志,gMacher记录当前迁移的配对标志,迁移ln→q的卫式表示当配对标志一致才能通过该迁移到达状态q,gMacher重新记录进入中断之前的配对标志以便上一级中断退出时配对使用;对于自动机A中的所有状态节点进行同样的操作,得到合并的自动机C;
22)按照21)所述方法将所有的自动机按照高优先级打断低优先级的方式进行连接,得到合并后的自动机。
5.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:
步骤五中将约束条件添加到步骤四中得到的自动机中,其方法如下:
1)对于每一条普通时间约束,都会生成一个时钟变量c,它在任何状态节点都可以随时间递增;假设时间约束为ey-ex<a表示事件ey必须在事件ex发生后a个时间单位内完成;对于所有的事件序列,在事件ex发生时将时钟c置为0,在事件ey发生时添加转换卫式c<a表示当条件满足时,迁移才会发生自动机到达下一个状态;
2)对于每一条投影时间约束,都会生成一个时钟变量c;投影时间约束(ey-ex)↑<a表示事件ey必须在事件ex发生后a个时间单位内完成,“a个时间单位”去除了中断任务的运行时间;这时,时钟变量c在事件ey和ex所在自动机的所有状态节点随时间递增,而在其他自动机的状态节点的保持不变;同样,对于所有的事件序列,在事件ex发生时将时钟c置为0,当中断发生时,由于时钟变量c在其他状态节点的变化率为0,因此暂停计时,当中断任务结束,回到当前任务执行序列时,时钟重新开始计时,在事件ey发生时添加转换卫式c<a表示当条件满足时,迁移才会发生自动机到达下一个状态。
6.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:
步骤六中将验证属性添加到步骤四中得到的自动机中,其方法如下,对于任务超时属性和数据一致性属性,将描述其属性的表达式进行取反,按照步骤五所述方法作为时间约束表达式添加到自动机中。
7.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:
步骤七中将自动机描述成自动机验证工具可接受的输入格式,其方法如下,根据步骤六得到的自动机,将其信息转换成验证工具可接受的文件格式。
8.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:首先提供了对于中断序列图中不同交互片段生成对应的自动机的方法,能够适用于对中断驱动系统进行验证的场景。
9.根据权利要求2所述的基于中断序列图的中断驱动系统验证方法,其特征在于:对中断序列图进行整体分析,将不同交互片段生成的自动机按照步骤4的合并策略,合并为一个完整的自动机,并将约束和验证属性添加到自动机中。
10.根据权利要求1所述的基于中断序列图的中断驱动系统验证方法,其特征在于:将中断序列图模型转换为相应的自动机模型,并利用自动机模型的验证工具间接的对中断序列图模型进行验证,便于开发人员进行建模和验证。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910480184.9A CN110175019B (zh) | 2019-06-04 | 2019-06-04 | 一种基于中断序列图的中断驱动系统验证方法 |
DE112019007400.8T DE112019007400T5 (de) | 2019-06-04 | 2019-07-17 | Verfahren zur Verifizierung eines Interrupt-Antriebssystems basierend auf einem Interrupt-Sequenzdiagramm |
US17/616,855 US11853721B2 (en) | 2019-06-04 | 2019-07-17 | Interrupt-driven system verification method based on interrupt sequence diagram |
PCT/CN2019/096256 WO2020244028A1 (zh) | 2019-06-04 | 2019-07-17 | 一种基于中断序列图的中断驱动系统验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910480184.9A CN110175019B (zh) | 2019-06-04 | 2019-06-04 | 一种基于中断序列图的中断驱动系统验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175019A CN110175019A (zh) | 2019-08-27 |
CN110175019B true CN110175019B (zh) | 2021-11-16 |
Family
ID=67697802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910480184.9A Active CN110175019B (zh) | 2019-06-04 | 2019-06-04 | 一种基于中断序列图的中断驱动系统验证方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11853721B2 (zh) |
CN (1) | CN110175019B (zh) |
DE (1) | DE112019007400T5 (zh) |
WO (1) | WO2020244028A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112381384B (zh) * | 2020-11-12 | 2023-09-01 | 中国联合网络通信集团有限公司 | 一种续办方法和装置 |
CN113010158B (zh) * | 2021-03-18 | 2022-09-06 | 中国科学技术大学 | 纯状态的触发动作编程范式到事件驱动系统的转换方法 |
CN114030511B (zh) * | 2021-12-22 | 2022-09-13 | 北京交通大学 | 一种基于运行时验证的列车调度操作危险预测方法及系统 |
CN116991373B (zh) * | 2023-09-27 | 2024-01-05 | 杭州华望系统科技有限公司 | 一种序列图模型的语义解析与仿真系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07225681A (ja) * | 1994-02-15 | 1995-08-22 | Fujitsu Ltd | 割込制御装置 |
CN104375842A (zh) * | 2014-12-05 | 2015-02-25 | 中国人民解放军理工大学 | 一种自适应软件uml建模及其形式化验证方法 |
CN106648617A (zh) * | 2016-11-14 | 2017-05-10 | 南京大学 | 一种基于扩展的uml2序列图的中断驱动系统建模方法 |
CN106940659A (zh) * | 2017-03-09 | 2017-07-11 | 华东师范大学 | 基于加权下推系统的中断验证方法 |
CN108459963A (zh) * | 2018-02-26 | 2018-08-28 | 华东师范大学 | 一种基于中断控制流图的中断验证方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4933836A (en) * | 1986-10-29 | 1990-06-12 | United Technologies Corporation | n-Dimensional modular multiprocessor lattice architecture |
US5247628A (en) * | 1987-11-30 | 1993-09-21 | International Business Machines Corporation | Parallel processor instruction dispatch apparatus with interrupt handler |
US5437553A (en) * | 1991-04-08 | 1995-08-01 | Collins; Deborah L. | Method and apparatus for automated learning and performance evaluation |
GB2278213A (en) * | 1993-05-18 | 1994-11-23 | Ibm | Test program generator. |
US5592674A (en) * | 1994-12-20 | 1997-01-07 | International Business Machines Corporation | Automatic verification of external interrupts |
US5790871A (en) * | 1996-05-17 | 1998-08-04 | Advanced Micro Devices | System and method for testing and debugging a multiprocessing interrupt controller |
US5931934A (en) * | 1997-05-02 | 1999-08-03 | Texas Instruments Incorporated | Method and apparatus for providing fast interrupt response using a ghost instruction |
US6615091B1 (en) * | 1998-06-26 | 2003-09-02 | Eveready Battery Company, Inc. | Control system and method therefor |
US6751582B1 (en) * | 1999-09-09 | 2004-06-15 | International Business Machines Corporation | Method and system for enhanced design validation through trace tailoring |
US6681383B1 (en) * | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US6684359B2 (en) * | 2000-11-03 | 2004-01-27 | Verisity Ltd. | System and method for test generation with dynamic constraints using static analysis |
US7058557B2 (en) * | 2002-11-08 | 2006-06-06 | Faraday Technology Corp. | Method for functional verification of hardware design |
US6986110B1 (en) * | 2003-01-02 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Automated method and system for backtracing of instruction parameters from specified instruction in test cases |
US9329840B1 (en) * | 2005-12-30 | 2016-05-03 | The Mathworks, Inc. | Graphical programming of custom device drivers |
US7941299B1 (en) * | 2008-01-08 | 2011-05-10 | The Mathworks, Inc. | Verification and validation system for a graphical model |
JP2010271993A (ja) * | 2009-05-22 | 2010-12-02 | Renesas Electronics Corp | 割込み処理装置及び方法 |
US20110083124A1 (en) * | 2009-10-07 | 2011-04-07 | Microsoft Corporation | Software Verification Using Two-State Invariants |
US9256485B1 (en) * | 2010-05-28 | 2016-02-09 | The Mathworks, Inc. | System and method for generating message sequence diagrams from graphical programs |
US9038015B1 (en) * | 2013-04-23 | 2015-05-19 | Clearblade, Inc. | System and method for creating a development and operational platform for mobile applications |
US9158503B2 (en) * | 2013-10-08 | 2015-10-13 | King Fahd University Of Petroleum And Minerals | UML model integration and refactoring method |
US10585650B1 (en) * | 2018-12-21 | 2020-03-10 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating program code |
-
2019
- 2019-06-04 CN CN201910480184.9A patent/CN110175019B/zh active Active
- 2019-07-17 WO PCT/CN2019/096256 patent/WO2020244028A1/zh active Application Filing
- 2019-07-17 DE DE112019007400.8T patent/DE112019007400T5/de active Pending
- 2019-07-17 US US17/616,855 patent/US11853721B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07225681A (ja) * | 1994-02-15 | 1995-08-22 | Fujitsu Ltd | 割込制御装置 |
CN104375842A (zh) * | 2014-12-05 | 2015-02-25 | 中国人民解放军理工大学 | 一种自适应软件uml建模及其形式化验证方法 |
CN106648617A (zh) * | 2016-11-14 | 2017-05-10 | 南京大学 | 一种基于扩展的uml2序列图的中断驱动系统建模方法 |
CN106940659A (zh) * | 2017-03-09 | 2017-07-11 | 华东师范大学 | 基于加权下推系统的中断验证方法 |
CN108459963A (zh) * | 2018-02-26 | 2018-08-28 | 华东师范大学 | 一种基于中断控制流图的中断验证方法 |
Non-Patent Citations (2)
Title |
---|
中断驱动系统时间约束的建模与验证研究;孙琳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160815;第I138-151页 * |
基于扩展时间Petri网的嵌入式中断建模与验证;常军旺;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315;第I138-43页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110175019A (zh) | 2019-08-27 |
WO2020244028A1 (zh) | 2020-12-10 |
US11853721B2 (en) | 2023-12-26 |
US20220317976A1 (en) | 2022-10-06 |
DE112019007400T5 (de) | 2022-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175019B (zh) | 一种基于中断序列图的中断驱动系统验证方法 | |
CN110569305B (zh) | 区块同步方法、装置、介质和计算设备 | |
Rudie et al. | Minimal communication in a distributed discrete-event system | |
Lanz et al. | Controllability of time-aware processes at run time | |
Greenyer et al. | Incrementally synthesizing controllers from scenario-based product line specifications | |
JP2023527195A (ja) | ベースライン監視方法、装置、読み取り可能な媒体、及び電子機器 | |
CN113421073A (zh) | 在区块链中并发执行交易的方法和装置 | |
CN108959058B (zh) | 一种虚拟控制器的组态调试器实现方法 | |
Xu et al. | Semantics foundation for cyber-physical systems using higher-order UTP | |
Alhroob et al. | Transforming UML sequence diagram to high level Petri Net | |
David et al. | Compositional verification of real-time systems using ECDAR | |
CN104835015A (zh) | 基于前驱任务的工作流挖掘方法 | |
Zhan et al. | A generalized hybrid Hoare logic | |
Tagliaferro et al. | Towards verifiable multi-agent interaction pattern specification | |
CN116931920A (zh) | 业务逻辑对象处理方法、装置、电子设备及存储介质 | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN110276152A (zh) | 一种并行离散时间仿真的带时间余度非严格时间管理方法 | |
Pasqua et al. | From sequence diagrams uml 2. x to fd-devs by model transformation | |
Wang et al. | Symbolic execution of behavioral requirements | |
Xu et al. | Safety-Aware Implementation of Control Tasks via Scheduling with Period Boosting and Compressing | |
CN107317705B (zh) | 一种基于Agent感知区域的有限乐观并行仿真同步方法 | |
CN107506214B (zh) | 一种集群系统控制器的更新方法及更新系统 | |
Kolano | Tools and techniques for the design and systematic analysis of real-time systems | |
Huang et al. | A mde-based approach to the safety verification of extended sysml activity diagram. | |
Babaee et al. | From UML state machines to verifiable lotos specifications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |