uml

UML分静态图和动态图两种,其中常用的静态图5种,动态图4种。

常用的静态图:用例图、类图、包图、对象图、部署图

常用的动态图:顺序图,通信图(UML1.x 时称为协作图),状态机图,活动图

用例图

用例图是编写需求说明时经常用到的需求表达方式,用于向开发、测试同事说明需求中用户与系统功能单元之间的关系。

用例图的三大组成元素:参与者、用例、参与者与用例之间的关系。

参与者与用例之间的关系(4种):关联、归纳(泛化)、包含、拓展和依赖。

此前回答过相关问题,这里不作赘述,有需要的小伙伴可以移步查看▼

 

类图

用于描述系统中所包含的类以及它们之间的相互关系。

类图的两个重要元素:类,以及类之间的关系。

类的关系(6种):依赖关系、继承/泛化关系、实线关系、关联关系、聚合关系、组合关系

此前对类图做过详细拆解,这里不作赘述,有需要的小伙伴可以移步查看▼

 

对象图

用于描述某一时刻的一组对象及它们之间的关系。

对象图的组成元素:对象、链。

此前对对象图做过详细拆解,这里不作赘述,有需要的小伙伴可以移步查看▼

 

对象图经常被拿来和类图做比较。对象图可以视作类图的实例,用来表达各个对象在某一时刻的状态。两者更多的联系和差别,可以查看此前的文章▼

 

包图

包图通常用于描述系统的逻辑架构——层、子系统、包等。层可以建模为UML包。UML包用一大一小两个矩形组合而成。如果内部显示了其成员,则包名称标在上面的小矩形内,否则可以标在包内。

包拥有的元素:类、接口、组件、节点、协作、用例、图以及其他包。包的可见性用来控制包外界的元素对包内元素的可访问权限。这种可见性它分为3种,即公有访问、保护访问和私有访问。

包之间可以有两种关系:依赖、泛化。

 

部署图

部署图是用来显示系统中软件和硬件的物理架构。使用部署图不仅可以显示运行时系统的结构,还能够传达构成应用程序的硬件和软件元素的配置和部署方式。

部署图的组成元素:结点、构件(因此部署图也经常和构件图一起使用)、接口、连接。

 

顺序图

顺序图,又名序列图、时序图。用于描述对象之间的传递消息的时间顺序(包括发送消息、接收消息、处理消息、返回消息等)。

顺序图的组成元素:对象、生命线、消息,其中消息又分为同步消息、异步消息、返回消息、自关联消息。

此前对顺序图做过详细拆解,这里不作赘述,有需要的小伙伴可以移步查看▼

 

关于流程图(换成活动图来理解也是没问题的)、顺序图、状态图的差别,感兴趣的小伙伴也可以查看▼

 

通信图/协作图

通信图描述的是对象和对象之间的调用关系,体现的是一种组织关系。

通信图组成元素:对象、链接、消息。

通信图和时序图有点类似。但时序图着重于时间顺序,而通信图则关注的是对象之间的组织关系,通信图中的时间顺序可以从消息序号中获得。在语义上这两个图是等价的可以互相转换而不会丢失信息。

状态机图

状态机图描述一个对象在其生命周期中的各种状态以及状态的转换。

状态机主要由状态、转换、事件、动作、活动5部分组成。

顺序图、通信图:描述多个对象间的交互。
状态机图:描述单个对象的状态及引起状态变化的原因。

用一个简化的图来表示三者的差别就是:

 
 

活动图

活动图描述活动的顺序,展现从一个活动到另一个活动的控制流,它本质上是一种流程图。

组成元素:起点、终点、活动名称、判断条件、分支与合并、接收信号、发送信号、泳道(其实和流程图很相像)

泛化

(也就是我们传统意义上的继承关系)

img

子类继承父类,关系用extend关键字标识;

关联

img

可以说是一种属于关系,图中即说的是PhoneNumber类属于Master类,同时,除了一对一的关系之外,还可以用一对多、多对一、多对多的关联关系,除了单向关联之外,双向关联也是存在的;

需要注意的是,在关联关系里面,还有着两种特殊的关系:聚合和组合

聚合

--体现出来的是整体与部分的关系,是一种“弱拥有”关系,部分能够脱离整体而单独存在

img

如上图所示,轮胎能够脱离汽车而单独存在;

组合

体现出来的是一种包含的关系,关系比聚合更强,是一种“强聚合”的关系,部分不能离开整体而单独存在

img

部门不能脱离掉公司而单独存在;

依赖

img

指一个类依赖于另一个类而存在;

上图就是指的是Person类依赖于Air类,即Person类的存在使用了Air类;

实现

img

一个class类实现一个interface接口;

implements关键字标识;

posted @ 2023-12-07 19:07  你好,幸会  阅读(37)  评论(0编辑  收藏  举报