系统分析——以事件开始构建系统模型
當(dāng)為一個(gè)系統(tǒng)定義需求時(shí),先調(diào)查清楚能對(duì)該系統(tǒng)產(chǎn)生影響的事件是十分有用的。通過(guò)詢問(wèn)系統(tǒng)相關(guān)者,找到對(duì)系統(tǒng)影響的事件。這樣系統(tǒng)分析員就可以把注意力集中在外部環(huán)境上,并把整個(gè)系統(tǒng)看成一個(gè)黑盒,從高層次上全面考察系統(tǒng),而不是集中在系統(tǒng)內(nèi)部工作上。
既然事件對(duì)系統(tǒng)分析如此重要,就有必要對(duì)事件有個(gè)深入了解。我們來(lái)看個(gè)關(guān)于事件的例子。
家中用的空調(diào)都是自動(dòng)調(diào)節(jié)溫度的,用于調(diào)節(jié)溫度的重要部件是溫度控制器,它可以感知周?chē)沫h(huán)境溫度。當(dāng)溫度高于設(shè)定溫度時(shí),溫度控制器觸發(fā)繼電器閉合,空調(diào)運(yùn)轉(zhuǎn),當(dāng)溫度低于設(shè)定溫度時(shí),溫度控制器觸發(fā)繼電器斷開(kāi),空調(diào)停止運(yùn)轉(zhuǎn)。
在上面的例子中,溫度控制器用來(lái)控制空調(diào)的運(yùn)轉(zhuǎn),從而控制室內(nèi)溫度。當(dāng)室內(nèi)溫度高于設(shè)定溫度時(shí),溫度控制器會(huì)發(fā)出指令,讓空調(diào)進(jìn)入運(yùn)轉(zhuǎn)狀態(tài);當(dāng)室內(nèi)溫度低于設(shè)定溫度時(shí),溫度控制器會(huì)發(fā)出指令,讓空調(diào)進(jìn)入停止?fàn)顟B(tài)。在合適的時(shí)間溫度控制器發(fā)出啟動(dòng)和停止空調(diào)運(yùn)轉(zhuǎn)的指令,就是一個(gè)空調(diào)系統(tǒng)中的事件。
?
圖 1 空調(diào)溫度控制器事件圖
從上圖也可以看出,溫度控制器本身觸發(fā)了2個(gè)事件,一個(gè)事件是當(dāng)溫度高于設(shè)定溫度時(shí)發(fā)生,事件發(fā)生后執(zhí)行的動(dòng)作是啟動(dòng)空調(diào);另外一個(gè)事件是當(dāng)溫度低于設(shè)定溫度時(shí)發(fā)生,事件發(fā)生后行的動(dòng)作是關(guān)閉空調(diào)。
如果我們把空調(diào)看作一個(gè)系統(tǒng),這個(gè)系統(tǒng)還有定時(shí)事件、溫度調(diào)整事件、風(fēng)速調(diào)整事件、空調(diào)的啟動(dòng)與關(guān)閉等事件。啟動(dòng)空調(diào)事件會(huì)觸發(fā)一系列如風(fēng)扇開(kāi)啟等動(dòng)作,關(guān)閉空調(diào)事件會(huì)觸發(fā)風(fēng)扇停止運(yùn)轉(zhuǎn)等動(dòng)作。
可以看出空調(diào)系統(tǒng)所有的過(guò)程都是由事件驅(qū)動(dòng)或觸發(fā)的,因此,當(dāng)定義系統(tǒng)需求時(shí),把所有事件羅列出來(lái)并加以分析是很有意義的。
在這里給出事件的定義。
?
什么是事件—
可以描述的、值得記錄的在某一特定時(shí)間和地點(diǎn)發(fā)生的事情
當(dāng)我們?yōu)橐粋€(gè)系統(tǒng)定義需求時(shí),先調(diào)查清楚能對(duì)該系統(tǒng)產(chǎn)生影響的事件是十分有用的,概括說(shuō),就是什么事件發(fā)生時(shí),需要系統(tǒng)做出響應(yīng)?
什么事件發(fā)生時(shí),需要系統(tǒng)做出響應(yīng)?
通過(guò)調(diào)查對(duì)系統(tǒng)有影響的事件,可以把注意力集中在系統(tǒng)外部環(huán)境上,并把整個(gè)系統(tǒng)看成一個(gè)黑盒,從較高層次上全面考察系統(tǒng),而不是集中在系統(tǒng)內(nèi)部工作上。假如一個(gè)企業(yè)要準(zhǔn)備生成空調(diào),需要調(diào)查空調(diào)系統(tǒng)具有哪些功能,可以先找出空調(diào)系統(tǒng)能夠響應(yīng)的事件,像定時(shí)、溫度調(diào)整、風(fēng)速調(diào)整等事件。找出空調(diào)系統(tǒng)所有能夠響應(yīng)的事件后,就可以把空調(diào)系統(tǒng)的功能劃分為多個(gè)部分,把復(fù)雜的空調(diào)系統(tǒng)分解成容易處理并能更好理解的小單元,這就是再處理復(fù)雜事情時(shí)分而治之的原則。
來(lái)看一個(gè)案例內(nèi)容
某一快餐連鎖店,一直為顧客提供快餐服務(wù),由于價(jià)格實(shí)惠,服務(wù)優(yōu)良,到店吃飯的顧客很多,顧客需要排很長(zhǎng)的隊(duì)才能點(diǎn)餐和配餐,嚴(yán)重影響了顧客體驗(yàn)。快餐老板希望能夠?qū)崿F(xiàn)顧客電話預(yù)訂餐,顧客提前通過(guò)電話預(yù)定餐,并預(yù)約到店時(shí)間,這樣快餐店可以提前做準(zhǔn)備,縮短了顧客在餐廳的等候時(shí)間。
快餐店老板希望開(kāi)發(fā)一個(gè)電話預(yù)訂餐系統(tǒng),我們可以嘗試從上面的案例內(nèi)容列出電話預(yù)訂餐系統(tǒng)的系統(tǒng)事件。
既然是電話訂餐,就要有客戶撥打打電話、接聽(tīng)電話、記錄電話內(nèi)容、通知廚房備餐、顧客到店取餐等操作。我們來(lái)分析一下,看看上面的操作哪些是系統(tǒng)事件。
先說(shuō)客戶撥打打電話這個(gè)操作。客戶打來(lái)電話后,系統(tǒng)要記錄電話號(hào)碼、撥打電話時(shí)間,并自動(dòng)撥通分機(jī)號(hào)碼。因此,客戶打來(lái)電話是系統(tǒng)事件。
再來(lái)看接聽(tīng)電話和記錄電話內(nèi)容這兩個(gè)操作。客服人員接聽(tīng)電話后,系統(tǒng)并沒(méi)有進(jìn)行響應(yīng),因此接聽(tīng)電話不是系統(tǒng)事件。當(dāng)客服人員根據(jù)客戶的要求記錄電話內(nèi)容時(shí),例如在系統(tǒng)的訂餐界面選餐或輸入訂餐內(nèi)容,此時(shí)系統(tǒng)需要響應(yīng)客服的輸入,因此記錄電話內(nèi)容是系統(tǒng)事件。
通知廚房備餐在電話訂餐系統(tǒng)中,屬于系統(tǒng)內(nèi)部事件,當(dāng)客服人員提交訂餐內(nèi)容后,電話訂餐系統(tǒng)會(huì)自動(dòng)觸發(fā)該事件。該事件會(huì)通知廚房人員有的新的備餐。
顧客到店取餐可以分為顧客到店和取餐兩個(gè)操作。客到店并沒(méi)有直接影響到系統(tǒng),系統(tǒng)對(duì)顧客進(jìn)入店中也無(wú)需進(jìn)行響應(yīng),只有當(dāng)顧客提出取餐時(shí),系統(tǒng)才開(kāi)始響應(yīng)。因此,顧客到店不是事件,取餐是事件。
?
圖 2 影響電話訂餐系統(tǒng)的事件
上面的圖列出了影響電話訂餐系統(tǒng)的事件,云形灰色區(qū)域內(nèi)的事件是系統(tǒng)內(nèi)部發(fā)生的臨時(shí)事件。例如,當(dāng)顧客在預(yù)定的時(shí)間沒(méi)來(lái)取餐時(shí),系統(tǒng)應(yīng)給出提示,再如,系統(tǒng)需要每天在規(guī)定的時(shí)間形成當(dāng)天的訂餐單匯總表。云形灰色區(qū)域外的事件是系統(tǒng)之外發(fā)生的事件,如顧客撥打電話、顧客支付訂餐費(fèi)用等。
這節(jié)課我們通過(guò)空調(diào)系統(tǒng)和電話訂餐系統(tǒng)兩個(gè)案例,了解了什么是事件。事件是能夠引起系統(tǒng)響應(yīng)、可以描述的、值得記錄的在某一特定時(shí)間和地點(diǎn)發(fā)生的事情。在電話訂餐系統(tǒng)中,我們提到了臨時(shí)事件,下節(jié)課我們將討論事件的類(lèi)型,事件類(lèi)型有外部事件、臨時(shí)事件和狀態(tài)事件。
總結(jié)
以上是生活随笔為你收集整理的系统分析——以事件开始构建系统模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 30天提升技术人的写作力-第二十三天
- 下一篇: 面向对象(上)之三