uml(统一建模语言) + Plantuml

UML

UML(Unified Modeling Language,统一建模语言)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
UML主要有以下作用:
为软件系统建立可视化模型。
为软件系统建立构件。
为软件系统建立文档。

类图

类的命名尽量应用领域中的术语,应明确、无岐义,以利于相互交流和理解。类的属性、操作中的可见性使用+、#、-分别表示public、protected、private。

类之间的关系:

泛化:(Generalization)是实际上是继承关系,继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。继承使用空心三角形+实线表示。
实现:表示一个class类实现interface接口的功能。使用空心三角形+虚线表示。
依赖:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。依赖关系用虚线箭头表示。
关联:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联关系用实线箭头表示。
聚合:表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。聚合关系用空心的菱形+实线箭头表示。
组合:组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。组合关系用实心的菱形+实线箭头表示。

示例

@startuml
Class0 <|-down- Class1:泛化(继承)
Class0 <|.. Class1:实现
Class0 <.. Class1:依赖
Class0 <-- Class1:关联
Class0 o-- Class1:聚合
Class0 *-- Class1:组合
@enduml

在这里插入图片描述

时序图

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

元素

时序图中包括如下元素:角色,对象,生命线,控制焦点和消息。

组合片段

片段类型说明
ref引用其他地方定义的组合片段;
alt在一组行为中根据特定的条件选择某个交互;
opt表示一个可选的行为;
break提供了和编程语言中的break类拟的机制;
par支持交互片段的并发执行;
seq强迫交互按照特定的顺序执行;
strict明确定义了一组交互片段的执行顺序;
neg用来标志不应该发生的交互;
region标志在组合片段中先于其他交互片断发生的交互;
ignore明确定义了交互片段不应该响应的消息;
consider明确标志了应该被处理的消息
assert标志了在交互片段中作为事件唯一的合法继续者的操作数;
loop说明交互片段会被重复执行

示例

@startuml
actor sdj
participant A
participant B

sdj->A:开始
activate A
alt 同步
    loop 循环 
        A->B:同步
        activate B
        B --> A
        deactivate B
    end
else 异步
    A->>B:异步
    activate B
    B -> A:完成
    deactivate B
end
A-->sdj:结束
deactivate A
@enduml

在这里插入图片描述

工具 Plantuml

我现在在用Plantuml,官网文档很详细。
官网链接: https://plantuml.com/zh/

本博客是博主个人学习时的一些记录,不保证是为原创,如有侵权请与我联系。

留言即可,我会立即删除。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值