UML 时序图

一、时序图的含义
       时序图(Sequence Diagram)描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息的时间顺序的交互图。
       时序图描述类 系统中类和类之间的交互,它将这些交互建模成消息交换,当执行一个用例行为时,时序图总的每一条消息对应了一个类操作或状态机中引起转换的触发事件。
        图形上参与交互的各对象在时序图的顶端排列,每一个对象的底端都绘制了一条垂直虚线,当一个对象向另一个对象发送消息时,此消息开始于发送对象底部的虚线,终止于接收对象底部的虚线,这些消息用箭头表示,水平放置,沿垂直方向排列,在垂直方向上,越靠近顶端的消息越早被发送。当对象收到消息后,把消息当做执行某种动作的命令。所以时序图向用户提供了事件流随时间推移的、清晰的和可视化的轨迹。
二、时序图包含的元素
(1)对象
         对象代表时序图中的对象在交互中所扮演的角色。对象从左到右布置在顺序图的顶部。
(2)消息
               一个对象到另一个对象的消息用跨越对象生命线的消息线表示。对象还可以发送消息给它自己,也就是说,
         消息线从自己的生命线出发又回到自己的生命线。
         消息的类型:
          1)调用(Call):消息的发送者将请求传递给消息的接收者,请求接收者对象执行某种操作。通常,这需要发
                                       送者等待接收者返回消息,所以这种消息又叫做同步(synchronous)的消息。
 
                                                                 
          2)异步(asynchronous)消息:这种消息中,发送者把控制权转交给接收者,但并不等操作完成。  
 
                                                                                   
(3)生命线
                生命线代表时序图中的对象在一段时期内的存在。每个对象底部中心都有一条垂直的虚线,这就是对象的
         生命线,对象间的消息存在于两条虚线之间。
 顺序图的基本图符集:
                                                     
三、时序图的用途
(1)时序图有生命线
                 生命线表示一个对象在一段时期内的存在,正是因为这个特性,使时序图适合对象之间消息的时间顺序。
          一般,对象的生命线从图的顶部画到底部,这表示对象存在于交互的整个过程,但对象也可以在整个交互中创
          建和撤销,
(2)时序图有激活期
                激活期代表一个对象直接或间接的执行一个动作的时间,激活矩形的高度代表激活持续时间。时序图的这
         个特性可视化的描述了对象执行一项操作的时间,显然这个特性使系统间对象的交互更容易理解
四、时序图的建模技术
 时序图建模时,遵循如下策略:
(1)设置交互的语境,这些语境可以是系统、子系统、操作、类、用例和协作的一个脚本。
(2)通过识别对象在交互中扮演的角色,根据对象的重要性,将其从左向右的方向放在时序图中。
(3)设置每个对象的生命线。一般情况下,队形存在于交互的整个过程,但它可以在交互过程中创建和撤销。
(4)从引发某个交互的信息开始,在生命线之间按从上向下的顺序画出随后的消息。
(5)设置对象的激活期,这可以可视化实际计算发生时的时间点、可视化消息的嵌套。
(6)如果需要设置时间后空间的约束,可以为每个消息附上合适的时间和控件约束。
(7)给某控制流的每个消息附上前置或后置条件,这可以更详细地说明这个控制流。
五、时序图建模举例
(1)饮料销售机之“买饮料”理想场景建模
          
(2)零钱数量不对情况下的建模
       
 (3)机房收费系统之学生上机
             
 
### UML时序图的绘制方法 UML时序图是一种用于描述系统中对象之间交互行为的图形化工具,尤其适用于展示用例的详细流程。在绘制时序图时,首先需要明确参与交互的对象和参与者[^4]。这些对象通常包括用户、订单系统、库存系统和支付系统等实际组件。 接下来,按照时间顺序将这些对象从左到右排列,并为每个对象绘制一条垂直的生命线,表示该对象在整个交互过程中的存在状态。生命线是一条虚线,从对象符号向下延伸,贯穿整个图表[^1]。 然后,在生命线上添加消息传递的过程。消息通过水平箭头表示,箭头的方向指示了消息的发送方向。例如,“创建订单”、“检查库存”、“发起支付”等操作可以通过不同的箭头来表示[^4]。此外,激活条(Activation)可以用来表示某个对象正在执行某个操作,它通常是一个矩形块,覆盖在生命线上,表明该对象在此时间段内处于活跃状态。 根据需求,还可以在图中添加约束条件或注释,以提供更多的上下文信息。这有助于理解复杂的交互逻辑并确保设计意图被准确传达。 ### 使用场景 UML时序图广泛应用于软件开发的不同阶段,特别是在需求分析和设计阶段。它可以用来展示用例的详细流程,帮助团队更好地理解和实现业务规则。对于复杂交互过程的分析,时序图能够清晰地揭示各个组件之间的依赖关系和调用顺序[^4]。 在系统设计方面,时序图支持对系统组件间的协作进行建模,从而促进模块化设计和接口定义。同时,它们也是文档化系统行为的有效手段,便于后期维护和知识传递[^4]。 ### 工具推荐 为了更高效地创建和编辑UML时序图,有许多专业的绘图工具可供选择。ProcessOn 是一个在线作图工具聚合平台,支持多种类型的图表制作,包括但不限于流程图、思维导图、UI原型图以及UML图等。使用 ProcessOn 可以轻松地在线绘制时序图,而且无需担心下载和更新问题,只要有浏览器就能随时随地工作[^3]。 除了ProcessOn之外,还有其他一些流行的UML绘图工具,如StarUML、Visual Paradigm 和 Enterprise Architect 等,它们都提供了强大的功能集来支持高级建模活动。这些工具不仅允许用户绘制静态结构模型,还支持动态行为模型的构建,比如时序图、通信图等。 ```mermaid sequenceDiagram participant User participant OrderSystem participant InventorySystem participant PaymentSystem User->>OrderSystem: 创建订单 OrderSystem->>InventorySystem: 检查库存 InventorySystem-->>OrderSystem: 库存可用 OrderSystem->>PaymentSystem: 发起支付 PaymentSystem->>PaymentSystem: 处理支付 PaymentSystem-->>OrderSystem: 支付成功 OrderSystem-->>User: 订单确认 ``` 上述Mermaid语法示例展示了如何构造一个简单的时序图,其中包含了四个参与者:用户、订单系统、库存系统和支付系统。通过这种方式,开发者和技术团队成员能够直观地看到系统的运作流程,并据此做出相应的设计决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值