需求分析——识别系统需求中的三类事件
?
在前面的課程中,我們了解了什么是事件?事件是可以描述的、值得記錄的在某一特定時(shí)間和地點(diǎn)發(fā)生的事情,當(dāng)事件發(fā)生時(shí),系統(tǒng)要做出響應(yīng)。系統(tǒng)可能會(huì)響應(yīng)外部發(fā)生的事件,也可能會(huì)響應(yīng)在系統(tǒng)內(nèi)部發(fā)生的事件,也可能在指定的時(shí)間段系統(tǒng)要做出響應(yīng)。我們把系統(tǒng)響應(yīng)外部發(fā)生的事件稱為外部事件;把系統(tǒng)響應(yīng)內(nèi)部發(fā)生的事件稱為狀態(tài)事件;把系統(tǒng)在指定時(shí)間段響應(yīng)的事件稱為臨時(shí)事件。
?
?
圖1 影響電話訂餐系統(tǒng)的事件
?
我們先來(lái)看外部事件。前面我們分析了電話訂餐系統(tǒng)的事件,其中顧客撥打電話、顧客取消訂餐、顧客取餐等事件都是由顧客觸發(fā)或參與的。顧客可以稱之為外部實(shí)體或動(dòng)作參與者,它為系統(tǒng)提供信息或從系統(tǒng)中獲取信息。外部實(shí)體可以是一個(gè)人,如顧客;也可以是一個(gè)單位或事物,如學(xué)生信息管理系統(tǒng)的課程。
在這里,給出外部事件的描述
?
外部事件—
系統(tǒng)之外發(fā)生的事件,通常都是由外部實(shí)體或動(dòng)作參與者觸發(fā)的
當(dāng)描述外部事件時(shí),需要給事件命名,這樣外部實(shí)體才能清楚。如電話訂餐系統(tǒng)中,撥打電話這個(gè)事件可以命名為——顧客撥打電話。顧客撥打電話這個(gè)事件描述了一個(gè)外部實(shí)體(顧客)以及這個(gè)顧客想做的事情(撥打電話),這個(gè)事件直接影響著系統(tǒng)。
識(shí)別外部事件對(duì)定義系統(tǒng)需求非常重要。為了識(shí)別系統(tǒng)的外部事件,首先需要確定有哪些外部實(shí)體從系統(tǒng)中獲取信息或?yàn)橄到y(tǒng)提供信息。例如,電話訂餐系統(tǒng)的顧客就是很重要的外部實(shí)體,顧客撥打電話訂餐對(duì)電話訂餐系統(tǒng)來(lái)說(shuō)是個(gè)非常重要的外部事件。
識(shí)別外部事件并不容易,但是有一些方法可以幫助我們識(shí)別外部事件。一種方法是當(dāng)外部實(shí)體需要系統(tǒng)響應(yīng)時(shí)。例如,電話訂餐系統(tǒng)的顧客撥打電話;再一種方法是當(dāng)外部實(shí)體需要從系統(tǒng)獲取信息時(shí)。例如,電話訂餐系統(tǒng)的顧客取餐時(shí),服務(wù)人員需要從系統(tǒng)中獲取該顧客的訂餐信息;還有一種方法是當(dāng)外部實(shí)體需要變更系統(tǒng)信息時(shí)。例如,電話訂餐系統(tǒng)的顧客需要取消訂餐或者變更定餐內(nèi)容時(shí)。用這些方法來(lái)識(shí)別事件,相對(duì)就容易些了。
?
識(shí)別外部事件的方法—
當(dāng)外部實(shí)體需要系統(tǒng)響應(yīng)時(shí)
當(dāng)外部實(shí)體需要從系統(tǒng)獲取信息時(shí)
當(dāng)外部實(shí)體需要變更系統(tǒng)信息時(shí)
再來(lái)看臨時(shí)事件。前面分析的電話訂餐系統(tǒng)的事件,也包括了一些臨時(shí)事件。如未取餐提示、未備餐提示、定餐單匯總都屬于臨時(shí)事件。這些事件有一個(gè)共同特征,都是在某一時(shí)刻發(fā)生的事件。例如,當(dāng)顧客在規(guī)定的時(shí)間沒(méi)來(lái)取餐時(shí)就會(huì)觸發(fā)未取餐事件,系統(tǒng)將做相應(yīng)處理。再如,在每天的固定時(shí)間內(nèi)生成當(dāng)天訂餐單匯總表。也就是在某一時(shí)間需要系統(tǒng)處理一些事情的事件。
在這里,給出臨時(shí)事件的描述
?
臨時(shí)事件—
系統(tǒng)到達(dá)某一時(shí)刻自身觸發(fā)的事件
臨時(shí)事件不一定非要在確定的時(shí)間發(fā)生,也可以在預(yù)先定義的一段時(shí)間過(guò)后發(fā)生。例如,當(dāng)客戶購(gòu)買商品后,在某一時(shí)間段內(nèi)沒(méi)有支付商品費(fèi)用,淘寶系統(tǒng)會(huì)自動(dòng)關(guān)閉該交易。臨時(shí)事件命名一般都采用需要系統(tǒng)產(chǎn)生的結(jié)果這種方式來(lái)命名。例如,電話訂餐系統(tǒng)中的未取餐提示、未備餐提示、訂餐單匯總事件命名。
識(shí)別臨時(shí)事件也有三種方法。第一種方法是當(dāng)系統(tǒng)需要在某一最后期限之前必須完成的任務(wù),就可以確定為臨時(shí)事件;第二種方法是當(dāng)系統(tǒng)需要輸出內(nèi)部輸出結(jié)果時(shí),例如電話訂餐系統(tǒng)的每天訂餐單匯總;第三種方法是當(dāng)系統(tǒng)需要對(duì)外部輸出結(jié)果時(shí),例如提醒備餐人員的未備餐提醒。
?
識(shí)別臨時(shí)事件的方法—
當(dāng)系統(tǒng)需要在某一最后期限之前必須完成的任務(wù)時(shí)
當(dāng)系統(tǒng)需要有內(nèi)部輸出結(jié)果時(shí)
當(dāng)系統(tǒng)定時(shí)需要對(duì)外部輸出結(jié)果時(shí)
最后我們?cè)賮?lái)看看狀態(tài)事件。狀態(tài)事件類似于臨時(shí)事件,也是系統(tǒng)內(nèi)部發(fā)生了需要處理的情況時(shí)所引發(fā)的事件。例如,淘寶商戶所售商品的庫(kù)存降到了一定數(shù)量后,就必須要提前進(jìn)貨,該狀態(tài)事件可以命名為“達(dá)到進(jìn)貨點(diǎn)”,雖然狀態(tài)事件和臨時(shí)事件都是由系統(tǒng)內(nèi)部觸發(fā)的,但有所區(qū)別,狀態(tài)事件無(wú)法定義事件發(fā)生的時(shí)間,而臨時(shí)事件都是在固定的時(shí)間或過(guò)后一段時(shí)間觸發(fā)。
在這里,給出臨時(shí)事件的描述
?
狀態(tài)事件—
當(dāng)系統(tǒng)內(nèi)部發(fā)生了需要處理的情況時(shí)所引發(fā)的事件
識(shí)別狀態(tài)事件的要點(diǎn)是,狀態(tài)事件不受時(shí)間的控制,可能會(huì)隨時(shí)發(fā)生,而系統(tǒng)又必須要處理的。
這節(jié)課主要了解了系統(tǒng)響應(yīng)的事件類型。事件類型有外部事件、臨時(shí)事件和狀態(tài)事件。外部事件是由外部實(shí)體觸發(fā)的,如電話訂餐系統(tǒng)的顧客;臨時(shí)事件是系統(tǒng)在某個(gè)固定時(shí)間自動(dòng)觸發(fā)的;狀態(tài)事件是系統(tǒng)內(nèi)部發(fā)生了需要處理的情況時(shí)觸發(fā)的。下節(jié)課,我們將主要學(xué)習(xí)如何識(shí)別影響系統(tǒng)的事件。
總結(jié)
以上是生活随笔為你收集整理的需求分析——识别系统需求中的三类事件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js中的对象、原型链机制、构造函数
- 下一篇: 系统分析——以事件开始构建系统模型