以事件概念开始建模
1876字,阅读需时7分钟
来自专栏
课程/专栏

当为一个系统定义需求时,先调查清楚能对该系统产生影响的事件是十分有用的。通过询问系统相关者,找到对系统影响的事件。这样系统分析员就可以把注意力集中在外部环境上,并把整个系统看成一个黑盒,从高层次上全面考察系统,而不是集中在系统内部工作上。

既然事件对系统分析如此重要,就有必要对事件有个深入了解。我们来看个关于事件的例子。

家中用的空调都是自动调节温度的,用于调节温度的重要部件是温度控制器,它可以感知周围的环境温度。当温度高于设定温度时,温度控制器触发继电器闭合,空调运转,当温度低于设定温度时,温度控制器触发继电器断开,空调停止运转。

在上面的例子中,温度控制器用来控制空调的运转,从而控制室内温度。当室内温度高于设定温度时,温度控制器会发出指令,让空调进入运转状态;当室内温度低于设定温度时,温度控制器会发出指令,让空调进入停止状态。在合适的时间温度控制器发出启动和停止空调运转的指令,就是一个空调系统中的事件。

image.png

图 1 空调温度控制器事件图

从上图也可以看出,温度控制器本身触发了2个事件,一个事件是当温度高于设定温度时发生,事件发生后执行的动作是启动空调;另外一个事件是当温度低于设定温度时发生,事件发生后行的动作是关闭空调。

如果我们把空调看作一个系统,这个系统还有定时事件、温度调整事件、风速调整事件、空调的启动与关闭等事件。启动空调事件会触发一系列如风扇开启等动作,关闭空调事件会触发风扇停止运转等动作。

可以看出空调系统所有的过程都是由事件驱动或触发的,因此,当定义系统需求时,把所有事件罗列出来并加以分析是很有意义的。

在这里给出事件的定义。

什么是事件—

可以描述的、值得记录的在某一特定时间和地点发生的事情

当我们为一个系统定义需求时,先调查清楚能对该系统产生影响的事件是十分有用的,概括说,就是什么事件发生时,需要系统做出响应?

什么事件发生时,需要系统做出响应?

通过调查对系统有影响的事件,可以把注意力集中在系统外部环境上,并把整个系统看成一个黑盒,从较高层次上全面考察系统,而不是集中在系统内部工作上。假如一个企业要准备生成空调,需要调查空调系统具有哪些功能,可以先找出空调系统能够响应的事件,像定时、温度调整、风速调整等事件。找出空调系统所有能够响应的事件后,就可以把空调系统的功能划分为多个部分,把复杂的空调系统分解成容易处理并能更好理解的小单元,这就是再处理复杂事情时分而治之的原则。

来看一个案例内容

某一快餐连锁店,一直为顾客提供快餐服务,由于价格实惠,服务优良,到店吃饭的顾客很多,顾客需要排很长的队才能点餐和配餐,严重影响了顾客体验。快餐老板希望能够实现顾客电话预订餐,顾客提前通过电话预定餐,并预约到店时间,这样快餐店可以提前做准备,缩短了顾客在餐厅的等候时间。

快餐店老板希望开发一个电话预订餐系统,我们可以尝试从上面的案例内容列出电话预订餐系统的系统事件。

既然是电话订餐,就要有客户拨打打电话、接听电话、记录电话内容、通知厨房备餐、顾客到店取餐等操作。我们来分析一下,看看上面的操作哪些是系统事件。

先说客户拨打打电话这个操作。客户打来电话后,系统要记录电话号码、拨打电话时间,并自动拨通分机号码。因此,客户打来电话是系统事件。

再来看接听电话和记录电话内容这两个操作。客服人员接听电话后,系统并没有进行响应,因此接听电话不是系统事件。当客服人员根据客户的要求记录电话内容时,例如在系统的订餐界面选餐或输入订餐内容,此时系统需要响应客服的输入,因此记录电话内容是系统事件。

通知厨房备餐在电话订餐系统中,属于系统内部事件,当客服人员提交订餐内容后,电话订餐系统会自动触发该事件。该事件会通知厨房人员有的新的备餐。

顾客到店取餐可以分为顾客到店和取餐两个操作。客到店并没有直接影响到系统,系统对顾客进入店中也无需进行响应,只有当顾客提出取餐时,系统才开始响应。因此,顾客到店不是事件,取餐是事件。

image.png

图 2 影响电话订餐系统的事件

上面的图列出了影响电话订餐系统的事件,云形灰色区域内的事件是系统内部发生的临时事件。例如,当顾客在预定的时间没来取餐时,系统应给出提示,再如,系统需要每天在规定的时间形成当天的订餐单汇总表。云形灰色区域外的事件是系统之外发生的事件,如顾客拨打电话、顾客支付定餐费用等。

这节课我们通过空调系统和电话订餐系统两个案例,了解了什么是事件。事件是能够引起系统响应、可以描述的、值得记录的在某一特定时间和地点发生的事情。在电话订餐系统中,我们提到了临时事件,下节课我们将讨论事件的类型,事件类型有外部事件、临时事件和状态事件。

我要评论
全部评论
新语
1楼:06.8  11:37
写的很棒,赞一个
回复评论
回复
回复评论