模式抽象是包含的组件,连接和属性值关联的明确定义的配置。 模式表示系统或组件的替代操作状态。 例如,巡航控制系统的模式可以是{初始化,分离,接合},其中每个模式都可以涉及不同的进程集合,执行线程或活动连接(例如,在初始化模式中,没有与传感器的连接)。模式可以指定要在线程或子程序中使用的不同调用序列。模式还可以表示不同属性值适用的任何组件的不同逻辑状态,例如线程或子程序。 例如,在不同的模式下,线程可能具有不同的执行时间,以表示可以以不同精度执行的算法。 模式还可以表示不同的硬件配置,例如在任何一个时间都是活动的处理器。
1模态规格
模式被表示为状态机抽象中的状态。 每个不同组件的配置被识别为模态状态下的一种模式(状态)机器抽象的组件。 定义每个模式的配置和必须指定导致组件行为转换的事件。 每模态状态机必须具有至少两种模式,其中一种必须被声明为组件的初始模式。模式可以用于以各种方式表示替代系统配置。 他们可以建立
•活动组件和连接的替代配置以及转换在这些配置中
•线程内的可变调用序列
•软件或硬件组件的模式特定属性
在这个例子中有两种模式,空闲和控制,以及三个事件端口。空闲模式是初始模式。 事件由事件引入线程端口cc_engage导致模式转换到控制模式(线程配置提供了保持设置速度的功能)。 事件进行通过事件端口cc_resume_e1也会导致切换到控制模式使用以前的速度设置值。 事件端口cc_brake导致一个退出控制模式到空闲模式。
表9-2中的示例显示了一个多模式过程,其中内部事件导致模式一个过程的变化 在该过程的文本规范中control_algorithms.impl,模式部分定义了两种操作模式地面和飞行以及它们之间的转变。 过渡由触发从作为子组件的线程控制器的out事件端口过程实现control_algorithms.impl。 规格为流程实现包括定义子组件的模式子句并在每种模式下连接有效在表9-2的图的右上部分,图形显示了模式和它们由控制器线程的事件触发的转换。 在那个数字中,飞行模式配置显示为黑色,地面模式显示为灰色。这个区别说明了ground_algorithms线程及其连接不属于飞行模式。
呼叫序列的模态配置可以使用模式指定替代呼叫序列。 示例如表9-3所示显示一个监视线程,检查软件和硬件并报告异常。该线程在线程中使用一个子程序调用序列标称模式。 当检测到错误时,将通过信号通知error_condition事件端口error_event。 该信号导致模式切换并改变子程序调用线程序列。