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