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

news2024/12/24 1:59:26

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1 快速前端开发

1 前端开发 目的:开发一个平台(网站)- 前端开发:HTML、CSS、JavaScript- Web框架:接收请求并处理- MySQL数据库:存储数据地方快速上手:基于Flask Web框架让你快速搭建一个网站出来。1.快速开发…

您的计算机已被.LIVE勒索病毒感染?恢复您的数据的方法在这里!

引言: 在数字时代,.LIVE勒索病毒如暗夜中的黑暗调,威胁着个人和企业的数字安全。本文将深入介绍.LIVE勒索病毒的特征,提供解密数据的方法,并讨论预防措施,让我们共同筑起数字世界的防护之墙。数据的重要性…

12.1SPI驱动框架

SPI硬件基础 总线拓扑结构 引脚含义 DO(MOSI):Master Output, Slave Input, SPI主控用来发出数据,SPI从设备用来接收数据 DI(MISO) :Master Input, Slave Output, SPI主控用来发出数据,SPI从设备用来接收…

【设计模式】创建型模式之单例模式(Golang实现)

定义 一个类只允许创建一个对象或实例,而且自行实例化并向整个系统提供该实例,这个类就是一个单例类,它提供全局访问的方法。这种设计模式叫单例设计模式,简称单例模式。 单例模式的要点: 某个类只能有一个实例必须…

家用洗地机怎么选?家用洗地机排名

现代很多年轻人常常为家庭卫生问题而感到头痛。一整天的工作之后,回到家中还得花费大量时间来处理地面的清理工作,包括吸尘和拖地等繁琐的任务。这些任务让人感到相当烦躁,尤其是对于有小孩的家庭来说,地板上的油污和食物残渣经常…

一键修复所有dll缺失的工具,dll修复工具下载使用教程

在计算机使用过程中,我们经常会遇到各种软件或系统错误提示,其中最常见的就是“找不到指定的模块”或“无法找到某某.dll文件”。Dll是动态链接库的缩写,它是Windows操作系统中的重要组成部分,负责提供各种功能和资源给应用程序使…

自学Python,需要注意哪些?

为什么要学习Python? 在学习Python之前,你不要担心自己没基础或“脑子笨”,我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很多事情。在这个喧嚣的时代,很多技术或概念会不断兴起…

骑砍战团MOD开发(37)-module_skin.py皮肤系统

一.脸谱代码 与地形代码类似,骑砍引擎将人物头部模型采用脸谱代码制作,以实现不同脸谱的动态拼接以及捏脸等功能。 在人物捏脸界面CtrlE可编辑脸谱代码,可配置肤色,发型,年龄等相关参数.在module_troops.py可实现不同兵种脸谱. #第12 13个参数进行脸谱参数配置 # Each troop …

C++内存管理机制(侯捷)笔记1

C内存管理机制(侯捷) 本文是学习笔记,仅供个人学习使用。如有侵权,请联系删除。 参考链接 Youtube: 侯捷-C内存管理机制 Github课程视频、PPT和源代码: https://github.com/ZachL1/Bilibili-plus 第一讲primitives的笔记 截至…

N卡可以点亮但是A卡无法点亮故障解决记录

目录 关键词平台说明一、故障现象二、排查过程三、根本原因四、措施3.1进入boot后更改CSM启动为下图所示。3.2更改PCIE自动为3.0 关键词 英伟达、AMD、显卡、无法点亮 平台说明 项目Value主板铭瑄 TZZ_H61ITX 2.5GCPU12400f显卡RX6600 RTX4060附加设备PCIE 延长线–显卡 一…

C#入门篇(一)

变量 顾名思义就是变化的容器,即可以用来存放各种不同类型数值的一个容器 折叠代码 第一步:#region 第二步:按tab键 14种数据类型 有符号的数据类型 sbyte:-128~127 short:-32768~32767 int:-21亿多~21亿多…

尝试OmniverseFarm的最基础操作

目标 尝试OmniverseFarm的最基础操作。本地机器作为Queue和Agent,同时在本地提交任务。 主要参考了官方文档: Farm Queue — Omniverse Farm latest documentation Farm Agent — Omniverse Farm latest documentation Farm Examples — Omniverse Far…

微机原理常考简答题总结

一,8086和8088这两个微处理器在结构上有什么异同? (1)共同点:内部均由EU、BIU组成,结构基本相同;寄存器等功能部件均为16位;内部数据通路为16位;指令系统相同。 &#x…

让测试人头疼的web自动化之验证码识别彻底解决方案

验证码识别解决方案 对于web应用程序来讲,处于安全性考虑,在登录的时候,都会设置验证码,验证码的类型种类繁多,有图片中辨别数字字母的,有点击图片中指定的文字的,也有算术计算结果的&#xff…

vsCode输出控制台中文乱码解决

在tasks.json里的args中添加 "-fexec-charsetGBK", // 处理mingw中文编码问题 "-finput-charsetUTF-8",// 处理mingw中文编码问题

现代操作系统复习笔记【核心考点知识+重点复习题】

文章目录 一、核心考点基础知识第一章 概述1、操作系统的基本概念、基本功能2、分时系统、批处理系统、实时系统的主要特征3、用户接口、系统调用过程4、单到与多道程序技术5、操作系统虚拟机体系结构6、CPU工作模式;7、部分课后习题 第二章 进程与线程1、进程的基本…

Tsmaster使用笔记整理

选择厂商 根据你所选择的CAN分析仪的厂商,确定你的厂商设备设置。 我一般会选择PEAK,和 ZLG多一点,其他的没有用过。除了上图中的,市面上的CAN分析仪还有CANanlyst、广成科技、创芯科技等,但它们都不能在Tsmaster上使…

如何利用 NFTScan Portfolio 功能分析钱包 NFT 持仓

随着 NFT 市场的扩大和投资者的增加,追踪和管理大量 NFT 资产正变得越来越复杂,无论是新手还是资深投资者,都需要借助实时的 NFT 数据作为判断依据。因此,一个能够全面分析 NFT 钱包持仓的工具就显得尤为重要。帮助投资者掌握自身…

Linux C/C++ 显示NIC流量统计信息

NIC流量统计信息是由操作系统维护的。当数据包通过NIC传输时,操作系统会更新相关的计数器。这些计数器记录了数据包的发送和接收数量、字节数等。通过读取这些计数器,我们可以获得关于网络流量的信息。 为什么需要这些信息? 可以使用这些信息来监控网络…

Linux的网络服务DHCP

一.了解DHCP服务 1.1 DHCP定义 DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服…