鄭 浩,劉建芳
(平頂山學院 河南 平頂山 467000)
隨著高等教育教學改革的不斷深入,對于高校畢業(yè)設計管理的規(guī)范化、系統(tǒng)化、信息化已成為目前面臨的重要課題[1]。目前,很多高校的畢業(yè)設計管理還存在一些問題。例如:通常學生在大學最后一年需要在外地進行實習,此時又面臨著畢業(yè)設計選題問題。畢業(yè)設計完成時,論文的上交也存在困難[2]。本課題的目的旨在應用現(xiàn)代的信息網絡化管理技術解決畢業(yè)設計(論文)環(huán)節(jié)中存在的問題,減少時間、空間上的限制,增加畢業(yè)設計(論文)的過程監(jiān)控,減輕指導老師和教務管理人員的工作負擔。
系統(tǒng)開發(fā)需要特定的環(huán)境和技術,要選擇好系統(tǒng)需要的硬件環(huán)境以及相應的開發(fā)工具才能夠開發(fā)系統(tǒng)。
Struts是Apache基金會Jakarta項目組的一個Open Source項目,它采用MVC模式,能夠很好地幫助java開發(fā)者利用J2EE開發(fā)Web應用[3]。和其他的java架構一樣,Struts也是面向對象設計,將MVC模式“分離顯示邏輯和業(yè)務邏輯”的能力發(fā)揮得淋漓盡致。Structs框架的核心是一個彈性struts的控制層, 基于如 Java Servlets,JavaBeans,ResourceBundles 與XML等標準技術,以及 Jakarta Commons的一些類庫。Struts由一組相互協(xié)作的類(組件)、Servlet以及jsp tag lib組成。
本系統(tǒng)采用Struts框架,編寫各個模塊對應的Action Form類和Action實現(xiàn)類。ActionForm類是一個具有getXXX()和setXXX()方法的類,用于獲取或設置HTML表單數據。同時該類也可以實現(xiàn)驗證表單數據的功能。Action類實現(xiàn)類是本系統(tǒng)中控制組件的重要組成部分,是用戶請求和業(yè)務邏輯之間溝通的媒介。
Spring是一個開源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的[4]。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。
Web應用的中間部分為業(yè)務邏輯層,在該系統(tǒng)中該部分將采用Spring框架,由于其框架本身提供的IoC和AOP等方面的技術能更好的滿足應用系統(tǒng)的應用層的需要。其負責的工作為:管理事物;提供與表示層和持久層相互作用的接口;管理業(yè)務層級別的對象的依賴;管理從業(yè)務層到持久層的程序執(zhí)行等。
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫[5]。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任[6]。
Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query 和 Configuration。 這 5 個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這5個核心接口分別加以介紹。
我院于2007年開始軟件工程專業(yè)本科生的招生工作,目前的兩屆本科畢業(yè)生的畢業(yè)設計管理工作均采用手工管理模式。管理工作難度大,各種報表重復制作,溝通難效率低等問題日益突出。傳統(tǒng)的管理方法難以適應現(xiàn)代工學結合背景下的畢業(yè)設計管理要求。結合我院的畢業(yè)設計工作的特點,實現(xiàn)畢業(yè)設計過程的網絡化管理,勢在必行。在設計過程中,對畢業(yè)設計管理過程的充分調研是必不可少的。
我院在畢業(yè)設計管理的整個過程中,主要分為以下幾個階段:
1)選題申報階段 在此階段,指導教師或學生均可以根據自身情況申報課題。此過程序要提交選題名稱,選題意義,選題擬完成的相關功能。
2)選題審核階段 申報課題完成后,院系組織相關人員對所申報的課題經過兩次審核,先是由選題委員會教師進行選題內容的審核,審核通過后則可作為畢業(yè)設計的課題,否則,這些課題不能作為畢業(yè)設計的課題。
3)選題階段 此階段由學生針對審核通過的選題進行選報。然后按照院系畢業(yè)設計指導任務對指導教師和學生進行組合。并由教師根據申報的選題擬定畢業(yè)設計任務書,并給相應的學生進行任務下達。
4)開題階段 此階段學生針對指導教師下達的任務書,查閱相關資料完成開題報告,并提交給指導教師,指導教師對學生的開題報告進行審核,審核通過,在開題報告上簽字,學生可進入下一階段;若審核不通過,則學生繼續(xù)修改開題報告,指導審核通過為止。
5)畢業(yè)設計階段 學生根據開題報告中的基本思路和內容,逐步完成畢業(yè)設計,包括畢業(yè)設計階段的系統(tǒng)開發(fā)和論文撰寫。在此過程中若有疑問可以與指導老師進行交流,此過程要求有畢業(yè)設計指導紀錄和修改意見表作為指導過程的支撐材料。
6)申請答辯階段 當學生完成畢業(yè)設計的系統(tǒng)開發(fā)和論文撰寫后,可以申請答辯。申請答辯先由指導教師檢驗系統(tǒng)是否能夠滿足要求,論文撰寫是否合格,如果同意答辯則給出評語表,然后交給答辯委員會進行審核(此部分審核由兩位教師同時進行,分別給出評語表和分數),根據指導教師和評閱教師的意見,確定是否可以參加答辯。
7)答辯階段 學生向答辯委員會教師演示系統(tǒng)并進行15分鐘以內的陳述,每個答辯小組有5位教師組成。教師根據學生的展示情況及回答問題情況給出評分,答辯秘書完成答辯過程的記錄。答辯通過后,由答辯委員會成員進行答辯打分,結合指導老師評分,然后計算出畢業(yè)設計總成績。
8)優(yōu)秀論文申報 根據各方面綜合考慮,由學生完成優(yōu)秀論文申報表,交給院系審核并填寫推薦意見,完成推優(yōu)工作。
其業(yè)務流程圖如圖1所示。
通過對畢業(yè)設計過程整體業(yè)務流程的分析,本文擬開發(fā)的畢業(yè)設計管理系統(tǒng)主要包括用戶選題申報、選題分配、任務下達、開題報告管理、過程指導、論文管理及答辯成績處理等功能。
本系統(tǒng)采用MVC設計模式,使用Struts框架和Hibernate框架做支持,其中使用Struts作為系統(tǒng)的整體基礎架構,負責MVC的分離,在 Struts框架的模型部分,利用Hibernate框架對持久層提供支持[7]。
系統(tǒng)的基本業(yè)務流程是:在表示層中,首先通過JSP頁面實現(xiàn)交互界面,負責傳送請求(Request)和接收響應(Response),然后 Struts根據配置文件 (struts-config.xml)將 Action Servlet接收到的Request委派給相應的Action處理。DAO層執(zhí)行對數據庫的操作語句。而在持久層中,則依賴于Hibernate的對象化映射和數據庫交互,處理DAO組件請求的數據,并返回處理結果[8]。
系統(tǒng)功能設計階段的根本目標是確定應該怎樣具體地實現(xiàn)所要求的系統(tǒng),經過這個階段的設計工作,應該得出對目標系統(tǒng)的精確描述。本系統(tǒng)主要包括選題管理模塊、開題管理模塊、文檔管理模塊、成績管理模塊、新聞通知模塊和系統(tǒng)管理模塊。下面以選題管理模塊為例說明基于SSH框架的系統(tǒng)功能詳細設計與實現(xiàn)。
選題管理主要涵蓋畢業(yè)設計的選題申報階段,選題審核階段和選題階段。依據需求分析中對畢業(yè)設計管理業(yè)務的分析,此模塊的參與者有學生,教師,院系管理員。
圖1 畢業(yè)設計業(yè)務流程圖Fig.1 Diploma-project business process diagram
1)學生 根據要求申報選題,查看選題具體信息,修改或刪除個人申報選題的信息,選擇自己的畢業(yè)設計題目,下載選題任務書。
2)指導教師 根據要求申報選題,查看選題具體信息,修改或刪除個人申報選題的信息,選擇學生,根據選題和學生信息下達課題任務書。
3)院系管理員 監(jiān)督選題過程,審核選題,輔助發(fā)布新選題,查看已發(fā)布選題的信息,查詢學生選題信息,查看指導教師指導選題信息,并協(xié)調指導情況。
課題管理包含設置課題申報時間、設置選題時間、審批調整畢業(yè)設計任務、維護課題基本信息和選題委員會管理五個功能。
對于設置課題申報時間和設置選題時間功能,以設置課題申報時間為例,管理員設置課題申報時間成功后,會提示設置成功的信息。之后,教師和學生只有在管理員設置的時間范圍內,才可以申報課題,否則,教師和學生無法進入申報課題界面,系統(tǒng)會給出相應的提示。同時,與此相類似的功能還有設置開題時間和設置論文答辯時間等,這些功能體現(xiàn)了管理員對整個畢業(yè)設計管理過程的過程監(jiān)控。
對于審批調整畢業(yè)設計任務的功能,包括審批任務和選題調整兩個功能。其中審批任務功能,在教師或學生申報課題時,會上傳與其所申報的課題相關的課題資源。管理員可以下載每個課題的課題資源,查看后對所申報的課題進行審批。若管理員審批通過,學生就可選報這些課題,若管理員審批未通過,這些課題不能被學生選報。其中選題調整功能,包括未報上課題學生的調整及已報上課題學生的調整兩個功能。若在管理員所設置的選題時間范圍內,一些學生尚未報上課題,則可找管理員申請調整,即未報上課題學生調整功能。若一些學生出于其他原因需要對自己選報的課題進行調整,則可以找管理員申請調整,即已報上課題學生調整功能。
對于維護課題基本信息的功能,管理員可以查看和刪除已通過審批的課題。對于選題委員會管理的功能,管理員可以確定選題委員會的成員,還可以對這些選題委員會成員進行分組以及確定是否為該小組的負責人。課題管理流程圖如圖2所示。
圖2 課題管理流程圖Fig.2 Subject management process diagram
課題管理的實現(xiàn)中,管理員可以設置課題申報時間和選題時間、審批調整畢業(yè)設計任務、維護課題基本信息以及進行選題委員會管理。這里僅以設置課題申報時間和審批任務為例進行說明。下面依據Struts工作流程對這兩個功能的實現(xiàn)做詳細介紹。
1)設置課題申報時間功能的實現(xiàn)
首先,管理員進入設置課題申報時間界面后,可以選擇兩個日期,若結束日期小于開始日期,則會給出相應的提示信息。點擊提交后,Struts的核心ActionServlet根據path路徑(sureSelectTaskDate.do)到 struts-config.xml中尋找相匹配的路徑。接著,執(zhí)行DateAction中的insertSelectTask()方法。最后,調用DateDao中的update()方法更新數據庫中date表中的日期。設置課題申報時間功能的界面圖如圖3所示。
圖3 設置課題申報時間界面Fig.3 Interface of Task declaration time setting
2)審批任務功能的實現(xiàn)
審批任務功能中包括下載課題資源和審批任務兩個功能。對于下載課題資源:首先,管理員進入審批任務界面后,可以看到所有已申報的課題的詳細信息。點擊某課題名稱后,Struts的核心 ActionServlet根據 path路徑 (load.do)到struts-config.xml中尋找相匹配的路徑。接著,執(zhí)行Examine TaskAction中的load()方法。最后,調用 ExamineTaskDao中的queryExamineTaskByid2()方法查詢出數據庫中該課題的url,按照此url下載該課題資源。
對于審批任務:管理員查看下載到的課題資源進行審核,點擊審批,進入審批頁面。審批完成后,點擊提交,Struts的核心 ActionServlet根據 path路徑(ShowExamineTask.do)到struts-config.xml中尋找相匹配的路徑。接著,執(zhí)行Examine TaskAction中的 update()方法。 最后,調用 ExamineTaskDao中的update()方法更新數據庫中該課題的pass屬性。審批任務功能界面圖如圖4所示。
圖4 審批任務界面Fig.4 Interface of task approval
文中結合高校教務工作中畢業(yè)設計管理的實際需要,論述了開發(fā)畢業(yè)設計管理系統(tǒng)的必要性,結合理論技術分析,提出了基于SSH框架的畢業(yè)設計管理系統(tǒng)的實現(xiàn)方法,并對畢業(yè)設計管理系統(tǒng)的總體設計、詳細設計方案進行了闡述。系統(tǒng)具有良好的擴展性和平臺無關性,易于操作。
[1]王傳江.基于WEB畢業(yè)設計信息平臺的設計與實現(xiàn)[D].遼寧:大連理工大學,2008.
[2]趙小航.高校畢業(yè)設計(論文)管理系統(tǒng)的設計與實現(xiàn)[D].北京:北京工業(yè)大學,2009.
[3]孫衛(wèi)琴.精通Struts:基于MVC的Java Web設計與開發(fā)[M].北京:電子工業(yè)出版社,2009.
[4]楊少波,顧益軍.J2EE項目實訓—Spring框架技術[M].北京:清華大學出版社,2009.
[5]李剛.整合Struts+Hibernate+Spring應用開發(fā)詳解 [M].浙江:浙江大學出版社,2008.
[6]劉斌.精通Java Web整合開發(fā)[M].3版.北京:電子工業(yè)出版社,2008.
[7]高紅巖.基于MVC+MyEclipse的Java Web應用開發(fā)[M].科學出版社,2007.
[8]Langdon C S.The State of Web Services[J].Computer,2003,36(7):93-94.