UML期末复习(带习题,选择题,判断题)(持续更新)

UML期末复习

UML简介

UML为面向对象设计提供统一的、标准的、可视化的建模语言,适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程

静态图:

用例图、类图、对象图、构件图、部署图

动态图:

顺序图、协作图、状态图、活动图

UML模型图的构成

事物(Things):UML模型中最基本的元素,是具有代表性的成分的抽象
关系(Relationships):关系把事物紧密联系在一起
图(Diagrams):图是事物和关系的可视化表示

UML事物

UML包含4种事物:

构件事物 行为事物 分组事物 注释事物

构件事物: UML模型的静态部分,描述概念或物理元素

它包括以下几种:
类:
具有相同属性相同操作 相同关系相同语义的对象的描述
接口:
描述元素的外部可见行为,即服务集合的定义说明
协作:
描述了一组事物间的相互作用的集合
用例:
代表一个系统或系统的一部分行为,是一组动作序列的集合
构件:
系统中物理存在,可替换的部件
节点:
运行时存在的物理元素
另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体

行为事物:UML模型图的动态部分,描述跨越空间和时间的行为

交互:
实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接
状态机:
描述事物或交互在生命周期内响应事件所经历的状态序列

分组事物: UML模型图的组织部分,描述事物的组织结构

包:
把元素组织成组的机制

注释事物: UML模型的解释部分,用来对模型中的元素进行说明,解释

注解:
对元素进行约束或解释的简单符号

UML关系

依赖

依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义

关联

关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系

泛化

泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系

实现

实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约

用例图( Use Case Diagram )

1.用例图是被称为参与者的外部用户所能观察到的系统功能的模型图
2.用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行
(或称为发起了哪个用例)。
3.用例图多用于静态建模阶段(主要是业务建模和需求建模)。
形如这样:
在这里插入图片描述

什么是参与者?

在系统外部与系统直接交互的人或事物
注意:一个实际用户可能对应多个参与者,不同用户也可以只对应一个参与者

什么是用例?

系统外部可见的一个系统功能单元

参与者与用例之间的关系:

关联(用直线表示)

用例与用例之间的关系:

包含(带箭头的虚线)、扩展(带箭头的虚线)、泛化(空心三角+直线)
包含关系:例如登陆时login需要进行密码验证,密码验证和login之间就是包含关系,login包含验证密码
扩展关系:例如登录login,登陆时密码错误会提示登录密码错误,提示登录密码错误就是login的扩展,需要满足条件时才触发

参与者之间的关系:

泛化(空心三角+直线)
例如:
经理参与用例管理人事和批准预算;安全主管参与用例批准安全证书;保安参与用例监视周边。安全主管可以担任经理和保安的角色,就能够参与经理和保安参与的用例。安全主管和保安和经理之间就是泛化关系

类图(Class Diagram)

属于静态建模
1.类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)

2.类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联
形如这样:
在这里插入图片描述

1.类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等
2.类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等

接口

一组操作的集合,只有操作的声明而没有实现

抽象类

通常以斜体表示(或直接标注abstract,或者一个小钥匙),不能被实例化的类,一般至少包含一个抽象操作

模版类

一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类

关联关系(直线加箭头)

描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱

聚合关系 (空菱形加直线)

特殊关联关系,父类没了子类还可以有

组合关系 (实心菱形加直线)

语义更强的聚合,部分和整体具有相同的生命周期,父类没了子类也会跟着没了

泛化关系(在类图中可以理解为继承)

父子类之间,父子接口之间
在这里插入图片描述
表示:实线加空心箭头

实现关系

在这里插入图片描述
表示:虚线加空心三角
映射关系:
在这里插入图片描述
java代码:
public interface Shape{
public abstract void Draw();
}
public class Circle implements Shape{
public void Draw();
private Point ptCenter;
private int nRadius;
}

依赖关系

表示:虚线加箭头

用例图、类图例子: 演出售票系统

在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作
用例图:
在这里插入图片描述
类图:
在这里插入图片描述

对象图( Object Diagram )

对象图是类图的实例,几乎使用与类图完全相同的标识。

在这里插入图片描述

类图与对象图的不同之处

1.类具有3个栏,自上而下依次为名称、属性和操作
2.对象有两个栏,依次是名称属性
3.类的属性分栏定义了所有属性的特征,对象则只定义了当前值,以便用于测试用例

