需求分析——识别系统需求中的三类事件

 

需求分析——识别系统需求中的三类事件

在前面的课程中,我们了解了什么是事件?事件是可以描述的、值得记录的在某一特定时间和地点发生的事情,当事件发生时,系统要做出响应。系统可能会响应外部发生的事件,也可能会响应在系统内部发生的事件,也可能在指定的时间段系统要做出响应。我们把系统响应外部发生的事件称为外部事件;把系统响应内部发生的事件称为状态事件;把系统在指定时间段响应的事件称为临时事件。

 

 

需求分析——识别系统需求中的三类事件

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

 

我们先来看外部事件。前面我们分析了电话订餐系统的事件,其中顾客拨打电话、顾客取消订餐、顾客取餐等事件都是由顾客触发或参与的。顾客可以称之为外部实体或动作参与者,它为系统提供信息或从系统中获取信息。外部实体可以是一个人,如顾客;也可以是一个单位或事物,如学生信息管理系统的课程。

在这里,给出外部事件的描述

 

外部事件—

系统之外发生的事件,通常都是由外部实体或动作参与者触发的

当描述外部事件时,需要给事件命名,这样外部实体才能清楚。如电话订餐系统中,拨打电话这个事件可以命名为——顾客拨打电话。顾客拨打电话这个事件描述了一个外部实体(顾客)以及这个顾客想做的事情(拨打电话),这个事件直接影响着系统。

识别外部事件对定义系统需求非常重要。为了识别系统的外部事件,首先需要确定有哪些外部实体从系统中获取信息或为系统提供信息。例如,电话订餐系统的顾客就是很重要的外部实体,顾客拨打电话订餐对电话订餐系统来说是个非常重要的外部事件。

识别外部事件并不容易,但是有一些方法可以帮助我们识别外部事件。一种方法是当外部实体需要系统响应时。例如,电话订餐系统的顾客拨打电话;再一种方法是当外部实体需要从系统获取信息时。例如,电话订餐系统的顾客取餐时,服务人员需要从系统中获取该顾客的订餐信息;还有一种方法是当外部实体需要变更系统信息时。例如,电话订餐系统的顾客需要取消订餐或者变更定餐内容时。用这些方法来识别事件,相对就容易些了。

 

识别外部事件的方法—

当外部实体需要系统响应时

当外部实体需要从系统获取信息时

当外部实体需要变更系统信息时

再来看临时事件。前面分析的电话订餐系统的事件,也包括了一些临时事件。如未取餐提示、未备餐提示、定餐单汇总都属于临时事件。这些事件有一个共同特征,都是在某一时刻发生的事件。例如,当顾客在规定的时间没来取餐时就会触发未取餐事件,系统将做相应处理。再如,在每天的固定时间内生成当天订餐单汇总表。也就是在某一时间需要系统处理一些事情的事件。

在这里,给出临时事件的描述

 

临时事件—

系统到达某一时刻自身触发的事件

临时事件不一定非要在确定的时间发生,也可以在预先定义的一段时间过后发生。例如,当客户购买商品后,在某一时间段内没有支付商品费用,淘宝系统会自动关闭该交易。临时事件命名一般都采用需要系统产生的结果这种方式来命名。例如,电话订餐系统中的未取餐提示、未备餐提示、订餐单汇总事件命名。

识别临时事件也有三种方法。第一种方法是当系统需要在某一最后期限之前必须完成的任务,就可以确定为临时事件;第二种方法是当系统需要输出内部输出结果时,例如电话订餐系统的每天订餐单汇总;第三种方法是当系统需要对外部输出结果时,例如提醒备餐人员的未备餐提醒。

 

识别临时事件的方法—

当系统需要在某一最后期限之前必须完成的任务时

当系统需要有内部输出结果时

当系统定时需要对外部输出结果时

最后我们再来看看状态事件。状态事件类似于临时事件,也是系统内部发生了需要处理的情况时所引发的事件。例如,淘宝商户所售商品的库存降到了一定数量后,就必须要提前进货,该状态事件可以命名为“达到进货点”,虽然状态事件和临时事件都是由系统内部触发的,但有所区别,状态事件无法定义事件发生的时间,而临时事件都是在固定的时间或过后一段时间触发。

在这里,给出临时事件的描述

 

状态事件—

当系统内部发生了需要处理的情况时所引发的事件

识别状态事件的要点是,状态事件不受时间的控制,可能会随时发生,而系统又必须要处理的。

这节课主要了解了系统响应的事件类型。事件类型有外部事件、临时事件和状态事件。外部事件是由外部实体触发的,如电话订餐系统的顾客;临时事件是系统在某个固定时间自动触发的;状态事件是系统内部发生了需要处理的情况时触发的。下节课,我们将主要学习如何识别影响系统的事件。