时间图简介
时间图定义了不同对象在时间尺度内的行为。它提供了对象随时间变化状态和交互的可视化表示。可以将其用于:
定义硬件驱动或嵌入式软件组件;例如,那些用于燃料喷射系统或微波控制器
指定时间驱动的业务流程
可以从图表工具箱的 'Timing' 页面生成时间图元素和连接器。
时间图示例:
时间图的元素
图标 |
元素说明 |
描述 |
|
状态生命线 |
状态生命线表示对象在一段时间内的状态,基于 y 轴上的变化来表示状态之间的离散 转移
|
|
数值生命线 |
数值生命线表示对象在一段时间内的状态,沿 x 轴使用平行线表示稳定状态。 |
|
消息标签 |
消息标签是表示生命线之间消息的另一种方式,这对于“整理”散布着消息的时间图很有用。 |
|
消息端点 |
消息端点表示消息:
在状态或数值生命线之外的未定义点处终止,在生命线内的确定点处开始
起源于状态或数值生命线外的未定义点,终止于生命线内的确定点 |
|
图表入口 |
图表入口 表示消息:
在状态或数值生命线之外的定义点终止,在生命线内的指定点开始
起源于状态或数值生命线之外的定义点,终止于生命线内的识别点 |
状态生命线
生命线是对象在一段时间内所经过的路径,由 x 轴所示。生命线有两种类型:状态生命线(在此处定义)和数值生命线,两者都在时间图中使用。
状态生命线遵循状态之间的离散 转移 ,这些转移是沿着时间轴 y 轴定义的。任何转移都具有时间约束、持续时间约束和观察的可选属性。状态生命线的示例如下所示:
在上面的示例图中, OK 转移 点具有以下属性:
属性 |
值 |
At Time |
68 ms |
Transition to |
Idle |
Event |
OK |
Timing constraints |
t…t+3 |
Timing observations |
– |
Duration constraints |
– |
Duration observations |
– |
转移点属性
状态生命线由一组转移点组成。可以使用以下属性定义每个转移点:
属性 |
描述 |
At time |
指定状态更改的开始时间。 |
Transition to |
指示生命线更改到的状态。 |
Event |
描述发生的事件。 |
Timing constraints |
指在生命线内改变状态所花费的时间,或传输消息所花费的时间 ( 例如, t…t+3) 。 |
Timing observations |
提供有关状态更改或发送消息的时间的信息。 |
Duration constraints |
适用于生命线在特定状态下的时间。 约束可以由生命线中的状态变化或生命线收到消息引起。 |
Duration observations |
指示从状态更改或消息接收开始的特定状态下生命线的间隔。 |
OMG UML 规范:
OMG UML 规范( UML 上层结构规范, v2.1.1 , p.518 )指出:
这是分类器或属性的状态,或一些可测试的条件,例如离散的可枚举值。
也允许状态维度是连续的又是离散的。这对于某些实体经历连续状态变化(例如温度或密度)的场景是说明性的。
数值生命线
生命线是对象在一段时间内所经过的路径,由 x 轴表示。有两种类型:数值生命线(在此处定义)和状态生命线,两者都用于时间图中。
数值生命线在图中显示生命线的状态,平行线表示稳定状态。线之间的交叉表示状态的转变或变化。
以下是数值生命线的一个例子 :
在示例图中, 10ms 转移点具有以下属性:
属性 |
值 |
At Time |
10ms |
Transition to |
Waitcard |
Event |
Switch |
Timing constraints |
– |
Timing observations |
– |
Duration constraints |
d 。。 3*d |
Duration observations |
– |
OMG UML 规范( UML 上层结构规范, v2.1.1 , p.518 )指出:
显示可连接元素的值作为时间的函数。值明确表示为文本。交叉反映值改变的事件。
消息标签
消息标签是在生命线之间表示消息的一种替代方法,对于“整理”散布着消息的时间图非常有用。 要指示生命线之间的消息,需从源生命线绘制一个连接器到消息标签。 接下来,从另一个消息标签绘制到目标生命线的连接器。 注意,标签名称必须匹配,以反映消息发生在两个消息标签之间。
此图说明了如何使用消息标签在生命线之间构造消息。
OMG UML 规范( UML 上层结构规范, v2 。 1 。 1 , p 。 518 )指出:
标签只是用于防止图表混乱的符号简写,在相距很远的生命线之间纵横交错的许多消息。标签表示消息可能会因引入同名标签而被破坏。
消息端点
消息端点元素定义时间图中状态或数值生命线的终止。它表明消息:
在状态或数值生命线外的未定义点终止,并从生命线内的标识点开始
起源于状态或数值生命线外的未定义点,终止于生命线内的确定点
图表入口
图表入口是一种简单的图形化方法,用于指示消息可以传输到交互片段或传输到交互片段之外的位置。 可能需要一个片段来接收或传递消息 ; 在内部,有序消息反映了这一需求,在片段框架的边界上指示了入口。任何与此内部消息同步的外部消息必须适当对应。入口可以出现在交互图 ( 序列、时间、通信或交互概述 ) 、交互事件和组合片段 ( 以指定表达式 ) 中。
时间图的关系
图标 |
元素名 |
描述 |
|
消息 |
消息表示元素之间的信息流或控制权 转移 |
消息( Message )
消息是时间图中生命线之间的通信链接。在 Timeline 的案例中, Message 是两个 Timeline 对象之间的连接。
例如,
示例:创建时间消息
可以在时间图上的两个生命线对象 ( 状态或值 ) 之间创建时间消息,每个对象都有现有的转移点。
如下是配置消息的示例图:
Timing Message 属性说明:
属性 |
说明 |
Start |
标识消息起源的生命线。 |
End |
标识消息终止的生命线。 |
Start Time |
显示时间线开始后消息开始的时间。如需要,可以更改此设置。 |
End Time |
显示时间线开始后消息结束的时间。如需要,可以更改此设置,但时间必须对应于目标生命线上的 转移 点。 |
Name |
(可选)键入消息的名称。 |
Time Observation |
(可选)键入任何文本作为标签,提供有关何时发送消息的信息。 |
Duration Observation |
(可选)键入任何文本作为标签,提供有关特定状态下生命线间隔的信息,从收到消息开始。 |
Transition To |
消息终止的目标生命线中的状态。如有必要,可以单击下拉箭头并选择要 转移 到的不同状态。消息的头部相应地移动。 |
Event |
(可选)输入触发 转移 的任何事件的名称。 |
Time Constraint |
(可选)输入传输消息所需的最长时间。 |
Duration Constraint |
(可选)输入生命线在收到消息后可以保持更改状态的最长时间。 |
可以沿着源时间轴自由移动消息的源端 ; 但是,目标端 ( 箭头 ) 必须附加到一个 转移 。
如果创建了一个新的 Message 并且没有给它一个目标 转移 ,它会自动查找并附加到最近的 转移 ; 如果你移动目标端,它会拖拽 转移 。
希望本文对您的建模工作有帮助。更多的有关EA建模资料如下:
视频:http://tool.uml.com.cn/ToolsEA/jswd-ysm.asp?partname=sp
文章:
http://tool.uml.com.cn/ToolsEA/docea.asp?partname=wk
如果您希望了解更多信息:
下载PDF:UML时间图建模(基于EA)
本文使用的建模工具为EA,可以下载试用版http://tool.uml.com.cn/ToolsEA/download.asp
后记
希望您读了此文后有所受益。
如果您有经验乐于分享,欢迎投稿给我们。
如果您对我们的培训、咨询和工具感兴趣:
|