鄒 紅,王 濤,蔡朝暉,方 晶,張麗華
(大慶師范學(xué)院 計(jì)算機(jī)科學(xué)與信息技術(shù)學(xué)院,黑龍江 大慶163712)
目前軟件開發(fā)越來越要求功能全面、可操作性強(qiáng)、可擴(kuò)充性強(qiáng),因此開發(fā)難度大、周期長、人數(shù)多。怎樣有效地減少重復(fù)勞動(dòng)、更好地分工協(xié)作、縮短開發(fā)周期、增強(qiáng)可移植性和可擴(kuò)展性、延長軟件的生命周期,是軟件開發(fā)中需要著重考慮的問題。解決這一問題的有效方法就是軟件復(fù)用技術(shù),可以是基于二進(jìn)制代碼的黑盒復(fù)用,也可以是基于源代碼的白盒復(fù)用。在系統(tǒng)分析時(shí)就要充分考慮到軟件復(fù)用,以便可以從現(xiàn)有的系統(tǒng)設(shè)計(jì)中提取可復(fù)用的組件。一般的應(yīng)用系統(tǒng)通常包括通用組件和與具體領(lǐng)域有關(guān)的組件,這一部分代碼量約占系統(tǒng)的60%~80%,因此組件的開發(fā)是系統(tǒng)開發(fā)的關(guān)鍵。
組件技術(shù)是面向?qū)ο蠹夹g(shù)之后的軟件開發(fā)的標(biāo)準(zhǔn)方法體系,是面向?qū)ο箝_發(fā)技術(shù)的延伸[1]。它具備了開發(fā)效率高、成本低、組裝靈活、擴(kuò)充容易、功能強(qiáng)大、可移植性強(qiáng)、重用性好、便于分工協(xié)作、便于用戶定制具體需求等特點(diǎn)。組件技術(shù)的思想是將大型系統(tǒng)的基礎(chǔ)服務(wù)功能分解成若干個(gè)獨(dú)立單元,即軟件組件,利用組件,可以像堆積木似的搭建軟件系統(tǒng),從而實(shí)現(xiàn)軟件的復(fù)用,縮短開發(fā)周期,降低維護(hù)成本。主要組件技術(shù)包括:1)Microsoft 公司推出的COM/DCOM 組件規(guī)范;2)OMG(對(duì)象管理組織)發(fā)布的COBBA 組件規(guī)范;3)SUN 公司的Java Bean 技術(shù);4)Microsoft 公司的.NET 技術(shù);5)面向服務(wù)體系結(jié)構(gòu)(SOA)組件模型。
選擇組件模式開發(fā)信息系統(tǒng)已經(jīng)成為當(dāng)今縮短系統(tǒng)開發(fā)周期、提高穩(wěn)定性、降低維護(hù)成本、延長軟件生命周期的主流技術(shù)。目前,從運(yùn)行環(huán)境、基礎(chǔ)框架到專業(yè)的業(yè)務(wù)實(shí)現(xiàn)均有可利用的成熟模型。選擇組件模型應(yīng)充分考慮跨平臺(tái)、成熟度、穩(wěn)定性和規(guī)范程度等因素。
以畢業(yè)論文管理系統(tǒng)為例,開發(fā)采用了應(yīng)用廣泛的MVC 設(shè)計(jì)模式,搭建了Spring 框架,組件利用JavaBean 實(shí)現(xiàn),支持國際化、事件監(jiān)聽、事務(wù)管理,支持內(nèi)省反射和AOP 技術(shù),易于和Mail、JNDI 及數(shù)據(jù)庫集成。
JavaBean 是用Java 語言描述的、與平臺(tái)無關(guān)的軟件組件模型,可以通過封裝業(yè)務(wù)邏輯建立一整套可重復(fù)利用的對(duì)象庫。為了創(chuàng)建和使用Java 軟件組件,JavaBean 被實(shí)現(xiàn)為一種獨(dú)立于平臺(tái)和結(jié)構(gòu)的應(yīng)用程序接口,它的實(shí)現(xiàn)可以忽略內(nèi)部的結(jié)構(gòu)和細(xì)節(jié)問題,只需定義其外部的特征及對(duì)外功能[2]。企業(yè)級(jí)JavaBean(Enterprise JavaBean,簡稱EJB)的體系結(jié)構(gòu)如圖1所示:
畢業(yè)論文管理系統(tǒng)利用組件技術(shù)、網(wǎng)絡(luò)技術(shù)、數(shù)據(jù)庫技術(shù)、協(xié)同技術(shù)等,結(jié)合計(jì)算機(jī)輔助教育、信息化教育的教育理念,以高校畢業(yè)設(shè)計(jì)的實(shí)際流程為基礎(chǔ)進(jìn)行開發(fā),為學(xué)生、教師提供一個(gè)網(wǎng)上畢業(yè)論文指導(dǎo)環(huán)境??紤]到將來可能與學(xué)?,F(xiàn)有的教務(wù)管理系統(tǒng)進(jìn)行銜接,更為了方便使用者,本系統(tǒng)采用B/S 架構(gòu)進(jìn)行設(shè)計(jì),用戶工作界面是通過瀏覽器來實(shí)現(xiàn),顯示邏輯在瀏覽器(Browser)前端實(shí)現(xiàn),業(yè)務(wù)處理邏輯在服務(wù)器端(Server)實(shí)現(xiàn),大大簡化了客戶端電腦負(fù)荷,也減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量[3],實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式訪問和使用系統(tǒng)服務(wù),有效地保護(hù)了數(shù)據(jù)平臺(tái)和管理訪問權(quán)限。用戶以Web 頁面的形式與系統(tǒng)進(jìn)行交互[4],實(shí)現(xiàn)了明確的權(quán)限劃分和隔離,不同的用戶進(jìn)入系統(tǒng)后實(shí)現(xiàn)不同的操作。該系統(tǒng)能方便老師和學(xué)生的指導(dǎo)交流,使學(xué)生可以及時(shí)地了解有關(guān)畢業(yè)論文的相關(guān)信息,而且使論文的上傳查看、信息的管理、用戶的管理和數(shù)據(jù)庫的管理等工作更加容易,同時(shí)能有效地進(jìn)行過程記錄,減輕了老師和學(xué)生整理各種文檔的工作負(fù)擔(dān),各種指導(dǎo)記錄可以直接形成報(bào)告。
根據(jù)調(diào)研及學(xué)校畢業(yè)論文管理要求,畢業(yè)論文管理系統(tǒng)主要包括五個(gè)方面的管理流程:畢業(yè)論文基本信息管理、畢業(yè)論文選題管理、畢業(yè)論文過程管理、畢業(yè)論文答辯管理、畢業(yè)論文提交與查詢管理[5]。
根據(jù)以上五個(gè)方面管理需求,設(shè)計(jì)的畢業(yè)生論文管理系統(tǒng)主要功能如圖2所示:
圖2 系統(tǒng)功能框圖
1)教師用戶的權(quán)限包括注冊登錄和密碼修改、網(wǎng)上瀏覽或查詢信息、申報(bào)論文題目、管理選自己題目的學(xué)生的論文、審查學(xué)生上傳的開題報(bào)告、審核學(xué)生上傳的畢業(yè)論文、對(duì)學(xué)生提交的論文與開題報(bào)告進(jìn)行審核等。
2)學(xué)生是本系統(tǒng)權(quán)限最低的用戶,具有的操作包括注冊登錄和密碼修改、網(wǎng)上瀏覽或查詢信息、選擇課題、與指導(dǎo)教師溝通交流、上傳畢業(yè)論文及各種文檔、下載文檔等。
3)教學(xué)秘書(管理員)具有這個(gè)系統(tǒng)的最高權(quán)限,可以對(duì)學(xué)生和教師權(quán)限進(jìn)行管理、對(duì)教師出題進(jìn)行管理、對(duì)學(xué)生選題進(jìn)行管理、對(duì)學(xué)生上傳的論文進(jìn)行管理、對(duì)論文答辯后的結(jié)果進(jìn)行統(tǒng)計(jì)、打印各種管理報(bào)表、對(duì)論文文檔審核等功能。
在五個(gè)業(yè)務(wù)管理流程中,畢業(yè)論文過程管理業(yè)務(wù)流程是核心的業(yè)務(wù)流程,以此典型的業(yè)務(wù)流程為例,設(shè)計(jì)的畢業(yè)論文管理流程示意圖如圖3所示:
圖3 畢業(yè)論文過程管理業(yè)務(wù)流程示意圖
畢業(yè)設(shè)計(jì)首先從選題開始,學(xué)生先瀏覽畢業(yè)論文的要求及時(shí)間安排,然后查詢相關(guān)選題;選題是學(xué)校教師針對(duì)專業(yè)學(xué)習(xí)內(nèi)容、企業(yè)需求和科研課題設(shè)計(jì)的,學(xué)生則根據(jù)自己的興趣、專業(yè)方向及就業(yè)方向選擇課題,如果沒有合適的選題,學(xué)生也可以與老師溝通修改課題或選用企業(yè)實(shí)訓(xùn)項(xiàng)目作為選題。選題確定后按照教師下達(dá)的任務(wù)書進(jìn)行開題,期間定期與指導(dǎo)教師溝通,及時(shí)糾正問題,以便完成最終的論文。在畢業(yè)設(shè)計(jì)過程中,學(xué)生與教師的溝通指導(dǎo)會(huì)產(chǎn)生一些原始記錄,這些記錄可形成畢業(yè)論文管理工作需要的文檔,如任務(wù)書、開題報(bào)告、指導(dǎo)記錄、論文初稿、論文復(fù)稿、論文終稿、答辯記錄等。畢業(yè)論文過程管理可以有效督促學(xué)生認(rèn)真進(jìn)行畢業(yè)論文工作,既為后期對(duì)學(xué)生畢業(yè)論文過程考核提供靜態(tài)數(shù)據(jù)依據(jù),亦可動(dòng)態(tài)發(fā)現(xiàn)學(xué)生畢業(yè)論文中存在的問題,同時(shí)也可用來考核指導(dǎo)老師的指導(dǎo)過程情況[5]。
基于組件的軟件設(shè)計(jì)與傳統(tǒng)的軟件設(shè)計(jì)有所不同,要根據(jù)需求分析,從功能劃分的文檔中發(fā)掘可能使用的組件,進(jìn)行組件設(shè)計(jì)和實(shí)現(xiàn),再利用組件進(jìn)行應(yīng)用程序的組裝,開發(fā)過程如圖4所示:
圖4 基于組件的軟件開發(fā)過程
在對(duì)畢業(yè)論文管理系統(tǒng)進(jìn)行功能劃分時(shí),歸納了系統(tǒng)可能使用的組件,比如文件上傳下載組件、數(shù)據(jù)處理組件、文件管理組件等等,此處僅以利用JavaBean 設(shè)計(jì)的表格生成組件為例說明組件在系統(tǒng)中的應(yīng)用。
系統(tǒng)中有許多數(shù)據(jù)是需要以表格的形式呈現(xiàn)給用戶,如任務(wù)書、開題報(bào)告、指導(dǎo)記錄、答辯記錄等。采用JavaBean 技術(shù)設(shè)計(jì)表格生成組件,通過JDBC 方式對(duì)數(shù)據(jù)庫進(jìn)行SQL 查詢,通過調(diào)用表格樣式和數(shù)據(jù)獲取組件,將查詢結(jié)果以表格的形式在瀏覽器上輸出,方便了用戶的查詢和修改等操作。表格樣式和數(shù)據(jù)獲取組件的部分代碼如下:
由于組件技術(shù)可以提高軟件的開發(fā)效率,因此在系統(tǒng)開發(fā)過程中,應(yīng)對(duì)系統(tǒng)作充分的分析,確定好可以作為組件開發(fā)的模塊,用這些模塊進(jìn)行系統(tǒng)的事務(wù)邏輯處理,用戶界面設(shè)計(jì)時(shí)不用考慮這些復(fù)雜的處理邏輯,可以用通用的或?qū)S玫慕M件快速搭建系統(tǒng),增加軟件復(fù)用的效率,開發(fā)出質(zhì)量較高的軟件。
[1]曹新彩.軟件復(fù)用和基于可重用組件技術(shù)的軟件開發(fā)(CBSD)[J].電腦知識(shí)與技術(shù),2007(8):656-658.
[2]苗春義.Java 項(xiàng)目開發(fā)全程實(shí)錄[M].北京:清華大學(xué)出版社,2008.
[3]Browser/Server 結(jié)構(gòu)[DB/OL].搜狗百科,2011.02.10.
[4]孫俊.基于Web 的高校畢業(yè)設(shè)計(jì)(論文)綜合管理系統(tǒng)研究[J].社會(huì)科學(xué)家,2007(11):299-300.
[5]覃發(fā)賓,葛玉輝.基于Java Web 組件技術(shù)的畢業(yè)設(shè)計(jì)管理系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2010(6):321-323.