第六章 UML(上午题)

一、UML 概念
UML 词汇表包含三种构造块: 事务(对模型中最具代表性的成分抽象)、关系(把事务结合在一起)、图(聚集相关的事务)
二、UML 事务

结构事务:模型的静态部分,名词,描述概念或物理元素,包括 类、接口、用例、构件等
行为事务:模型的动态部分,动词,描述跨越时间空间的行为,包括交互、状态机、活动等
分组事务:模型的组织部分,最主要的分组事务是包,结构事务、行为事务或者其他分组事务都可以放在包里
注释事务:模型的解释部分,用来描述、说明、标注,注解是最主要的注释事务

三、UML 关系
**依赖关系:**是两个事务之间的语义关系,一个事务(独立事务)发生变化,会影响另一个事务(依赖事务)的语义;

  • 图形上通过虚线 + 箭头实现- A( 依 赖 事 务 ) ·······> B( 独 立 事 务 ) A 依 赖 于B , B 事务的变化会引起 A 事务的语义变化
    关联关系:是一种结构关系,描述了一组链,链是对象之间的链接,通常分为聚合关系和组合关系,描述了整体和部分之间的关联
  • 单向关联:实线 + 箭头 A() ——————> B() ,它使得一个类知道另一个类的属性和方法, A 类依赖于 B 对象,并把 B 作为 A 的一个成员变量,则 A , B 存在关联关系,关联可以是单向的也可以是双向的(双向关联不用箭头)
  • 双向关联: 实线 A —————— B ,关联多重度位于实线的 上方,表示一个 A 类实例可以关联多少个 B 类实例,一个 B 类 实例又可以关联多少个 A 类实例,通常多重度可以用 ( 1 * ) ( 1 1…* )等表示 , 多对多的双向关联,一般可以将关联关
    系提取出一个“关联类”

- 聚合关系 : 实 线 + 空 菱 形 A( 部 分 ) ——————<>B( 整体 ) 整体的生命周期与部分不同步,整体消失,部分依然可以存在
- 组合关系:实线 + 实心菱形 A( 部分 ) ——————<+>( 实心菱形不好画,用 <+> 代替 ) B( 整体 ) 整体生命周期与部分同步,整体消失,部分也消失
-泛化关系:是一种 “特殊” 和 “一般” 之间的关系,特殊元素(子)的对象可以替代一般元素(父)的对象,子元素共享了父元素的结构和行为

  • 图形上通过 实线 + 空心三角箭头
  • A( 特殊、子 ) ———————|> B( 一般、父 )  实现关系:是类元之间的语义关系,其中一个类元指定了由另一个类 元保证执行的契约
  • 通常的使用情况 : 1. 接口和实现他们的类或构件之间; 2. 用 例和实现他们的协作之间
  • 图形上通过 虚线 + 空心三角箭头
  • A( 类 ) ········|> B( 接口 )

四、类图(静态)

类图:展现了一组对象、接口、协作和他们之间的关系,类图中可以包含注解和约束,也可以有包或子系统
类图对静态设计视图建模的三种方式

对系统词汇建模
对简单的协作建模
对逻辑数据库模式建模

类图中类的组成

第一层 类名
第二层 属性名 ( 属性名 1: 属性的类型 )
第三层 方法名 (方法名 1(): 方法返回值类型),其中属性名和方法名前可以有修饰符 + public 公有的; - private 私 有的; # protected 受保护的;

五、对象图(静态)

对象图:展现了某一时刻,一组对象及他们之间的关系
对象图中对象与类图中类的区别:对象分为两层,第一层是 对象名( 对象名 : 类名 ) , 第二层 属性
六、用例图(静态)

用例图:展现了一组用例、参与者、以及他们之间的关系

参与者:参与者是与系统交互的外部实体,可以是使用者或者参与系统交互的外部系统,基础设备等
用例:是从用户角度描述的系统行为,用例是一个类,代表了一类功能,而不是该功能的某一个具体实现

