电梯系统的UML文档05
·Dispatcher 不控制实际的电梯组件,但它在软件系统中是重要的。每一个电梯有一个ispatcher,主要功能是计算电梯的移动方向、移动目的地以及保持门的打开时间。它和系统中除灯控制器以外的几乎所有控制对象交互。
·安全装置也是一个环境对象,它不属于控制软件,但是系统的重要部分。在真实世界中,如果一台电梯的紧急制动被触发,则安全装置动作变化。但在我们的模拟系统中,只显示一些信息。
在我们的系统中,乘客也作为一个环境对象来建模。乘客和楼层呼叫按钮、电梯呼叫按钮交互,使门反转,观察电梯的方向和位置等。为了简单,乘客对象没有在图3 中列出(不像其他的环境对象)。
软件的类图解决了前一节提出的大多数问题。控制任务被分配到几个控制对象中,每个控制一个或两个环境对象,都没有负担过重或空闲。不需要竞争中心控制器的计算资源,因为由控制器控制其受控对象。
但是从这个类图引发的,关于我们系统实现细节问题如下:
·控制对象如何控制环境对象?
·一个对象如何从其他的对象得到必需的信息?
·如何对网络建模
从系统架构的角度,这些问题必须回答。
4.3.3 类图——系统架构图
为了回答上一节提出的问题,类图要加入网络、传感器/传动装置进行细化,以对真实系统的架构进行建模。
从这一点来看,系统的类图和普通UML 图的类图不完全一样。但类图是描述系统静态结构的一种有效的途径,为什么不用它来帮助更好的表达系统架构?
类图中的各个部分如图4,被分成如下8 类:
控制类
·前一节我们对系统中的控制对象作了大量的陈述。从系统架构来看控制对象包括电梯位置控制、电梯按钮控制、灯控制、门控制、驱动控制、楼层按钮控制和Dispatcher(CarPositionControl,CarButtonControl,LanternControl,DoorControl,DriveControl,HallButtonControl and Dispatcher.)。
·所有的控制对象连接到网络,从网络得到输入并发送输出消息到网络给其他的对象。
·控制对象控制一个和传感器及传动装置相连的系统实体(如门和按钮),从传感器得到信息,并发送反馈到传动装置执行控制功能。
网络
·所有的控制对象和通信网络连接,在图的中间用网络类来建模。网络是(编注:此处缺1 页,抱歉)
图4:类图——软件架构图