早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列说明和相关的类图,回答问题。【说明】 在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控

题目

阅读下列说明和相关的类图,回答问题。

【说明】

在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控制n部电梯的运作。当按下电梯内按钮请求电梯在指定楼层停下时,按钮指示灯亮,当电梯到达指定楼层时,指示灯熄灭。除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行,当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降运动时,关门并停止在当前楼层。

软件设计师火云龙采用面向对象分析的方法,经过三次逐步求精设计之后,得到如图 13-19所示的类图。

【问题1】

按钮类有一个重要的属性,请将该属性填入图13-19中的(a)处。

【问题2】

识别关联的多重性是面向对象建模重要的一步,请根据题目说明填空(1)~(6)。

【问题3】

软件设计师火云龙在初步设计类时,将门(的状态)作为电梯的属性,后经思考,将电梯门设计成一个独立的类,这么做的好处是什么?

软件设计师火云龙在初步设计类时,并没有设计“请求”类,后来又加入了该类,这么做的原因是什么?

参考答案
正确答案:[问题1] (a)指示灯 [问题2] (1)mn (2)mn (3)2m-2 (4)2m-2 (5)n (6)n [问题3] 一旦将电梯门作为一个独立的类则打开或关闭电梯门的唯一办法就是向“电梯门”类对象发送消息。如果电梯门类封装得好就能保证不会在错误的时间关闭或打开电梯门从而有效杜绝严重意外事故的发生。 出于安全考虑在未经授权时不能随意修改“请求”因此将“请求”设计成独立的类如果“请求”类封装得好就能有效保证电梯安全运行。
[问题1] (a)指示灯 [问题2] (1)mn (2)mn (3)2m-2 (4)2m-2 (5)n (6)n [问题3] 一旦将电梯门作为一个独立的类,则打开或关闭电梯门的唯一办法就是向“电梯门”类对象发送消息。如果电梯门类封装得好,就能保证不会在错误的时间关闭或打开电梯门,从而有效杜绝严重意外事故的发生。 出于安全考虑,在未经授权时不能随意修改“请求”,因此将“请求”设计成独立的类,如果“请求”类封装得好就能有效保证电梯安全运行。 解析:从图13-19可知,电梯按钮类和楼层按钮类都是按钮类的子类,电梯按钮和楼层按钮的共同点就是用指示灯跟乘客进行交互,所以,按钮类必定有个重要的属性“指示灯”。识别关联的多重性是面向对象建模重要的一步。题目的说明中提到“在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控制n部电梯的运作”、“除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行”,所以这栋大厦中一共有mn个电梯按钮,共有2m-2个楼层按钮,电梯控制器类控制着所有的电梯按钮、楼层按钮和电梯,所以第(1)~(6)空应分别填:mn、mn、2m-2、2m-2、n、n。注意,不可以用*号代替,*号表示多个,具体多少是未知,而题目已经给定具体数目,所以应该用m、n来表示。
识别类是面向对象分析的第一步,常用的方法是名词分析法。题目的说明其实就是电梯系统的需求说明,出现了如下主要名词:大厦、电梯、楼层、按钮、运动、指示灯、请求、最底层、最高层、方向和门。这些名词所代表的事物可作为类的初步候选者。其中,大厦、最底层、最高层和楼层处于问题范畴之外,因此不必考虑。运动、方向、指示灯和门可作为其它类的属性,例如,指示灯(的状态)可作为按钮类的属性,方向和门(的状态)可作为电梯类的属性。
经过上述初步筛选只剩下两个基本的候选类,即电梯类和按钮类。在题目的说明中实际指定了两种按钮,因此,应该为按钮类定义两个子类,即电梯按钮和楼层按钮。综合上述分析结果,可得出系统的类图,如图13-50所示。

这个模型是非常初步的模型,需要进一步充实、精化和完善。
分析上述模型会发现它存在比较明显的不足:在实际的电梯系统中,按钮并不直接与电梯通信;为了决定分派哪一部电梯去响应一个特定的请求,必须有某种类型的电梯控制器。然而在题目说明中并未提到控制器,因此它未被列入候选类中。由此可见,名词分析法只为寻找候选类提供了初步线索,不能指望依靠这种方法找出全部候选类。系统分析员必须根据领域知识、常识和经验做进一步分析,才能找出问题域中所有的类。补充了电梯控制器类之后,其类图如图13-51所示。

这个模型也并非十分完善。电梯类的主要功能应是执行电梯控制器发出的移动或等待命令,如果将门(的状态)作为电梯的一个属性,则电梯还要执行关门或开门的命令,这样电梯类的功能就不单一了。于是将电梯门划分出来成为一个独立的类,一旦将其作为一个独立的类,则打开或关闭电梯门的唯一办法就是向“电梯门”类对象发送消息。如果电梯门类封装得好,就能保证不会在错误的时间关闭或打开电梯门,从而有效杜绝严重意外事故的发生。同样,出于安全考虑,在未经授权时不能修改“请求”,因此将“请求”设计成独立的类。经过再次完善之后的类图如图13-19所示。
看了阅读下列说明和相关的类图,回答...的网友还看了以下:

教育学老师推荐了杜威的《民主主义与教育》和卢梭的《爱弥儿》让我们二选一读一下做读书报告,是要挺详细 其他 2020-04-05 …

请教大家,有没有这样的字:左右或者上下的读音一样,写法不一样,可组合起来又是另外一个读音!例如:相 语文 2020-05-13 …

安徒生童话-读后感我要安徒生童话的每一篇的读后感,字数20字以内,篇数越多越好,读后感就是大致写一 数学 2020-05-15 …

学英语,怎样通过朗读提高英语语感?如题想了解一下,朗读应该对于学习英语有很大作用的,大家帮忙说下具 语文 2020-05-17 …

怎么学英语,我一点都不懂,我想学一下,有什么办法,知道的告诉我一下我读到初一就没读了,是家庭原因, 其他 2020-05-17 …

白练()空、浅尝()止……读音也标一下……通融一下啊~还有,鞠躬尽()也填一下,读音要标,我会加悬 语文 2020-05-20 …

小明读一本书,上午读了这本书的十分之一,下午读了24页,这时上午与下午所读页数的比是3:1.这本书 数学 2020-06-03 …

小明上午读了这本书的十分之一,下午读了24页,这时上午于下午所读的页数的比是1:3,用比例解 数学 2020-06-03 …

这位名师交给学生的读书方法是什么?古时候,有个人到当地一个非常有名的老师门下求学.奇怪的是,这位名 其他 2020-06-10 …

上面一个草头,下面一个双口吕,谁可以告诉我一下是读什么字 语文 2020-06-13 …