20210512# 【uml】

说明

uml应该是属于软件工程这方面的书,全程为: 统一建模语言(Unified Modeling Language,UML)。
既然是一门语言,自然就是人们使用它进行交流。
这里的人们一般是计算机相关人员。交流的内容一般是对系统的理解。
另外,uml本身也能够加强自己对于系统的理解。


uml实践-时序图

下面内容部分来源于网络

时序图简介

时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

组成元素

时序图中包括如下元素:角色,对象,生命线,激活期和消息。
1、角色(Actor)
  系统角色,可以是人或者其他系统,子系统。
2、对象(Object)
  对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表。
  类角色。
  对象一般包含以下三种命名方式:
    第一种方式包含对象名和类名。
    第二种方式只显示类名不显示对象名,即为一个匿名对象。
    第三种方式只显示对象名不显示类名。
3、生命线(Lifeline)
  生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间 的消息存在于两条虚线间。

4、激活期(Activation)
  激活期代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括号“{}”中的内容。
5、消息(Message)
  消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。
  消息一般分为同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)

同步消息=调用消息(Synchronous Message)
消息的发送者把控制传递给消息的接收者,然后停止活动,等待消息的接收者放弃或者返回控制。用来表示同步的意义。

异步消息(Asynchronous Message)
消息发送者通过消息把信号传递给消息的接收者,然后继续自己的活动,不等待接受者返回消息或者控制。异步消息的接收者和发送者是并发工作的。

返回消息(Return Message)
返回消息表示从过程调用返回

自关联消息(Self-Message)
表示方法的自身调用以及一个对象内的一个方法调用另外一个方法。

个人实践与 plantuml

  • 语法参考:https://plantuml.com/zh/

  • 自己使用的几个plantuml语法

    • 四种消息:分别使用

      • 同步消息: ->
      • 返回消息: -->
      • 异步消息:->>
      • 自关联消息:
        • autoactivate onreturn 组合使用
    • 关键字 autonumber 用于自动对消息编号。

    • 换行 : \n

    • 激活、撤销和创建的快捷语法

      • ++ 激活目标(可选择在后面加上#color
      • -- 撤销激活源
      • ** 创建目标实例
      • !! 摧毁目标实例

一个实例:

@startuml
'https://plantuml.com/sequence-diagram

autonumber

autoactivate on

MainClass -> AnnotationConfigApplicationContext **: new
    AnnotationConfigApplicationContext -> AnnotationConfigApplicationContext : this();
        AnnotationConfigApplicationContext -> AnnotatedBeanDefinitionReader ** : new
            AnnotatedBeanDefinitionReader -> AnnotatedBeanDefinitionReader : this()
                AnnotatedBeanDefinitionReader -> AnnotationConfigUtils : registerAnnotationConfigProcessors(this.registry);
                AnnotationConfigUtils -> AnnotationConfigUtils : registerAnnotationConfigProcessors(registry, null);
                return Set<BeanDefinitionHolder> \n (a Set of BeanDefinitionHolders, \n containg all bean definitions \n that have actually been registered by this call)
            return this
        AnnotatedBeanDefinitionReader --> AnnotationConfigApplicationContext : AnnotatedBeanDefinitionReader
    return this;
AnnotationConfigApplicationContext --> MainClass : return AnnotationConfigApplicationContext \n 返回容器

@enduml
posted @ 2021-05-15 02:08  傀儡岁月  阅读(152)  评论(0编辑  收藏  举报