顺序图(Sequence Diagram)

又称时序图,序列图,属于动态建模
1.顺序图用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的事件
2.顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。 顺序图属于动态建模。
3.顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序
3.浏览顺序图的方法是:从上到下查看对象间交换的消息。
作用:是用来表示用例中的消息顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件
形如这样:
在这里插入图片描述

生命线

坐标轴纵向的虚线表示对象在序列中的执行情况(即发送和接收的消息,对象的活动)这条虚线称为对象的“生命线”

顺序图例子

在这里插入图片描述
此图是描述购票的顺序图。顾客在信息亭与售票中心通话触发了这个用例的执行。顺序图中付款这个用例包括售票中心与信息亭和信用卡服务处使用消息进行通信过程。

此图中存在的事物有:

对象(信息亭 Kjosk ,售票中心 Box Office, 信用卡服务 Credit Card Service ),生命线,消息符号,信息亭发Request (count, performance)消息给售票中心,表示调用售票中心类的Request (count, performance)操作,来查询演出的信息,售票中心发Show Available(seat-list)消息给信息亭,表示调用信息亭类中的Show Available(seat-list)操作,给出可用的座位表。

协作图(Collaboration Diagram)

1.是一种交互图,描述对象间的协作关系,协作图跟顺序图相似,描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息
2.强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。
3.协作图可以表示类操作的实现。
作用:是表示一个类操作的实现

形如这样的:

例一:

在这里插入图片描述
解释:
actor发送Print消息给Computer,Computer发送Print消息给PrintServer,如果打印机空闲,PrintServer发送Print消息给printer

例二:

在这里插入图片描述

解释:
参与者需要乘坐电梯,他从系统外部按下按钮,让电梯到达他想去的楼层。此时,电梯系统的操作被启动,电梯控制对象以循环的方式检查所有的电梯,从中选择一个工作队列长度最短的。然后,它创建一个作业命令,并将该命令放入对应电梯的工作队列,接着激活队列。电梯对象并发运行,从它的队列中选择一个作业并执行。电梯是一个活动对象,它与它的控制线程并发执行。

消息流(由箭头和标签组成)

标签对消息作说明,其中,顺序号指出消息的发生顺序,并且指明了消息的嵌套关系;冒号后面是消息的名字
下面是一个完整的消息标签:
在这里插入图片描述

前缀 守卫条件 序列表达式 返回值 := 消息名

链接

用直线来表示链接,链接表示两个对象共享一个消息,位于对象之间或参与者与对象之间

协作图与顺序图的区别和联系简答题会考

联系:

1.协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同
2.协作图和顺序图可以相互转化

区别:

1.顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系 2.协作图强调对象间的关系(强调空间),但时间顺序必须从顺序号获得

状态图(State Chart Diagram)

1.状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成
2.说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件的响应

转移

1.转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部事件触发
2.对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果

状态图用于

揭示Actor、类、子系统和组件的复杂特性,为实时系统建模

形如这样:

例一:

在这里插入图片描述
解释:
初始状态->Available状态
票被预订(lock):Available->Locked
预定后付款(buy):Locked->Sold
预定解除(unlock):Locked->Available
预定过期(time out):Locked->Available
直接购买(assigned to):Available->Sold
换其它票(exchang) ,该票重有效:Sold->Available

例二:

在这里插入图片描述
解释:
登陆要求提交个人社会保险号(SSN)和密码(PIN)经验证有效后登陆成功
初态(Initial state)
获取社会保险号状态(Getting SSN)
获取密码状态(Getting PIN)
验证状态(Validating)
拒绝状态(Rejecting)
终态 (Final state)

状态转移的过程:

在这里插入图片描述

活动图(Activity Diagram)

1.活动图是状态图的一个变体,描述系统的动态行为
2.包含活动状态(ActionState),活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态
3.适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述
4.类似于传统意义上的流程图

主要用于:

1.业务建模时,用于详述业务用例,描述一项业务的执行过程
2.设计时,描述操作的流程

活动图事物:

虚线箭头:控制流
实线箭头:消息流
在这里插入图片描述

活动图关系

在这里插入图片描述

形如这样:

例一

