2021年下半年软件设计师下午真题答案及解析

ZhangJun ZhangJun     2022-11-30     383

关键词:

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某游戏公司欲开发一款吃金币游戏。游戏的背景为一种回廊式迷宫(Maze),在迷宫的不同位置上设置有墙。迷宫中有两种类型的机器人(Robots):小精灵(PacMan)和幽灵(Ghost)。游戏的目的就是控制小精灵在迷宫内游走,吞吃迷宫路径上的金币,且不能被幽灵抓到。幽灵在迷宫中游走,并会吃掉遇到的小精灵。机器人游走时,以单位距离的倍数计算游走路径的长度。当迷宫中至少存在一个小精灵和一个幽灵时,游戏开始。
机器人上有两种传感器,使机器人具有一定的感知能力。这两种传感器分别是:
(1)前向传感器(FrontSensor),探测在机器人当前位置的左边、右边和前方是否有墙(机器人遇到墙时,必须改变游走方向)。机器人根据前向传感器的探测结果,决定朝哪个方向运动。
(2)近距离传感器(ProxiSesor),探测在机器人的视线范围内(正前方)是否存在隐藏的金币或幽灵。近距离传感器并不报告探测到的对象是否正在移动以及朝哪个方向移动。但是如果近距离传感器的连续两次探测结果表明被探测对象处于不同的位置,则可以推导出该对象在移动。
另外,每个机器人都设置有一个计时器(Timer),用于支持执行预先定义好的定时事件。
机器人的动作包括:原地向左或向右旋转90°;向前或向后移动。
建立迷宫:用户可以使用编辑器(Editor) 编写迷宫文件,建立用户自定义的迷宫。将迷宫文件导入游戏系统建立用户自定义的迷宫。
现采用面对对象分析与设计方法开发该游戏,得到如图3-1所示的用例图以及图3-2所示的初始类图。


【问题1】(3分)
根据说明中的描述,给出图3-1中U1~U3所对应的用例名。
【问题2】(4分)
图3-1中用例U1~U3分别与哪个(哪些)用例之间有关系,是何种关系?
【问题3】(8分)
根据说明中的描述,给出图3-2中C1~C8所对应的类名。

参考答案:
【问题1】(3分)
U1 编写迷宫文件;
U2导入迷宫文件;
U3 设置计时器
【问题2】(4分)
U1和U2与建立迷宫用例是泛化关系;
U3与操作机器人是包含关系
【问题3】(8分)
C1 机器人(Robots);
C2 计时器(Timer);
C3小精灵(PacMan);
C4幽灵(Ghost) ;
C5 传感器(Sensor) ;
C6 前向传感器(FrontSensor) ;
C7 近距离传感器(ProxiSesor);
C8 迷宫(Maze)

答案解析:

包含与泛化的概念

  • A包含B:A当中包括B,但是B单体并不是合法的A。B并不是A的子集,而是A的组成部分。(也就是B是A当中元素的局部,是元素的组成部分)
  • A是B的泛化:所有的B都是合法的A,但是有部分A并不是B
  • 包含关系:主要描述的是组合关系
  • 泛化关系:主要描述的是分类关系

两者都可以实现复用,区别在于:

  • 包含关系是动态的关系,可以在运行时改变
  • 泛化关系是静态的,在编译时就确定了

所以包含比泛化要灵活,现代面向对象程序设计也提倡多用组合(包含),少用继承(泛化)

问题1:补充对应的用例。用例的组成应该是动词+名词的形式。
根据题干的描述和对应的用例的指向,可知U1是与建立迷宫有关系的用例,U3是与操纵机器人有关系的用例,U2是介于两者之间的用例。
用例图描述的是对于用例的所有操作。对于整个吃金币的游戏而言,首先要建立相应的迷宫,以供机器人(小精灵和幽灵)进入,其次操纵机器人走对应的线路;再结合题干而言,属于该游戏内部的操作应该还有:设置有一个计时器(Timer),用来定时机器人;用户可以使用编辑器(Editor) 编写迷宫文件,用来构造出迷宫;然后将迷宫文件导入游戏,系统建立用户自定义的迷宫,用来自定义迷宫。
对于U1而言与迷宫有关的用例,应该是构造迷宫的,编辑器编写迷宫文件用例;对于U2则是导入迷宫文件的过程。而对于U3与操作机器人有关的用例,应该是定时机器人的设置计时器用例。

问题2:根据对应的用例图,判断其关系,结合上文给出的用例,可知:U1与U2建立迷宫是泛化关系,也可以根据题干描述,在建立迷宫里面包含这些操作;U3与操作机器人是包含关系,在开始操作机器人之间应该先设置定时器。

问题3:补充对应类图的类,类的组成应该是名词形式,用英文进行表示。
找出题干中的名词,然后结合对应的关系,可以看到C1与C3、C4是泛化关系,C5与C6、C7是泛化关系,其中C5又与C1是组合关系,C1是整体,C5是部分,生命周期相同。
可得C1机器人(Robos),C5是传感器,C3、C4是小精灵(PacMan)和幽灵(Ghost),可以互换顺序;C6和C7是 前向传感器(FrontSensor)和 近距离传感器(ProxiSesor),可以互换顺序。
C8是跟C1机器人有聚合关系的,C8是整体,C1是部分,生命周期不同,并且与编辑器(Editor) 有关,得出C8应该为迷宫(Maze);C2也与C1为组合关系,C1是整体,C2是部分,生命周期相同。
得出C2应该是计时器(Timer)。

