需求分析第四课:系统需求分析的基础——事件

2025-10-19 20:45:12

1、大牛:“上节课我们讲到了需求分析常用的逻辑模型,对常用的需求模型有了大概了解。本节课来认识需求分析的基础——事件”。

大牛在黑板上写下了本节课的学习内容。

●  什么是事件?

●  事件的类型

大牛:“所有的系统开发方法都是以事件开始建模的,事件发生在某一特点的时间和地点、可描述并且系统应该记录下来”。

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

随后大牛将一张图片投影到屏幕上。

需求分析第四课:系统需求分析的基础——事件

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

大牛问小白:“小白,如果把空调看作系统,你来说说,该系统还需要响应哪些事件?温度控制器的事件就不要说了”。

小白:“定时事件、温度调整事件、风速调整事件、还有选择制冷还是制热的事件,暂时想到了这么多”。

大牛:“其实,只要是触发系统响应并处理的,都可以称为事件。例如,空调的启动与关闭本身也是事件,启动空调会触发一系列如风扇开启等动作,关闭空调会触发风扇停止运转等动作”。

小白:“按这样理解的话,空调系统有太多事件了”。

大牛:“是的,系统所有的过程都是由事件驱动或触发的,因此,当你定义系统需求时,把所有事件罗列出来并加以分析是很有意义的”。

大牛在黑板上写下了事件的描述。

什么是事件—

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

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

大牛在黑板上强调了下面这句话。

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

大牛:“这样做的好处是,通过调查对系统有影响的事件,你可以把注意力集中在系统外部环境上,并把整个系统看成一个黑盒,从较高层次上全面考察系统,而不是集中在系统内部工作上”。

小白:“哦,明白了。譬如前面的空调例子,如果让我调查空调系统需求的话,我得先找出空调系统能够响应的事件,像定时、温度调整、风速调整等事件”。

大牛:“非常正确。通过调查分析得出的系统事件可以把系统需求划分为多个部分,把复杂的系统需求分解成容易处理并能更好理解的小单元,分而治之也符合我们处理复杂事情的原则”。

大牛:“小白,咱们尝试对第一课的案例进行分析,看看这个案例有多少个系统事件?”

大牛把第一课的案例内容投影到屏幕上。

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

大牛:“既然是电话订餐,就要有打电话、接听电话、记录电话内容、通知厨房备餐、取餐等操作。小白,你来分析一下电话订餐系统有哪些事件是需要系统来响应并处理的?”

小白:“客户打来电话是一个事件”;

小白:“接听电话也是一个事件”;

小白:“还有记录电话内容、备餐完成、顾客到店、取餐等事件”。

大牛:“我们来分析一下你说的几个事件,先说客户打来电话这个事件”。

大牛:“客户打来电话后,系统要记录电话号码、拨打电话时间,并自动拨通分机号码。因此,客户打来电话是系统事件”。

小白:“牛老师,我有点不明白哦。客户打来电话,客服人员不就直接接电话了嘛,系统怎么记录电话事件啊?需要服务人员来记录吗?”。

大牛笑了笑:“一般的电话订餐系统都是和通讯设备结合的,用于控制电话的接听、转接、记录通话时间等”。

小白:“哦,明白了”。

大牛:“再来看第二个事件——接听电话”。

大牛:“客服人员拿起电话后,需要系统做出什么响应?”。

小白:“我想,应该是需要给系统发出电话已经接通的消息”。

大牛:“对,接听电话也是一个事件”。

大牛:“再看——记录电话内容事件,记录电话内容应该是客服在系统的订餐界面选餐或输入订餐内容,此时系统需要响应客服的输入,因此也属于事件”。

大牛:“你说的还有一个事件——顾客到店,顾客进入店中,并没有直接影响到系统,系统对顾客进入店中也无需进行响应,只有当顾客提出取餐时,系统才开始响应。因此,顾客到店不是事件,取餐是事件”。

小白:“怎么才能识别哪些是事件,哪些不是呢?”。

大牛:“需要系统做出响应的就是系统事件。例如:顾客到店后,对系统并没有影响,只有提出取餐后,系统才开始响应”。

小白:“哦,明白一些了”。

随后大牛将一张图片投影到屏幕上。

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

小白:“还是牛老师厉害,这些事件我怎么都想不到呢?”。

大牛哈哈大笑:“你现在已经不错了,定义系统需求需要长时间的经验积累,相信你会慢慢成长起来的”。

小白:“事件还分为临时事件和外部事件?”。

