问答题
阅读下列说明和数据流图,回答问题1和问题3。 【说明】 某指纹门禁系统结构如图3-5所示,其主要部件有:主机(MainFrname)、锁控器 (LockController)、指纹采集器(FingerReader)和电控锁(Lock)。 (1)系统中的每个电控锁都有一个唯一的编号。锁的状态有两种:“已锁住”和“未锁住”。 (2)在主机上可以设置每把锁的安全级别及用户的开锁权限。只有当用户的开锁权限大于或等于锁的安全级别并且锁处于“已锁住”状态时,才能将锁打开。 (3)用户的指纹信息、开锁权限及锁的安全级别都保存在主机上的数据库中。 (4)用户开锁时,只需按一下指纹采集器。指纹采集器将发送一个中断事件给锁控器,锁控器从指纹采集器读取用户的指纹并将指纹信息发送到主机,主机根据数据库中存储的信息来判断用户是否具有开锁权限,若有且锁当前处于“已锁住”状态,则将锁打开:否则系统报警。 该系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,图3-6是该系统类图的一部分;系统的动态行为采用UML序列图表示,图3-7是用户成功开锁的序列图。
问答题
图3-6是该系统类图的一部分,依据上述说明中给出的术语,给出类Lock的主要属性。
【正确答案】正确答案:锁的编号,安全级别,锁的当前状态。
【答案解析】
问答题
依据上述说明中给出的词语,将图3-7中的(1)~(5)处补充完整。
【正确答案】正确答案:(1) 中断事件 (2) 读取用户指纹 (3) 读取用户开锁权限 (4) 读取锁的安全级别 (5) 判断用户是否有权限开锁或用户是否可以开锁
【答案解析】
问答题
组合(Composition)和聚集(Aggregation)是UML中两种非常重要的关系。请说明组合和聚集分别表示什么含义?两者的区别是什么?
【正确答案】正确答案:组合和聚集都表示实例之间的整体/部分关系。组合是聚集的一种形式。 聚集是概念性的,只是区分整体与部分。 组合具有很强的归属关系,而且整体与部分的对象生存周期是一致的。 或者回答:如果没有成分对象,组合对象也不存在;在任何时候,每个给定的成分对象只能是组合对象的组成部分。
【答案解析】解析:本题考查UML类图,包括类的属性和方法的识别,以及UML序列图和相关概念。 根据说明“系统中的每个电控锁都有一个唯一的编号。锁的状态有两种:‘已锁住’和‘未锁住’。”可知类Lock应有属性:锁编号和锁状态。再根据说明(2),“在主机上可以设置每把锁的安全级别……”,类Lock还应有属性:安全级别。综上所述,类Lock的主要属性有:所编号、安全级别、所状态。 图3-7是该门禁系统成功开锁流程对应的UML序列图。根据题中的说明,成功开锁的流程应该如下,用户按下指纹采集器请求开锁,指纹采集器发送一个中断事件给锁控器,锁控器从指纹采集器读取用户的指纹并将指纹信息发送到主机,主机根据数据库中存储的信息来判断用户是否具有开锁权限,若有且锁当前处于“已锁住”状态,则将锁打开;否则系统报警。据此,易得空(1)为“中断事件”,空(2)为“读取用户指纹”。开锁很重要的一点就是用户要有开锁权限,即其开锁权限大于或等于锁的安全级别,因此需要向用户信息实例UserInfo读取用户的开锁权限和向锁实例Lock读取锁的安全级别并进行比较。故空(3)为“读取用户开锁权限”,空(4)为“读取锁的安全级别”,空(5)为“判断用户是否有权限开锁”。