我的编程空间,编程开发者的网络收藏夹
学习永远不晚

试题三(UML)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

试题三(UML)

笔记有错误欢迎直接在评论区进行纠正!我将不再维护软件设计师笔记!

下午题15分

依赖关系

关联关系

实心菱形就是组合,空心就是聚合,然后菱形右边表示整体,左边表示部分

聚合

例如学生和班级就是聚合关系,聚合用空心的菱形表示,并且班级消失了(毕业了)学生是不会消失的,而且学生可以独立存在,在这个例子里班级是整体,学生是部分

组合

例如人和大脑是组合关系,其中人是整体,大脑是部分,大脑没有,人也就没了,大脑不能脱离人独立存在

泛化关系

实现关系

用例和用例的关系

用例和用例之间有三种关系,包含(include)、扩展(extend)、泛化( generalize)

扩箭基(扩展关系箭头指向被基础用例),包箭被(包含关系箭头指向被包含用例)

包含关系

包含关系是指一个用例完成之前被包含的那个用例也要完成,并且被包含的那个用例起关键作用,例如下面的例子

例如上图的删除图书包含查询图书,因为在删除图书之前一定要先查询图书才能删除,修改也是一样,先查询才能修改

扩展关系

例如上面的学生还书时如果没有按时还书就有罚款

刷题心得总结

问题1

问题1一般是要求用例图中的参与者和用例,参与者一般比较容易看出来,但是用例有的很难看出,这时要冷静分析,看用例之间的关系(重点)

1、如果是泛化关系(要认识泛化的图标)那就绝对是父类和子类,找说明里的父类和子类有哪些,例如支付方式是父类,微信支付和支付宝支付是子类

2、如果是包含关系,要知道箭头指向的是被包含的,例如A----->B就是A包含B,A用例实现前会先实现B用例,比如说删除图书------->查找图书,每次删除图书都要先查找图书

问题2

问题2一般是要求类图中的类名,一般类图跟用例图是由一定关联的,问题1的用例图都写对了对问题2的类图理解就更加容易,看跟要求的类名相关联的已知的类名有哪些,然后根据已知类名和要求类名的关系去说明里找看看有没有符合这样关系的描述,找到这句话把这句话的名词都给标出来,然后根据题意去看那个名词更适合

1、一般像类图中有泛化这样的关系的,那就直接去说明中找对应的那种父类和子类这样有关系的名词

2、一般有聚合或组合关系的那就直接去找说明里的有整体-部分关系、包含关系、并且两者直接由联系的,一般都是一句话来描述这两个名词直接的关系,例如硬币器中的硬币,这就是包含关系,整体部分关系

真题

2021年下半年试题三

问题1

根据“另外,每个机器人都设置有一个计时器(Timer),用于支持执行预先定义好的定时事件。机器人的动作包括:原地向左或向右旋转90°、向前或向后移动。”这句话可以知道这个是用户提前设计好的,用来操作机器人的,所以得到一个用例是设置定时器

根据“建立迷宫:用户可以使用编辑器(Editor)编写迷宫文件,建立用户自定义的迷宫。将迷宫文件导入游戏系统建立用户自定义的迷宫。”可以得到U1和U2两个用例

讲解地址:2021年下半年问题1_哔哩哔哩_bilibili

问题2

这里我是觉得U1、U2和建立迷宫是包含关系,它官方的意思是指这个U1和U2都是建立自定迷宫的步骤,自定义迷宫和建立迷宫是泛化关系,但是我觉得这太牵强了

讲解地址:2021年下半年问题2_哔哩哔哩_bilibili

问题3

这里我C8是写的迷宫文件,应该也差不多,其他的都做出来了,主要是根据类图直接的关系做出来的,看到聚合、组合关系就去找那种相关联的整体-部分的名词

2021年上半年试题三

问题1

这里的U2、U3、U4不是一眼能够看的出来的,注意U2和U3、U4的的关系是泛化,也就是继承,那就是子类和父类的关系,那根据说明里U2就可能是取药方式或者是支付方式,因为它们都有两个子类,取药方式的子类是到店取药和送药上门,支付方式的子类是微信和支付宝,这里选支付方式,第一,那个图已经有一个用例是送药上门,如果选取药方式作为U2那就又有一个是送药上门的用例,第二,U1包含U2,U1是确认处方,U2如果是取药方式的话,即使选了取药方式,也不能确认处方,只有支付成功才能确认处方,所以U2是支付方式

