UML(Unified Modeling Language)是一种标准化的建模语言,用于描述软件系统的各种方面,如结构、行为、功能等。UML可以帮助软件开发人员更好地理解、设计和实现软件系统。
UML分五种视图组合成UML语言完整的模型
用例视图:
用户描述系统应具备的功能
逻辑视图:
设计人员和开发人员描述用例视图中提出的系统功能的具体实现
组件视图:
开发人员显示代码组件的组织结构
配置视图:
开发人员、系统集成人员、测试人员显示系统的具体部署
并发视图:
开发人员、系统集成人员显示系统的并发性,解决在并发系统中存在的通信和同步问题
UML九种图共分五类
1.用例图
是UML中用于描述软件系统的功能需求的一种图表。
它用于描述软件系统与用户之间的交互,包括用户的行为、系统的响应以及与外部系统的交互等。
用例图由用例、参与者、关系等组成。下面是一个用例图的基本组成部分:
用例(Use Case):用例表示系统中的一个功能或一组相关功能,描述用户的行为和系统的响应,可以是场景、流程、功能、任务等。
参与者(Actor):参与者表示与系统交互的外部实体,可以是人、组织、其他系统等。
关系(Relationship):关系表示用例和参与者之间的关系,包括关联关系、包含关系、扩展关系等。
用例图也是进行软件系统需求分析和功能设计的重要工具之一。
2.静态图
(1)类图:根据用例图抽象成类,描述类的内部结构和类与类之间的静态关系
六种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
泛化关系:表示实体对象之间的继承关系;三角空心箭头实线表示;
代码体现:以继承非抽象类的形式实现
实现关系:表示实体对象之间的继承关系;三角空心箭头虚线表示;
代码体现:以继承抽象类的形式实现
聚合关系:表示实体对象之间的关系,整体由部分构成的语义 ;菱形空心箭头实线表示
代码体现:通常是以成员变量的形式实现
组合关系:表示整体由部分构成的语义;菱形实心箭头实线表示
强依赖、特殊聚合关系
代码体现:通常是以成员变量的形式实现
关联关系:表示不同类的对象之间的结构关系;实线表示
强关联、可带箭头、默认不带箭头
代码体现:通常是以成员变量的形式实现
依赖关系:表示一个对象在运行期间会用到另一个对象的关系;箭头虚线表示
保持单向依赖、临时性关联关系
代码体现:局部变量、方法的参数或者对静态方法的调用
(2)对象图:是UML中描述对象实例的一种图表,它是类图的实例化。
对象图描述了系统中的对象实例以及它们之间的关系,是一种静态的结构图。
对象图由对象、属性、关系等组成。下面是一个对象图的基本组成部分:
对象(Object):对象图中的对象表示系统中的实例,可以是类的实例、子系统的实例等。
属性(Attribute):对象图中的属性表示对象的状态信息,包括属性的名称、类型等信息。
关系(Association):对象图中的关系表示对象之间的关系,包括关系的名称、多重性等信息。
对象图可以帮助软件开发人员更好地理解、设计和实现系统中的对象实例以及它们之间的关系。
3.交互图
(1)时序/序列图:是UML中用于描述对象之间时间序列上的交互关系的图表。
它主要用于描述系统中不同对象之间的消息传递和方法调用的时间顺序,是描述系统动态行为的重要工具。
时序图由对象、生命线、激活、交互、控制焦点、和消息等组成。下面是一个时序图的基本组成部分:
对象(Object):时序图中的对象表示系统中的实体,可以是类、组件、子系统等。
生命线(Lifeline):时序图中的生命线表示对象在时间轴上的存在期间。
消息(Message):时序图中消息表示对象之间的通信过程,可以是同步消息、异步消息、返回消息等。
激活条(Activation Bar):时序图中的激活条表示对象执行某个操作的时间范围。
时序图可以帮助软件开发人员更好地理解、设计和实现系统中的动态行为。
(2)协作图:是UML中描述对象之间交互的一种图表。
也被称为通信图,它与时序图类似,但是强调对象之间的协作关系,更加直观地展现对象之间的交互过程。
协作图由对象、关联、消息和时间顺序等组成。下面是一个协作图的基本组成部分:
对象(Object):协作图中的对象表示系统中的实体,可以是类、组件、子系统等。
关联(Association):协作图中的关联表示对象之间的关系,包括关联的名称、多重性等信息。
消息(Message):协作图中消息表示对象之间的通信过程,可以是同步消息、异步消息、返回消息等。
时间顺序(Time Sequence):协作图中的时间顺序表示消息传递和方法调用的时间顺序。
协作图可以帮助软件开发人员更好地理解、设计和实现系统中的对象之间的协作关系。
4.行为图: 描述系统的动态模型和对象之间的交互关系
(1)状态图
是UML中描述对象状态转换的一种图表。
它表示对象在不同状态下的行为和转换条件,描述了对象在系统中的行为和状态之间的转换过程。
状态图由状态、转移、事件、动作等组成。下面是一个状态图的基本组成部分:
状态(State):状态图中的状态表示对象所处的状态,可以是简单状态或复合状态。
转移(Transition):状态图中的转移表示状态之间的转换关系,可以是条件转移或事件转移。
事件(Event):状态图中的事件表示导致状态转换的事件,可以是时间、信号、条件等。
动作(Action):状态图中的动作表示状态转换时执行的动作。
状态图可以帮助软件开发人员更好地理解、设计和实现系统中对象的状态转换过程。
(2)活动图
是UML中描述业务流程或系统行为的一种图表,它描述了系统中的业务流程、操作、控制流程等。
活动图由活动、控制流、分支、合并等组成。下面是一个活动图的基本组成部分:
活动(Activity):活动图中的活动表示业务流程中的操作或行为,可以是简单操作或复合操作。
控制流(Control Flow):活动图中的控制流表示业务流程中的控制流程,描述活动之间的执行顺序。
分支(Decision):活动图中的分支表示业务流程中的条件分支,描述活动的执行路径。
合并(Merge):活动图中的合并表示业务流程中的合并流程,将多个分支的执行路径汇聚在一起。
活动图可以帮助软件开发人员更好地理解、设计和实现系统中的业务流程。
5.实现图
(1)构件图
是UML中描述软件系统的组成部分、组件之间的关系以及系统与外部环境的交互的一种图表。
它用于描述软件系统的组成结构和部署结构。
构件图由构件、接口、端口、连接器等组成。下面是一个构件图的基本组成部分:
构件(Component):构件图中的构件表示系统中的软件组件或模块,可以是单个类、库、模块等。
接口(Interface):构件图中接口表示构件提供给外部环境或其他构件的服务接口,普通接口或端口接口
端口(Port):构件图中的端口表示构件与外部环境或其他构件之间的通信端口,输入端口或输出端口。
连接器(Connector):构件图中连接器表示构件之间的关系,可以是依赖关系、协作关系、组合关系等
构件图可以帮助软件开发人员更好地理解、设计和实现系统中的组成结构和部署结构。
(2)部署图
是UML中描述软件系统的部署结构的一种图表。
它用于描述软件系统的物理结构和运行环境,包括系统中的硬件设备、网络设备、软件系统等。
部署图由节点、连线、制品等组成。下面是一个部署图的基本组成部分:
节点(Node):部署图中的节点表示物理设备或执行环境,可以是服务器、计算机、移动设备等。
连线(Connector):部署图中的连接器表示节点之间的关系,可以是实线、虚线、带箭头线等。
制品(Artifact):部署图中制品表示系统中的软件组件、文件、库等,可以是二进制文件、源代码文件等
部署图也是进行软件系统架构设计的重要工具之一。
图片来源于网络:https://www.jianshu.com/p/0d9bf91a2110