一种基于扩展的UML2序列图的中断驱动系统建模方法与流程

文档序号:11154365阅读:375来源:国知局
一种基于扩展的UML2序列图的中断驱动系统建模方法与制造工艺

本发明涉及基于扩展的UML2序列图的中断驱动系统建模方法。中断驱动系统设计人员可以采用该方法简单直观地描述中断驱动系统。本发明属于软件工程,系统设计领域。



背景技术:

统一建模语言(UML,Unified Modeling Language)是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,是面向对象软件的标准化建模语言。因其简单、统一的特点,而且能清晰地表达软件系统设计相关的信息,目前已成为可视化建模语言的工业标准。UML2序列图(UML2Sequence Diagram)是一种UML行为图,它通过描述对象之间发送消息的时间顺序来描述多个对象之间的动态协作。利用UML2序列图可以形象、具体地描述系统的交互行为。

中断驱动系统被广泛应用于汽车电子、航天电子、环境工程等多个领域中。在中断驱动系统中,实时控制、故障自动处理、设备与设备间的数据传送往往采用中断驱动的方式实现。这主要是因为:(1)中断开销小,能够适应系统硬件资源相对有限的条件;(2)中断响应快,能够满足许多系统的实时性需求。但是对于复杂多样的中断驱动系统,目前没有简单易用的可视化图形建模方法。



技术实现要素:

本发明目的是,提出一种基于UML2序列图,通过扩展UML2序列图的描述能力,使之能够描述中断驱动系统。为中断驱动系统设计人员提供了直观形象、易于理解的建模方法;清晰简洁的表达系统设计的相关信息,利于中断驱动系统的建模与设计以及相关的模型验证、模型转换以及模型到代码的生成。

本发明技术方案是:一种基于扩展的UML2序列图的中断驱动系统建模方法,其特征包括如下步骤:

步骤1:扩展UML2序列图,新增中断交互操作类型用于描述中断的发生和响应处理;

步骤2:将中断驱动系统的执行流程划分为一个中断外交互和若干个中断内交互;

步骤3:根据UML2序列图规范对中断外的流程进行建模;

步骤4:根据步骤1中定义的中断组合片段对中断的发生和响应处理进行建模;

步骤5:对中断驱动系统的时间约束进行建模;

步骤1中的UML2序列图由交互对象、生命线、消息、组合片段等元素构成,为一个二维图;横向轴依次列出交互对象;纵向是时间轴;时间沿竖线向下延伸,用于描述对象交互发生的时间先后顺序;交互对象用生命线来表示,图形为一个矩形加底部的一条垂直虚线。矩形内标注对象名,垂直线既表示对象的生命周期也表示时间轴;对象之间的交互用消息描述;消息是对象间的一种通信机制,由发送对象向另一个或其他几个接收对象发送信号;其图形描述为一条带箭头的线,起点在发送对象的生命线上,终点即箭头端在接收对象的生命线上;消息名放置在带箭头的线上面,消息的发送和接收事件都有唯一的事件名,分别放置在带箭头的线的起点和终点;在UML2序列图中选择和迭代复杂的控制流用组合片段表示;不同的组合片段的功能由其交互操作类型决定;在UML2规范中,已定义的组合片段的交互操作类型片段有表示循环的loop、表示控制流的分支中二选一的alt和表示该片段内控制流为可选的opt,交互操作类型片段的图形描绘方式符合UML2规范;

扩展UML2序列图,新增中断交互操作类型用于定义一种新的中断组合片段;中断组合片段的语法遵循UML2组合片段的描述规范:如图1所示,由一个矩形方框表示组合片段的边界;在矩形方框的左上角五边形中,字符串int表示该组合片段的交互操作类型是中断;p表示中断优先级、为非负整数;id为可选内容,描述了该中断组合片段的名称;位于方框左上角五边形下方的condition为条件表达式,是可选内容,其值为布尔型;