在这里插入图片描述
解释:
本活动图描述一个处理订单的用例执行过
(1)执行setup order
(2)根据order的类型是执行不同的分支:
single order:执行assign seat、charge credit card
subscription:同时执行assignseats、debit account或
award bonus
single order与subscription两步可同时进行
(3) 最后mail packet。

例二

在这里插入图片描述
解释:
本例为一个按活动职责(带泳道)组织的处理订单用例的活动图(模型中的活动按职责组织)。活动被按职责分配到用线分开的不同区域(泳道):
Customer
Sales
Stockroom
(1)顾客要求服务,Sales负责接收定
单,并提交到Stockroom
(2) Stockroom处理定单,与此同时,
Customer付款,并由Sales处
Deliverorder至Customer。

构件图(Component Diagram)

又称组件图,构件图用于静态建模
1.是表示构件类型的组织以及各种构件之间依赖关系的图。
2.构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。

形如这样:

例一在这里插入图片描述

解释:

图中的构件名称是Dictionary字典
该构件向外提供两个接口,即两个服务Spell-check拼写检查、Synonyms同义词

例二

在这里插入图片描述

解释:

图中“Planner计划者”构件向外提供一个“update更新”接口服务
同时,该构件要求外部接口提供一个“Reservations预定”服务
虚线箭头:表示要求外部接口提供服务

构件图中的事物及解释:

在这里插入图片描述
构建实例:“:名字”

在这里插入图片描述

部署图(Deployment Diagram)

1.部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图
2.如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈
3.部署图的两种表现形式:实例层部署图和描述层部署图(会在后面的实例中给出)

形如这样的:

在这里插入图片描述

解释

图中包括的各种关系如下:
1.通信链关系(不带箭头的直线):TicketServe票服务器与Kiosk信息厅之间存在一对多的通信关联;与SalesTerminal售票终端也存在一对多的通信关联;
2.依赖关系(带箭头的虚线):TicketSeller售票构件依赖CreditCardCharges信用卡付款构件和TicketDB票数据库构件提供的服务。

部署图与构件图相同的构成元素:

构件、接口、构件实例、构件向外提供服务、构件要求外部提供的服务

部署图与构件图的关系:

1.部署图表现构件实例
2.构件图表现构件类型的定义
3.部署图偏向于描述构件在节点中运行时的状态,描述了构件运行的环境
4.构件图偏向于描述构件之间相互依赖支持的基本关系。

部署图中的事物及解释

在这里插入图片描述

部署图中的关系及解释

在这里插入图片描述

常用 UML语法

在这里插入图片描述
在这里插入图片描述

各个UML图之间的关系

在这里插入图片描述
BD表示行为描述图,FD表示功能图,DD表示数据流图

总览判断题

1、UML中一共有九种图:它们是用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图(正确)
2、用例图是从程序员角度来描述系统的功能:
(错误)
用例图是从用户(系统的参与者)的角度来描述系统的功能
3、类图是描述系统中类的静态结构,对象图是描述系统中类的动态结构
(错误)
对象图是类图的实例化,用于描述系统在特定时间点的对象实例及其之间的关系。
4、活动图和状态图用来描述系统的动态行为(正确)
5、协作图的一个用途是表示一个类操作的实现
(错误)
协作图主要用于表示对象之间的协作和消息传递,描述对象之间的通信和交互

总览选择题

1.请在下面选项目中选出两种可以互相转换的图
(a) 顺序图 (b)协作图 © 活动图 (d) 状态图
(a,b)
2.下面哪些图可用于BD阶段
(a)用例图 (b)构件图 ©类图 (d)顺序图
(a,c,d)

类图习题:

在这里插入图片描述
(1)选1
(2)选4
(3)选1
(4)选2
在这里插入图片描述
(5)选1、4
(6)选2、4
(7)选3

顺序图练习题

在这里插入图片描述
(1)选A
(2)选B
(3)选B

协作图练习题

在这里插入图片描述
1.选AC
2.选B
3.选B
4.选A
在这里插入图片描述
1.选A
2.选A

状态图练习

在这里插入图片描述
1.选c(超时和到达是触发事件)
2.选a

活动图练习

在这里插入图片描述1.选C,选B
2.选C

构件图习题

在这里插入图片描述
1.选B
2.选B
3.选A
4.选B

部署图习题

在这里插入图片描述
1.选B
2.选A
3.选B,A
4.选B
5.选A

  • 31
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王 歪歪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值