讲解地址:2021年上半年问题1_哔哩哔哩_bilibili

问题2

根据上面的类图可以看到C4和C1(支付方式)、药师有关联,然后说明里有句话"支付成功之后,处方被发送给药师进行药品配制",通过这句话可以看出C4是处方

C5只跟C4(处方)有关系,然后说明有句话“药师根据处方配置好药品”可以看出C5是药品

讲解地址:2021年上半年问题2_哔哩哔哩_bilibili

问题3

讲解地址:2021年上半年问题3_哔哩哔哩_bilibili

n年上半年试题三

问题1

这里我觉得U2是销售房产,(a)是《include》,根据说明中的话这是没有问题的

讲解地址:2020年下半年问题1_哔哩哔哩_bilibili

2019年下半年试题三

问题1

问题2

这里有点问题,泛化的图标是空心的三角形箭头,但是它这里说C1、C2和C3是泛化关系,没办法,出题人一点都不严谨,姑且当成泛化这题才能做,所以C1和C2C3就很容易得出了,C4和C5很难看出来,可以看到C5和病人有关,C4和医护人员有关,根据说明里的“病人在就诊时,可能需要接受多项治疗,每项治疗(Procedure)可能由多位医护人员为其服务”这句话,首先要根据类图的关系找到说明中对应的话,然后把这句话的名词给找出来,这句话中名词有病人、就诊、治疗、医护人员,刚好拼接上了,就诊的话当然是病人就诊,所以可以推出C5是就诊,C4是治疗

讲解地址:2019年下半年问题1_哔哩哔哩_bilibili

问题3

2019年上半年试题三

问题1

这里的U2和U3我写反了(注意这里的顺序是不可以互换的),犯的错误就是搞混淆了箭头指向的应该是基础用例(扩箭基),箭头尾部是扩展用例,所以U3应该是在线购买书籍,U2应该是打印订单。

问题2

问题3

这里的C2我一开始以为是书,但是看到那个聚合关系就知道不是书(聚合是部分和整体关系,并且部分消失整体不消失),这个类名跟顾客和订单书籍有关,并且还是订单书籍的父类,可以锁定到说明的(2)描述这个位置,然后根据经验,应该是顾客买书后生成一个订单,订单里有订单书籍,订单是整体,订单书籍是部分

2018年下半年试题三

问题1

问题2

图3-1采用了观察者模式,该模式的意图:定义对象间的一种一对多的依赖关当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新

该模式的适用场合:

1、:当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立的改变和复用。

2、当一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时。

3、当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的

问题3

(1)在SNSSubject 和 SNSObserver 之间增加继承关系;SNSObserver为基类SNSSubject为派生类。

(2)为类SNSGroup增加自关联(自己到自己的关联关系)。

讲解地址:2018年下半年问题2_哔哩哔哩_bilibili

2018年上半年试题三

问题1

这里A1和A2顺序可以互换,A3和A4顺序可以互换

问题2

问题3

2017年下半年试题三

问题1

这里的C1我以为是系统的用户,但是这个系统的用户和下面的用户是同一个意思,所以不行,这个没有给出,需要自拟,那就是找用户跟作者的共同父类是什么,这两个明显都是人的特殊情况,所以父类是人,即C1是Persion

问题2

这里C6(出版物)的下载次数属性很容易丢掉,所以要整个文章都看一下,有没有漏的

问题3

2017年上半年试题三(分界线)

问题1

这种题目从来没有做过,所以一开始做的一塌糊涂,有几个技巧如下

1、涉及到显示或者隐藏的表达显示的话那就是接口类(例如这里的C2就是隐藏的),因为接口类是用来跟用户交互的,所以如果系统显示什么东西给用户操纵,那就是接口类

2、涉及持久化存储的一般都是实体类,根据自己的感觉看起来像实体类的那还有看一下前后的话来确定是不是实体类,例如这题的C2看起来像实体类,但是结合下面一句发现是给用户进行选择的,所以是接口类

3、涉及到这个系统他要干点什么事,比如计算,发送什么给什么,这种动词加名词的一般是控制类

4、我是一开始就根据那个黑色下划线直接判断,其他的看都没看,这很容易错,要把每一句话都看完,甚至这句话的前后两句都要看

讲解地址:后续知识引入_哔哩哔哩_bilibili

