电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
5.95.95.9
5.9
电梯控制系统
在前面几节中,讨论了用于实现单个 UML 图的基本技术。现在,将演示如何
将所有这些技术应用到实际问题中去。下面是简化的电梯控制系统的描述。
电梯由门、监视器和电梯控制器组成。电梯控制器负责控制电梯系统(如图 5
-48 所示中的类图)。乘客通过按动每层楼的按钮或者电梯内的控制面板来与电
梯系统进行交互。一般来说,电梯停在楼宇的底层(第 0层)。如果乘客进入电梯
并按了去第 n层的按钮,电梯将升向第 n层。当电梯到达所请求的楼层的时候(也
就是说第 n层),它将打开门 M秒钟,然后关上门。电梯变成闲置。
图 5-48 电梯控制系统的分析类图
在第 m层的乘客通过按动向上或者向下按钮请求电梯。电梯将移向第 m 层 ,
到达后打开门。乘客想要到达某层,他可以通过按动电梯内控制面板上的按钮来
根据分析类图和问题陈述,就可以开发顺序图进一步细化系统在不同场景中
的动态行为。然后可以使用顺序图来开发电梯控制系统的状态图,它是整个系统
的控制对象。
下面是电梯控制系统的第一个场景。
5.9.15.9.15.9.1
5.9.1
场景 111
1
乘客 Peter 在楼宇底层进入电梯等待室。他按动向上按钮并等待电梯到达。
当电梯到达的时候,电梯打开,他进入电梯并按动电梯内部控制面板上的第 6
层按钮。电梯关闭并向上升起直至到达第 6层。电梯打开,Peter 走出电梯。电
梯等待片刻(10 秒钟),关闭然后再次向下到达底层。电梯将呆在底层等待与其
他用户交互。
如图 5-49 所示为第一个场景的顺序图。通过仔细考察这个场景中事务序列
中的每个步骤,可以开发出这幅图。对于每一个步骤,参与者执行了某个动作,
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
系统相应地进行响应。参与者的输入和系统的响应将有助于确定系统内部需要执
行哪些内部动作。参与者的输入被边界对象接收。然后边界对象发送一条消息给
控制对象以处理参与者的输入。控制对象需要向实体对象发送一条或者多条消
息,执行实际的请求动作。最后,控制对象将向边界对象发送消息,以响应参与
者。下面是这个场景的动作序列。
● Peter在楼宇底层按动向上按钮。按动按钮事件将发送给电梯控制器。现在,
请考虑电梯系统将要执行什么。因为电梯在底层,所以电梯控制器应该开门。
● Peter按下第 6层按钮。按动事件将发送给电梯控制器。电梯控制器等待超时,
关闭门,控制马达向上升起并等待到达事件。当电梯到达第 6层之后,电梯控制
器将打开门。在动作序列中,电梯控制器与门对象和马达对象交互。
根据图 5-49 中的顺序图,开发电梯控制系统器的部分状态图(如图 5-50 所
示)。如图 5-51 所示为顺序图(图 5-49)中电梯控制器的部分状态图。通过采取
以下过程开发电梯控制器和其他控制对象的状态图。
● 因为状态
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示时间延续,所以将两条相继到达电梯控制器的输入消息之间的时
间作为一个状态。
● 如果某个动作需要相当长的时间才能完成,那么将这段时间作为一个状态。例
如,电梯需要相当长的一段时间进行升降。可以将花费在升降上的时间作为状态 。
● 在这个场景发生之前控制器应该处于这个状态。
当电梯接收到输入消息或者事件的时候,从一个状态转换到另一个状态。如
果转换不是无条件的,可以从场景的条件来确定该转换的守卫条件。
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
图 5-49 场景 1的顺序图
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
图 5-50 电梯控制器的部分状态图
图 5-51 从电梯控制器的顺序图而来的部分状态图
例如,电梯控制器在场景 1中的状态图可以相应地开发出来,如下所述。
● 在发生任何交互之前,电梯等候在底层,电梯门关闭;在接收到任何消息或者
事件之前,电梯控制器处于底层状态。
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
● 当电梯控制器从底层的UP 按钮处接收到请求消息的时候,电梯控制器打开
门,将其状态改变为等待楼层号,即等待乘客按动目标楼层数字。注意,电梯乘
客可以按动他当前所在的楼层的编号。
● 乘客按动第 6层按钮,电梯控制器不做任何事情,直到接收到超时事件。在此
期间,电梯的状态不会发生改变。
● 当电梯控制器接收到超时事件,电梯控制器关闭门,发动马达向上移动(因为
第 6层要比当前楼层要高),然后改变它的状态。因为上升动作会持续相当长的
一段时间,所以将这个状态命名为上升。其守卫条件是目的楼层比当前楼层高。
● 当电梯控制器接收到到达事件,电梯停止马达,打开门,并等待乘客再次按动
目的楼层。因此,电梯控制器重新变回了等待楼层号状态。
● 当没有请求时(没有乘客),电梯控制器接收到超时事件,电梯控制器将移动电
梯,回到底层。将这个状态命名为归航。
5.9.25.9.25.9.2
5.9.2
场景 222
2
乘客 Mary 在第 6层。她按动电梯等待室里的向下按钮召唤电梯并等待。电
梯此时在底层,要上升至第 6层。电梯停在第 6层并打开门。Mary 走进电梯并
按下电梯内部控制面板上的底层按钮。电梯关闭,下降并停在底层。电梯打开。
等待片刻(10 秒钟),然后关闭门。
如图 5-52 所示为场景 2的顺序图。根据该顺序图,为电梯控制器开发出部
分状态图,如图 5-53 所示。如图 5-54 所示为如何从图 5-52 中开发出电梯控制
器的部分状态图。
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
图 5-52 场景 2的顺序图
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
图 5-53 场景 2的部分状态图
通过联合不同场景的状态和转换,合并它们的所有状态图,从而有可能开发
出电梯控制器完整的状态图。如果同一个源状态、目标状态和事件存在两个转换 ,
那么将这些转换合并成单个转换,将原有转换的守卫条件合并成一个守卫条件。
通过合并图5-50和图5-53,可以开发出电梯控制器完整状态图(如图5-55所示)。
基于这些场景的顺序图和电梯控制器的状态图,细化类图以提供关于系统动
态行为的更多信息(如图 5-56 所示)。单个类中声明的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
用来实现顺序图和状
态图中单个类接收到的消息。
电梯控制系统的完整 Java 源程序见附录。
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
图 5-54 从电梯控制器的顺序图开发状态图
电梯英才网 http://dt.jdjob88.com
电梯行业最权威的招聘网站---电梯英才网
图 5-55 电梯控制器的状态图
图 5-56 电梯控制系统的类图设计
5.105.105.10
5.10
本章小结
在这一章中,讲述了使用 Java 实现比较常用的几个 UML 图的一些技术。描
述了如何实现单个类以及类之间不同类型的关联关系。然后演示了如何实现活动
图、状态图、顺序图和协作图。还利用电梯控制系统案例研究给出了如何从顺序
图开发控制对象的状态图。