统一建模语言(UML) 时序图是一类交互图,专注于系统中对象的时间约束。这类图在实时系统中特别有用,因为事件的时间和持续时间至关重要。本文将结合附带的图片,解释UML时序图的关键概念。
UML时序图的关键概念

1. 生命线
生命线表示对象或参与者在时间上的存在。在附带的图片中,生命线标记为“User/Acc_User”,并垂直延伸,表示用户在系统中存在的持续时间。
2. 状态
状态是对象可能存在的条件或情况。在图中,不同的状态如“空闲”、“等待卡片”、“等待访问”和“卡片输出”被描绘出来。每个状态代表用户与系统交互过程中的一个特定阶段。
3. 持续时间约束
持续时间约束指定了对象在某一状态中停留的时间。在图中,持续时间约束由区间[d..3d]表示用户在“等待访问”状态中的持续时间介于d和3d个时间单位之间。
4. 时间约束
时间约束定义了不同事件之间的时间关系。在图中,时间约束表示为[t..t+3],表示从“代码”到“卡片输出”的转换必须在t到t+3个时间单位内完成。
5. 刺激
刺激是触发状态变化的外部事件或信号。在图中,刺激通过状态之间的转换表示,例如从“等待卡片”到“代码”的转换,以及从“代码”到“卡片输出”的转换。
6. 时间单位
时间单位是图中时间的基本度量。在附带的图片中,时间单位在水平轴上表示,从0到8递增。该轴有助于可视化各种状态和转换的时间和持续时间。
解读UML时序图
- 初始状态:用户从“空闲”状态开始。
- 等待卡片状态:用户进入“等待卡片”状态,等待卡片被出示。
- 代码状态:收到卡片后,用户进入“代码”状态,进行一些处理或验证。
- 等待访问状态:用户随后进入“等待访问”状态,等待访问被授予。持续时间约束[d..3*d]表示允许的等待时间。
- 卡出状态: 最后,用户进入“卡出”状态,表示卡片已处理完毕且已授予访问权限。时间约束 [t..t+3] 确保此转换在指定的时间范围内发生。
UML定时图的应用
UML定时图在多个领域中至关重要,包括:
- 实时系统: 时序至关重要的系统,例如嵌入式系统、控制系统和通信协议。
- 性能分析: 分析软件系统的性能,以确保其满足时序要求。
- 仿真与测试: 在不同时间约束下对系统行为进行仿真和测试。
UML定时图的替代表示法
UML定时图 可以以不同风格呈现,同时传达相同的信息。第二幅图中的替代表示法通过聚焦于状态和持续时间约束,而未明确显示刺激和时间约束,从而简化了视觉表达。下面我们将讨论这种替代表示法,并解释两个图示的等价性。
替代表示法中的关键元素

- 生命线: 生命线保持不变,表示“用户/访问用户”随时间的存在。
- 状态: “空闲”、“等待卡片”、“等待访问”和“空闲”状态被清晰地展示出来。用户按顺序依次经过这些状态。
- 持续时间约束: “等待访问”状态显示了持续时间约束 [d..3*d],表示允许的等待时间。
两个图示的等价性
- 生命线: 两个图示都具有表示“用户/访问用户”在相同时间跨度内的生命线。
- 状态: 两个图示中的状态序列完全相同:“空闲” → “等待卡片” → “等待访问” → “空闲”。
- 持续时间约束: 两个图示都为“等待访问”状态指定了持续时间约束 [d..3*d]。
- 隐式时间约束: 尽管替代表示法未明确显示时间约束,但它们是隐含理解的。状态之间的转换按顺序发生,持续时间约束确保满足时序要求。
详细对比
- 初始状态: 两个图都从“空闲”状态开始。
- 等待卡片状态: 两个图都展示了进入“等待卡片”状态的转换,表明用户正在等待卡片。
- 等待访问状态: 两个图中都存在带有持续时间约束 [d..3*d] 的“等待访问”状态,确保用户等待指定时长。
- 最终状态: 两个图在“等待访问”状态之后都返回到“空闲”状态,完成整个循环。
替代展示方式的优势
- 简洁性: 替代展示方式更简单且易于理解,专注于核心要素,而不包含额外细节。
- 清晰性: 通过省略显式的刺激和时间约束,图表变得更加简洁,从而更容易可视化状态转换和持续时间约束。
结论
UML定时图提供了系统内对象时间与持续时间约束的可视化表示。通过理解生命线、状态、持续时间约束、时间约束、刺激和时间单位等关键概念,开发人员可以有效地建模和分析实时系统的行为。附带的图片作为一个实际示例,展示了这些概念在典型场景中的应用。