问题2

这个题挺难的,我一开始能够指定X1-X3是收货地址、支付方式、邮箱地址这三个里面的,但是哪个对应的哪个我搞错了,表中有句“系统将以表格形式显示完整订单信息(C7),同时自动发送完整订单信息(C8)到会员预先配置的邮箱地址(C9)。”这句话我觉得就是应该是邮箱地址在X1或者X2,因为它跟订单有关系,但是这里有个词“自动发送”,所以这邮箱地址应该是跟订单没关系的,自然X3是邮箱地址,根据“若会员单击“修改付款”按钮,调用“修改付款”用例,可以新增并存储为默认支付方式(C12),回到步骤4;”

可以看出支付方式有很多种,这里不能根据经验来判断,要从说明中去找对应的依据来进行关系分判断,不然很容易搞错,这题目还是比较难,不好做

讲解地址:2017年上半年问题1_哔哩哔哩_bilibili

问题3

2016年下半年试题三

问题1

问题2

这里要根据说明来做题,我一开始是根据主要事件流做题的,所以做的一塌糊涂

讲解地址:2016年下半年问题1_哔哩哔哩_bilibili

问题3

这个C1是自动售货机我还真想不出来,根据聚合关系,直接去说明和主要事件流里找整体和部分关系,并且两个是相关联的(整体包含部分),就很容易找到“将硬币器中的硬币移走〈清空硬币器)

”和“自动售货机检查饮料储存仓中所选购的饮料是否足够;”这两句话,这就可以知道C2-C5是什么,然后C2和C3都是和C1聚合关系,并且C1是整体,那哪个东西里包含这两个东西呢?只有自动售货机包含。

讲解地址:2016年下半年问题2_哔哩哔哩_bilibili

来源地址:https://blog.csdn.net/qq_50954361/article/details/127894722

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

试题三(UML)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

总结三道MySQL联合索引面试题

目录前言:众所周知mysql联合索引遵循最左前缀匹配原则,在少数情况下也会不遵循(有兴趣,可以翻一下上篇文章)创建联合索引的时候,建议优先把区分度高的字段放在第一列。至于怎么统计区分度,可以按照下面这种方式。创建一张测试表,用来测试
2022-08-16

史上最全python面试题详解(三)(附

38、面向对象深度优先和广度优先是什么?  39、面向对象中super的作用?40、是否使用过functools中的函数?其作用是什么?1 Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函
2023-01-30

mysql面试(三)服务器配置类问题

SQL_MODE配置MySQL处理SQL方式set [session/global/persisi] sql_model="xxxx"[mysqld] sql_model=xxxSQL_MODE说明ONLY_FULL_GROUP_BY对于GROUP BY聚合操
mysql面试(三)服务器配置类问题
2019-02-18

如何调试 PHP 函数中第三方库问题?

在 php 中调试第三方库问题的方法包括:打印错误信息(echo $error->getmessage())设置断点以查看变量值并检查错误堆栈($error->gettrace())启用 php 调试(display_errors = on
如何调试 PHP 函数中第三方库问题?
2024-04-17

面试官一道题就把你刷下?21道大厂高级面试题,助力金三银四!

互联网创业从火热到“寒冷”,但有一件事一直没变,就是大家都觉得招聘不到程序员。优秀的程序员也觉得很难找到合适的岗位。年前很多企业一波裁员,2020年又受疫情影响,延长了假期,各大企业复工时间拉长,招聘需求也可能缩减,对于已经离职和打算跳槽的
2023-06-04

python接口测试(三)

引入unittest框架get请求#coding: utf-8import unittestimport requestsimport jsonclass TestGet(unittest.TestCase):    def setUp(s
2023-01-31

2017年信息安全工程师考试上午真题(三)

      2017上半年信息安全工程师考试已经结束了,编程学习网小编为大家整理了信息安全工程师上午真题。      21、对日志数据进行审计检查,属于()类控制措施。      A.预防      B.
2017年信息安全工程师考试上午真题(三)
2024-04-18

Redis的三大问题

一般我们对缓存读操作的时候有这么一个固定的套路:如果我们的数据在缓存里边有,那么就直接取缓存的。如果缓存里没有我们想要的数据,我们会先去查询数据库,然后将数据库查出来的数据写到缓存中。最后将数据返回给请求代码例子: 1 @Override 2 public
Redis的三大问题
2018-11-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录