王宇 夏麗麗 何穎剛
(集美大學(xué)誠(chéng)毅學(xué)院 福建省廈門(mén)市 361021)
畢業(yè)論文是大學(xué)生四年本科學(xué)習(xí)的一個(gè)重要環(huán)節(jié)。畢業(yè)論文的質(zhì)量體現(xiàn)了本科畢業(yè)生分析解決問(wèn)題和對(duì)所學(xué)知識(shí)的掌握和運(yùn)用能力,體現(xiàn)了高校人才培養(yǎng)方案完成的質(zhì)量和水平,一定程度上也體現(xiàn)了高校教學(xué)質(zhì)量的高低。對(duì)畢業(yè)論文過(guò)程管理的把控程度直接影響到論文成果質(zhì)量。因此,抓好畢業(yè)論文管理工作是高等院校教學(xué)管理的一項(xiàng)重要任務(wù)。
高校本科畢業(yè)論文工作環(huán)節(jié)一般有:資格審查、教師出題、學(xué)生選題、課題開(kāi)題、畢業(yè)設(shè)計(jì)、論文寫(xiě)作、進(jìn)度報(bào)告、論文評(píng)閱、論文評(píng)審、論文答辯、成績(jī)?cè)u(píng)定、畢業(yè)論文歸檔等步驟,環(huán)節(jié)較多、信息繁雜。目前,高校教學(xué)管理部門(mén)和教師對(duì)畢業(yè)論文管理依然較多的采用傳統(tǒng)的人工管理+電子文檔的方式進(jìn)行,存在工作效率低,容易出現(xiàn)錯(cuò)漏等問(wèn)題。隨著近年招生規(guī)模不斷的擴(kuò)大,傳統(tǒng)人工管理的方式已經(jīng)無(wú)法承擔(dān)日漸龐大數(shù)量的畢業(yè)論文管理工作。因此,迫切需要設(shè)計(jì)一個(gè)畢業(yè)論文管理系統(tǒng)。
目前,畢業(yè)論文管理系統(tǒng)已有若干發(fā)表成果。例如,文獻(xiàn)[1]中曾俊國(guó)、羅剛基于MVC設(shè)計(jì)模式開(kāi)發(fā)畢業(yè)論文管理系統(tǒng),采用ASP.NET開(kāi)發(fā)框架和C#語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)。文獻(xiàn)[2]中于萬(wàn)國(guó)、傅冬穎等采用PHP語(yǔ)言和MySQL數(shù)據(jù)庫(kù),基于B/S模式開(kāi)發(fā)高校畢業(yè)論文管理系統(tǒng)。文獻(xiàn)[3]史新華、劉敏等開(kāi)發(fā)了研究生學(xué)位論文外審評(píng)閱Web系統(tǒng),并針對(duì)論文外審的流程進(jìn)行了詳細(xì)的分析和設(shè)計(jì)。當(dāng)前,企業(yè)級(jí)應(yīng)用開(kāi)發(fā)框架SSM(Spring + SpringMVC +MyBatis)作為一個(gè)成熟技術(shù)方案已經(jīng)在許多軟件公司中廣泛用于中小型各類系統(tǒng)的研發(fā)。因此,本文選用SSM框架設(shè)計(jì)開(kāi)發(fā)高校畢業(yè)論文管理系統(tǒng)。通過(guò)分析畢業(yè)設(shè)計(jì)和畢業(yè)論文過(guò)程中的用戶類型和功能需求,設(shè)計(jì)和實(shí)現(xiàn)了系統(tǒng)各個(gè)功能模塊。系統(tǒng)具有課題擬定、課題審核、課題發(fā)布、課題選題、論文批閱和指導(dǎo)、成績(jī)?cè)u(píng)定、通知公告等等功能。滿足了教學(xué)管理員、教師和學(xué)生在畢業(yè)論文工作中的各種需求,實(shí)現(xiàn)了無(wú)紙化、信息化的管理方式,大幅提高了工作效率。
論文查重是畢業(yè)論文管理系統(tǒng)的一個(gè)重要功能模塊,對(duì)高校畢業(yè)論文質(zhì)量控制具有重要意義。為了輔助教師甄別論文中的抄襲行為,為畢業(yè)論文管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)了一種基于全局序列比對(duì)算法的文本復(fù)制檢測(cè)算法,借助以往的論文數(shù)據(jù)庫(kù)信息,實(shí)現(xiàn)對(duì)論文預(yù)查重。使得教師能夠及時(shí)對(duì)論文質(zhì)量進(jìn)行把控。系統(tǒng)應(yīng)用一種將Needleman-Wunsch算法應(yīng)用于的文檔復(fù)制檢測(cè)方法,幫助教師在評(píng)閱論文時(shí)快速直觀地識(shí)別論文抄襲和復(fù)制的情況。
本文設(shè)計(jì)的高校畢業(yè)論文管理系統(tǒng)基于SSM框架技術(shù)進(jìn)行開(kāi)發(fā),系統(tǒng)采用Tomcat8.5作為Web服務(wù)器,MySQL5.7作為數(shù)據(jù)庫(kù)服務(wù)器,JDK版本為8.0,開(kāi)發(fā)工具為IntelliJ IDEA,前端頁(yè)面采用HTML5進(jìn)行設(shè)計(jì),同時(shí)采用了Maven作為軟件項(xiàng)目庫(kù)管理工具。
SSM框架是一個(gè)由Spring、SpringMVC、MyBatis三個(gè)開(kāi)源框架整合而成的基于MVC(模型Model,視圖View,控制器Controller)設(shè)計(jì)模式的框架集[4],該框架具有靈活的擴(kuò)展性、功能全面、開(kāi)發(fā)效率高、成本低廉等優(yōu)點(diǎn),非常適合于構(gòu)建各種中小型企業(yè)級(jí)系統(tǒng)。通過(guò)借助集成的三種框架各自的優(yōu)點(diǎn),SSM框架還能夠幫助開(kāi)發(fā)者對(duì)系統(tǒng)業(yè)務(wù)進(jìn)行分層設(shè)計(jì)與實(shí)現(xiàn),加快系統(tǒng)開(kāi)發(fā)速度。
Spring框架是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的開(kāi)源容器框架。BeanFactory 是Spring 框架的核心組件,BeanFactory 使用控制反轉(zhuǎn)(IOC)將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開(kāi)。Spring框架的面向切面(AOP)模塊提供了對(duì)應(yīng)用程序中的對(duì)象的事務(wù)管理服務(wù),極大的便利了日志記錄、訪問(wèn)控制、安全驗(yàn)證等功能開(kāi)發(fā)。
SpringMVC框架是一個(gè)全功能的構(gòu)建 Web 應(yīng)用程序的 MVC實(shí)現(xiàn)。MVC 是 Model、View 和 Controller 的縮寫(xiě),分別代表 Web應(yīng)用程序中的模型Model、視圖View和控制器Controller。Spring MVC 框架提供了Model - View - Controller的體系結(jié)構(gòu)來(lái)開(kāi)發(fā)靈活、松散耦合的 web 應(yīng)用程序的組件。Spring MVC包括前端控制器、處理器映射器、處理器適配器、處理器、視圖解析器和視圖等六個(gè)核心組件。為軟件工程師快速開(kāi)發(fā)基于Web的應(yīng)用提供了靈活的技術(shù)方案。
MyBatis框架是一款支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的持久層框架,采用 ORM 思想解決了實(shí)體對(duì)象與數(shù)據(jù)庫(kù)表的映射。MyBatis支持通過(guò)配置文件或注解,將接口和Java POJO(Plain Old Java Objects)映射成數(shù)據(jù)庫(kù)中的記錄。同時(shí),MyBatis還提供了加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)、創(chuàng)建連接、創(chuàng)建 statement 等功能,為程序員提供了訪問(wèn)和操作數(shù)據(jù)庫(kù)的強(qiáng)大支持。
根據(jù)MVC模式,將系統(tǒng)分為表現(xiàn)層、控制層和持久層,各個(gè)層之間通過(guò)接口實(shí)現(xiàn)通信和功能調(diào)用。系統(tǒng)結(jié)構(gòu)如圖1所示。其中Model對(duì)象包含數(shù)據(jù);View對(duì)象負(fù)責(zé)顯示有模型包含的數(shù)據(jù),用于與用戶交互;Controller對(duì)象是介于Model與View之間的橋梁,它可以分發(fā)和處理用戶的請(qǐng)求,選擇適當(dāng)?shù)囊晥D用于顯示模型包含的數(shù)據(jù)返回給用戶[5]。Service對(duì)象負(fù)責(zé)封裝持久層處理功能邏輯,并以接口的形式向Controller提供數(shù)據(jù)處理服務(wù)。
系統(tǒng)通過(guò)Apache Shiro框架實(shí)現(xiàn)對(duì)身份驗(yàn)證、授權(quán)、密碼和會(huì)話管理,保證了對(duì)系統(tǒng)安全的控制。系統(tǒng)權(quán)限控制模塊查驗(yàn)登錄用戶的權(quán)限,然后根據(jù)其訪問(wèn)URL將其導(dǎo)向授權(quán)界面。同時(shí)對(duì)數(shù)據(jù)增、刪、改、查等操作,依據(jù)授權(quán)表進(jìn)行核驗(yàn),防止數(shù)據(jù)庫(kù)被非法竊取或篡改。
高校畢業(yè)論文管理系統(tǒng)的用戶主要有教學(xué)管理員、教師、學(xué)生。因此,系統(tǒng)功能可以從三類用戶的使用場(chǎng)景和流程入手進(jìn)行分析。教學(xué)管理員負(fù)責(zé)系統(tǒng)基礎(chǔ)數(shù)據(jù)的設(shè)置,包括教師賬號(hào)管理、學(xué)生賬號(hào)管理、新聞公告管理、數(shù)據(jù)的備份和導(dǎo)出等等;教師登錄系統(tǒng)后可以進(jìn)行課題管理、課題審核、選題情況查閱、論文批閱、論文評(píng)審等等操作;學(xué)生進(jìn)入系統(tǒng)后可以查看教師發(fā)布的畢業(yè)論文課題,并選取感興趣的題目。還可以通過(guò)系統(tǒng)提交開(kāi)題報(bào)告、進(jìn)度報(bào)告、中期檢查報(bào)告、畢業(yè)論文、程序代碼等資料,并與教師針對(duì)論文問(wèn)題進(jìn)行溝通和交流。經(jīng)過(guò)調(diào)研分析后,根據(jù)不同的用戶角色將系統(tǒng)功能劃分為三大模塊,分別為:管理員模塊、教師模塊和學(xué)生模塊。各個(gè)模塊功能設(shè)計(jì)如圖2所示。
圖2:系統(tǒng)功能結(jié)構(gòu)圖
數(shù)據(jù)庫(kù)數(shù)據(jù)表包括管理員表、部門(mén)表、教師表、項(xiàng)目表、專業(yè)表、班級(jí)表、學(xué)生表、成績(jī)表、報(bào)告表、文件表、角色表、用戶角色表、權(quán)限表等等。相關(guān)數(shù)據(jù)模型如圖3所示。主要表功能描述如下:
圖3:系統(tǒng)數(shù)據(jù)模型圖
(1)管理員表(manager):保存系統(tǒng)管理員的賬號(hào)、登錄密碼等相關(guān)信息。
(2)部門(mén)表(Department):基礎(chǔ)數(shù)據(jù)表,存儲(chǔ)學(xué)院各個(gè)院系的部門(mén)信息,主要字段有部門(mén)編號(hào),部門(mén)名稱,上級(jí)部門(mén)編號(hào)等等。
(3)教師表(teacher):存儲(chǔ)了教師基本信息。表結(jié)構(gòu)主要字段有教師編號(hào)、賬號(hào)、登錄密碼、姓名、部門(mén)等。
(4)項(xiàng)目表(ProjectGroup):保存了教師課題及畢設(shè)信息。主要字段有:項(xiàng)目編號(hào)、課題名稱、課題介紹、選題學(xué)生編號(hào)等等。
(5)學(xué)生表(student):保存學(xué)生基本信息。主要字段有:學(xué)生編號(hào)、學(xué)生姓名、班級(jí)編號(hào)、專業(yè)編號(hào)等等。
(6)報(bào)告表(Report):保存教師對(duì)每次批改學(xué)生論文的修改信息。
(7)文件表(ReportFile):保存學(xué)生論文。主要字段有論文編號(hào)、論文名稱、論文存儲(chǔ)路徑等等。
(8)角色表(sys_role):保存系統(tǒng)角色,角色類別有管理員、導(dǎo)師、學(xué)生、評(píng)審老師。
(9)用戶角色表(sys_user_role):用戶表保存了系統(tǒng)用戶的角色信息,通過(guò)用戶角色表,可以方便對(duì)用戶進(jìn)行統(tǒng)一的權(quán)限授權(quán)管理,簡(jiǎn)化管理員的操作。
(10)角色權(quán)限表(sys_role_permission):權(quán)限表保存了不同角色用戶的訪問(wèn)頁(yè)面權(quán)限和執(zhí)行功能權(quán)限。通過(guò)權(quán)限表對(duì)用戶行為進(jìn)行驗(yàn)證,使得系統(tǒng)重要數(shù)據(jù)不被非法用戶訪問(wèn)和篡改,保證了系統(tǒng)的安全性。
(11)權(quán)限表(sys_permission):該表保存了系統(tǒng)各個(gè)功能模塊訪問(wèn)地址、各個(gè)操作名稱,及其相關(guān)的權(quán)限代碼。
權(quán)限模塊相關(guān)表數(shù)據(jù)模型如圖4所示。
圖4:權(quán)限表數(shù)據(jù)模型圖
管理員登陸后可以對(duì)管理員、教師和學(xué)生信息進(jìn)行增加、刪除、修改,同時(shí),可以進(jìn)行新聞發(fā)布管理、畢業(yè)論文規(guī)范文檔管理等。管理員主工作界面如圖5所示,管理員可以對(duì)用戶進(jìn)行權(quán)限設(shè)置,設(shè)定其可訪問(wèn)的網(wǎng)絡(luò)資源、能夠執(zhí)行的操作等等。此外通過(guò)對(duì)用戶角色的設(shè)置,實(shí)現(xiàn)批量用戶權(quán)限授權(quán)管理,更加方便管理員系統(tǒng)維護(hù)工作。
圖5:管理員主工作面
教師工作主界面。教師輸入用戶名和密碼進(jìn)入系統(tǒng)后,可以對(duì)課題進(jìn)行管理、審批、論文評(píng)閱等操作。通過(guò)各個(gè)功能菜單鏈接,可進(jìn)入詳細(xì)的功能界面。
課題管理功能模塊為教師提供了課題創(chuàng)建、課題編輯、課題刪除、選題狀態(tài)察看、課題發(fā)布等等功能。教師可以通過(guò)課題列表查看已發(fā)布的課題和選題結(jié)果。
教師功能模塊的論文列表界面。學(xué)生論文將在這里呈現(xiàn)。同時(shí),此處也提供了畢業(yè)論文狀態(tài)信息查看功能。教師可以通過(guò)此界面鏈接入對(duì)應(yīng)的學(xué)生課題,對(duì)論文和報(bào)告進(jìn)行進(jìn)行批閱和回復(fù)。已批閱和未批閱的論文將以不同的狀態(tài)進(jìn)行展示。
點(diǎn)擊對(duì)應(yīng)論文列表中的項(xiàng)目后,進(jìn)入論文評(píng)閱功能。在畢業(yè)論文工作進(jìn)行過(guò)程中,學(xué)生通過(guò)學(xué)生端功能界面,定期提交畢業(yè)論文進(jìn)度報(bào)告、論文、源代碼等等。教師可以在論文評(píng)閱頁(yè)面上下載查看論文和代碼,并給出論文修改意見(jiàn)。
學(xué)生登陸后可以在自己的功能區(qū)域進(jìn)行選題,選定后接受導(dǎo)師的信息,并在導(dǎo)師的安排下提交論文等其他材料,并收到導(dǎo)師對(duì)論文的批閱意見(jiàn)。論文管理為學(xué)生端主要工作區(qū)域。
論文查重是畢業(yè)論文管理系統(tǒng)的一個(gè)重要功能模塊,對(duì)高校畢業(yè)論文質(zhì)量控制具有重要意義。為了輔助教師甄別論文中的抄襲行為,為畢業(yè)論文管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)了一種基于全局序列比對(duì)算法的文本復(fù)制檢測(cè)算法,借助以往的論文數(shù)據(jù)庫(kù)信息,實(shí)現(xiàn)對(duì)論文預(yù)查重。使得教師能夠及時(shí)對(duì)論文質(zhì)量進(jìn)行把控。
論文查重也稱為文本復(fù)制檢測(cè),就是利用計(jì)算機(jī)技術(shù)判斷兩篇文本的相似度,并給出一個(gè)量化的數(shù)值。相似度越高表明兩個(gè)文本的內(nèi)容雷同較多。根據(jù)文本復(fù)制檢測(cè)對(duì)文本特征提取的方式可以將文本復(fù)制檢測(cè)方法劃分為基于詞頻統(tǒng)計(jì)的方法和基于字符串匹配的檢測(cè)方法兩大類。詞頻統(tǒng)計(jì)方法采用基于向量空間模型的TF-IDF方法,將句子看作由獨(dú)立詞條組成的向量空間,用點(diǎn)積法和余弦法計(jì)算相似度[6]?;谧址ヅ涞拇硇苑椒ㄓ蠮accard算法和編輯距離(Levenshtein distance)算法。編輯距離算法計(jì)算一段文本轉(zhuǎn)換成另外一段文本所需的最少編輯次數(shù),編輯距離越小表明兩段文本相似度越大。文獻(xiàn)[7]提出了一種基于Levenshtein算法優(yōu)化的文本相似度檢測(cè)方法,并應(yīng)用于題庫(kù)判重。
Needleman-Wunsch算法是一種全局序列比對(duì)算法,在基因組比對(duì)、蛋白質(zhì)序列比對(duì)等生物、醫(yī)學(xué)領(lǐng)域有廣泛的應(yīng)用。Needleman-Wunsch算法基于動(dòng)態(tài)規(guī)劃思想可實(shí)現(xiàn)高效的雙序列的比對(duì)計(jì)算。因此,本文提出一種將Needleman-Wunsch算法應(yīng)用于的文檔復(fù)制檢測(cè)方法。
Needleman-Wunsch原理如下:定義兩個(gè)字符串X和Y,X=[x1,x2, x3…xn], Y=[y1, y2, y3…ym],其中xn和ym為字符串分詞后的詞語(yǔ)。建立階數(shù)為(n+1)*(m+1)的計(jì)分矩陣M,將S和T的元素分別沿著矩陣的兩個(gè)軸排列,矩陣中的元素Di,j(i和j對(duì)應(yīng)矩陣元素的下標(biāo))代表當(dāng)前位置X和Y的相似度評(píng)分。先初始化矩陣元素D0,0=0,Di,0=Di-1,0+G,D0,j=D0,j-1+G,然后按公式(1)評(píng)分公式填充矩陣中剩余元素。
上式中G為懲罰分?jǐn)?shù)。由于元素Di,j的位置對(duì)應(yīng)字符串中元素xi和yj的匹配可能出現(xiàn)三種情況:匹配、錯(cuò)配和空位。后兩種情況稱為gap,需要予以相應(yīng)的懲罰分?jǐn)?shù)G。S(xi, yj)為將xi替換成yj的得分。在填充完所有單元格的數(shù)值后,右下角末尾元素Di,j的值即為最優(yōu)的匹配結(jié)果。最后利用動(dòng)態(tài)規(guī)劃方法在計(jì)分矩陣回溯,就可以得到對(duì)應(yīng)的最優(yōu)配對(duì)的方法。利用最優(yōu)匹配值,即可利用公式(2)計(jì)算文本相似度值。
算法以段落為對(duì)比整體,以句子為對(duì)比基本單位。將句子分詞后利用Needleman-Wunsch算法進(jìn)行相似度計(jì)算。圖6為文本復(fù)制檢測(cè)算法的相似度計(jì)算結(jié)果。
圖6:文本相似度計(jì)算結(jié)果
實(shí)驗(yàn)結(jié)果表明,在準(zhǔn)確性和實(shí)用性上,算法具有良好的效果,能幫助教師在評(píng)閱論文時(shí)快速直觀地識(shí)別論文抄襲和復(fù)制的情況。
本文闡述了基于成熟的SSM企業(yè)級(jí)應(yīng)用開(kāi)發(fā)框架的畢業(yè)論文管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。系統(tǒng)基于MVC模式進(jìn)行架構(gòu),具有高可移植性和健壯性。系統(tǒng)簡(jiǎn)化了傳統(tǒng)的人工管理畢業(yè)論文的工作流程,減輕了教師和教學(xué)管理員的工作任務(wù),實(shí)現(xiàn)畢業(yè)論文管理的網(wǎng)絡(luò)化、信息化。下一步工作是進(jìn)行系統(tǒng)可操作性和負(fù)載能力測(cè)試,完善論文查重功能模塊的算法。