目录
一、前言
二、使用工具
三、UML面对对象
四、UML图标
4.1 事物
4.2 关系
4.3 关系线数字
4.4 关系图示例
五、UML开发思路
一、前言
不管是系统项目工程师,还是开发人员,熟悉使用UML都必不可少。UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;它是一种模型语言也是面对对象的分析和设计的继任者,能集成UML的IDE工具可以生成各式各样的编程语言,如C++,Java等。在设计产品系统架构,与客户进行需求确认,UML使得需求清晰明了。
二、使用工具
Drawio, 可以绘制各种流程图,UML图包括活动图、时序图、状态图、SysMl系统模型图、Uml图统一模型图。
PowerDesigner
Eclipse UMLet
VS Enterprise
三、UML面对对象
类图是使用面向对象的社会最流行的 UML 图。它描述了在一个系统中的对象和他们的关系,能够让我们在正确编写代码以前对系统有一个全面的认识。
对象:数据、控制数据的方法。数据包括对象的状态、属性,可能包含其他类对象。它代表一个实体的基本构建块
类:对具有相同特点或者方法的归纳为一个类别
抽象:不同类进一步提炼出相同的方法
封装:将数据绑定在一起,隐藏外部世界的机制
继承:对已有类进行扩展,派生新的类
多态:同样的方法以不同的方式存在,比如参数个数,参数类型
面向对象的分析的最重要的目的是要设计一个系统来识别对象,因此设计要确定一个系统中的对象,确定它们之间的关系,做一个设计,使用面向对象的语言可以转换为可执行文件。
- 三个基本模块:事务,关系,图
- 四种事务
- 结构事务:类,接口,协作,用例,活动类,组件,节点
- 行为事务:交互,状态机
- 分组事务:包
- 注释事务:注释
- 四种关系
- 依赖
- 关联
- 实现
- 泛化
- 十种图
- 用例图:从用户角度描述系统功能,指出各功能的操作者,来捕捉系统的动态性质
- 类图:表示系统的静态视图,是唯一可以直接映射到面向对象的语言UML图
- 对象图:看作是类图在某一时刻的实例
- 包图
- 部署图:从系统工程师的角度设计节点间的关系,是应用软件开发的一个组成部分
- 活动图:是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动
- 状态图:着重描述从一个状态到另一个状态的流程,主要有外部事件的参与
- 序列图:显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互
- 协作图:描述对象间的协作关系,显示对象间的动态合作关系
- 组件图:包括物理组件,如库,档案,文件夹等,从实施的角度使用元件图表示整个系统
四、UML图标
UML主要有事物,关系和图;书屋是实体抽象化的最终结果,是UML构建块最重要的组成部分,包括结构事物、行为事物、分组事物、注释事物。
4.1 事物
类指具有相同属性、方法、关系和语义的对象集合。
接口指类或组件所提供的服务,描述了类或组件对外的可见动作
协作定义了元素之间的相互作用
用例定义了执行者(系统外部和系统交互的人)和被考虑的系统之间的交互来实现一个业务目标
组件描述了物理系统的一部分
节点可以被定义为在运行时存在的物理元素
交互被定义为一种行为,包括一组元素之间的消息交换来完成特定的任务。
状态机由一系列对象的状态组成,表示一个对象在其生命周期的状态
分组事物可以看作一个盒子,模型可以在其中被分解。只有一种分组事物“包”,存在于开发阶段,而组件在运行时存在。
注释用于捕捉UML模型元素的言论,说明和注释
4.2 关系
UML类图各符号含义 :类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形,符号顺序代表了类与类之间关系的耦合度,越向右耦合度越高。
理解记忆: 一般箭头指向被关系的一方。
虚线:是一种约束
实线:是一种关联,连接
箭头:一般
空心箭头:具体
实心箭头:更具体
各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
依赖关系:两个事物之间语义联系,相互影响;类之间的联结;元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;如人和车的关系;举个例子,如某人要过河,则人与船的关系就是依赖,人过河之后,与船的关系就解除了,因此是一种弱的连接。在代码层面,为类B作为参数被类A在某个方法中使用。人箭头指向船
关联关系:元素间的结构化关系,是一种弱关系,是类与类之间的联结,它使一个类知道另一个类的属性和方法,可以单向也可以双向;如唐僧和徒弟是师徒关系; 实线,箭头
泛化关系:可以被定义为一个专门的元件与一个广义的元素,描述了对象世界的继承关系。实线,空心箭头
实现关系:类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。这个关系最常用于接口(操作,执行函数)。uml中用空心箭头和虚线表示,箭头指向定义约定的元素。
聚合关系:描述一组对象之间连接的结构关系,整体和部分间结构关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合关系是关联关系的一种,是强的关联关系。
组合关系:组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。组合也叫合成,是非共享的,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁,用一句话说是同生共死。如Employee和TimeCard,公司和部门。
4.3 关系线数字
关系线上的数字含义:表示被连接方跟自己(数字)的关系。
多重性有哪些表示?
-
1: 表示1个
-
0..*: 表示任意多个( ≥0)(*可以换成n)
-
*: 表示任意多个( ≥0)
-
1..*: 表示1个或多个(≥1)
-
0..1: 表示0个或1个
-
5..11: 表示5-11个
-
1,3,8: 表示个1或3个或8个
-
0,3..8: 表示0个或3-8个
4.4 关系图示例
五、UML开发思路
设计:系统设计包括类,接口和协作。 UML类图,对象图支持。
实现:实现定义的组件组装在一起,使一个完整的物理系统。 UML组件图是用来支持实施的角度。
处理:流程定义了系统的流动,可以使用活动图。因此,在设计中所用的相同的元件也可用来支持当前角度看。
部署:部署代表物理节点的硬件系统构成。 UML部署图是用来支持这个角度来看
参考:
UML概述_w3cschool
认识SysML图 | Enterprise Architect 用户指南 (uml.com.cn)
UML图及其含义_半路出家de程序猿的博客-CSDN博客_uml图标含义
UML学习笔记(4)——类图之间的关系 - 爱码网 (likecs.com)