包含关系 :用例与用例之间的关系 ,图形 上使用 虚线 + 箭头 +《 include 》 表 示 : A ( 基 本 用 例 ) ···《 include》 ···> B (被包含用例) , 箭头指向被包含的用例, A 用例包含 B 用例,则 A 执行用例 B 一定也会被执行
扩展关系 :用例与用例之间的关系 ,图形 上使用 虚线 + 箭头 +《 extend 》 表 示 : A ( 扩 展 用 例 ) ···《 extend 》 ···> B (被扩展用例) , 箭头指向被扩展的用例,被扩展后的用例 B 在执行时可能会遇到特殊的情况或者可选的情况,这个时候就可以用 扩展用例

包含关系与扩展关系区分:

 区分包含关系:使用某个用例,必然会使用另外一个用例  区分扩展关系:当执行某个用例,不一定要去执行另外一个用例

七、序列图(动态)

序列图,描述了以时间顺序组织的对象之间的交互活动,序列图是对一个用例进行详细过程的分解
图形上,参与交互的对象放在图的上方,沿水平方向排列,发起交互的对象放左边;然后把对象间发送和接收的消息,按照时间顺序由上到下排列
**对象生命线:**由对象起始的一条垂直向下的虚线,表示对象在一段时间内存在
**控制焦点:**对象生命线之上的一段瘦高的矩形,表示对象执行一个动作所经历的时间段
调用消息用实线 + 箭头表示,返回消息用 虚线 + 箭头表示调用消息所要执行此消息方法的是箭头指向的对象
八、通信图(动态)
通信图也成协作图,强调收发消息对象的结构组织
通信图与序列图的不同,在于通信图有路径、通信图有顺序号,延同一个链可以展示许多消息,每个消息都有唯一的顺序号
通信图与顺序图是同构的,可以相互转换
通信图展现了对象间的消息流及其顺序

九、状态图(动态)
状态图展现了一个状态机,它由状态、转换、事件和活动组成
状态图对系统的动态方面建模
当对系统、类或用例的动态方面建模时。通常是对反应型对象建模
状态:任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式

状态分为初态(实心圆)终态(实心圆外再加一层圆)和中间状态
状态图中的状态是一个圆角矩形,第一层是状态名,中间一层时状态变量(可以没有),最后一层为活动表(也可以没有)
状态之间用带箭头的线表示
“转换(迁移)” 箭头线上的事件发生时,转换开始 一个状态图只能有一个初态,可以有多个终态或者没有终态

活动:由 “事件名 / 动作表达式” 组成 位于状态的活动表中 , 有如下三种标准事件

entry: 入口动作,进入状态,立即执行
do: 内部活动,占用有限时间,可以中断工作
exit:出口动作,退出状态,立即执行

事件:某个特定时刻发生的时间,它是对引起系统做动作,和一个状态转换成另一个状态的事件的抽象

转换由 “事件(监护条件) / 动作” 组成
转换包括两个状态
事件触发转换
活动(动作)可以在状态内执行也可以在状态转换时执行
监护条件是一个 boolean 表达式
“事件”发生且“监护条件为真”状态转换才发生,状态转换开 始后才会执行“动作”

组合状态:一组状态转换作用矩形包围,作为另一个状态图中的一个状态存在

组合状态中的所有子状态完成,才会走组合状态外的其他状态

十、活动图(动态)

活动图展现了系统从一个活动到另外一个活动的流程,对系统的功能建模很重要,强调了对象间的控制流程
活动图有起始、终止、圆角矩形组成的活动、实线 + 箭头组成的流、并发分叉、并发汇合、分支、分支上的监护表达式组成
用活动图来对工作流建模、对操作建模
并发分叉后直接相连的活动可同时执行
十一、构件图(静态)
构件图也称为组件图,展现了一组构件之间的组织和依赖
与类图相关,通常把构件映射为一个或多个类、接口或者协作
构件图有特殊的标记,构件图之间通过 供接口(空心圆)和 需接口(圆弧)对接,供接口提供相应的方法实现,需接口来调用这个方法
十二、部署图
部署图用来对系统物理层面建模
部署图立体图形,《 artifact 》表示制品
部署图展现了系统软件和硬件间关系,在实施阶段使用
部署组件之间的关系类似包依赖
十三、总结
静态建模:类图、对象图、用例图
动态建模:序列图、通信图、状态图、活动图
物理建模:构件图、部署图
交互图:序列图(顺序图、时序图)、通信图(协作图)

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小白L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值