摘要:本文通過分析生活中的銀行柜臺取錢或存錢這一生活實例,將其融入到“軟件工程”課程的客戶/服務器體系結構的教學活動中,以提高軟件工程的教學質量。
關鍵詞:軟件工程;實踐教學;客戶機/服務器體系結構
中圖分類號:G642
文獻標識碼:B
文章編號:1672-5913(2008)06-0033-02
1引言
“軟件工程”是軟件工程專業的一門核心和專業基礎課程,“體系結構設計”是不可缺少的一部分內容,而“客戶/服務器體系結構”的基本概念和思想是講解“體系結構設計”這部分內容的基礎,也是進一步講述和學習體系結構的基礎。因此,如何有效地對客戶/服務器體系結構進行教學實踐是教學活動必須解決的問題。由于是在大三開課,學生們的專業基礎知識不全面,工程經驗缺乏,在這種情況下,如何將抽象、難于理解的“客戶/服務器體系結構”的基本概念和思想通俗地講解給學生,是軟件工程教學實踐所面臨的一個問題。
2教學內容和教學策略
雖然客戶/服務器體系結構的基本概念和思想的教學內容不多,但學生對它的理解直接關系到后續分布式體系結構的學習,因此如何讓學生真正體會到上述客戶/服務器體系結構的概念和思想就成為教學活動關注的重點。我們采用如下的教學策略:
(1) 請一個同學上講臺,模擬銀行柜臺取錢或存錢這一生活實例。首先要求學生以進入銀行大門這一時刻開始模擬取錢或存錢這一完整過程中的活動,其次要求將主要的活動過程詳細畫出來。這一部分需要老師與學生共同完成,得到如圖1所示的銀行柜臺取錢或存錢活動過程圖。
(2) 根據圖1所示的結果,向學生們講解將用戶作為客戶,銀行作為服務器(包括取號系統、柜臺),用戶是如何在銀行通過銀行柜臺完成取錢或存錢的過程,這樣就闡述了客戶/服務器的基本思想。
(3) 在上一步的基礎上,對圖1進行修改,畫出對應的軟件結構圖,如圖2所示,并結合圖1進行軟件各模塊的功能講述,再次闡述客戶/服務器的基本思想。
客戶→銀行客戶,監聽服務→銀行取號系統,服務→銀行柜臺。

圖1 銀行柜臺取錢或存錢活動圖
(4) 在圖2的基礎上,將完成幾種典型的客戶/服務器體系結構的教學。

圖2 客戶/服務器結構單窗口服務
如果銀行的服務窗口只有一個,而且沒有取號系統的時候,那么銀行柜臺的服務就是一種單窗口服務方式,即在同一個時刻只可以為一個客戶進行取錢或存錢服務,服務窗口正在為當前客戶服務時,對其他客戶請求不作任何回應,圖3即為銀行柜臺的單窗口服務方式模擬圖。

圖3 單窗口服務模式
對于單窗口服務方式,如果有客戶占住銀行柜臺不離開時,其他的客戶都不能進行取錢或存錢業務。在講解單窗口服務方式時,一方面要講解這種服務方式的缺陷,同時也要導出第一種客戶/服務器體系結構的形式,并加以講解。
主窗口開啟服務窗口服務
為了彌補上述單窗口服務模式存在的缺陷,提出了主窗口創建服務窗口服務的模型。銀行柜臺的主窗口創建服務窗口服務方式的思想是每一個客戶的請求并不由主窗口直接處理,而是主窗口開啟一個服務窗口來為客戶服務,當服務窗口服務完之后,服務窗口將關閉,其模擬過程如圖4所示。
如圖4的工作原理表明銀行柜臺的主窗口專門接待新的客戶的到來,服務窗口則專門為客戶提供服務。在講述這一銀行模擬服務的同時,將導出第二種客戶/服務器體系結構的形式,并加以講解。
多窗口服務
多窗口服務模式,也就是現在銀行的服務模式,其處理流程如下:銀行預先開啟多個柜臺服務窗口,這些服務窗口一直都在進行服務;當客戶到來時,客戶首先從取號系統中取出一個服務號碼等候;當有服務窗口呼喚自己的號碼時,客戶就到相應的服務窗口去辦理相關的業務;當服務窗口處理完這個客戶后,繼續呼叫下一個客戶號碼,其相應的模擬過程如圖5所示。另外這種服務模式可以根據客戶到來的數量多少來動態調整當前打開服務窗口的多少。在模擬講述現代銀行這一服務的同時,將導出第三種客戶/服務器體系結構的形式,并加以講解。

圖4 主窗口創建服務窗口服務模式

圖5 主窗口創建服務窗口服務模式
3結束語
為了進一步提高教學質量,下一階段要完成的工作是:
1) 如何將生活中的實例更加抽象化、模型化,以及如何用信息技術更加形象地表示生活中的實例。
2) 建立教學案例庫,用于支撐每一個教學和實驗環節。
參考文獻
[1] 程成,陳霞譯. 軟件工程(第六版)[M]. 北京:機械工業出版社,2003.