某软件公司欲设计实现一个虚拟世界仿真系统。系统中的虚拟世界用于模拟现实世界中的不同环境(由用户设置并创建),用户通过操作仿真系统中的1~2个机器人来探索虚拟世界。机器人维护着两个变量b1和b2,用来保存从虚拟世界中读取的字符。
该系统的主要功能描述如下:
(1)机器人探索虚拟世界(RunRobots)。用户使用编辑器(Editor)编写文件以设置想要模拟的环境,将文件导入系统(LoadFile)从而在仿真系统中建立虚拟世界(SetupWorld)。机器人在虚拟世界中的行为也在文件中进行定义,建立机器人的探索行为程序(SetupProgram)。机器人在虚拟世界中探索时(RunProgram),有2种运行模式:
①自动控制(Run):事先编排好机器人的动作序列(指令(Instruction)),执行指令,使机器人可以连续动作。若干条指令构成机器人的指令集(InstructionSet)。
②单步控制(Step):自动控制方式的一种特殊形式,只执行指定指令中的一个动作。
(2)手动控制机器人(ManipulateRobots)。选定1个机器人后(SelectRobot),可以采用手动方式控制它。手动控制有4种方式:
①Move:机器人朝着正前方移动一个交叉点。
②Left:机器人原地沿逆时针方向旋转90度。
③Read:机器人读取其所在位置的字符,并将这个字符的值赋给b1;如果这个位置上没有字符,则不改变b1的当前值。
④Write:将b1中的字符写入机器人当前所在的位置,如果这个位置上已经有字符,该字符的值将会被b1的值替代。如果这时b1没有值,即在执行Write动作之前没有执行过任何Read动作,那么需要提示用户相应的错误信息(ShowErrors)。
手动控制与单步控制的区别在于,单步控制时执行的是指令中的动作,只有一种控制方式,即执行下个动作;而手动控制时有4种动作。
现采用面向对象方法设计并实现该仿真系统,得到如图3-1所示的用例图和图3-2所示的初始类图。图3-2中的类“Interpreter”和“Parser”用于解析描述虚拟世界的文件以及机器人行为文件中的指令集。

图3-1用例图

