翟 蔚,杜育寬
(海南大學信息科學技術(shù)學院,海南???70228)
隨著信息高速公路概念的深入,教育信息網(wǎng)絡(luò)化也隨之高速發(fā)展,各高校的教育研究機構(gòu)都把教育信息網(wǎng)絡(luò)化,作為教育事業(yè)的一項重要事件來發(fā)展.教育信息網(wǎng)絡(luò)化有很多優(yōu)勢,前景樂觀,但是也有研究表明普遍存在一些問題:如開發(fā)軟件的特殊性和不可復用性,即只能在特定環(huán)境中使用,不能通用,這使得軟件開發(fā)陷入一個瓶頸.近幾年來,隨著軟件技術(shù)的日新月異,構(gòu)件組裝的軟件技術(shù)取得了較大的發(fā)展,它是提高軟件可移植性的重要手段,同時也是提高軟件可靠性及加速軟件研發(fā)的一個十分有效的方法.作為一門新的研究熱點,構(gòu)件組裝軟件技術(shù)已被軟件開發(fā)人員形象地描敘成像搭積木[1]一樣的軟件開發(fā),一塊一塊地組裝,從而形成一個完整的產(chǎn)品被封裝在一個模塊組里.至此,筆者提出了基于構(gòu)件組裝的軟件教學設(shè)想,并采用軟件構(gòu)件方法就網(wǎng)絡(luò)教學信息化進行了研究和探討.
基于構(gòu)件組裝[2]的軟件開發(fā)方法與面向?qū)ο蠛兔嫦蜻^程的軟件開發(fā)方法不同,它是根據(jù)客戶的需求來分析客戶的,并將要設(shè)計的軟件分解成若干個大部分,然后再細分,每個大部分再分成n個具有相對獨立服務功能的小部件,然后從已有的構(gòu)件庫中找到適合的構(gòu)件;沒有的構(gòu)件需要開發(fā)人員編寫,不斷補充構(gòu)件庫,找全所需要的構(gòu)件,最后搭積木組裝構(gòu)件,從而形成所需要的軟件.由于每個構(gòu)件模塊封裝、組裝好后,就能良好地運行,免去調(diào)試和編寫的麻煩,所以,基于構(gòu)件的軟件開發(fā)方法在質(zhì)量和開發(fā)速度上都領(lǐng)先于其他開發(fā)方法.同時,由于軟件接口相同,良好的軟件移植性和維護性[3]也是基于構(gòu)件軟件開發(fā)的另一大優(yōu)勢,并能滿足客戶的各種需求,快速制定客戶所需求的軟件.
基于構(gòu)件組裝的軟件開發(fā)是應用程序的開發(fā),組成應用程序的構(gòu)件是實現(xiàn)獨立功能的專門單個服務獨立構(gòu)件,可采用不同的開發(fā)語言環(huán)境,在不同的硬件平臺上流暢運行,開發(fā)軟件的最終目標就像生產(chǎn)流水線一樣,采用各種零件組裝.
基于構(gòu)件組裝的軟件開發(fā)過程包括:分析構(gòu)件、設(shè)計構(gòu)件、實現(xiàn)構(gòu)件和組裝構(gòu)件.圖1為基于構(gòu)件組裝的軟件開發(fā)過程流程圖.
基于構(gòu)件組裝的軟件研發(fā)人員所要做的工作主要由4步完成,具體描述如下:
Step 1 分析用戶提出的功能需求以及實現(xiàn)的環(huán)境,整理設(shè)計出整個系統(tǒng)軟件的框架,根據(jù)要求規(guī)定各個獨立構(gòu)件的邏輯關(guān)系;
Step 2 根據(jù)各個構(gòu)件之間的邏輯關(guān)系,設(shè)計構(gòu)件的接口和連接件的規(guī)定并實現(xiàn)之,然后再按照規(guī)定把這些接口和連接件放入相應的庫中;
Step 3 接口和連接件按規(guī)定放入相應的庫中之后,接著就是在庫中尋找合適的構(gòu)件和連接件,如果庫中沒有合適的,需要研發(fā)人員自行補充構(gòu)件和接口;
Step 4 將已經(jīng)挑選出來的構(gòu)件和連接件按照框架鏈接起來,然后測試,通過之后就形成了新的應用系統(tǒng).
圖1 基于構(gòu)件組裝的軟件開發(fā)過程
圖2 系統(tǒng)結(jié)構(gòu)
2.1 系統(tǒng)結(jié)構(gòu) 網(wǎng)絡(luò)教學信息系統(tǒng)主要框架由3個方面組成(如圖2所示).首先最重要的是在線課堂,它是課堂教學的補充,學生使用在線上課、PPT以及在線的出題測試將所學知識進一步深化,并且還具備下載專區(qū)提供學生下載學習資料,學生還可以通過其上交作業(yè),老師獲取作業(yè)并在線批改,讓教師及時了解學生的學習情況.其次是申報課程,為了配合學生興趣,可開設(shè)一些生動課程,圖文并茂讓學生了解課程大體內(nèi)容.最后是TSBBS,它是老師與學生交互的BBS論壇系統(tǒng),即專門開設(shè)一個論壇形成師生互動區(qū),老師和學生互相可以自由交流和探討問題.
2.2 網(wǎng)絡(luò)教學信息系統(tǒng)構(gòu)件模型 網(wǎng)絡(luò)教學信息系統(tǒng)模型結(jié)構(gòu)由2個部分構(gòu)成(如圖3所示),根據(jù)運行情況可分成靜態(tài)和動態(tài).靜態(tài)主要是申報課程,系統(tǒng)提供一個已經(jīng)設(shè)計好的模板,上邊有學生信息和所提供課程的列表,學生填寫相關(guān)信息并可以根據(jù)個人選擇自己喜歡的界面.動態(tài)部分包括在線課堂和TSBBS兩大板塊,細分8個部分,如圖3所示.
2.3 構(gòu)件的組成 如圖4所示,網(wǎng)絡(luò)教學信息系統(tǒng)由3層結(jié)構(gòu)組成,即表示層、業(yè)務邏輯層和數(shù)據(jù)訪問層[4].每1層又可逐步細化成3個部分,處于最底層的為基礎(chǔ)構(gòu)件,中間層是領(lǐng)域通用構(gòu)件,最頂層為具體項目專門設(shè)計的領(lǐng)域?qū)S脴?gòu)件.基礎(chǔ)構(gòu)件主要包括表格、菜單、按鈕、窗口等構(gòu)件;領(lǐng)域通用構(gòu)件主要是刪除、添加、查詢和統(tǒng)計構(gòu)件等系統(tǒng)功能構(gòu)件中的主要構(gòu)件;領(lǐng)域?qū)S脴?gòu)件主要涉及使用者與系統(tǒng)之間的交互.
根據(jù)系統(tǒng)的3×3構(gòu)件體系,網(wǎng)絡(luò)教學信息系統(tǒng)采用漸增式和非漸增組裝策略,其組裝過程主要分為以下3步.
1)首先選取高層次合適的構(gòu)件作為模板,如果構(gòu)件庫中缺少開發(fā)人員所需要的模板,那么就要重新設(shè)計新的構(gòu)件加以補充;
2)子構(gòu)件需要選擇較低抽象層次的構(gòu)件,當然如果沒有合適的子構(gòu)件,同樣需要進行重新設(shè)計以補充構(gòu)件庫;
3)如果所選取的子構(gòu)件抽象層次仍較高,則需要重新重復上面的過程.
此外,耦合性比較低的獨立構(gòu)件,只要開發(fā)完成即可組裝起來,然后進行調(diào)試和測試的工作,測試正常后可直接使用.對于體系關(guān)聯(lián)的構(gòu)件組裝時,必須采用漸增式順序集成開發(fā).
2.4 系統(tǒng)構(gòu)件實現(xiàn) 網(wǎng)絡(luò)教學信息系統(tǒng)前后臺開發(fā)工具分別是ASP(Active Server Page)和SQL Server 2005,上文模型采用3層體系結(jié)構(gòu)(表示層、業(yè)務邏輯層和數(shù)據(jù)訪問層)來實現(xiàn).
圖3 網(wǎng)絡(luò)教學信息系統(tǒng)構(gòu)建模型
圖4 網(wǎng)絡(luò)教學信息系統(tǒng)構(gòu)件體系結(jié)構(gòu)圖(3×3)
2.4.1 表示層實現(xiàn) 表示層主要是用戶界面,由靜態(tài)和動態(tài)網(wǎng)頁2個部分組成,可以通過Dreamweaver來實現(xiàn)靜態(tài)頁面,動態(tài)頁面通過ASP技術(shù)實現(xiàn).動態(tài)頁面常見操作主要是用戶發(fā)出請求,切換視圖,系統(tǒng)生成下一個視圖并傳送給用戶.
2.4.2 課件上傳構(gòu)件的業(yè)務邏輯層實現(xiàn) 業(yè)務邏輯層的核心是數(shù)據(jù)庫,其主要功能是將用戶填寫和上傳的資料存入數(shù)據(jù)庫,并在表示層附注與此文件相關(guān)的信息.系統(tǒng)的安全性和資料的有效管理也是業(yè)務邏輯層所關(guān)注的.對于安全性,可以通過限制上傳文件的格式來完成,如要上傳文件,只允許上傳Word文檔,其他格式一概不受理.文件的管理也是一個必須解決的問題,其直接影響系統(tǒng)的性能,解決方法可以用準確標注上傳的準確時間,然后按時間排序和檢索,避免了文件的重名.
實現(xiàn)該層功能可通過簡單的VBScript腳本語言構(gòu)造一個類模塊.該類包括課件標題、上傳用戶、所屬章節(jié)、內(nèi)容說明、上傳路徑和存儲路徑等屬性,其邏輯流程圖如圖5所示.
2.4.3 課件上傳構(gòu)件的數(shù)據(jù)訪問層實現(xiàn) 在領(lǐng)域通用構(gòu)件中,把刪除、添加、查詢和統(tǒng)計等系統(tǒng)功能的構(gòu)件封裝到一個構(gòu)件(kejian.asp)中,既方便數(shù)據(jù)庫的維護和管理,又增強了構(gòu)件的可移植性和復用[5].圖6為課件上傳模塊的數(shù)據(jù)庫類圖.
該構(gòu)件與數(shù)據(jù)庫連接的代碼如下:
2.5 構(gòu)件的組裝
2.5.1 子構(gòu)件的組裝 以在線測試構(gòu)件為例,說明子構(gòu)件的組裝過程,子構(gòu)件的組裝是將之前確定的構(gòu)件模型中的3個層次(表示層、業(yè)務邏輯層和數(shù)據(jù)訪問層),通過子構(gòu)件組裝,形成一套完整的在線測試構(gòu)件.
圖5 作業(yè)發(fā)布批改模塊邏輯圖
圖6 課件上傳構(gòu)件模塊數(shù)據(jù)類圖
在網(wǎng)絡(luò)教學信息系統(tǒng)的3層中,業(yè)務邏輯層處于第2層,作為組裝的基礎(chǔ),用VBScript腳本來調(diào)用表示層構(gòu)件module.asp.數(shù)據(jù)訪問層是采用面向?qū)ο蟮能浖O(shè)計方法設(shè)計,用內(nèi)部接口將FileInfo和upload_file2個類和kejian類組成一個低耦合高內(nèi)聚的子構(gòu)件,最后與類模塊功能構(gòu)件通過外部接口連接.
2.5.2 父構(gòu)件的組裝 多個子構(gòu)件進行組裝后就形成父構(gòu)件(獨立構(gòu)件).構(gòu)件之間是相互獨立的,既沒有行為上的關(guān)系,也沒有數(shù)據(jù)上的聯(lián)系,因此,采用黑盒方法進行組裝[6].在組裝的時候,外部接口和內(nèi)部接口之間的對應關(guān)系是通過接口綁定來完成的,各種不同連接件形成復雜接口綁定,父構(gòu)件的接口采用可擴展的擴展連接件.所謂擴展連接件是指此連接件是可以擴展使用,因此,組裝成的父構(gòu)件也是可擴展構(gòu)件,由于內(nèi)部接口之間的交互采用消息傳遞機制,從而使父構(gòu)件更加靈活且兼容性更加強大.
網(wǎng)絡(luò)教學信息系統(tǒng)的父構(gòu)件主要包括8個大構(gòu)件,其分別是公告管理構(gòu)件、作業(yè)發(fā)布批改構(gòu)件、作業(yè)提取構(gòu)件、在線測試構(gòu)件、教學資源管理構(gòu)件、TSBBS構(gòu)件和信息交互構(gòu)件.8個大構(gòu)件的功能都獨立地封裝在文件夾中間,index.asp頁面為其可擴展接口.在index.asp頁面中還提供了功能各異的按鈕和鏈接構(gòu)件內(nèi)部的接口.
隨著分布式技術(shù)尤其是Internet及其應用的推廣,構(gòu)件組裝技術(shù)得到了快速的發(fā)展,同時,隨著計算機軟件環(huán)境從靜態(tài)封閉逐步走向動態(tài)開放,傳統(tǒng)的面向?qū)ο蠛兔嫦蜻^程的軟件開發(fā)方法在可移植性、后期維護以及對新環(huán)境的適應性等方面,都不如構(gòu)件的組裝軟件開發(fā)方便和靈活.正是由于這些優(yōu)勢,基于構(gòu)件的組裝軟件開發(fā),在很多領(lǐng)域正在逐步取代面向?qū)ο蠛兔嫦蜻^程的軟件開發(fā)方法.
[1]胡國奮,歐陽樹生.基于構(gòu)件化的軟件產(chǎn)品開發(fā)研究[J].控制工程,2008,15(1):75-77,81.
[2]葉俊民,陳卓,雷志翔,等.基于構(gòu)件組裝的應用軟件開發(fā)過程研究[J].計算機應用研究,2008,25(6):1736-1738,1752.
[3]黃柳青,王滿紅.構(gòu)件中國:面向構(gòu)件的方法與實踐[M].北京:清華大學出版社,2006.
[4]王世安.基于構(gòu)件組裝的網(wǎng)站系統(tǒng)開發(fā)過程研究[J].計算機與數(shù)字工程,2010,38(6):68-71.
[5]付沙.基于構(gòu)件技術(shù)的軟件開發(fā)方法的研究[J].科技和產(chǎn)業(yè),2009,9(3):95-98.
[6]王玲,夏榆濱.基于構(gòu)件視圖的組裝技術(shù)[J].計算機應用,2009,29(12):128-130.