阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某软件公司欲设计实现一个虚拟世界仿真系统。系统中的虚拟世界用于模拟现实世界中的不同环境(由用户设置并创建),用户通过操作仿真系统中的l~2个机器人来探索虚拟世界。机器人维护着两个

admin2017-09-13  27

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


根据说明中的描述,给出图3-2中C1~C5所对应的类名。

选项

答案C1:World C2:Roboff Robots C3:Instruction C4:InstructionSet C5:Error/Errors

解析 本题要求将类图中缺失的5个类补充完整。在解答此类题目时,首先考虑类图中的特殊关系,如继承关系、聚集或组合关系等,这是比较好的突破口。另外应关注类之间的多重度。在图3.2中出现了两个聚集关系:C1和C2之间以及C3和C4之间。我们先考虑C1和C2这一对,因为这两个类之间的多重度是一个具体的范围1..2。【说明】中有一句话:“用户通过操作仿真系统中的l~2个机器人来探索虚拟世界”,也就是说在虚拟世界中包含着1-2个机器人,由此可以推断C2对应的是机器人Roboff Robots,C1代表的就是整个虚拟世界World。
    下面我们来看C3和C4这一对聚集关系。C4和Interpreter、Parser有关联,而这两个类与文件及机器人指令集的解析有关,由此可以推断,C3、C4这两个类也应该跟解析功能相关。由【说明】可知,系统中有两类需要解析的事物:虚拟世界文件和机器人指令集,而机器人指令集是由若干条指令构成的,这里就出现了一个聚集结构。因此C3应该对应Instruction,C4对应的是InstructionSet。
    对于最后一个类,将功能需求与用例图再回顾一遍,发现在类图中还缺少关于错误信息的描述,因此C5所对应的就是类Error。
转载请注明原文地址:https://kaotiyun.com/show/FKDZ777K
0

相关试题推荐
最新回复(0)