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

UML期末复习

  • UML简介
  • UML模型图的构成
  • UML事物
    • UML包含4种事物:
      • 构件事物: UML模型的静态部分,描述概念或物理元素
      • 行为事物:UML模型图的动态部分,描述跨越空间和时间的行为
      • 分组事物: UML模型图的组织部分,描述事物的组织结构
      • 注释事物: UML模型的解释部分,用来对模型中的元素进行说明,解释
  • UML关系
    • 依赖
    • 关联
    • 泛化
    • 实现
  • 用例图( Use Case Diagram )
    • 什么是参与者?
    • 什么是用例?
    • 参与者与用例之间的关系:
    • 用例与用例之间的关系:
    • 参与者之间的关系:
  • 类图(Class Diagram)
    • 接口
    • 抽象类
    • 模版类
    • 关联关系(直线加箭头)
    • 聚合关系 (空菱形加直线)
    • 组合关系 (实心菱形加直线)
    • 泛化关系(在类图中可以理解为继承)
    • 实现关系
    • 依赖关系
    • 用例图、类图例子: 演出售票系统
  • 对象图( Object Diagram )
  • 类图与对象图的不同之处
  • 顺序图(Sequence Diagram)
    • 生命线
    • 顺序图例子
      • 此图中存在的事物有:
  • 协作图(Collaboration Diagram)
    • 形如这样的:
      • 例一:
      • 例二:
    • 消息流(由箭头和标签组成)
    • 链接
    • 协作图与顺序图的区别和联系
      • 联系:
      • 区别:
  • 状态图(State Chart Diagram)
    • 转移
    • 状态图用于
    • 形如这样:
      • 例一:
      • 例二:
  • 活动图(Activity Diagram)
    • 主要用于:
    • 活动图事物:
    • 形如这样:
  • 构件图(Component Diagram)
  • 部署图(Deployment Diagram)
  • 常用 UML语法
  • 各个UML图之间的关系
  • 总览判断题
  • 总览选择题
  • 类图习题:
  • 顺序图练习题
  • 协作图练习题
  • 状态图练习

UML简介

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

UML模型图的构成

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

UML事物

UML包含4种事物:

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

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

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

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

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

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

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

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

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

UML关系

依赖

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

关联

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

泛化

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

实现

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

用例图( Use Case Diagram )

用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元,并显示哪个参与者参与了哪个用例的执行
形如这样:
在这里插入图片描述

什么是参与者?

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

什么是用例?

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

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

关联(用直线表示)

用例与用例之间的关系:

包含、扩展(带箭头的虚线)、泛化(空心三角+直线)
包含关系:例如登陆时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)

又称时序图,序列图,属于动态建模
顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,展示对象之间的交互 ,重点在消息序列上
作用:是用来表示用例中的消息顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件
形如这样:
在这里插入图片描述

生命线

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

顺序图例子

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

此图中存在的事物有:

