文章目录
重点: 类图、用例图、时序图
类图
类的表示
- 用矩形框表示
- 矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法
- 成员变量以及方法前的访问修饰符用符号来表示:“+”表示 public;“-”表示 private;“#”表示 protected;不带符号表示 default。
- 抽象类在UML类图中同样用矩形框表示,但是抽象类的类名以及抽象方法的名字都用斜体字表示
接口
-
矩形框表示
-
接口在类图中的第一层顶端用构造型 <>表示,下面是接口的名字,第二层是方法
-
方法2:类上面的一根棒棒糖(圆圈+实线)。圆圈旁为接口名称,接口方法在实现类中出现。
包
- 类和接口一般都出现在包中
关系
实现关系
- 用空心三角和虚线组成的箭头来表示
- 从实现类指向接口
泛化关系
- 对象与对象之间的继承关系: ”is a“
- 用空心三角和实线组成的箭头表示
- 从子类指向父类
关联关系
- 对象和对象之间的连接,它使一个对象知道另一个对象的属性和方法。
- 双向关联关系:用带双箭头的实线或者无箭头的实线双线表示。
- 单向关联:用一个带箭头的实线表示
- 箭头指向被关联的对象
- 多重性
- 数字:精确的数量
- ***或者0…***:表示0到多个
- 0…1:表示0或者1个
- 1…*:表示1到多个
依赖关系
- 弱关联关系
- 如果对象A用到对象B,但是和B的关系不是太明显的时候,就可以把这种关系看作是依赖关系。如果对象A依赖于对象B,则 A “use a” B。
- B为A的构造器或方法中的局部变量、方法或构造器的参数、方法的返回值,或者A调用B的静态方法。
- 用一个带虚线的箭头表示
- 由使用方指向被使用方,表示使用方对象持有被使用方对象的引用
- 被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为关联类B的全局变量
聚合关系(共享关系)
- 整体与部分的拥有关系:has a
- 整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享
- 用空心菱形加实线箭头表示,空心菱形在整体一方,箭头指向部分一方
组合关系
- 整体与部分间的包含关系:contains a
- 整体与部分是不可分的,部分也不能给其它整体共享,作为整体的对象负责部分的对象的生命周期
- 用实心菱形加实线箭头表示,实心菱形在整体一方,箭头指向部分一方
序列图Sequence Diagram
- 交互视图:动态模型
- 对对象之间传送消息的时间顺序的可视化表示
- 用途:把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。
结构
- 对象(Object)、生命线(Lifeline)、激活(Activation)、消息(Messages)、分支与从属流等元素构成
对象:类的实例
生命线
- 用来表示序列图中的对象在一段时间内的存在
- 一条虚线从上而下,通过底部边界的中心
激活
- 表示一个对象直接或通过从属操作完成操作的过程
- 在UML图中通过一个窄长的矩形来表示,矩形的高度表示对象存在的过程
消息
- 对象间的一种通信机制。由发送对象向另一个或其他几个接收对象发送信号,或由一个对象(发送者或调用者)调用另一个对象(接收者)的操作。
- 序列图的第一个消息总是从顶端开始,并且一般位于图的左边。然后继发的消息加入图中,稍微比前面的消息低些。
- 为了显示一个对象(例如,生命线)传递一个消息给另外一个对象,你画一条线指向接收对象,包括一个实心箭头(如果是一个同步调用操作)或一个棍形箭头(如果是一个异步讯号)。消息/方法名字放置在带箭头的线上面。正在被传递给接收对象的消息,表示接收对象的类实现的一个操作/方法。
- 一个返回消息画作一个带开放箭头的虚线,向后指向来源的生命线,在这条虚线上面,你放置操作的返回值。
- 分为5类:递归调用、普通操作、返回消息、异步调用的消息、过程调用。
分支与从属流
- 修改序列图中消息的控制流
- 分支:从同一点发出的多个消息并指向不同的对象,根据条件是否互斥,可以有条件和并行两种结构。
- 从属流:从同一点发出多个消息指向同一个对象的不同生命线。
同步 VS 异步
- 同步:封闭填充实线箭头
- 异步:分叉实线箭头
工具:Enterprise Architect
资料
https://zhuanlan.zhihu.com/p/109655171
https://blog.csdn.net/tianhai110/article/details/6361338/?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.base&spm=1001.2101.3001.4242