UML 类图
-
用例图(use case)
静态结构图: 类图、对象图、包图、组件图、部署图
动态行为图:交互图(时序图与协作图)、状态图、活动图
类图是描述类与类之间的关系的,是UML图中最核心的 -
UML 类图
- 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。
- 类之间的关系:
依赖、泛化(继承)、实现、关联、聚合与组合
继承
指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;
实现
指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;
依赖
可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用
关联
他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;
聚合
聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
组合
组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;
组合>聚合>关联>依赖;
对象图(Object Diagram)
对象图是表示在某一时间点上一组对象以及它们之间的关系的图。-
包图(Package Diagram)
包图是包和包之间的关系构成,是维护和控制系统总体结构的重要建模工具,用于描述系统的分层结构。
组件图(Component Diagram)
组件图描述的是在软件系统中遵从并实现一组接口的物理的、可替换的软件模块。
部署图(Deployment Diagram)
部署图是一种展示运行时进行处理的结点和在结点上生存的制品的配置的图。
复合结构图(Composite Structure Diagram)
复合结构图显示类元内部结构,包括它与系统其他部分的交互点。也显示各部分的配置与关系,这些部分一起执行类元的行为。
制品图(Artifact Diagram)
制品图展示了一组制品及它们之间的关系。
活动图(Activity Diagram)
活动图显示从活动到活动的流。
状态图(State Machine Diagram)
状态图显示了一个状态机,它强调从状态到状态的控制流。
用例图(User Case Diagram)
用例图是表现一组用例、参与者以及它们之间关系的图。
交互图(Interaction Diagram)
交互图属于行为图形的子集合,强调系统模型中的资料流程。
通信图(Communlcation Diagram)
通信图是强调发送和接收消息的对象的结构组织的交互图。
交互概述图(Interaction Overview Diagram)
交互概述图是将活动图和顺序图嫁接在一起的图,可以看作活动图的变体,它将活动节点进行细化,用一些小的顺序图来表示活动节点内部的对象控制流,也可以看作顺序图的变体,它用活动图来补充顺序图。
时序图(Sequence Diagram)
时序图显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互。
时间图(Timing Diagram)
时间图被用来显示随时间变化,一个或多个元素的值或状态的更改。也显示时控事件之间的交互和管理它们的时间和期限约束。
顺序(序列)图
1、动态分析
(1)任务:对对象群体行为建模,表达对象间动作协作关系,描述用例行为实现,显示用例实现/类操作涉及的对象和对象间的消息传递情况
(2)概述:动态分析模型描述系统的动态行为,主要建立系统的交互图(序列图、协作图)和行为图(状态图、活动图)
2、顺序图定义
描述以时间顺序组织的对象之间的交互活动
3、顺序图组成元素
(1)对象:参与交互的基本单位,可在交互中创建或删除,图例为
(2)生命线:表示一个对象在一段时间内存在,图例为
(3)激活:表示一个对象执行一个动作所经历的时间段,对象接收到消息活动就开始,图例(空心矩形条)为
(4)消息:一条消息是一次对象间的通信,图例为
4、消息类型
(1)调用(同步)消息:发送者请求接收者对象执行其某种操作,意味着阻塞和等待,图例为
(2)异步消息:消息发送后,发送者继续操作,不等待,用于并发,意味着非阻塞,图例为
(3)返回消息:消息的返回,图例为
(4)消息总结
5、顺序图绘图步骤
(1)设置交互的语境
(2)设置交互的场景
(3)为对象设置生命线
(4)按时间顺序排列消息
(5)设置激活期
(6)附加时间和空间约束
6、何时选择顺序图
主要针对特定交互期间的消息流
活动图
1、活动图定义
描述活动的顺序,展现一个活动到另一个活动的控制流
2、活动图组成元素
(1)动作
(2)活动
(3)动作流
(4)分支与合并
(5)分叉与汇合
(6)泳道
(7)对象流
图例为
3、活动图绘图步骤
(1)定义活动图要对什么建模
(2)添加起始和结束点
(3)添加活动
(4)添加活动间的转换
(5)添加决策点
(6)找出可并行活动之处