图3-2初始类图
【问题1】(6分)
根据说明中的描述,给出图3-1中U1~U6所对应的用例名。
【问题2】(4分)
图3-1中用例U1~U6分别与哪个(哪些)用例之间有关系,是何种关系?
【问题3】(5分)
根据说明中的描述,给出图3-2中C1~C5所对应的类名。
正确答案及解析
正确答案
解析
【问题1】
U1/U2:Run、Step
U3:Write
U4/U5/U6:Move、Left、Read
【问题2】
U1和U2和RunProgram有泛化关系。
U3,U4,U5,U6和Manipulate Robots有泛化关系。
【问题3】
C1:World/虚拟世界
C2:Robots
C3:Instruction
C4:InstructionSet
C5:Errors
本题考查的是面向对象UML建模内容,涉及到用例图和类图。
在本题中部分信息隐含,有一定难度,需要认真阅读并理解题干说明。
【问题1】
问题1要求补充U1~U6用例名,答案可根据题干说明和图示关系判断,较为容易,具体分析过程如下:
(1)对于U1、U2用例与Run Program相关,从题干说明“机器人在虚拟世界中探索时(RunProgram),有2种运行模式:①自动控制(Run)…②单步控制(Step)…”,因此可以判断U1、U2分别为Run和Step用例,二者位置可以互换。
(2)从题干说明“手动控制机器人(ManipulateRobots)。选定1个机器人后(SelectRobot),可以采用手动方式控制它。手动控制有4种方式:①Move:…②Left:…③Read:…④Write:…”可以看到与ManipulateRobots相关的用例有Move,Left,Read,Write,又根据Write的说明“即在执行Write动作之前没有执行过任何Read动作,那么需要提示用户相应的错误信息(ShowErrors)”可以看到,与ShowErrors相关的用例是Write,即U3为Write。剩余U4、U5、U6分别为Move、Left、Read,三者位置可以互换。
【问题2】
判断用例之间的关系。用例之间的关系有三种:泛化、扩展和包含。
包含关系:其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。
扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。
泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。
(1)RunProgram有两种运行模式,即Run和Step分别是RunProgram的一种,二者与RunProgram是特殊/一般的关系,RunProgram与U1、U2是泛化关系。
(2)同理,Move、Left、Read、Write分别是手动控制的四种方式之一,因此,这四者与Manipulate Robots是特殊/一般的关系,即Manipulate Robots与U3、U4、U5、U6是泛化关系。
【问题3】
问题3由于部分信息隐含,所以难度较大。
(1)首先根据类图,存在2组部分与整体的关系,分别是C3-C4,C1-C2,其中多重度关系:C4包含1~n个C3,C1包含1~2个C2,且C1和C4都与Interpreter、Parser有关。
(2)根据说明“类“Interpreter”和“Parser”用于解析描述虚拟世界的文件以及机器人行为文件中的指令集”,因此C1、C4分别是虚拟世界的文件和机器人行为文件中的指令集,后者题干给出为Instruction Set。其中满足1…n多重度的应该为指令Instruction和InstructionSet,因此,C3为Instruction,C4为InstructionSet。C1是虚拟世界的文件,可以写作World(题干中虚拟世界只描述为World)。对于C2与World有1~2的多重度关系,根据题干说明,只有“用户通过操作仿真系统中的1~2个机器人来探索虚拟世界”符合要求,因此C2为机器人(Robot/Robots)。
(3)剩下C5与World相关,根据题干描述“用户使用编辑器(Editor)编写文件以设置想要模拟的环境,将文件导入系统(LoadFile)从而在仿真系统中建立虚拟世界(SetupWorld)”,因此建立虚拟世界需要编辑器编辑文件,并将文件导入仿真系统,因此C5为仿真系统。
包含此试题的试卷
你可能感兴趣的试题
一台主机的IP地址为202.123.25.36,掩码为255.255.254.0。如果该主机需要在该网络进行直接广播,那么它应该使用的目的地址为( )
-
- A.202.123.25.0
- B.202.123.25.255
- C.202.123.24.0
- D.202.123.24.255
- 查看答案
在计算机系统的日常维护工作中,应当注意硬盘工作时不能__(2)__。另外,需要防范病毒,而__(3)__是不会被病毒感觉的。
-
- A.电子邮件
- B.硬盘
- C.U盘
- D.ROM
- 查看答案
有 4 个 IP 地址:201.117.15.254、201.117.17.01、201.117.24.5 和 201.117.29.3,如果子网掩码为 255.255.248.0,则这 4 个地址分别属于3个子网;其中属于同一个子网的是()
-
- A.201.117.15.254 和 201.117.17.01
- B.201.117.17.01 和 201.117.24.5
- C.201.117.15.254 和 201.117.29.3
- D.201.117.24.5 和 201.117.29.3
- 查看答案
在异步通信中,每个字符包含1位起始位、7位数据位、1位奇偶位和1位终止位,每秒钟传送200个字符,采用4相位调制,则码元速率为()。
-
- A.50波特
- B.500波特
- C.550波特
- D.1000波特
- 查看答案
在 Windows 中,运行( )命令得到下图所示结果。以下关于该结果的叙述中,错误的是( )。
Pinging 59.74.111.8 with 32 bytes of data:
Reply from 59.74.111.8: bytes=32 time=3ms TTL=60
Reply from 59.74.111.8: bytes=32 time=5ms TTL=60
Reply from 59.74.111.8: bytes=32 time=3ms TTL=60
Reply from 59.74.111.8: bytes=32 time=5ms TTL=60
Ping statistics for 59.74.111.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 3ms, Maximum = 5ms, Average = 4ms
-
- A.该命令使得本地主机向目标主机发送了 4 个数据包
- B.本地主机成功收到了目标主机返回的 4 个数据包
- C.本地主机与目标主机连接正常
- D.该命令用于查看目标主机的 IP 地址
- 查看答案