UML2序列图中对象交互所产生的消息收发事件在时间上具有先后关系,这种时间上的先后关系构成时间上的偏序关系;在序列图中基于以下两条规则确定事件发生的偏序关系:1)同一条消息的发送事件先于接收事件;2)在同一条生命线上且同处于某一中断组合片段内或都处于中断组合片段外的两个事件,位于生命线上方的事件先于下方的事件。由于中断的发生和处理在时间上具有不确定性,为了表达这种不确定性,规定发生在中断组合片段内的事件与中断组合片段之外的事件不存在时间上的偏序关系,即规则3)发生在中断组合片段内的事件与中断组合片段之外的事件不存在偏序关系。以图2为例,根据规则1,容易得到e1<e2、e2<e3等。根据规则2有e2<e6、e1<e12等,但因为e11处于中断IRQ1内而e2处于中断外,不能得到e2<e11;根据规则3,可以知道e11和e1,e2,...,e10都没有偏序关系。。对于中断优先级,规定高优先级的中断片段的执行可以打断低优先级的中断的执行,但低优先级的中断的执行不可打断高优先级中断的执行,这样就可以对中断优先级进行建模,并可以描述中断嵌套。对于中断响应的禁止和使能则使用变量赋值和条件表达式来建模。允许为消息的接收和发送事件绑定变量赋值操作,表示在消息的接收和发送时刻执行该变量赋值操作。变量赋值操作是可选的,在需要绑定变量赋值操作的事件名称后添加一对大括号,括号内为相应的变量赋值语句。如果有多个赋值语句则在括号内用逗号分隔依次列出。变量对应于中断屏蔽字,它的赋值用于控制中断响应的开启和关闭。条件表达式用于判断中断响应的开启与关闭。若条件表达式为真则表示中断组合片段所描述的中断可以被响应和处理,反之则不可。条件表达式的表示格式为:变量名二元关系操作符变量值。支持的二元关系操作符有,等于(=)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)和小于等于(<=)。若条件表达式省略,则默认值为真(即默认中断服务处于开启状态)。

步骤3具体化,根据UML2序列图规范对中断外的流程进行建模,其方法为,根据交互的控制流类型和先后顺序,顺序执行的对象交互用消息按时间轴从上到下表示,复杂的控制流用UML2序列图规范中定义的组合片段表示;对系统中的循环控制流,在循环发生的位置添加loop组合片段;然后在loop组合片段方框内添加循环体,循环体内的交互可能是顺序的对象交互也有可能是其他复杂的交互,如果是顺序交互则在loop组合片段的方框内直接建模,如果有嵌套的复杂控制流,则在loop组合片段的方框内嵌套地添加其他组合片段。对系统中的选择控制流可以在发生选择的位置使用alt组合片段(控制流二选一)或者opt组合片段(opt组合片段内的控制流为可选)。alt组合片段和opt组合片段内的控制流如果是顺序交互则在片段方框内直接建模,如果有嵌套的复杂控制流,则在片段的方框内嵌套地添加其他组合片段。最后添加变量赋值操作的交互事件,即根据步骤1定义的方法在事件名后添加赋值语句。对于图2所表示的中断驱动系统,完成步骤3后得到的中断外流程模型如图3所示。

步骤4具体化:根据步骤1中定义的根据中断组合片段对中断的发生和响应处理进行建模,其方法为:对步骤2得到的若干个中断内交互(具体数量取决于系统内中断的数量),对每个中断,依次按下面的步骤处理:

4)在经步骤3所得的UML2序列图中,选择该中断(可能)发生的位置,如果(可能)发生的位置不止一个,建模者根据对系统的理解,判断最为可能的位置;或在几个(可能)发生的位置中任意选择一个。然后在该选择的位置中添加中断组合片段的框体,标出组合片段的操作类型int和名称(可选)。

5)设置中断优先级,如有中断使能条件则在相应的位置添加条件表达式;

6)中断内部的交互与系统中其他的交互不存在时间上的偏序关系,因此将中断内的交互序列看作是一个在时间上相对独立的子系统。在中断组合方框内部,根据步骤3中对中断外的流程进行建模的方法,对中断内交互流程进行建模。

