摘要:本文通過(guò)分析生活中的銀行柜臺(tái)取錢或存錢這一生活實(shí)例,將其融入到“軟件工程”課程的客戶/服務(wù)器體系結(jié)構(gòu)的教學(xué)活動(dòng)中,以提高軟件工程的教學(xué)質(zhì)量。
關(guān)鍵詞:軟件工程;實(shí)踐教學(xué);客戶機(jī)/服務(wù)器體系結(jié)構(gòu)
中圖分類號(hào):G642
文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-5913(2008)06-0033-02
1引言
“軟件工程”是軟件工程專業(yè)的一門核心和專業(yè)基礎(chǔ)課程,“體系結(jié)構(gòu)設(shè)計(jì)”是不可缺少的一部分內(nèi)容,而“客戶/服務(wù)器體系結(jié)構(gòu)”的基本概念和思想是講解“體系結(jié)構(gòu)設(shè)計(jì)”這部分內(nèi)容的基礎(chǔ),也是進(jìn)一步講述和學(xué)習(xí)體系結(jié)構(gòu)的基礎(chǔ)。因此,如何有效地對(duì)客戶/服務(wù)器體系結(jié)構(gòu)進(jìn)行教學(xué)實(shí)踐是教學(xué)活動(dòng)必須解決的問(wèn)題。由于是在大三開課,學(xué)生們的專業(yè)基礎(chǔ)知識(shí)不全面,工程經(jīng)驗(yàn)缺乏,在這種情況下,如何將抽象、難于理解的“客戶/服務(wù)器體系結(jié)構(gòu)”的基本概念和思想通俗地講解給學(xué)生,是軟件工程教學(xué)實(shí)踐所面臨的一個(gè)問(wèn)題。
2教學(xué)內(nèi)容和教學(xué)策略
雖然客戶/服務(wù)器體系結(jié)構(gòu)的基本概念和思想的教學(xué)內(nèi)容不多,但學(xué)生對(duì)它的理解直接關(guān)系到后續(xù)分布式體系結(jié)構(gòu)的學(xué)習(xí),因此如何讓學(xué)生真正體會(huì)到上述客戶/服務(wù)器體系結(jié)構(gòu)的概念和思想就成為教學(xué)活動(dòng)關(guān)注的重點(diǎn)。我們采用如下的教學(xué)策略:
(1) 請(qǐng)一個(gè)同學(xué)上講臺(tái),模擬銀行柜臺(tái)取錢或存錢這一生活實(shí)例。首先要求學(xué)生以進(jìn)入銀行大門這一時(shí)刻開始模擬取錢或存錢這一完整過(guò)程中的活動(dòng),其次要求將主要的活動(dòng)過(guò)程詳細(xì)畫出來(lái)。這一部分需要老師與學(xué)生共同完成,得到如圖1所示的銀行柜臺(tái)取錢或存錢活動(dòng)過(guò)程圖。
(2) 根據(jù)圖1所示的結(jié)果,向?qū)W生們講解將用戶作為客戶,銀行作為服務(wù)器(包括取號(hào)系統(tǒng)、柜臺(tái)),用戶是如何在銀行通過(guò)銀行柜臺(tái)完成取錢或存錢的過(guò)程,這樣就闡述了客戶/服務(wù)器的基本思想。
(3) 在上一步的基礎(chǔ)上,對(duì)圖1進(jìn)行修改,畫出對(duì)應(yīng)的軟件結(jié)構(gòu)圖,如圖2所示,并結(jié)合圖1進(jìn)行軟件各模塊的功能講述,再次闡述客戶/服務(wù)器的基本思想。
客戶→銀行客戶,監(jiān)聽服務(wù)→銀行取號(hào)系統(tǒng),服務(wù)→銀行柜臺(tái)。
圖1 銀行柜臺(tái)取錢或存錢活動(dòng)圖
(4) 在圖2的基礎(chǔ)上,將完成幾種典型的客戶/服務(wù)器體系結(jié)構(gòu)的教學(xué)。
圖2 客戶/服務(wù)器結(jié)構(gòu)單窗口服務(wù)
如果銀行的服務(wù)窗口只有一個(gè),而且沒(méi)有取號(hào)系統(tǒng)的時(shí)候,那么銀行柜臺(tái)的服務(wù)就是一種單窗口服務(wù)方式,即在同一個(gè)時(shí)刻只可以為一個(gè)客戶進(jìn)行取錢或存錢服務(wù),服務(wù)窗口正在為當(dāng)前客戶服務(wù)時(shí),對(duì)其他客戶請(qǐng)求不作任何回應(yīng),圖3即為銀行柜臺(tái)的單窗口服務(wù)方式模擬圖。
圖3 單窗口服務(wù)模式
對(duì)于單窗口服務(wù)方式,如果有客戶占住銀行柜臺(tái)不離開時(shí),其他的客戶都不能進(jìn)行取錢或存錢業(yè)務(wù)。在講解單窗口服務(wù)方式時(shí),一方面要講解這種服務(wù)方式的缺陷,同時(shí)也要導(dǎo)出第一種客戶/服務(wù)器體系結(jié)構(gòu)的形式,并加以講解。
主窗口開啟服務(wù)窗口服務(wù)
為了彌補(bǔ)上述單窗口服務(wù)模式存在的缺陷,提出了主窗口創(chuàng)建服務(wù)窗口服務(wù)的模型。銀行柜臺(tái)的主窗口創(chuàng)建服務(wù)窗口服務(wù)方式的思想是每一個(gè)客戶的請(qǐng)求并不由主窗口直接處理,而是主窗口開啟一個(gè)服務(wù)窗口來(lái)為客戶服務(wù),當(dāng)服務(wù)窗口服務(wù)完之后,服務(wù)窗口將關(guān)閉,其模擬過(guò)程如圖4所示。
如圖4的工作原理表明銀行柜臺(tái)的主窗口專門接待新的客戶的到來(lái),服務(wù)窗口則專門為客戶提供服務(wù)。在講述這一銀行模擬服務(wù)的同時(shí),將導(dǎo)出第二種客戶/服務(wù)器體系結(jié)構(gòu)的形式,并加以講解。
多窗口服務(wù)
多窗口服務(wù)模式,也就是現(xiàn)在銀行的服務(wù)模式,其處理流程如下:銀行預(yù)先開啟多個(gè)柜臺(tái)服務(wù)窗口,這些服務(wù)窗口一直都在進(jìn)行服務(wù);當(dāng)客戶到來(lái)時(shí),客戶首先從取號(hào)系統(tǒng)中取出一個(gè)服務(wù)號(hào)碼等候;當(dāng)有服務(wù)窗口呼喚自己的號(hào)碼時(shí),客戶就到相應(yīng)的服務(wù)窗口去辦理相關(guān)的業(yè)務(wù);當(dāng)服務(wù)窗口處理完這個(gè)客戶后,繼續(xù)呼叫下一個(gè)客戶號(hào)碼,其相應(yīng)的模擬過(guò)程如圖5所示。另外這種服務(wù)模式可以根據(jù)客戶到來(lái)的數(shù)量多少來(lái)動(dòng)態(tài)調(diào)整當(dāng)前打開服務(wù)窗口的多少。在模擬講述現(xiàn)代銀行這一服務(wù)的同時(shí),將導(dǎo)出第三種客戶/服務(wù)器體系結(jié)構(gòu)的形式,并加以講解。
圖4 主窗口創(chuàng)建服務(wù)窗口服務(wù)模式
圖5 主窗口創(chuàng)建服務(wù)窗口服務(wù)模式
3結(jié)束語(yǔ)
為了進(jìn)一步提高教學(xué)質(zhì)量,下一階段要完成的工作是:
1) 如何將生活中的實(shí)例更加抽象化、模型化,以及如何用信息技術(shù)更加形象地表示生活中的實(shí)例。
2) 建立教學(xué)案例庫(kù),用于支撐每一個(gè)教學(xué)和實(shí)驗(yàn)環(huán)節(jié)。
參考文獻(xiàn)
[1] 程成,陳霞譯. 軟件工程(第六版)[M]. 北京:機(jī)械工業(yè)出版社,2003.