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

Posted Zhang Jun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年下半年软件设计师下午真题答案及解析相关的知识,希望对你有一定的参考价值。

阅读下列说明和图,回答问题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年下半年软件设计师下午真题答案及解析的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

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