UML
- UML
- 事物
- 关系
- 依赖
- 关联
- 聚合
- 组合
- 泛化
- 实现
- 类图
- 对象图
- 用例图
- 序列图
- 通信图
- 状态图
- 活动图
- 构件图
- 部署图
- 练习题
UML
上午选择题3-4分,下午案例分析必考
UML是统一建模语言,和程序设计语言并无关系。
UML三个要素:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用与整个语言的一些公共机制。
UML的基本构造块包括:事物(对模型中最具有代表性的成分的抽象)、关系把事务结合在一起)、图(聚集了相关的事物)。
UML中有四种事物:结构事物、行为事物、分组事物、注释事物。
事物
-
结构事物:模型的静态部分,如类、接口、用例、构件等;如下图示例:
-
行为事物:模型的动态部分,如交互、活动、状态机
-
分组事物:模型的组织部分,如包;了解
-
注释事物:模型的解释部分,依附于一个元素或一组元素之上对其进行约束或解释的简单符号。了解
关系
需要知道各个关系以及各个图例对应的关系
依赖
一个事物的语义依赖于另一个事物的语义的变化而变化。
带实心箭头的虚线,箭头指向被使用的类
一个类依赖于另一个类的定义。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖
关联
是一种结构关系,描述了一组链,链是对象之间的连接。分为组合和聚合,都是部分和整体的关系,其中组合事物之间关系更强。两个类之间的关联,实际上是两个类所扮演角色的关联,因此,两个类之间可以有多个由不同角色标识的关联。
实线,0…1,0…* 表示一个类与另一个类的关系 * 表示多个,1表示一个
类与类之间的关系,如下图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。
聚合
带空心菱形的实线,菱形指向整体
部分可以离开整体而单独存在,是一种“弱拥有”的关系。如车和轮胎是整体和部分的关系, 轮胎离开车仍然可以存在
组合
带实心菱形的实线,菱形指向整体
部分不能离开整体单独存在,这种关系比聚合更强,也称为强聚合。如公司和部门是整体和部分的关系, 没有公司就不存在部门
泛化
一般特殊的关系,子类和父类之间的关系
带三角箭头的实线,箭头指向父类。
是一种继承关系。例如:动物和猫/狗的关系,猫/狗是动物的一种
实现
一个类元指定了另一个类元保证执行的契约。
带三角箭头的虚线,箭头指向接口
父类是一个接口,子类实现了父类接口里的所有抽象方法。比如:大雁需要飞行,就要实现fly()接口
类图
- 类图:静态图,为系统的静态设计视图,展现一组对像、接口、协作和它们之间的关系。
- 多重度:指的是不同类之间的联系,类似于数据库设计的表与表的关系
例如1…*:一对多,一个Company对应多个Department,1个Company对于多个Office
对象图
比较少见
对象图:静态图,展现某一时刻一组对象及它们之间的关系,为类图的某一快照。在没有类图的前提下,对象图就是静态设计视图。
用例图
- 用例图:静态图,展现了一组用例、参与者以及它们之间的关系。
- 用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作
- 用例之间的关系:包含(include)、扩展(extend)、泛化。
包含是一定要去做的事情;拓展是可做可不做的事情;泛化是多个实现方式
序列图
序列图:即顺序图,动态图,是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动
有同步消息(进行阻塞调用,调用者中止执行,等待控制权返回,需要等待返回消息,用实心三角箭头表示)、异步消息(发出消息后继续执行,不引起调用者阻塞,也不等待返回消息,由空心箭头表示)、返回消息(由从右到左的虚线箭头表示)三种。
通信图
了解
通信图:动态图,即协作图,是顺序图的另一种表示方法,也是由对象和消息组成的图,只不过不强调时间顺序,只强调事件之间的通信,而且也没有固定的画法规测,和顺序图统称为交互图。如下:
状态图
了解
状态图:动态图,展现了一个状态机,描述单个对象在多个用例中的行为,包括简
单状态和组合状态。转换可以通过事件触发器触发,事件触发后相应的监护条件会
进行检查。
状态图中转换和状态是两个独立的概念,如下:图中方框代表状态,箭头上的代表
触发事件,实心圆点为起点和终点。下图描述的就是一个图书的状态变化
活动图
活动图:动态图,是一种特殊的状态图,展现了在系统内从一个活动到另二个活动
的流程。
活动的分岔和汇合线是一条水平粗线
每个分岔的分支数代表了可同时运行的线程数。
活动图中能够并行执行的是在一个分岔粗线下的分支上的活动。
构件图
了解
构件图(组件图):静态图,为系统静态实现视图,展现了一组构件之间的组织和依赖。
部署图
了解
部署图:静态图,为系统静态部署视图,部署图描述的事物理模块的节点分布。它与构件图相关
通常一个结点包含一个或多个构件。其依赖关系类似于包依赖,因此部署组件之间的依赖是单向的类似于包含关系。
练习题
【2020】UML图中,对象图展现了(),()所示对象图与下图所示类图不一致
(A)一组对象、接口、协作和它们之间的关系
(B)一组用例、参与者以及它们之间的关系
©某一时刻一组对象以及它们之间的关系
(D)以时间顺序组织的对象之间的交互活动
答案C D
A和B是1对多关系,D是多对1
【2019】采用面向对象方法进行软件开发时,将汽车作为一个系统。以下()之间不属于组合(Composition)关系。
(A)汽车和座位
(B)汽车和车窗
©汽车和发动机
(D)汽车和音乐系统
答案D
组合是强关联,聚合是弱关联
【2014】如下所示的UML序列图中,(42)表示返回消息,Account类必须实现的方法有(43)。
(42)
A.tansID
B.balance
C.withdraw
D.deposit
(43)
A.start
B.checkBalance(withdraw()
C.deposit
D.checkBalance()withdraw()和deposit()
答案B D