大牛:“是的,定义系统需求时,我们需要考虑三类事件,外部事件、临时事件和状态事件”。

大牛:“前面我们分析了电话订餐系统的事件,其中拨打电话、取消订餐、取餐等事件都是由顾客触发或参与的,顾客可以称之为外部实体或动作参与者,它为系统提供信息或从系统中获取信息”。

小白:“外部实体是仅指人吗?”。

大牛:“外部实体可以是一个人,如顾客;也可以是一个单位或事物,如学生信息管理系统的课程”。

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

大牛:“和顾客相关的还有其它事件,如当顾客想取消订餐时、或者顾客支付定餐费用时,诸如此类的事件称为外部事件,这些外部事件需要系统响应并处理”。

大牛边说边把外部事件的描述写在黑板上。

外部事件—

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

大牛:“当描述外部事件时,需要给事件命名,这样外部实体才能清楚。如电话订餐系统中,拨打电话这个事件可以命名为——顾客拨打电话”。

大牛:“顾客拨打电话这个事件描述了一个外部实体(顾客)以及这个顾客想做的事情(拨打电话),这个事件直接影响着系统”。

小白:“一个很重要的问题,如何识别外部事件呢?”。

大牛:“识别外部事件并不容易,但是有一些方法可以帮助我们识别外部事件”。

大牛:“一种方法是当外部实体需要系统响应时。例如,电话订餐系统的顾客拨打电话”。

大牛:“再一种方法是当外部实体需要从系统获取信息时。例如,电话订餐系统的顾客取餐时,服务人员需要从系统中获取该顾客的订餐信息”。

大牛:“还有一种方法是当外部实体需要变更系统信息时。例如,电话订餐系统的顾客需要取消订餐或者变更定餐内容时”。

小白:“用这些方法来识别事件,相对就容易些了”。

大牛把识别外部事件的方法写到了黑板上。

识别外部事件的方法—

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

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

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

大牛:“前面说了外部事件,再来看看临时事件”。

大牛:“前面分析的电话订餐系统的事件,也包括了一些临时事件。如未取餐提示、未备餐提示、定餐单汇总都属于临时事件”。

小白:“为什么这些是临时事件呢?”。

大牛:“这些事件有一个共同特征,都是在某一时刻发生的事件。例如,当顾客在规定的时间没来取餐时就会触发未取餐事件,系统将做相应处理。再如,在每天的固定时间内生成当天订餐单汇总表”。

小白:“哦,在某一时间需要系统处理一些事情的事件是不是可以称为临时事件呢”。

大牛:“对,临时事件是到达某一时刻所发生的事件。许多系统按预定的时间间隔产生一些输出结果。例如,工资系统每月生成工资表。换句话说,没有外部实体参与,而是系统自身在需要的时候产生所需的信息或输出”。

大牛边说边把临时事件的描述写在黑板上。

临时事件—

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

大牛:“临时事件不一定非要在确定的时间发生,也可以在预先定义的一段时间过后发生。例如,当客户购买商品后,在某一时间段内没有支付商品费用,淘宝系统会自动关闭该交易”。

大牛:“临时事件命名一般都采用需要系统产生的结果这种方式来命名。例如,电话订餐系统中的未取餐提示、未备餐提示、定餐单汇总事件命名”。

小白:“明白,那如何识别临时事件呢?”。

大牛:“当系统需要在某一最后期限之前必须完成的任务,可以确定为临时事件”。

大牛把识别临时事件的方法写到了黑板上。

识别临时事件的方法—

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

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

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

大牛:“前面了解了外部事件和临时事件,再来看状态事件”。

大牛:“状态事件类似于临时事件,也是系统内部发生了需要处理的情况时所引发的事件。例如,淘宝商户所售商品的库存降到了一定数量后,就必须要提前进货,该状态事件可以命名为‘达到进货点’”。

小白:“哦,状态事件也和临时事件一样,都是由系统内部触发的,它们之间有什么区别吗?”。

大牛:“问得好,虽然状态事件和临时事件都是由系统内部触发的,但有所区别,状态事件无法定义事件发生的时间,而临时事件都是在固定的时间或过后一段时间触发”。

小白:“明白了,状态事件不受时间的控制,可能会随时发生,而系统又必须要处理的”。

大牛对小白点了一个赞:“说的不错”。

大牛把状态事件的描述写到了黑板上。

状态事件—

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

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

需求分析第四课:系统需求分析的基础——事件

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