UML中有正式图:13种,但是常用的并不多,软件开发在用UML设计时,注重的是软件设计,而不是注重UML,因此一个软件的设计不需要将UML中所有图都用到,UML只是一种工具,辅助我们进行软件设计的工具。
四种常用图例
个人来讲最常用的4种图例:
- 用例图
- 类图
- 顺序图
- 活动图
用例图
进行需求分析,获得用例图
屠苏管理系统
类图
从用例图推出类图,并分析出每个类的成员变量和成员方法。比如人类
看这篇博文的朋友,应该对面向对象都有一定的了解,那么我们应该知道下面这个等式:
类=属性(成员变量)+行为(成员方法)
例如:人类,有属性:姓名,性别,年龄等;有行为:吃,喝,拉,撒,睡等。
借阅者类图
顺序图
实现对象之间的消息传递,以完成相应功能。比如李四和张三说:开门需要钥匙,张三将钥匙给李四,李四就打开门了。三个对象:门,张三,李四之间传递消息,完成把门打开的功能。
教务系统相关
活动图
类中的成员方法的逻辑实现流程图,一般用活动图表示。比如,人类吃的行为,怎么吃?
图书借阅活动图
常用图例介绍
1.用例图(UseCase Diagrams)
用例图是从用户(角色)的角度出发,描述角色和用例之间的关系。即:谁要使用系统,一级他们使用系统可以做什么。简单来说就是:谁,可以用此系统做什么。
todo
2.类图(Class Diagram)
类图是描述系统中的类,以及各个类之间的关系的静态视图。是面向对象系统建模中最常用和最重要的图,是定义其他图的基础。
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
2.1.泛化(Generalization)
泛化是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
2.2.实现(Realization)
实现是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2.3.关联(Association)
关联是一种拥有的关系,它使一个类知道另一个类的属性和方法;关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
2.4.聚合(Aggregation)
聚合是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
2.5.组合(Composition)
组合是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
2.6.依赖(Dependency)
依赖是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
3.活动图(Activity Diagrams)
活动图描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图的业务需求。
活动图是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。
4.序列图-时序图(Sequence Diagrams)
序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。序列图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
序列图展示的是多个系统或者对象之间的交互的顺序,强调时间顺序。
摘抄自:
大佬1:https://blog.csdn.net/weixin_45427945/article/details/131276997
大佬2:https://blog.51cto.com/sunshine2624/1875515