彭仁松
(武漢船舶職業(yè)技術(shù)學(xué)院,湖北 武漢 430050)
信息技術(shù)的普及和應(yīng)用使人們的生活方式發(fā)生了重大的改變,高校作為科研和教育的前沿地帶,同樣推動著各種網(wǎng)絡(luò)應(yīng)用和信息管理系統(tǒng)的發(fā)展。如學(xué)生因頂崗實習(xí)離校而無法回學(xué)校參加畢業(yè)設(shè)計選題,上交實習(xí)報告等煩瑣的操作。在此背景下,本系統(tǒng)可以實現(xiàn)畢業(yè)設(shè)計選題,審核,信息管理等網(wǎng)絡(luò)化,減少管理員和教師的工作量,提高工作效率和效果。通過對基于B/S的畢業(yè)設(shè)計信息管理系統(tǒng)設(shè)計的分析,介紹系統(tǒng)的管理員用戶角色的詳細(xì)用例,系統(tǒng)功能模塊的設(shè)計和開發(fā)。
系統(tǒng)采用JSP技術(shù),在服務(wù)器端應(yīng)用數(shù)據(jù)庫、業(yè)務(wù)邏輯、用戶界面相互獨立的三層體系結(jié)構(gòu),在JBuilder界面下編寫和編譯了系統(tǒng)需要應(yīng)用的類和方法,本系統(tǒng)應(yīng)用MySQL作為數(shù)據(jù)庫系統(tǒng)來建立和維護(hù)系統(tǒng)中需要應(yīng)用的數(shù)據(jù)庫對象。在向數(shù)據(jù)庫項插入人員信息時,可以使用MySQL自帶的password()函數(shù)對密碼屬性進(jìn)行加密,以實現(xiàn)安全設(shè)置。
本系統(tǒng)總體可以分為三大部分:管理員子系統(tǒng)、教師子系統(tǒng)、學(xué)生子系統(tǒng)。分別面向管理員、教師、學(xué)生,其系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
管理員子系統(tǒng)主要負(fù)責(zé)為管理員提供一個管理畢業(yè)設(shè)計及相關(guān)教師學(xué)生信息的平臺,包括人員管理,題目審核等等。教師子系統(tǒng)為教師提交畢業(yè)設(shè)計題目,查看畢業(yè)設(shè)計選題信息提供服務(wù),學(xué)生子系統(tǒng)則為選擇畢業(yè)設(shè)計提供服務(wù)。
本系統(tǒng)設(shè)計中用戶角色共有:教師、學(xué)生、管理員三種角色。具體描述如下:教師角色(teacher),其角色職責(zé)為申報課題、修改課題、檢查學(xué)生任務(wù);學(xué)生角色(student),其角色職責(zé)為選擇畢業(yè)設(shè)計、提交階段成果;管理員(administrator),其角色職責(zé)為添加教師和學(xué)生用戶、審核畢設(shè)題目等。根據(jù)系統(tǒng)各角色設(shè)計出各子系統(tǒng)功能模塊結(jié)構(gòu)如圖2所示。
圖2 畢業(yè)設(shè)計信息管理系統(tǒng)功能圖
本系統(tǒng)采用MySQL數(shù)據(jù)庫作為底層數(shù)據(jù)庫的開發(fā)和管理工具,在MySQL服務(wù)器中建立了GDMSDB數(shù)據(jù)庫來管理系統(tǒng)中需要應(yīng)用的數(shù)據(jù)資源。GDMSDB數(shù)據(jù)庫中共建立了六個數(shù)據(jù)庫表,分別為:Administrator(管理員表)、Teacher(教師表)、Student(學(xué)生表)、Design(畢業(yè)設(shè)計題目信息表)、ThesisUpload(學(xué)生論文上傳信息表)、TeacherUpload(教師上傳文檔信息表)。各個表之間的關(guān)系如圖3所示。
經(jīng)過圖3對各實體間關(guān)系的描述,下面將詳述畢業(yè)設(shè)計信息表的設(shè)計方法和結(jié)構(gòu)。
圖3 畢業(yè)設(shè)計信息管理關(guān)系圖
Design表用來存儲教師所設(shè)立的畢業(yè)設(shè)計題目信息,依據(jù)畢業(yè)設(shè)計題目申請、審核、選擇的流程,可以得出管理員、教師、學(xué)生三類用戶角色均要對 Design表進(jìn)行操作,再考慮到畢業(yè)設(shè)計題目信息自身的復(fù)雜性,Design表的設(shè)計相對復(fù)雜。如表1所示為畢業(yè)設(shè)計信息表的詳細(xì)結(jié)構(gòu)。
表1 畢業(yè)設(shè)計信息表的結(jié)構(gòu)
Design表共設(shè)計了14項屬性,Did和Title分別存儲畢業(yè)設(shè)計的題目編號和題目名稱,并依據(jù)Did各不相同的特點將其設(shè)置為主鍵。Tid和Teacher屬性記錄設(shè)立該題目信息的教師編號和教師姓名,Sid和Student存儲選擇該畢業(yè)設(shè)計的學(xué)生的學(xué)號和姓名。Standard、Type、Process存儲畢業(yè)設(shè)計的基本屬性:難度、類型和進(jìn)行方式。Origin、Claim、Content、Aim存儲畢業(yè)設(shè)計的詳細(xì)內(nèi)容,即課題來源、目的要求、主要內(nèi)容和預(yù)期目標(biāo)。上述屬性除Content外均為字符類型,而Content由自身內(nèi)容限制,設(shè)置為TEXT—文本類型。Auditing字段用來給出畢業(yè)設(shè)計題目的審核結(jié)構(gòu),其操作由管理員來完成,在Design表中,它被設(shè)置為枚舉類型,默認(rèn)值為fail。
根據(jù)對系統(tǒng)角色分析和邏輯層設(shè)計的分析,本系統(tǒng)具體由管理員子系統(tǒng)、教師子系統(tǒng)、學(xué)生子系統(tǒng)來實現(xiàn),其中各子系統(tǒng)中功能模塊來實現(xiàn)各角色的操作及行為。管理員子系統(tǒng)由管理員用戶使用,用來管理學(xué)生、教師及畢業(yè)設(shè)計題目信息。管理員子系統(tǒng)功能模塊包括查看和刪除教師,添加教師,查看和刪除學(xué)生,添加學(xué)生,查看和審核畢業(yè)設(shè)計等功能。
(1)管理員子系統(tǒng)的功能結(jié)構(gòu)如圖4所示。
圖4 管理子系統(tǒng)功能結(jié)構(gòu)圖
查看和刪除教師頁面getTeacherInfo.jsp先調(diào)用Admin類中的getTeacherInfo( )方法,通過對Teacher表的查詢來得到全部教師信息,包括教師編號(Tid)、姓名(Name)、性別(Sex)、教師所屬系(Depart)、教師職稱(Post)、電子郵件(Email)、電話(Tel)。通過對全部教師的查看,如果需要刪除某一教師時,點擊改教師名稱即彈出刪除窗口,點擊確定后會調(diào)用removeTeacher( )方法,將該教師與該教師所設(shè)畢業(yè)設(shè)計題目信息刪除。
添加教師頁面addTeacher.jsp功能為實現(xiàn)新教師用戶的添加。當(dāng)管理員用戶進(jìn)入到addTeacher.jsp頁面或其他頁面時,該頁面都會對用戶的屬性重新進(jìn)行一個判斷。當(dāng)確定其為管理員用戶時,頁面執(zhí)行判斷之后的代碼,JSP頁面使用request.getParameter( )函數(shù)來從頁面表單來獲得教師相關(guān)信息,再把得到的數(shù)據(jù)作為參數(shù)傳遞給addTeacher( ),通過對admin類中addTeacher方法的調(diào)用,實現(xiàn)對Teacher表的插入操作。
如圖5所示。畢業(yè)設(shè)計信息管理頁面getDesignInfo.jsp用來管理畢業(yè)設(shè)計信息以便及時地對畢設(shè)題目進(jìn)行審核。按具體功能分為查看畢業(yè)設(shè)計、審核畢業(yè)設(shè)計。畢業(yè)設(shè)計信息存放在Design表中,當(dāng)管理員用戶需要查看畢業(yè)設(shè)計信息時,通過對getDesignInfo( )方法的調(diào)用,實現(xiàn)對Design表的查詢。
圖5 admin/main.jsp功能菜單及查詢教師界面
查詢學(xué)生選題信息頁面的功能:教師用戶登錄以后進(jìn)入getSdesignInfo.jsp頁面來查詢教師用戶所設(shè)畢業(yè)設(shè)計題目的選擇情況。這項工作通過調(diào)用getSdesignInfo( )方法來查詢Design表,會得到該教師用戶建立的畢業(yè)設(shè)計題目信息(Title)和與此題目相關(guān)聯(lián)的學(xué)生學(xué)號(Sid)、學(xué)生姓名(Student)、畢業(yè)設(shè)計審核(Auditing)結(jié)果。
查看和修改畢業(yè)設(shè)計信息主要用到三個頁面:getDesignInfo.jsp(查看所有畢設(shè)信息)、getDesign.jsp(查看指定畢設(shè)詳細(xì)信息)、auditingDesign.jsp(審核指定畢設(shè))。
(2)教師子系統(tǒng)的功能結(jié)構(gòu)如圖6所示。
圖6 教師子系統(tǒng)功能結(jié)構(gòu)圖
修改畢業(yè)設(shè)計信息模塊可以實現(xiàn)教師對所設(shè)立畢業(yè)設(shè)計題目的修改,教師用戶首先進(jìn)入getDesignInfo.jsp查看自己畢業(yè)設(shè)計題目的基本信息,如果某項畢業(yè)設(shè)計題目的審核結(jié)果為fail,教師則可對畢設(shè)題目信息進(jìn)行詳細(xì)查看,此時系統(tǒng)轉(zhuǎn)入getDesign.jsp頁面,然后在modifyDesign( )頁面中對所選題目進(jìn)行修改。
文件上載功能由teacherUpload.jsp頁面來實現(xiàn),教師用戶登錄到此頁面,選擇文件上傳到服務(wù)器端的teacher Upload文件夾中,文件上傳功能主要由jspSmartUpload組件來實現(xiàn),調(diào)用teacherUpload( )方法將文件信息(Fid、Title)和教師信息(Tid、Teacher)存儲到TeacherUpload表中。
文件下載功能由getThesisUpload.jsp來完成,教師登錄系統(tǒng)進(jìn)入此頁面,使用getThesisUpload( )方法來查詢ThesisUpload表中與自己編號相匹配的文件信息,如發(fā)現(xiàn)信息則點擊,利用jspSmartUpload組件來實現(xiàn)下載。
(3)學(xué)生子系統(tǒng)的功能結(jié)構(gòu)如圖7所示。學(xué)生子系統(tǒng)專供學(xué)生用戶使用,本子系統(tǒng)具體分為修改個人信息、選擇畢業(yè)設(shè)計題目、查詢已選題目信息、文件上傳和文件下載五個模塊。
圖7 學(xué)生子系統(tǒng)功能結(jié)構(gòu)圖
修改個人信息頁面updatePersonalInfo.jsp用來修改登錄學(xué)生的個人基本信息,此頁面通過調(diào)用updatePersonalInfo( )方法來對學(xué)生個人信息,包括電子郵件(Email)、電話(Tel)等進(jìn)行核對和修改,此外由于管理員添加學(xué)生用戶時學(xué)生密碼與學(xué)生學(xué)號相同,學(xué)生用戶登錄后應(yīng)及時的修改自己的密碼。
選擇畢業(yè)設(shè)計題目頁面getDesignInfo.jsp用來供學(xué)生選擇畢業(yè)設(shè)計課題,通過調(diào)用Student 類中的getDesignInfo()方法,學(xué)生得到畢業(yè)設(shè)計題目的基本信息,包括畢業(yè)設(shè)計題目(Title)、指導(dǎo)教師名稱(Teacher)、畢業(yè)設(shè)計難度(Standard)、畢業(yè)設(shè)計類型(Type)、畢業(yè)設(shè)計進(jìn)行方式(Process) 。
查詢已選題目頁面getSelectInfo.jsp用來查詢登錄學(xué)生用戶已經(jīng)選擇的畢業(yè)設(shè)計題目,通過對Design表進(jìn)行帶有限制條件Sid的查詢,學(xué)生用戶將會得到自己所選的題目,并同樣可以進(jìn)入與該畢業(yè)設(shè)計所匹配的getDesing.jsp和getTeacherInfo.jsp頁面查看與畢設(shè)題目所匹配的畢業(yè)設(shè)計詳細(xì)信息和指導(dǎo)教師信息。
學(xué)生子系統(tǒng)完成文件上傳的頁面為thesisUpload.jsp,與教師子系統(tǒng)文件上傳功能相同,不同的是學(xué)生子系統(tǒng)需要向數(shù)據(jù)庫的ThesisUpload表來提交數(shù)據(jù),相關(guān)信息為Fid(上傳文件編號)、Title(上傳文件名稱)、Type(上傳文件類型)、Sid(上傳學(xué)生學(xué)號)、Student(上傳學(xué)生姓名)、Tid(接受教師編號)。根據(jù)不同的文件類型,上傳文件會被放在服務(wù)器端的不同文件夾內(nèi)。
本文以畢業(yè)設(shè)計信息管理系統(tǒng)總體結(jié)構(gòu)設(shè)計及功能模塊實現(xiàn)等操作,在具體的實現(xiàn)系統(tǒng)功能的同時,介紹了實現(xiàn)系統(tǒng)所使用的細(xì)節(jié)技術(shù),對于畢業(yè)設(shè)計信息管理系統(tǒng)應(yīng)用有實際的意義。