UML期末考试模拟试卷及答案
《UML系统分析与设计》考试模拟试卷
一、Java中什么是上转型对象, 上转型对象如何体现多态?(10分)
答:当一个类有很多子类时,并且这些子类都重写了父类中的某个实例方法,那么当把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象。
这个上转型对象在调用这个方法时就可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为。
人们经常说:“哺乳动物有很多种叫声”,比如,“吼”、“嚎”、“汪汪”、“喵喵”等,这就是叫声的多态。比如,狗类的上转型对象调用“叫声”方法时产生的行为是“汪汪”,而猫类的上转型对象调用“叫声”方法时,产生的行为是“喵喵”,等等。
二、UML的用户可以随意对UML进行任意形式的扩展吗?说明理由。(10分)
答:UML的用户不能随意对UML进行任意形式的扩展。扩展机制为UML提供了扩充其表达内容的范围的能力,以描述各种新出现的事物,使人们能以受控的方式来扩展该语言。扩展机制分为三种类型:构造型(版型)、标记值和约束。
三、简述用例之间的包含关系和扩展关系的相同点和不同点。(10分)
答:相同点:都是一个用例(基本用例)的行为包含了另一个用例(包含用例或扩展用例),也就是说都是基本用例的行为的一部分。不同点:在基本用例的每一次执行时,包含用例都一定会执行,而扩展用例只是偶尔被执行。
四、简述顺序图和协作图的相同点和不同点。(10分)
答:相同点:顺序图和协作图都属于交互模型,都用于描述系统中对象之间的动态关系,两者可以相互转换。不同点:两者强调的重点不同,顺序图强调的是消息的时间顺序,而协作图强调的是参与交互的对象的组织(即空间关系或结构关系);在两个图所使用的建模元素上,顺序图中有生命线和控制焦点,协作图中没有;协作图中有路径,顺序图中没有;协作图中的消息必须要有消息顺序号,但顺序图中可以有也可以没有。
五、看图回答问题:下图中类的名字是什么?类中有哪些行为(方法),他们的可见性是什么? 该类是什么类型的类,这种类型的类作用是什么?(10分)
答:类的名字是:ReaderManager ;类中的行为(方法)有:newReader( ),modifyReader( ),deleteReader( ), 可见性都是 public;该类是控制类;控制类负责协调边界类和实体类的交互;控制类可以有效地降低边界类和实体类之间的耦合,使系统对于外部环境的变化具有良好的适应性。
六、如图所示,是一个仓库管理系统的局部类图,其中IncomeOrder是指入库单,OrderItem是指入库中的每一项,Product则是产品信息。请指出模型中的错误,说明原因并改正错误。(10分)
答:根据题意和模型不难得知,一个入库单是由多个入库单项组成的,因此不可能只涉及一个产品,合理的方式应该是,每个入库单项与产品一对一关联,即应该绘制为:
七、下面两图分别是GoF中的哪两种设计模式?分析它们的本质区别。(10分)
答:上图是策略模式,下图是状态模式;策略模式与状态模式极其相似,但是二者有其内在的差别;策略模式将具体策略类暴露出去,调用者需要具体明白每个策略的不同之处以便正确使用;而状态模式状态的改变是由其内部条件来改变的,与外界无关二者在思想上有本质区别。
八. 某指纹门禁系统结构如图(a),其主要部件有主机( MainFrame)、锁控器( LockController)、指纹采集器(FingerReader)和电控锁(Lock)。
(1)系统中的每个电控锁都有一个唯一的编号。锁的状态有两种:“已锁住”和“未锁住”。
(2)在主机上可以设置每把锁的安全级别以及用户的开锁权限。只有当用户的开锁权限大于或等于锁的安全级别并且锁处于“已锁住”状态时,才能将锁打开。
(3)用户的指纹信息、开锁权限以及锁的安全级别都保存在主机上的数据库中。
(4)用户开锁时,只需按一下指纹采集器。指纹采集器将发送一个中断事件给锁控器,锁控器从指纹采集器读取用户的指纹并将指纹信息发送到主机,主机根据数据库中存储的售息来判断用户是否具有开锁权限,若有权限且锁当前处于“已锁住”状态,则将锁打开;否则系统报警。
该系统采用面向对象方法开发,系统中的类以及类之间的关系用UML类图(图(b))表示。
系统的动态行为采用UML顺序图表示,用户成功开锁的顺序周如图所示。依据上述说明中给出的需求,将图中的(1)~(5)处补充完整。(10分)
(1): 中断事件( ) (2): 读取用户指纹( ) (3): 读取用户开锁权限( )
(4): 读取用户安全级别( ) (5): 判断用户是否有权限开锁或是否可以开锁( )
九、根据以下Java代码绘制类图。(10分)
十、根据下面描述画出电烤箱控制系统状态图。(10分)
当启动加热按钮时,电烤箱进入加热状态。当温度升高到1400C以上时,暂时切断电源,进入保温状态。当温度下降到1200C以下时,重新接通电源,进入加热状态。无论是在加热状态还是保温状态,当时间超过5min时,自动关机,本次加热行为结束。