您好, 訪客   登錄/注冊

論基于構件的軟件開發

來源:用戶上傳      作者: 靳桂珍

  [摘 要]基于構件的軟件開發是提高軟件生產效率和軟件產品質量的有效途徑。本文結合我們的實踐,以“在線學習支持服務平臺”項目為例,討論基于構件的軟件開發的技術應用。
  [關鍵詞]基于構件;軟件開發;技術應用
  
  “在線學習支持服務平臺”是對學生遠程學習進行教學輔導。經過多年對遠程教育模式的探索,確立了成熟的遠程教育教學模式――利用先進的網絡數字信息技術,為廣大的學生提供開放的教育平臺和最優秀的教育資源,突出個性、學生自主學習的教學。
  “在線學習支持服務平臺”是一個綜合性的在線式基于WEB的遠程教學平臺,存儲著核心信息數據,提供網上課程、信息發布、查詢、BBS、VOD視頻點播等教學服務,該系統的開發技術主要集軟件復用、企業級應用程序開發于一體的“基于構件的軟件開發”。系統運行于WINDOWS SERVER2000。用SQL SERVER 2000 為后臺數據庫,用ASP+IIS5.0來架構網站。
  由于COM組件既可以被嵌入動態WEB面面,還可以在LAN或桌面環境的VB、VC等應用中使用。另外該組件之間是彼此獨立的。當應用需求發生變更時,可能需要更換中間層的個別COM組件,但并不影響其他組件的繼續使用。組件具有若干對外接口(屬性和方法)??梢愿鶕煌膽眯枨?有選擇地使用不同的接口。即使不再使用某些接口時,COM接口本身仍然可繼續使用。同一COM組件可以在不同的應用環境中重復使用。因此,結合我們的實際情況,我們現有的各級軟件系統都是基于微軟Windows系統列平臺,且開發人員對COM組件技術也較熟悉,對開發語言VB6也很熟悉,因此我們確定使用微軟的COM組件技術來開發該平臺。
  該平臺采用B/S結構進行設計,把整個系統分為三個層:數據庫層,應用邏輯層,用戶界面層。用戶界面是瀏覽器(如IE等),并通過ASP語言來實現同應用邏輯層構件交互。應用邏輯層負責事務處理。應用邏輯層主要通過使用COM組件方式來實現,數據庫層用SQL SERVER實現。
  我們依據平臺的主要功能,在平臺開發中,如果采用傳統的方法來開發,則每實現一個功能都要編寫同樣的代碼,為了節省開發時間和提高維護效率,我們把共用的代碼模塊都做成組件,例如我們把記錄操作(如記錄的刪除、增加、修改等)、數據庫操作、查詢做成用戶管理組件,把用戶身份認證和用戶類型識別做成用戶管理組件,把所有實現與數據庫的連接做成連接組件,把用戶的錯誤操作、與系統的的交互出錯等做成錯誤處理組件。對于各組件我們采用VB6語言進行編寫并生成DLL文件,通過注冊成為COM程序,供各個組件調用。在數據庫連接方面,我們采用了ADO技術。由于ADO采用了OLE―DB技術,使能訪問各式各樣的數據并提高了訪問性能。
  在該平臺的開發過程中,我們主要設計和實現了以下一些COM組件:
  1.用戶管理組件,包括身份認證功能。我們主要定制COM組件用戶管理組件UserCheck.dll進行用戶管理處理。該組件主要完成兩個功能:一是身份認證功能,主要是提供用戶登錄時驗明身份,保證應用的安全性。二是根據用戶所輸入的賬戶名確定該用戶的類別。
  因此,該組件具有三個接口,每個接口代表組件的某個屬性或方法。對用戶的登錄請求做出相應的處理:如果是學生登錄則轉入學生學習平臺,如果是教師登錄則轉入教師平臺,如果是管理員登錄則轉入管理員平臺。
  2.查詢和提交信息組件。我們主要定制COM組件QuerySys.dll進行查詢和提交信息處理。該組件主要完成兩個功能:一是供學生用于查詢學生成績和查詢課程信息;二是提交學生注冊信息。
  該組件具有兩個接口,每個接口代表組件的某個屬性或方法。如果學生的請求是查詢功能(QueryInfo方法),則將查詢信息請求做出相應的處理,并將查詢結果集返回給學生。如果學生的請求是提交注冊信息(Submitinfo方法),則將提交信息請求做出相應處理,并將信息提交返回給用戶。
  3.連接組件。我們主要定制COM組件Conector.dll,該組件主要完成與數據庫的連接。該組件具有一個接口,那就是確定數據源,以便自動連接后臺數據庫。
  4.錯誤處理組件。我們主要定制COM組件Cerror.dll,該組件主要確定錯誤類集,該組件具有一個接口,主要是輸出錯誤信息,方便用戶排錯。
  我們把編譯好的組件,將其在MST中注冊,并將其分布在服務器上,這樣就可以在設計平臺過程中進行調用這些組件了。在本系統中,我們通過以下幾種方式把組件集成到系統中來:
  一是連接集成,即我們將組件直接嵌入 ASP主頁中,即在ASP腳本中通過SET對象名=Server.CreateObject(“類名”)來引用,使此二進制組件可以運行于服務器端。
  二是容器集成,即如果一個組件需要調用另一個組件時,就在需調用的組件中引用另一個組件的方法。例如在使用查詢和提交信息組件時就需要先調用連接組件。
  我們結合連接集成和容器集成兩種方式來組裝系統,以登錄界面為例,在客戶端我們只提供兩個輸入項和一個提交信息的功能按鈕,主要通過ASP來實現。在服務器端,主要根據用戶輸入的信息來進行相應的處理,這就要調用各種組件。如果學生以錯誤的學號和用戶名登錄進入學生平臺,這就要調用用戶管理組件,返回非法用戶的信息。如果學用以合法的身份登錄進入學生平臺,這就要調用用戶管理組件、連接組件。如果教師以合法的身份登錄進入教師平臺,也要調用用戶管理組件、連接組件。
  目前,該平臺運行收到良好的效果,我們采用COM組件技術進行開發,減少了重復輸入代碼的工作,縮短軟件的開發周期。同時,在進行系統維護時,我們只關心組件的接口參數,而不用再考慮組件內部的具體實現,提高了系統的強維護性。在以后的工作中,如果我們要擴展某些功能時,也可以重復利用這些組件,提高了系統的可復用性。目前該平臺運行存在的缺點是:由于在ASP運行的COM組件是二進制代碼,當COM組件工作出錯時,ASP不能指出COM組件發生錯誤的具體位置,只能簡單顯示對象創建不成功。這樣就給我們在調試該平臺過程中增加了難度?!?
  
  (編輯/永安)


轉載注明來源:http://www.hailuomaifang.com/2/view-474266.htm

?
99久久国产综合精麻豆