步骤5具体过程:对中断驱动系统的时间约束进行建模。中断驱动系统中的交互通常具有时间约束。时间约束描述,首先给出两种时间约束模板:普通时间约束和投影时间约束。a≤e1–e2≤b为普通时间约束表达模板,其中e1和e2为两个事件的名称,代表事件发生的时间点,并且e2先于e1发生;a和b为实数并且0≤a≤b,b能取值到∞。e1–e2表示从事件e2发生的时间点到事件e1发生的时间点之间的时间间隔,如果期间发生中断,它包含中断执行的时间。a≤e1–e2≤b表达的语义为:系统在从发生事件e1到发生事件e2所经历的时间不允许少于a个时间单位,不允许超过b个时间单位。a≤(e1–e2)↑≤b为投影时间约束表达模板,其中e1和e2为两个事件的名称,代表事件发生的时间点,并且e1和e2必须是同一个中断组合片段的事件,或者e1和e2不属于任何中断组合片段,e2先于e1发生;a和b为实数并且0≤a≤b,b能取值到∞。

(e1–e2)↑表示的含义为,

·若e1和e2不属于任何中断组合片段,(e1–e2)↑则表示从事件e2发生的时间点到事件e1发生的时间点中系统用于执行非中断任务所用的时间间隔。如果在事件e1和e2中间,有中断事件的发生,那么中断任务的执行所用的时间不计入内。

·若e1和e2是同一个中断组合片段的事件,(e1–e2)↑则表示从事件e2发生的时间点到事件e1发生的时间点中系统用于处理e1和e2所在的中断组合片段对应的中断任务所用的时间间隔。如果在事件e1和e2中间,有高优先级的中断事件发生,那么高优先级中断任务的执行所用的时间不计入内。

a≤(e1–e2)↑≤b表达的语义为:(e1–e2)↑表示的时间间隔不允许少于a个时间单位,不允许超过b个时间单位。时间约束在模型中的描述方法是在序列图中添加UML标注框,在标注框内依次列出对系统的时间约束。多条时间约束之间用换行符分割。

本发明的有益效果:

1)基于UML2序列图的中断驱动系统的建模方法扩展了UML2序列图,使之能够清晰准确地描述中断驱动系统,清晰简洁的表达系统设计的相关信息,为中断驱动系统设计人员提供了直观形象、易于理解的建模方法;有利于中断驱动系统的建模与设计;

2)基于扩展的UML2序列图的建模方法能够清晰简洁地表达系统设计的相关信息,有利于中断驱动系统基于模型的建模设计、验证和代码生成等。

附图说明

图1为中断组合片段语法图示。

图2为基于UML2序列图的含中断组合片段的系统模型。

图3为基于UML2序列图的中断外交互的建模示例。

图4为一个中断驱动系统实例的基于扩展的UML2序列图模型。

具体实施方式

下面将结合一个中断驱动系统的实例,阐述使用本方法对该系统进行建模的实施过程。

首先介绍这个中断驱动系统的实例。该系统情况如下:

1)系统中有3个交互对象:代理对象(Agent),中断服务对象(Service)和外部设备对象(Peripheral)。

2)系统中有3个中断IRQ1,IRQ2和IRQ3,他们的中断优先级依次为1,1,2。中断IRQ1包含的是一个顺序交互序列;IRQ2为代理对象与中断请求对象的交互,它含有一个循环控制结构;IRQ3为中断请求对象与中断服务对象的交互,它含有一个选择分支结构。

3)中断IRQ1在中断请求对象和中断服务对象完成初始化后开启;中断IRQ2在中断请求对象完成初始化化后开启;中断IRQ3只能在中断IRQ1内的消息m1和消息m4之间触发。

4)若干对系统的时间约束:a)中断服务对象初始化时间不少于2ms,不超过4ms;b)外部设备对象初始化时间不超过8ms;c)中断IRQ1的运行时间(如果在此期间有其它中断发生,不计其它中断运行时间)不少于20ms,不超过40ms;d)中断IRQ3的实际运行时间不超过5ms;e)中断IRQ2的实际运行时间不超过20ms;f)系统运行的总时间不超过100ms。