对象(信息亭 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.设计时,描述操作的流程

活动图事物:

在这里插入图片描述

形如这样:

在这里插入图片描述

构件图(Component Diagram)

又称组件图,为系统的构件建模型,即构造应用的软件单元,还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响
形如这样:在这里插入图片描述

部署图(Deployment Diagram)

部署视图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配
形如这样的:
在这里插入图片描述

常用 UML语法

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

各个UML图之间的关系

在这里插入图片描述

总览判断题

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.选B
2.选B
3.选B
4.选B
在这里插入图片描述
1.选A
2.选A

状态图练习

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/308539.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

某查查请求头参数加密分析(含JS加密算法与Python爬虫源码)

文章目录 1. 写在前面2. 请求分析3. 断点分析4. 扣加密JS5. Python爬虫代码实现 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】&#xff…

Acrel-5000重点用能单位能耗在线监测系统的实际应用分析-安科瑞 蒋静

摘要:根据《重点用能节能办法》(国家发展改革委等第七部委2018年15号令)、《重点用能单位能耗在线监测系统推广建设工作方案》(发改环资[2017]1711号)和《关于加速推进重点用能单位能耗在线监测系统建设的通知》&#…

【踩坑】JDK1.8 AudioSystem 无法关闭流的问题

文章目录 一、前言二、开始狼人杀嫌疑人1:嫌疑人2: 三、复盘Jdk8原生bug解决方法和原理解析 一、前言 做了一个基于文字转语言的小接口,想删除本地wav文件来着,结果发现删除不了。 很明显被占用了,还是被Java占用了……

点击出现视频弹框

<VideoPlayer ref"video":size"{ width: 88%, height: 100% }" :videoSrc"currentVideo.url"></VideoPlayer>import VideoPlayer from /components/video-player.vue

MySQL之导入以及导出远程备份v

目录 一.navact数据导入导出 1.1 导入 1.2 导出 二. mysqldump命令导入导出数据 2.1 导入 2.2 导出 三.load data file进行数据导入导出&#xff08;只限于单表&#xff09; 3.1 导入 3.2 导出 四.远程连接 好啦就到这里了哦!!!希望帮到你哦!!! 一.navact数据导入导…

条款21:必须返回对象时,别妄想返回其引用

考虑一个表示有理数的类&#xff0c;其中包含一个计算两个有理数相乘的函数: class Rational { public:Rational(int numerator 0, int denominator 1) :n{ numerator }, d{ denominator }{} private:int n, d; // 分子和分母friend const Rational& operator*(const R…

Win11安装与卸载Oracle 19c数据库

一、官网下载安装包 进入官网&#xff0c;选择产品-Oracle DataBase&#xff0c;点击进入下载界面 官网 二、安装 将下载的压缩包进行解压&#xff0c;解压路径随意即可 1 双击exe文件开始安装 等待出现如下页面 2 选择所示&#xff0c;点击下一步 3 选择桌面类安装 4 创…

2000-2022各省、地级市风险投资(VC)数据

2000-2022各省、地级市风险投资&#xff08;VC&#xff09;数据 1、时间&#xff1a;2000-2022年 2、范围&#xff1a;350个地级市&#xff0c;34省 3、指标&#xff1a;包含投资机构层面的风险投资原始数据&#xff0c;汇总到省市层面的结果数据&#xff0c;具体指标如下&a…

走进shell

Linux系统启动时&#xff0c;会自动创建多个虚拟控制台。虚拟控制台是运行在Linux系统内存中的终端会话。 打开Linux控制台Terminal使用tty命令查看当前使用的虚拟控制台。 注&#xff1a;tty 表示电传打字机(teletypewriter) $ tty /dev/pts/0表示当前使用的是/dev/pts/0 虚拟…

Android 事件分发介绍

文章目录 一、目的二、环境三、相关概念3.1 事件分发 四、详细设计4.1应用布局4.1.1 应用布局结构4.1.2 LayoutInspector 4.2 关键View&方法4.2.1 相关View4.2.2 相关方法4.2.3 View与方法关系 4.3 事件分发概念图4.3.1 事件分发类图4.3.2 事件分发模型图 4.4 Activity组件…

vmlinux, System.map; cmake的find_package(Clang)产生的变量们; geogebra单位切向量(简单例子)

linux4.15.y内核中的函数个数 依赖关系: vmlinux, vmlinux.bin, bzImage cd /bal/linux-stable/ file vmlinux #vmlinux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, BuildID[sha1]b99bbd9dda1ec2751da246d4a7ae4e6fcf7d789b, not str…

渐进增强与优雅降级:提升用户体验的双重策略

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【人工智能】智能电网:未来能源的革命

未来能源的革命 智能电网革命的意义在于将电力行业从传统的集中式发电和集中式输配电模式转变为智能化、分布式、互动式的能源网络。 现在我们从以下方面详细认真的了解一下智能电网&#xff1a; 智能变电站&#xff0c;智能配电网&#xff0c;智能电能表&#xff0c;智能交互…

基于arcgis的遥感深度学习数据集制作

由于很多时候&#xff0c;我们在研究过程中往往需要根据实际情况使用自己的影像数据来提取目标物&#xff0c;如果没有合适的公开数据集的话&#xff0c;为了满足实际需要&#xff0c;我们就需要制作符合自己要求的数据集。 今天我们就根据实际情况来详细讲解如何利用arcgis&am…

CMU15-445-Spring-2023-Project #2 - B+Tree

前置知识&#xff1a;参考上一篇博文 CMU15-445-Spring-2023-Project #2 - 前置知识&#xff08;lec07-010&#xff09; CHECKPOINT #1 Task #1 - BTree Pages 实现三个page class来存储B树的数据。 BTree Page internal page和leaf page继承的基类&#xff0c;只包含两个…

K8S的部署策略,重建更新和滚动更新

Deployment Strategies 部署战略 When it comes time to change the version of software implementing your service, a Kubernetes deployment supports two different rollout strategies: RecreateRollingUpdate 当需要更改实施服务的软件版本时&#xff0c;Kubernetes …

代码随想录刷题题Day29

刷题的第二十九天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C Day29 任务 ● 01背包问题&#xff0c;你该了解这些&#xff01; ● 01背包问题&#xff0c;你该了解这些&#xff01; 滚动数组 …

WebGL在实验室方向的应用

WebGL在实验室方向的应用涉及到实验过程的可视化、数据分析、模拟等方面。以下是一些WebGL在实验室领域的应用示例&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.分子模型和化学反应模拟&#xff…

element plus el-form双列布局及拓展任意布局

1 场景 一般表单我们直接默认布局&#xff0c;也就是单列布局&#xff0c;突然有个人员信息表单&#xff0c;需要双列布局的需求&#xff0c;简单实现并拓展下 2 思路 直接无脑divflex布局实现 3 代码 <template><el-form ref"formRef" :model"fo…

2024--Django平台开发-Django知识点(五)

day05 django知识点 今日概要&#xff1a; 中间件 【使用】【源码】cookie 【使用】【源码 - Django底层请求本质】session【使用】【源码 - 数据库请求周期中间件】 1.中间件 1.1 使用 编写类&#xff0c;在类型定义&#xff1a;process_request、process_view、process_…