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