约束

约束是一个布尔表达式,一般显示在大括号中,并且能够出现在各种类型的Sysml图中,在交互情景的日常实践中可以使用三种约束(时间约束、期间约束、状态常量)。

时间约束(TimeConstraint)

时间约束会指定单个时间发生所需要的时间间隔,那个时间间隔可能是单独的时间值,也可能是持有一个时间值的属性,所连接的事件为六种发生在生命线上的事件之一。

关键是,当交互在系统操作过程中执行的时候,只有内个事件发生在时间约束指定的事件间隙中,我们才能认为他能有效的执行。

创建时间约束:将时间约束从图形工具栏中拖放在图形文档中相应的位置。

期间约束(DurationConstraint)

期间约束,持续期间约束会指定两个时间发生所需的时间间隔,这里的时间间隔可能是单独的时间值也可能是持有时间值的属性,可以与任意两种事件相连。

关键是,当交互在系统操作过程中执行的时候,只有那一对事件发生相隔的时间敲好落在期间约束所指定的时间间隔中,我们才能认为他们是有效的。

常见的用法,把期间约束应用在消息发送事件和相关的消息接收事件上,这会限制消息的传输时间,当为此应用期间约束的时候,需要把它放在大括号中然后显示在约束消息的上面或者下面。

状态不变量(StateInvariant)

状态不变量代表一个约束(Contraint),它表示它覆盖的生命线接下来发生的事件(一般是一个消息事件)之前这个约束成立;如果不成立,说明这个过程是不合法的。

添加状态不变量:从图形工具栏中拖出一个状态不变量节点,一定要放在一个生命线上;

状态不变量有两种表示方法。象状态类似的圆角矩形,用于表示一个状态,节点中显示的是一个状态的名称;这个状态应该是覆盖生命线的状态机中的一个状态的名称。另外一种表示法是普通的一个约束字符串(“{}”括起来的一个约束表达式)(可以在图形工具栏中点击状态不变量默认图标后面的下拉箭头,选择这种表示法的节点模板),约束表达式中可以使用表示状态的变量,或某种必须满足的条件。

MBSES用户使用说明书