某软件公司欲设计实现一个虚拟世界仿真系统。系统中的虚拟世界用于模拟现实世界中的不同环境(由用户设置并创建),用户通过操作仿真系统中的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为仿真系统。
( )is the process of transforming information so it is unintelligible to anyone but the intended recipient.
As each application module is completed,it undergoes( )to ensure that it operates correctly and reliably.
( )algorithm specifies the way to arrange data in a particular order.
After analyzing the source code,( )generates machine instructions that will carry out the meaning of the program at a later time.
( )can help organizations to better understand the information contained within the data and will also help identify the data that is most important to the business and future business decisions.
浏览器开启无痕浏览模式后,( )依然会被保存下来。
下列协议中,不属于TCP/IP协议簇的是( )。
下列传输介质中,带宽最宽、抗干扰能力最强的是( )。
数控编程常需要用参数来描述需要加工的零件的图形。在平面坐标系内,确定一个点需要2个独立的参数,确定一个正方形需要( )个独立的参数。
某书的页码为1,2,3,...,共用数字900个(一个多位数页码包含多个数字),据此可以推断,该书最大的页码为( )。