2021年下半年软件设计师下午真题答案及解析

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某游戏公司欲开发一款吃金币游戏。游戏的背景为一种回廊式迷宫(Maze),在迷宫的不同位置上设置有墙。迷宫中有两种类型的机器人(Rob... 查看详情

2021年下半年软件设计师下午真题答案及解析

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某游戏公司欲开发一款吃金币游戏。游戏的背景为一种回廊式迷宫(Maze),在迷宫的不同位置上设置有墙。迷宫中有两种类型的机器人(Rob... 查看详情

2021年下半年软件设计师下午真题答案及解析

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某现代农业种植基地为进一步提升农作物种植过程的智能化,欲开发智慧农业平台,集管理和销售于一体,该平台的主要功能有... 查看详情

2021年下半年软件设计师下午真题答案及解析

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某现代农业种植基地为进一步提升农作物种植过程的智能化,欲开发智慧农业平台,集管理和销售于一体,该平台的主要功能有... 查看详情

2021年下半年软件设计师下午真题答案及解析(代码片段)

阅读下列说明和Java代码,将应填入(n)处的字句写在题纸的对应栏内。【说明】享元(flyweight)模式主要用于减少创建对象的数量,以低内存占用,提高性能。现要开发一个网络围棋程序允许多个玩... 查看详情

2021年下半年软件设计师下午真题答案及解析(代码片段)

阅读下列说明和Java代码,将应填入(n)处的字句写在题纸的对应栏内。【说明】享元(flyweight)模式主要用于减少创建对象的数量,以低内存占用,提高性能。现要开发一个网络围棋程序允许多个玩... 查看详情

2021年下半年软件设计师下午真题答案及解析(代码片段)

生物学上通常采用编辑距离来定义两个物种DNA序列的相似性,从而刻画物种之间的进化关系。具体来说,编辑距离是指将一个字符串变换为另一个字符串所需要的最小操作次数。操作有三种,分别为:插入一个字... 查看详情

2021年下半年软件设计师下午真题答案及解析(代码片段)

生物学上通常采用编辑距离来定义两个物种DNA序列的相似性,从而刻画物种之间的进化关系。具体来说,编辑距离是指将一个字符串变换为另一个字符串所需要的最小操作次数。操作有三种,分别为:插入一个字... 查看详情

2021年上半年软件设计师下午真题及答案解析(代码片段)

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单中包含的可能是一个菜单项(直接对应某个功能&#... 查看详情

2021年上半年软件设计师下午真题及答案解析(代码片段)

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单中包含的可能是一个菜单项(直接对应某个功能&#... 查看详情

2021年上半年软件设计师下午真题及答案解析(代码片段)

【说明】某社区蔬菜团购网站,为规范商品收发流程,便于查询客户订单情况,需要开发个信息系统。请根据下述需求描述完成该系统的数据库设计。【需求描述】(1)记录蔬菜供应商的信息,包括供应... 查看详情

2021年上半年软件设计师下午真题及答案解析(代码片段)

【说明】某停车场运营方为了降低运营成本,减员增效,提供良好的停车体验,欲开发无人值守停车系统,该系统的主要功能是∶1、信息维护。管理人员对车位(总数、空余车位数等)计费规则等基础信... 查看详情

2021年上半年软件设计师下午真题及答案解析

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某中医医院拟开发一套线上抓药APP,允许患者凭借该医院医生开具的处方线上抓药,并提供免费送药上门服务。该系统的主要功能... 查看详情

2021年上半年软件设计师下午真题及答案解析(代码片段)

阅读下列说明和C代码,回答问题1和问题2,将解答填入答题纸的对应栏内。[说明]凸多边形是指多边形的任意两点的连线均落在多边形的边界或者内部。相邻的点连线落在多边形边上,称为边,不相邻的点连线落... 查看详情

2021年下半年系统架构设计师下午真题及答案解析

试题一(共25分)   某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,采用自助方式进行... 查看详情

2022年下半年软件设计师下午真题及答案解析

试题一(共15分)随着新能源车数量的迅猛增长,全国各地电动汽车配套充电桩急速增长,同时也带来了充电桩计量准确性的问题。充电桩都需要配备相应的电能计量和电费计费功能,需要对充电计量准确性强... 查看详情

2018年下半年软件设计师下午真题及答案解析

试题一(15分)某房产中介连锁企业欲开发一个基于Web的房屋中介信息系统,以有效管理房源和客户,提高成交率。该系统的主要功能是:1.房源采集与管理。系统自动采集外部网站的潜在房源信息,保存为潜在... 查看详情

2022年上半年软件设计师下午真题及答案解析

试题一(15分)某公司欲开发一款外卖订餐系统,集多家外卖平台和商户为一体,为用户提供在线浏览餐品、订餐和配送等服务。该系统的主要功能是:1.入驻管理。用户注册,商户申请入驻,设置按时... 查看详情