UML——序列图

序列图又叫顺序图,描述的是在时间先后顺序上的对象的交互过程。它是将交互关系表示为一个二维图,纵轴表示时间,时间沿纵向延伸;横轴代表了各个独立对象在交互过程中的类元角色,各类元用生命线表示。当对象存在时生命线是一条虚线,当对象处于激活状态时生命线是一条双道线。

序列图的构成:

1)对象

2)消息

消息有两种分类方法,一种可以分为:调用(call)、返回(return)、发送(send)、创建(create)和销毁(destroy)五类;下图是以管理员张三在基本数据设定中添加一个学生姓名为例介绍了部分消息的用法:

第二种可以分:为简单消息、同步消息和异步消息三类,还可以将同步消息与简单消息相结合。

序列图主要强调的是消息的时间顺序,所以消息在序列图中十分重要,只有熟悉了各种消息的用法才能成功的画出序列图,我只是简单地了解,所以只能画一些简单地图,更深层次还需要在以后应用中加深理解。

### 如何在UML序列图正确描述消息 在UML序列图中,消息是用来表示对象之间交互的核心元素。以下是关于如何正确描述消息的方法: #### 1. **消息的基本形式** 消息通常通过带箭头的线条连接两个对象生命线,用于表示从发送方到接收方的信息传递。每条消息都应附带一个名称或其他标识信息[^1]。 #### 2. **四种主要的消息类型** - **简单消息** 简单消息是最基础的形式,用来表示任意类型的通信行为,无需区分同步或异步特性。它适用于不需要关注具体实现细节的情况[^4]。 - **同步消息** 同步消息的特点在于发送方会暂停自身的执行流程,直到接收到对方完成任务后的确认回复为止。这种消息常用于阻塞式的函数调用场景,在图形上表现为实心箭头指向目标生命线,并在其下方绘制激活框以体现等待状态[^1]。 - **异步消息** 异步消息允许发送方立即恢复自己的工作而不用理会接收者的回应状况;因此不会存在后续依赖关系。此类消息在线路上采用开口箭头标记[^4]。 - **自反消息** 当某个特定条件下需要让同一个实体内部重复利用某些逻辑单元时,则需要用到所谓的“自我调用”,也就是所谓‘反射’现象——即主体既是发起者又是接受者角色兼备的情形之下产生的通讯联系。此时会在同一条垂直线上画出弯曲轨迹来代表回路路径. #### 3. **返回消息** 当涉及到请求—响应模式下的数据交换过程分析时,“答复”作为必不可少的一部分自然也要体现在图表当中。尽管实际绘图过程中可能省略显式标注出来的返程路线部分,但从理论上讲它们确实存在着并且能够帮助理解整个事务链路全貌。对于同步消息而言,默认假定存在隐含的反馈环节;而对于那些明确指出需展示完整往返周期样式的案例来说,则应该额外增加虚线加开箭头样式来回避歧义。 #### 4. **高级特征 - 控制结构 (仅限于 UML 2.x)** 随着版本迭代升级至更高标准之后引入了一些增强型语法支持复杂业务流建模需求的功能模块,比如循环体、分支判断语句等等都可以借助专门定义好的组合构造块来进行直观呈现。例如:"alt"/"opt"/"loop"等关键字分别对应不同种类的选择性或者反复性的操作指令集封装区域[^2]: - `alt` 表达互斥选项间的抉择可能性; - `opt` 描述可选动作项的存在与否; - `loop` 定义多次连续发生的相似事件集合。 这些新增加的内容极大地扩展了传统意义上单纯依靠直线链接所能传达有限含义之外更为丰富的表达潜力。 ```python # 示例代码:Python模拟简单的同步与异步消息处理机制 import threading def sync_task(): print("Sync Task Start") # Simulate a long-running task import time;time.sleep(2) print("Sync Task End") def async_task(): thread = threading.Thread(target=sync_task) thread.start() print("Async Task Triggered") async_task() ``` 以上就是有关如何在UML序列图里准确无误地描绘各类消息交流方式的知识要点总结。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值