uml总结
- 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,官网文档很详细。
本博客是博主个人学习时的一些记录,不保证是为原创,如有侵权请与我联系。
留言即可,我会立即删除。