对上述中断驱动系统建模过程如下:

1)如图4所示,绘制UML2序列图方框并在右上角标注模型为SimpleModel;

2)在UML2序列图SimpleModel内绘制系统中的3个交互对象的生命线并标注对象名:如图4所示,在UML2序列图方框内依次从左往右依次添加3条生命线,图形为一个矩形外加底部的一条垂直虚线,依次在矩形框内标注对象名和对象类型,格式为对象名:对象类型。在这里,我们给3个交互对象分别起名为a:Agent,s:Service以及p:Peripheral。

3)将系统中的交互划分为中断外交互(e1,e2,…,e12)和中断内交互IRQ1(e13,e14,…,e20),IRQ3(e21,e22,e23,e24)和IRQ2(e25,e26,e27,e28);

4)根据UML2序列图规范在UML2序列图SimpleModel内绘制中断外交互;即在对象的生命线上,按照交互发生的时间顺序依次添加消息,并标注消息名(ini0,ack0,int1,ack1,req,resp)和事件名(e1,e2,…,e12)。

5)根据发明内容中步骤4中描述的方法依次添加中断组合片段IRQ1,IRQ2和IRQ3。然后,在中断可能发生的位置添加中断组合片段。中断IRQ1和IRQ3在中断服务对象和外部设备对象初始化之后才能触发,因而在ack1之后添加中断组合片段方框。中断IRQ3只能在中断IRQ1内触发,故在IRQ1内添加中断组合片段IRQ3。接着,在中断组合片段方框添加中断内交互。对于中断IRQ3,我们按照步骤3所描述的方法操作:在IRQ3中断片段内添加loop组合片段,然后在loop组合片段内添加消息m7和m8。对于中断IRQ1,首先添加中断IRQ1内的交互,标注消息名(m1,m2,m3,m4)和事件名(e13,e14,…,e20),然后在中断IRQ3内添加alt组合片段,接着添加分支条件(u>0)并在该分支内添加消息m6并标注事件名e21和e22;在另一分支(else)内添加消息m6并标注事件名e23和e24。

6)在(5)中所添加的3个中断组合片段中,对需要绑定变量赋值的事件添加变量赋值语句,然后分别对中断IRQ1,IRQ2和IRQ3添加中断使能条件表达式。在事件e1上添加变量赋值操作x=0,表示对象s未完成初始化,在事件e4上添加变量赋值操作x=1,表示对象s完成初始化;在事件e5上添加变量赋值操作y=0,表示对象p未完成初始化;在事件e8上添加变量赋值操作x=1,表示对象p完成初始化;在中断IRQ1中添加中断使能条件x==1&&y==1,表示该中断必须在对象s和p完成初始化后才有可能发生;在中断IRQ2中添加中断使能条件x==1,表示该中断必须在对象s完成初始化后才有可能发生。在中断IRQ1内,对消息m1的发送事件e13添加变量赋值操作z=1,对消息m4的接收事件e20添加变量赋值操作z=0,然后为中断IRQ3添加中断使能条件z==1,表示只允许中断IRQ3在消息m1和m4之间发生。

7)在序列图的右下方添加标注框,在标注框内依次列出对系统的时间约束。对于约束a,我们用普通时间约束将其表示为2≤e4-e1≤4,并将该表达式添加到标注框内;同理,对于约束b,可表示为0<e8-e5≤8;对于约束c,我们采用投影时间约束将其表示为20≤(e20-e13)↑≤40;对于约束d,我们用两条普通时间约束表达式表示:0<e22-e21≤5和0<e24-e23≤5;对于约束e和f,采用普通时间约束,可表示为0<e28-e25≤20和0<e12-e1≤100。最后将所有时间约束表达式添加到标注框内,中间以换行符隔开。

完成上述步骤所得的中断驱动系统模型如图4所示。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1