張清春
基于構(gòu)件技術(shù)的教務(wù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
張清春
軟件復(fù)用是將已有的軟件成分用于新的軟件系統(tǒng)的構(gòu)造,可以被重復(fù)使用的軟件成分稱為可復(fù)用構(gòu)件。研究軟件復(fù)用技術(shù)在教務(wù)管理系統(tǒng)開發(fā)過程各個(gè)階段的設(shè)計(jì)應(yīng)用,分析并設(shè)計(jì)一個(gè)教務(wù)管理系統(tǒng)分層模型的軟件架構(gòu),根據(jù)軟件工程方法和理論,結(jié)合教務(wù)管理工作流程的特點(diǎn),提出了在教務(wù)管理系統(tǒng)領(lǐng)域軟件適合構(gòu)件縱向復(fù)用,實(shí)現(xiàn)了在教務(wù)管理系統(tǒng)軟件開發(fā)中在不同層次應(yīng)用構(gòu)件復(fù)用技術(shù),有效地提高軟件開發(fā)的效率、可靠性,縮小開發(fā)周期和維護(hù)成本。
軟件復(fù)用;基于構(gòu)件的軟件開發(fā)(CBSD);可復(fù)用軟件構(gòu)件;教務(wù)管理;分層模型
張清春/福建第二輕工業(yè)學(xué)校講師(福建福州 350007)。
軟件復(fù)用是軟件技術(shù)發(fā)展一個(gè)非常重要的領(lǐng)域,無論是函數(shù)過程封裝代碼,還是宏技術(shù),在不同層面對(duì)軟件代碼復(fù)用發(fā)揮重要作用。軟件復(fù)用構(gòu)件技術(shù)主要包含兩個(gè)方面,一是功能的抽象定義,二是構(gòu)件復(fù)用代碼的封裝。構(gòu)件本身的研發(fā)過程與大多數(shù)應(yīng)用軟件研發(fā)過程相似,一般步驟包含軟件構(gòu)件的需求分析、設(shè)計(jì)模型、編寫程序代碼、測(cè)試用例以及編寫使用文檔等過程[1],構(gòu)件技術(shù)最終目的就是為了實(shí)現(xiàn)軟件復(fù)用(Software Reuse)。軟件復(fù)用是提高軟件開發(fā)效率和降低維護(hù)成本的有效技術(shù)手段,構(gòu)件設(shè)計(jì)應(yīng)滿足以復(fù)用、封裝、粒度、層次[2]等幾個(gè)方面要求。
軟件復(fù)用根據(jù)應(yīng)用領(lǐng)域可分為水平(橫向)復(fù)用和垂直(縱向)復(fù)用[3]。橫向復(fù)用是指在不具有公共性的應(yīng)用領(lǐng)域間的軟件元素,如數(shù)據(jù)結(jié)構(gòu)、排序算法等元素。縱向復(fù)用是在同一類具有公共性的應(yīng)用領(lǐng)域之間復(fù)用軟件構(gòu)件,縱向復(fù)用的關(guān)鍵在于應(yīng)用領(lǐng)域分析,由此確定軟件的可復(fù)用構(gòu)件。
領(lǐng)域分析是通過對(duì)一類應(yīng)用系統(tǒng)的公共性進(jìn)行分析,找出應(yīng)用系統(tǒng)的公共知識(shí)和公共需求以及公共特征,確定復(fù)用功能,建立分析模型。本文通過對(duì)教務(wù)管理系統(tǒng)軟件進(jìn)行領(lǐng)域分析研究得出,教務(wù)管理知識(shí)領(lǐng)域按學(xué)校類別可分為:中小學(xué)教務(wù)管理、中職院校教務(wù)管理、高職院校教務(wù)管理、獨(dú)立院校教務(wù)管理、高校教務(wù)管理等,具有較多的公共性,學(xué)校的教務(wù)管理領(lǐng)域的工作流程和對(duì)象具有教育教學(xué)應(yīng)用領(lǐng)域的共性,與其他企業(yè)或行業(yè)的管理應(yīng)用領(lǐng)域的共性較少,因此屬于軟件復(fù)用的縱向復(fù)用。
分析教務(wù)管理系統(tǒng)工作流程和對(duì)象。第一步,首先確立對(duì)象分類,學(xué)校教務(wù)管理系統(tǒng)的使用者主要由系統(tǒng)管理員、教學(xué)管理人員、教師、學(xué)生等對(duì)象構(gòu)成組成;第二步,建立教務(wù)管理數(shù)據(jù)庫,存儲(chǔ)教學(xué)教務(wù)的相關(guān)基本信息;第三步,建立功能對(duì)象,對(duì)象與學(xué)校教務(wù)以工作類別相對(duì)應(yīng),按照一定的工作流程規(guī)則設(shè)定功能模塊;第四步,設(shè)置工作流程,使得教務(wù)管理信息依照學(xué)校教學(xué)管理規(guī)程設(shè)置的流程執(zhí)行;第五步,數(shù)據(jù)庫數(shù)據(jù)維護(hù)和報(bào)表打印。
中小學(xué)教務(wù)管理、中職院校教務(wù)管理、高職院校教務(wù)管理、獨(dú)立院校教務(wù)管理、高校教務(wù)管理等教務(wù)管理系統(tǒng)軟件框架結(jié)構(gòu)基本相同,由教務(wù)管理基本信息(主要有學(xué)生基本情況、院系(年級(jí))、教師、課程、排課、質(zhì)量檢查、考試安排等信息)、教務(wù)管理工作任務(wù)(主要有學(xué)生注冊(cè)、安排不同專業(yè)班級(jí)的學(xué)生的課程及時(shí)間地點(diǎn)、安排不同班級(jí)不同課程的考試時(shí)間地點(diǎn)及監(jiān)考人員、根據(jù)課程預(yù)訂教材、學(xué)生成績管理、教學(xué)質(zhì)量的考核與評(píng)定等)、有關(guān)報(bào)表(根據(jù)教務(wù)信息和工作任務(wù)按特定的格式要求生成報(bào)表輸送到打印機(jī)打印或?qū)С鰹镋XCEL文件,如教學(xué)運(yùn)行表、課程表、考試表等)和數(shù)據(jù)庫管理維護(hù)(學(xué)生信息、教師信息、系或年級(jí)信息、教材庫、考務(wù)、排課、教學(xué)質(zhì)量等)四個(gè)主要組成部分。通過研究,本文設(shè)計(jì)了教務(wù)管理系統(tǒng)軟件的應(yīng)用領(lǐng)域縱向復(fù)用框架模型如圖1所示。
圖1 教務(wù)管理系統(tǒng)縱向復(fù)用框架模型Fig 1 the educational administration management system framework model
遵循軟件工程分層體系結(jié)構(gòu)的設(shè)計(jì)原則[4],本文將教務(wù)管理系統(tǒng)體系結(jié)構(gòu)自上而下并結(jié)合復(fù)用程度劃分為四個(gè)層次,最頂層為表示層(UI模型層),是系統(tǒng)的用戶界面模型,應(yīng)支持不同的訪問模式;第二層為業(yè)務(wù)模型層,系統(tǒng)的核心功能實(shí)現(xiàn)層,工作流程的邏輯業(yè)務(wù)在該層實(shí)現(xiàn)。第三層數(shù)據(jù)模型層,該層把系統(tǒng)的業(yè)務(wù)數(shù)據(jù)的讀寫從業(yè)務(wù)邏輯中分離出來,該層主要是對(duì)數(shù)據(jù)庫的定義和讀寫操作,對(duì)用戶是透明的,應(yīng)有利于系統(tǒng)的維護(hù)和擴(kuò)充;第四層系統(tǒng)層,應(yīng)用開發(fā)平臺(tái)及各種類庫,包括OS、DBMS。體系結(jié)構(gòu)的每一層應(yīng)用構(gòu)件元素應(yīng)遵循分層獨(dú)立設(shè)計(jì)的原則,盡量把各層之間耦合度降低,減少各層相互影響。
一個(gè)特定的教務(wù)管理系統(tǒng)軟件首先是由各層中的功能模塊組裝而成。然后根據(jù)對(duì)各層具體功能邏輯分析來確定構(gòu)件系統(tǒng)框架。因此,構(gòu)件劃分的粒度大小直接影響構(gòu)件的復(fù)用,小粒度的構(gòu)件易于設(shè)計(jì),通用范圍較廣,大粒度的構(gòu)件易于設(shè)計(jì),復(fù)用范圍較小,適用的范圍受到限制。因此需要對(duì)系統(tǒng)中構(gòu)件的粒度做適當(dāng)?shù)囊?guī)劃,本文將表示層和業(yè)務(wù)層中與管理相關(guān)的構(gòu)件采用大粒度劃分,因?yàn)橄到y(tǒng)界面對(duì)于各種教務(wù)管理系統(tǒng)而言而,相似之處較多,無需大修改即可使用;各個(gè)學(xué)校教務(wù)管理流程有細(xì)微的差別,業(yè)務(wù)邏輯的構(gòu)件過細(xì)粒度會(huì)導(dǎo)致構(gòu)件組裝復(fù)雜,不同類型的學(xué)校教務(wù)管理流程不盡相同,但是同類的學(xué)校流程基本一致,如各個(gè)高校或中小學(xué),因此也可采用大粒度劃分。而位于底層的構(gòu)件用小粒度劃分。
圖2 教務(wù)管理系統(tǒng)的層次模型架構(gòu)Fig 2 the educational administration management system Hierarchical model architecture
軟件構(gòu)件是一種可組裝與軟件的單元,它具有規(guī)范的接口約束和顯式的語境依賴,軟件構(gòu)件可以被獨(dú)立部署并由第三方任意組裝。當(dāng)前軟件業(yè)界最具有代表性、應(yīng)用最廣的三個(gè)構(gòu)件技術(shù)規(guī)范(標(biāo)準(zhǔn))分別是:微軟的構(gòu)件對(duì)象模型(COM)、對(duì)象管理組織(OMG)的公共對(duì)象的請(qǐng)求代理體系結(jié)構(gòu)(CORBA)和 EJB(Enterprise Java Bean)[5]。這三種構(gòu)件標(biāo)準(zhǔn)實(shí)現(xiàn)的構(gòu)件是基于對(duì)象接口的互相依賴方式。
Microsoft ActiveX Data Objects(ADO)[6]是微軟提供對(duì)各種數(shù)據(jù)格式(包括關(guān)系和非關(guān)系)的高層接口(high-level interface),由于ADO是使用微軟提供的OLE技術(shù)對(duì)數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)進(jìn)行訪問操作,ADO支持常用的數(shù)據(jù)庫系統(tǒng),而無需額外的不同類型的數(shù)據(jù)庫驅(qū)動(dòng)程序的支持,可訪問任何與ODBC兼容的數(shù)據(jù)庫。另外ADO在系統(tǒng)開銷與數(shù)據(jù)訪問速度方面都有很好的指標(biāo)?;谝陨显颍疚脑跇?gòu)件設(shè)計(jì)中采用ADO架構(gòu)建立構(gòu)件與數(shù)據(jù)庫之間的連接和訪問。
對(duì)“教材信息維護(hù)”構(gòu)件分析,該構(gòu)件主要功能是對(duì)數(shù)據(jù)庫中教材表的記錄信息進(jìn)行增刪改查的操作,并實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入和導(dǎo)出。因此該構(gòu)件接口的參數(shù)應(yīng)該有三個(gè):一個(gè)參數(shù)提供用戶確定數(shù)據(jù)庫的連接,一個(gè)參數(shù)用于提供確定數(shù)據(jù)庫名稱,一個(gè)參數(shù)用于確定教材表名稱。在delphi中設(shè)計(jì)一個(gè)Activex Form,使用Delphi自帶組件ADO數(shù)據(jù)庫控件用于設(shè)置數(shù)據(jù)庫、表的連接和數(shù)據(jù)顯示,命令按鈕控件編寫代碼實(shí)現(xiàn)對(duì)數(shù)據(jù)的增刪改代碼實(shí)現(xiàn)以及做一個(gè)類來實(shí)現(xiàn)EXCEL數(shù)據(jù)的導(dǎo)入導(dǎo)出。接口是提供構(gòu)件使用者進(jìn)行組裝、設(shè)計(jì)中使用。因此在構(gòu)件設(shè)計(jì)中自定義Connectiongstring屬性、databasenamestring、Tablenamestring屬性,供用戶在組裝構(gòu)件時(shí)提供構(gòu)件與管理系統(tǒng)外部程序的接口。
以本文設(shè)計(jì)的教材信息維護(hù)構(gòu)件為例,設(shè)計(jì)數(shù)據(jù)庫名接口參數(shù)屬性:
這樣我們就為即將生成的ActiveX form自定義控件,添加了一個(gè)字符串類型的屬性databasenamestring,用于設(shè)定構(gòu)件的數(shù)據(jù)庫名屬性設(shè)置。
在Delphi中編譯生成OCX文件后,要想讓其他外部程序調(diào)用,則必須OCX文件注冊(cè)發(fā)布到Windows消息系統(tǒng)中。由于OCX是是OLE技術(shù)的控件擴(kuò)展,而OCX文件本質(zhì)上與EXE,DLL文件類似,都是屬于PE格式的文件,當(dāng)OCX文件注冊(cè)到系統(tǒng)后,只要支持OCX文件的開發(fā)平臺(tái)如Delphi、VISUAL STUDIO都可以調(diào)用該構(gòu)件,從而達(dá)到復(fù)用構(gòu)件的目的。
單一的構(gòu)件難以在軟件開發(fā)過程中實(shí)現(xiàn)的有效復(fù)用,必須要求構(gòu)件達(dá)到一定的數(shù)量供開發(fā)人員選擇。因此,采用構(gòu)件庫對(duì)構(gòu)件進(jìn)行組織和管理是一種有效的技術(shù)手段,可用于存儲(chǔ)、檢索、瀏覽和管理可復(fù)用構(gòu)件。構(gòu)件庫的一般工作流程首先對(duì)構(gòu)件的進(jìn)行描述(構(gòu)件名稱、構(gòu)件類型、構(gòu)件編號(hào),構(gòu)件功能說明,構(gòu)件接口說明等)及分類;然后經(jīng)過測(cè)試(黑盒、白盒測(cè)試)后存儲(chǔ)構(gòu)件信息到構(gòu)件庫,提供用戶對(duì)構(gòu)件的有效檢索(精確或模糊)界面,從構(gòu)件庫中搜索出適合的構(gòu)件;根據(jù)用戶使用后給出反饋信息和專家評(píng)估對(duì)構(gòu)件庫進(jìn)行信息修改,以使構(gòu)建信息描述更為準(zhǔn)確。
本文通過對(duì)教務(wù)管理系統(tǒng)軟件的領(lǐng)域規(guī)劃和設(shè)計(jì)分析,系統(tǒng)按分層構(gòu)架來設(shè)計(jì),降低了軟件各組成部分的耦合度,每個(gè)層可以被相對(duì)獨(dú)立的開發(fā)。對(duì)于具體邏輯關(guān)系數(shù)據(jù)流程采用在教務(wù)管理系統(tǒng)的業(yè)務(wù)邏輯層實(shí)現(xiàn)較大粒度的構(gòu)件設(shè)計(jì),在數(shù)據(jù)層和系統(tǒng)層實(shí)現(xiàn)粒度較小的構(gòu)件設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)“教材信息維護(hù)”構(gòu)件,對(duì)構(gòu)件庫進(jìn)行初步的管理應(yīng)用。
:
[1]林銘德,戴一景.可復(fù)用構(gòu)件技術(shù)在工程造價(jià)軟件開發(fā)的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(5):111-114
[2]楊芙清,梅宏,李克勤.軟件復(fù)用與軟件構(gòu)件技術(shù)[J].電子學(xué)報(bào),1999,27(2):68-77
[3]常聚川,張敏,陳菲.基于構(gòu)件的煤礦安全監(jiān)察管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2012,11(12):87-89
[4]覃征.軟件工程與管理[M].北京:清華大學(xué)出版社,2005:322-323
[5]李嘉炎.面向構(gòu)件框架的研究與設(shè)計(jì) [J].電腦知識(shí)與技術(shù)2009,5(13):3430-3431
[6]陳慧,王中慶.基于ADO的組態(tài)軟件與關(guān)系數(shù)據(jù)庫通信研究[J].工業(yè)控制計(jì)算機(jī),2012,25(4):74-75
TP31
A
1671-6531(2013)16-0152-02
責(zé)任編輯:姚 旺
長春教育學(xué)院學(xué)報(bào)2013年16期