UML
上午题八:3~5分
下午题三:15分
事物
- 结构事物:结构事务是UML模型中的名词。它们通常是模型的静态部分,描述概念或物理元素
- 行为事物:行为事物是UML模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为
- 分组事物:分组事物是UML模型的组织部分,最主要的分组事物是包。结构事物、行为事物甚至其他事物都可以放进包内
- 注释事物:注释事物是UML模型的解释部分
关系
- 依赖:其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。有方向的虚线
依赖事物-------------------------->(虚线)独立事物
-
*关联:(结构关系)一组链,链是对象之间的连接。它描述了整体和部分间的结构关系。在关联上可以标注多重度/重复度和角色
多重度: 0…1表示0个或1个 0…*表示0个或多个
-
聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在
————◇(实线)
-
组合:部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在
————◆(实线)
-
-
泛化:父类泛化子类。特殊元素(子元素)的对象可替代一般元素(父元素)的对象
子类 ————▷(实线) 父类
-
实现:(类元之间的语义关系)其中一个类元指定了由另一个类元保证执行契约。使用场景:在接口和实现它们的类或结构之间、在用例和实现它们的协作之间
图
类图(一组对象、接口、协作之间的关系)、对象图、用例图、序列图、通信图、状态图、活动图、构件图(构件之间的组成和依赖)、部署图(软件和硬件之间的物理关系)
(序列图、通信图均被称为交互图)
静态建模:类图、对象图(有对象名和类名的)、用例图(有火柴人的)
动态建模:序列图(顺序图、时序图)、通信图(协作图)、状态图、活动图
物理建模:构件图(组件图)、部署图
交互图:序列图(顺序图、时序图)、通信图(协作图)
类图
展现一组对象、接口、协作和它们之间的关系 。类图给出系统的静态设计图(即系统要提供给最终用户的服务)
使用类图的方式:对系统的词汇建模、对简单的协作建模、对逻辑数据库模式建模
“+”、"-"表示的是权限修饰符:+:public公有的;-:private私有的;#:protected受保护的;~:package包的
多对多的类图中要单拎出来一个关联类
对象图
展现了某一时刻一组对象 以及它们之间的关系 ,对象图一般包括对象和链,描述了在类图中所建立的事物的实例的静态快照,对象图给出系统的静态设计视图或静态进程视图
对象名:类名(eg. d2:Department)
属性 (eg. name=…)
用例图
展现了一组用例(系统的一个功能)、参与者(外部实体)以及它们之间的关系
用例图通常包含这些元素:用例(椭圆表示)、参与者、用例之间的扩展关系extend和包含关系include
参与者和用例之间的关联 关系,包含 是用例和用例之间的关系,扩展 是用例和用例之间的关系
用例与用例以及参与者与参与者之间的泛化 关系,
- 包含关系:一个用例包含另一个用例
- 扩展关系:一个用例执行的时候,可能会发生一些特殊的情况或可选的情况
- 泛化关系:子类————▷(实线)父类(特殊元素指向一般元素)
用例图用于对系统的静态用例视图(支持系统的行为)进行建模,使用用例图的方式:对系统的语境建模、对系统的需求建模
交互图
包含对象、链、消息
序列图和通信图是同构的,它们之间可以相互转换
- 序列图(顺序图)
强调消息时间顺序的交互图——描述了以时间顺序组织的对象之间的交互活动
消息:调用消息即同步消息;异步消息即不用等待下一步反应,可继续操作;返回消息为虚线
特征:① 把交互的对象放在图的上方,沿水平方向排列
② 通常把发起交互的对象放在对象的左边,下级对象依次放在右边
③ 对象发送和接收的消息沿着垂直方向按时间顺序从上到下放置
④ 有对象生命线:对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在,有个大X表示生命的结束
⑤ 有控制焦点:控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段,顶部即动作开始,底部即动作的结束
- 通信图(协作图)
展示了对象之间的消息流及其顺序,强调接受和发送消息的对象的结构组织的交互图
特征:① 参加交互的对象作为图的顶点、连接这些对象的链表示为图的弧、用对象发送和接受的消息来修饰这些链
② 通信图有顺序号。为表示一个消息的时间顺序,给消息加上数字前缀
③ 沿同一条链可以显示许多消息,可能发自不同的方向,并且每个消息都有唯一的一个顺序号
*状态图
展现了一个状态机,它由状态、转换、事件和活动组成,通常是对反应型对象建模(包括出现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为)
- 状态:状态名称+活动(动作表达式);黑点为起点,圆圈包围黑点为终点
有三种标准事件:entry、exit、do
entry:入口动作,进入状态,立即执行
exit:出口动作,退出状态,立即执行
do:内部活动,占有有限时间,并可以中断的工作
时间事件:在绝对时间或在某个时间间隔内发生的事情所引起的事件,用关键字When或After表示
- 转换(迁移):两个状态(源状态,目标状态)+事件+[监护条件]+动作
事件会触发转换(迁移),若箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换
活动(动作)可以在状态内执行,也可以在状态内转换(迁移)时执行
组合状态(超状态):嵌套在另外一个状态中的状态称为子状态,含有子状态的状态的成为组合状态
活动图
- 特殊的状态图,展现了在系统内从一个活动到另一个活动的流程
- 专注于系统的动态 视图,强调对象间的控制流程
- 活动图可以表示分支、合并、分岔和汇合。并发分岔和并发汇合
- 活动图一般包括活动状态和动作状态、转换和对象
[…]——监护表达式
- 当对一个系统的动态方面建模时,通常有两种使用活动图的方式:对工作流建模(业务处理)、对操作建模
最大线程数=有多少个活动流——>并发分岔有多少分支
构件图
(组件图)展现了一组构件之间的组织和依赖,专注于系统的静态实现视图,通常把构件映射为一个或多个类、接口或协作
调用 “构件名” 实现的 “供需口名” 接口
部署图
用来面向对象系统的物理建模的方法,展示了系统的软件和硬件之间的关系,在实施 阶段使用(对系统的静态部署视图进行建模),<>表示制品
部署组件之间的依赖类似于包依赖