问答题 [说明]
门禁系统是楼宇安防系统的重要组成部分,也是大厦智能化管理的体现。其工作过程是,如果在入口处的读卡器上刷卡,锁控器(LockController)接收读卡器(FingerReader)的读卡信息并进一步识别,如果为有效卡,则触发控制电控锁(Lock)的继电器,让持卡人通过。锁控器还会将这些读卡及进出事件存储起来,并将相关事件记录传送给上位机。每个锁控器管理1~4个门,每5~8个锁控器接入1条RS-485总线,并转换成RS-232方式与管理主机的串行口。对锁控器进行相关设置后,允许它脱机独立对门禁点进行控制,管理主机或通信线路故障都不会影响它的正常运行。在普通场合通常会设置1个出门按钮,允许已进入的人员按动此按钮以打开电控锁;而对于一些重要场合通常会在门的内外安装两个读卡器,进出门时都需按预设方式进行刷卡。
门禁系统中的每个电控锁都有一个唯一的编号。锁的状态有两种:“已锁住”和“未锁住”。在管理主机上可以设置每把锁的安全级别及用户的开锁权限。只有当用户的开锁权限大于或等于锁的安全级别并且锁处于“已锁住”状态时,才能将锁打开。用户的感应卡信息、开锁权限及锁的安全级别都保存在管理主机的数据库中。表2-19给出了门禁系统主要组成部件的作用。

表2-19 感应门禁系统主要组成部件及其作用表

部件名称
主要作用(功能)
读卡感应器(FingerReader)
通过射频感应原理,识别感应卡内置加密卡号
锁控器(LockController)
存储感应卡权限和刷卡记录,向管理软件上传读卡器送来的信号,并负责和上位机通讯和其他数据存储器协调
电控锁(Lock)
电动执行机构
主机管理软件(Win-Pak Software)
通过计算机对所有单元进行中央管理和监控,进行相应的时钟、授权、统计管理工作
RS-485/232信号转换器
对所有数据存储器进行联网和远距离通信
门禁电源
提供系统工作时所需的电源能量
感应卡
存储用户的不可复制和解密的ID号
开门按钮
出门时可以设置为按此按钮出门(可选部件)

软件开发公司A承担了该门禁控制系统的开发任务,其开发小组采用根据问题领域的模型建立系统结构的面向对象方法完成该系统的设计,系统中的类及类之间的关系用UML类图表示。

问答题 [问题1]
如图2-25所示是门禁控制系统的一个不完整类图,根据题干说明中给出的术语,请给出类Lock的主要属性。
【正确答案】[问题1]
这是一道要求读者掌握如何从问题域中抽象出类的属性的综合分析题。本题的解答思路如下。
①首先要仔细理解题目中的信息,从这些信息牛获知该感应门禁系统主要部件有锁控器 (LockController)、读卡感应器(FingerReader)、电控锁(Lock)和主机管理软件(Win-Pak Software)。将关键信息转化成如图2-29所示的系统体系结构。
[*]
②在面向对象系统建模过程中,通常用概念模型来详细描述系统的问题域。类图用于描述系统的结构化设计,即用来表示概念模型,表达了类、接口及它们之间的静态结构和关系。它最基本的元素是类或接口。通常,在类图上包含泛化(Generalization)、实例(Realization)、关联(Association)、聚集(Aggregation)、组装(Composition)、依赖(Dependency)等关系。
③对系统的静态设计视图建模时,通常以对系统的词汇建模、对简单协作建模、对逻辑数据库模式建模这3种方式之一使用类图。其中,对系统的词汇建模需划分哪些抽象是考虑中的系统的一部分,哪此抽象是处于系统的边界之外,即用类图详细描述这些抽象和它们的职责。而对简单协作建模中,协作是一些共同工作的类,接口和其他元素的群体,该群体提供的一此合作行为强于所有这些元素的行为之和。在很多领域中要在关系数据库或面向对象数据库中存储永久信息,可以用类图对这些数据库的模式进行建模。
④在图2-25类图中,已经完成了面向对象分析中的认定类,读者所要完成的工作是定义类的内部信息。类Lock是本系统中的一个关键类,题目与它的属性相关的描述有“门禁系统中的每个电控锁都有一个唯一的编号”、“锁的状态有两种”、“在管理主机上可以设置每把锁的安全级别”、“锁处于‘已锁住’状态时,才能将锁打开”等。从这些信息中提炼出说明类Lock关键属性及特性的答案,即“锁的编号”、“锁的状态”和“锁的安全级别”。
【答案解析】
问答题 [问题2]
序列图是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动,即显示了一组对象和由这组对象发送和接收的消息。如图2-26所示是用户成功开锁的序列图。依据上述说明中给出的词语,将图2-26中的(1)~(5)空缺处补充完整。
【正确答案】[问题2]
这是一道要求读者掌握UML建模中序列图知识点的分析题。本题的解答思路如下。
①系统的动态行为常采用UML序列图表示,它展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。要注意它强调的是时间和顺序。
②图2-26所表达的序列图有两个特征:一是它有对象生命线;二是它有控制焦点。对象生命线是一条垂直的虚线,表示一个对象的生命跨度。控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段。矩形的顶部表示动作的开始,底部表示动作的结束。在序列图顶部水平方向画出的是参与交换的对象。
③看懂序列图之后,接着根据问题要点,查找题目中与用户开锁相关的信息。对这些关键信息进行归纳整理的结果如下:用户开锁时,只需将感应卡靠近读卡器。读卡器获取信息后将发送一个中断事件给锁控器,锁控器从读卡器读取用户卡的ID号并将该ID号信息发送到管理主机,管理主机根据数据库中存储的信息来判断用户是否具有开锁权限,若有且锁当前处于“已锁住”状态,则将锁打开;否则系统报警。
④通过以上分析,可以得出用户开锁的激发事件是:用户感应卡靠近读卡器。
⑤由于序列图是按照时间顺序组织对象之间交互活动,因此需要将这些活动按照时间顺序进行排序,并记录下参与每个活动的对象。根据以上分析结果结合图2-26已给出的信息,可以得出用户开锁涉及的活动事件如表2-20所示。

表2-20 用户开锁活动过程表

顺序
活动事件
活动对象
顺序
活动事件
活动对象
发送“中断事件”
读卡器→锁控器
读取锁的安全级别
管理主机→锁
读取用户卡的ID号
锁控器→读卡器
判断用户是否能够开锁
管理主机→管理主机
请求开锁
锁控器→管理主机
通知能够开锁
管理主机→锁控器
读取锁的当前状态
管理主机→锁
将锁打开
锁控器→锁
读取用户的开锁权限
管理主机→用户

【答案解析】
问答题 [问题3]
在系统的需求分析阶段,可以使用用例对系统需求建模。用例可以使用UML的用例图来表示。请分别用100字以内的文字解释UML用例图中扩展用例和抽象用例的内涵。
【正确答案】[问题3]
这是一道要求读者掌握UML用例图中扩展用例和抽象用例的内涵的简答题。本试题所涉及的知识点如下。
①由某个更复杂的用例提取出来的事件序列所构成的用例称为扩展用例,它可以简化原有用例并扩展其功能。
②若从几个执行相同功能步骤的用例中,将公共步骤提取成独立的用例,那么这个提取出来的用例就称为抽象用例。它代表某种形式的“复用”,可以降低用例之间的冗余。
【答案解析】