第1章 緒論 1
1.1研究背景 .1
1.2開發環境 1
1.3研究意義 2
1.4研究內容和方法 3
1.5本文的結構安排 4
第2章 Web 應用框架設計 5
2.1MVC 架構模式 5
2.1.1MVC架構模式概述 5
2.1.2MVC架構模式的特點 6
2.1.3常用的MVC框架 7
2.2系統視圖層的技術選取 8
2.2.1頁面資源層…… 8
2.2.2頁面模板層…… 9
2.3系統控制層的技術選取 9
2.4系統模型層的技術選取 10
2.4.1Spring Ioc容器 11
2.4.2Spring Jdbc模板 11
2.5框架工作的基本過程 1 1
2.6 本章小結 12
第3章 系統整體設計 13
3.1系統需求分析 13
3.1.1系統需求及其分類… 13
3.1.2系統需求描述…… 13
3.1.3確定系統范圍和邊界…… 15
3.1.4定義用戶…… 15
3.1.5用例的獲取…… 16
3.2課程成績管理子系統 16
3.2.1功能說明…… 16
3.2.2用例分析 16
3.3用戶與角色信息管理子系統 17
3.3.1功能說明…… 17
3.3.2用例分析…… 17
3.4學籍管理子系統 18
3.4.1功能說明…… 18
3.4.2用例分析…… 18
3.5本章小結 18
第4章 系統設計與實現 19
4.1系統設計 19
4.1.1系統功能劃分…… 19
4.1.2課程成績管理子系統的設計…… 20
4.1.3學籍管理子系統的設計…… 22
4.1.4用戶角色管理子系統的設計… 25
4.2數據庫設計 28
4.3系統的開發環境 31
4.4系統實現 31
4.4.1視圖層的實現…… 31
4.4.2控制層的實現…… 33
4.4.3模板層的實現…… 36
4.4.4科目成績管理子系統的實現…… 39
4.4.5用戶角色管理子系統的實現…… 41
4.4.6學籍管理子系統的實現…… 41
4.5本章小結 42
第5章 系統測試 43
5.1軟件測試的基本原則 43
5.2軟件測試方法 43
5.3系統功能實現測試 44
5.3.1幾個典型模塊的測試用例介紹…… 44
5.3.2系統測試結果分析…… 46
5.4本章小結 47
結論 48
參考文獻 ….50
作者介紹 52
致謝 53
第1章 緒 論
1.1研究背景
隨著改革開放的不斷深入,伴隨著國際化的進程,我國的教育事業也迅猛發 展,對教育事業的要求也不斷提高。在教學過程中,教學質量越來越取決于教學 管理的軟硬件水平。因此,設計一套功能完備的教學管理軟件就顯得尤為重要。 而從實際情況來看,當前我國許多學校,特別是高等院校的教學管理系統大多滿 足于能用的水平,而遠達不到好用、易用、實用的高度,教師和學生對當前教學 管理系統的滿意度也不高。隨著網絡技術的發展,校園信息化的進程不斷深入, 現有的學生信息管理系統存在的不足也更加凸顯,主要表現在以下幾點:
1.建成在用的學生信息管理系統之間無法交互,教學、學生、行政等工作系 統分離,從事不同類型工作的教師之間,教師與學生之間都無法方便快捷地實現 信息共享和溝通互動。
2.建成在用的學生信息管理系統在設計時多從教師的使用角度考慮,沒有為 學生提供相應的服務,削弱了系統的實用性。
3.建成在用的學生信息管理系統在設計時沒有預留擴展接口,隨著學校規模 的擴大,學生人數總量的增加,系統將無法繼續滿足使用需求。
4.建成在用的學生信息管理系統未配備獨立的的數據庫服務器,導致安全性 不高,其服務器的管理存在漏洞。
針對以上系統不足,我們在對多個學生信息管理系統研究調查的基礎上進行 改進和整合,采用 Web 技術,力圖通過設計開發功能相對完備的高校學生管理系 統,加快推進真正以學生為中心的教學管理模式建設,確保師生能夠迅速及時地 獲取各類需求信息。
1.2開發環境
ASP/JSP/Servlet 代碼是設計開發基于服務器端運行的軟件系統的傳統做法, 技術也較為成熟。但此種方法在系統復雜度方面存在無法避免的不足,且隨著復 雜度的升高,系統在創建過程中,面對的復雜程度和成本都會隨著增高。進而導 致系統結構層次模糊,代碼閱讀性下降,給系統后期功能拓展、性能升級等增加 了難度。為應對此種情況,程序開發人員越來越重視J2EE領域的技術使用,通過 對可復用組件的集成技術提高系統結構的清晰度,實現軟件系統復用度高、擴展 性強,工作效率出色。MVC(Model/View/Controller)軟件設計模式就是基于這一設 計思想提出的。
MVC軟件設計模式最早提出于20世紀80年代,其設計初衷是滿足為重復數 據提供多個視圖的應用程序所需。由于這一設計模式很好地對數據層與表示層進 行了分離,形成了層間松散耦合的效果,極大提高了系統的靈活性、復用性和可 維護性,因此迅速在與用戶圖形界面相關的應用程序設計開發中得到廣泛應用, 并得到了 SUN公司官方認可,被列為推薦使用的J2EE平臺設計模式。
WebWork 是一種支持多種表現層的軟件設計技術,這種技術也遵循 MVC 模 式。其以J2EE Web框架為基礎,簡化結構和標簽庫,提高可自定義程度。同時, 結合性能強大的前端攔截器,能夠給用戶的設計開發提供高自由度的選擇,并為 系統的升級擴展和系統適應提供了方便。
Spring框架是另外一種應用廣泛的開源框架之一,其能夠給J2EE平臺創建穩 定的底層結構,和配套技術工具支持。
在本文的研究中,對FreeMarker、WebWork、Spring三個設計框架進行集成, 系統整體上基于MVC模式進行設計開發,力圖降低層次之間的耦合度,以實現系 統維護時,僅需修改少量代碼就能夠完成系統功能拓展,數據庫服務器修改等工 作。
1.3研究意義
組織周密、設計謹慎、技術卓越的學生信息管理系統,能夠保障學校管理工 作的高效和高質量,反映學校管理文化的建設水平,體現學校管理層的工作理念 等等。進而,通過相關系統的使用,加強對教學管理工作流程的管理,甚而能夠 將先進的組織制度和管理制度等融入整個管理系統,使系統管理更加清晰、功能 更加全面。提高系統的綜合功能和職權落實。對于學校管理人員而言,這一系統 可以幫助他們從日常繁瑣的人力勞動中解脫出來,營造風氣清正、輕松順暢的工 作環境。學校師生通過系統獲取各種信息,能夠加強彼此間的交流溝通,起到教 學相長的效果。
本文研究的學生信息管理系統以校園網絡資源為基礎,為教師提供了便捷有 效的教學管理平臺,從而創造了分享交流的快速通道。在該系統的幫助下,還能 夠實現各類信息及時發布,保證了獎勵表彰、就業送學等各類信息的公開透明。 結合先進的信息化技術,該系統可以大幅度減少工作強度,提高工作效率。并且, 其有效確保了數據的安全性,對我國學校的管理工作具有非常重要的參考價值。
1.4研究內容與方法
文章以某軟件學院的學生信息管理系統為例,在詳細說明現狀的基礎上,結 從當前主流的軟件設計方法和開發技術出發,尋找存在的問題,并給出一個基于 MVC模型的設計模型。并結合FreeMarker、WebWork和Spring框架,實現系統構 架的進一步提高。本文旨在設計以師生為核心的、具有較好安全性、拓展性、互 動性的管理信息系統。系統具備消息收發、信息管理、出勤考核等功能,并預留 進一步升級的拓展接口。
文章主要安排了以下4 個方面的研究內容:
1.比較研究MVC模式的基本原理和優缺點,對選用MVC架構模式開發基于 J2EE的多層Web應用的思路構想進行闡述。
2.比較研究當前主流的信息實現技術,提出將Webwork技術和Spring框架進 行整合的設計開發方案。
3.針對系統功能的需求和設計原理進行分析,給出如何解決基于 MVC 模式 的學生信息管理系統的方案,且利用框架技術進行設計與開發。
4.針對測試方案,選擇出恰當的方法,對系統性能進行測試,確保系統高效 穩定。
本文主要采取了以下3 種研究方法:
1.文獻檢索法。對系統開發的相關理論支持和實踐成果進行檢索,學習相關 著作,積累課題所需的基本理論知識。第一,利用學校圖書館進行手工檢索,借 閱圖書資料;第二,利用中國優秀碩博論文數據庫、Elsevier全文電子期刊等國內 外數據庫,以及百度、谷歌等互聯網搜索引擎進行電子檢索,查找和收集國內外 相關研究資料。
2.比較研究法。對比、分析各類基于 MVC 軟件開發技術的優劣,根據所研 究學生信息管理系統的具體需求,選取相關技術和體系結構,且將選則好的技術 進一步集成的設計思路加以論證,從而形成整體的設計思路。
3.原型開發法。在文章的研究中,綜合應用了 FreeMarker、Java和Servlet, 設計較為復雜。因此在MVC作為設計模型的基礎上,首先建立系統原型,然后依 次通過調試、測試、運行等過程,對原型系統進行完善,形成正式系統。
1.5本文的結構安排
本文共分為5 個部分內容。
第一章為緒論。主要對研究課題的背景與意義,研宄的主要內容以及論文的 結構安排進行了簡要介紹。
第二章為基本理論的介紹,主要對基于 MVC 架構模式的 Struts、WebWork、 Spring、JSF等多種主流的項目框架進行了研究。由于在具體的軟件系統開發中, 適當的框架能夠有效提高開發的質量,縮短開發時間。因此在剖析了 WebWork、 Spring和FreeMarker技術與系統需求之間的契合度后,指出了其MVC模式的設計 思路,以及以上三種技術在建立系統時的應用。
第三章為系統整體設計。重點就選取某一個軟件學院的學生信息管理系統中 的學籍、德育考試、科目成績、用戶角色等子系統的系統劃分和功能需求進行了 研究分析。對系統需要實現的功能進行了詳細論述,重點介紹了課程成績管理、 用戶與角色信息管理和學籍管理三個子系統的相關工作,德育考核管理子系統的 實現與課程成績管理子系統相似,不做重點介紹。為下一步系統的設計與實現打 下了基礎。
第四章為系統的設計與實現。這一章首先提出某軟件學院學生信息管理系統 的技術方案,在MVC開發模式的理念基礎上,采取FreeMarker+WebWork+Spring 的三層框架完成了系統的設計開發,在很大程度上降低了系統顯示層、控制層和 模型層之間的耦合度,維護人員使用少量代碼就可以完成增減系統功能和對更改 數據庫服務器等維護工作。在數據庫的設計上充分考慮了系統實用性和拓展性需 求,選用的是高效的MySql5.0,能夠與系統完美兼容。
第五章為系統性能測試。主要對前文設計的學生管理系統進行了功能重現, 另外還對應用型的功能軟件 LoadRunner 實施檢測。該系統的研發設計是在 Microsoft Visual Studio 2010 SP1設計平臺環境下完成的,并且用LoadRunner來檢 測整個系統的運行情況。軟件工程的設計階段,對本系統的著重點,也就是安卓 系統下的服務端及客戶端的所有功能模塊都實現了,尤其是其中的用戶登錄環節 與資料下載功能,是作為兩個重點測試對象來進行解析的。由于該系統還處在試 運行階段,軟件中存在的各種缺陷和問題也在逐步的解決之中。因此本章的介紹 并不盡詳細,這也是我們在下一步研究中需要加強的工作之一。
第2章Web應用框架設計
2.1MVC 架構模式
MVC是使用最多的架構模式之一,發展形成了例如WebWork、Struts、JSF等 多種相應的項目框架。因此,在具體的軟件系統開發中,選擇一種最符合項目特 點的項目框架,可以大幅度縮短開發時間,提高項目質量⑴。本章將對Spring框 架、WebWork框架和FreeMarker進行分析,對其MVC構架模式的原理進行簡要介 紹。此外,對其在建立學生信息管理系統時的應用展開討論。
2.1.1MVC架構模式概述
在上個世紀八十年代,編程語言Smalltalk-80比較流行,有人就在此基礎上提 出了“模型層-視圖層-中央控制器”三層框架設計軟件的模式(即MVC結構), 在很長時間以來,該設計模式被使用者不斷的使用并加以完善,就目前而言,其 適用范圍最廣泛。之所以 MVC 架構能夠如此的受大家歡迎和接受,肯定是有它 獨特的優勢,有線來說其結構明顯,層次清晰,模型層與視圖層與控制器模塊三 者相互獨立又彼此聯系,是個有秩序的整體。由于各個模塊分開,其代碼復用程 度很高,并且將信息傳遞與軟件正常運行的耦合性降到最低。單獨升級其中的一 個模塊對其他的兩個影響有限,因此靈活性和其可擴展性俱佳,且后期方便維 護。Sun公司推出的Java EE平臺就是使用該模式研發的,進而促使此設計模式被 大量應用在Web軟件中。
MVC框架的三個層次分工各有不同,模型層主要是針對數據庫操作、調用的 系統數據、參數的傳遞方法等進行封裝。這樣就能反復使用一個已經封裝好的相 同方法多次,實現代碼復用。視圖層就是使用超文本標示語言、CSS設計、DIV對 象及JS架構等設計一個美觀又使用的可視化頁面,方便與用戶的操作及結果的顯 示等。控制器的作用就是執行請求操作,完成頁面跳轉,控制參數傳輸位置等方 法的封裝,通過協同的控制達到視圖層與模型層的動作步驟一致。
通過這種MVC框架設計模式,整個的軟件設計工程可以分為三大部分來分別 完成,通過這種方法,能夠保障代碼模塊等的最大重用性,而且其解稱作用的效
果也十分明顯。等三個大的模塊完成后,再通過相應的接口將他們連接起來成為 一個整體,這就實現了工作的分割快速完成。恰巧這種軟件的設計模式也符合現 代公司企業的實際管理模式,不同部門負責完成不同的模塊的設計,不但保障了 整體設計的專業程度,也提高了工作效率。同時還為以后的運維工作和軟件升級 等帶來了很大的便易性。圖2-1為MVC整體系統架構圖:
選擇視圖 改變參數
視圖(View)
JSP 查詢請求 模型(Model)
Javabean
L 丿 ? ? 數據庫
DB
L 丿
輸出響應 4
更新響應
圖2-1 MVC系統架構圖
2.1.2MVC架構模式的特點
MVC架構模式的優點在于:
1.通過同一模型對多個視圖的共享,降低了系統代碼的工作量,提高了系統 在搭建和維護上的經濟性。
2.MVC構架模型輸出的數據,不執行格式化,從而使其能夠兼容各種顯示技 術,滿足不同使用者的要求。
3.系統中模型與控制器、視圖之間處于分離狀態,且自包含,使得在系統開 發和維護過程中易于實現對程序數據層及業務規則的修改操作。
4.通過聯接不同的模型和視圖,控制器能夠選出可重用的模型和視圖,并按 照用戶的需要對模型進行選擇,用戶可依照系統提供的處理結果進行開發,大幅 度縮短開發周期。
5.系統提供了相對獨立,層次分明的系統結構,系統開發人員可細化分工, 同時展開工作,及縮短了系統開發周期,還有利于程序代碼的工程化管理。
MVC架構模式的缺點在于:
1.系統層次的增加,增加了軟件編寫的工程量和復雜度,尤其是小型項目, 如果完全符合MVC構架模式,追求視圖層、模型層、控制器三者的相互獨立,反而 會提高開發的工程量和困難性,影響開發周期。
2.模型層與視圖層之間的獨立關系給系統調試工作增加了難度。開發人員必 須對所有構件進行徹底測試后,方可將系統投入使用。
綜上所述,MVC架構模式在應用程序的設計開發中具有較高的復雜度和較大的 工作量。因此,在基于MVC架構的軟件系統的實踐操作中,有必要通過適當的框 架來優化開發過程。
2.1.3常用的MVC框架
1.Struts框架。這一框架是在J2EE的基礎上并進行改進,同事使用Servlet和 JSP兩種技術以實現MVC架構,在實現應用系統各層次劃分的同時,還為軟件開 發提供了一系列便捷、實用的輔助工具。[2]Struts框架的處理流程完全按照MVC 架構思想,首先,ActionServlet接收來自用戶的申請,用ActionMapping對申請進 行處理。爾后,Action對ActionForm的內容進行檢索、接收、響應等處理,并將 處理結果返送至控制層。最后,控制層根據返送信息,對請求進行下一步處理。 目前,Struts框架的應用較為廣泛,總體來說,好處在于HTML標簽功能比較強大, 缺陷則是無法進行單元測試。
2.Spring框架。這一框架為用戶提供了 Web程序設計開發所需的全功能MVC 模塊,并允許用戶直接使用Spring Ioc和AOP功能。[3]系統還允許用戶自主選擇 內置SpringWeb框架或是外置Web框架模式,其他包括策略接口,Spring框架等 都具有高度自主的用戶選配方案。此外,Spring框架還為用戶提供了包括JSP、 Velocity> Tiles、iText等在內的多種圖形顯示技術,滿足了不同用戶的技術需求。 在 Spring 框架的處理流程中,控制器、模型對象、分派器等都被高度分離,這也 使得用戶能夠容易地對其進行定制。
3.Webwork框架。這一框架將重點放在系統組件及代碼的重用上,是基于MVC 模式的輕量級J2EEWeb框架,其主要優點在于:通過內置的小型API,幫助用戶 快速完成開發任務。WebWork基于低關聯度的機理,使Action與Servlet API的關 聯度得到降低,使系統開發更為便捷。WebWork能夠對JSP、Velocity、FreeMarker 等主流技術能夠很好地支持。相較而言,WebWork比Struts的操作更加靈活高效, 但該系統的客戶端驗證技術還存在一定局限.。
4.JSF框架。JSF是基于Java的Web應用程序的服務器端組件框架。4]它支持 以搭建組件為核心進行Web應用程序的開發,設計人員只需將UI組件拖放到相應 頁面上即可完成操作,極大地簡化了開發應用過程。大量的JSF API還能夠滿足設 計人員不同的功能需求。同時,JSF框架對MVC設計模式的深度集成,確保了應 用程序具有更高的可維護性。
2.2系統視圖層的技術選取
2.2.1頁面資源層
在本文的研究中,頁面資源層選用HTML+CSS+Javascript技術實現。
HTML 是當前最常用的頁面元素標記語言,其缺點在于沒有對數據內容與表 現形式進行很好地區分,增加了設計開發工作的復雜度和工作量,所以本項目僅 用其表現較簡單地文檔結構,使用頻率較低。
CSS 技術主要用于對文檔樣式進行定義,并統一控制界面中各要素的顯示風 格。
JavaScript用來編寫系統腳本,以實現靜態頁面確定后的系統行為。系統腳本 的主要任務是與用戶進行事件交互,響應頁面事件,并校驗用戶輸入的數據。由 于這一技術具有高重用性等優點,所以在本文的研究中,先將重用度較高的 JavaScript腳本編寫出來,新建成js類型文件以備調用。
系統頁面資源層三種技術之間的關系如圖2-2所示:
圖2-2 頁面資源層技術關系示意圖
2.2.2頁面模板層
在本文的研究中,選取FreeMarker完成頁面模板層的實現。FreeMarker是一 個模板引擎程序,能夠通過內建機制對不同類型數據的頁面顯示格式進行拓展, 并提供了強大的宏功能,能夠有效克服傳統的嵌入JSP的HTML設計方法中,由 于代碼濫用導致的不良后果,確保了邏輯層和表現層的相對分離,提高了頁面的 可維護性,程序員和美工的責任分工也更加明晰。[5]圖 2-3 顯示的是 FreeMarker 的工作機制:
模板
圖2-3 FreeMarker工作機制示意圖
2.3系統控制層的技術選取
在本文的研究中,選用WebWork作為系統控制層技術。WebWork技術的工作 流程.如下圖2-4所示。在這樣的框架下,Servlet調度機首先建立Action代理,響 應全部用戶的請求。Action代理的工作運行時,首先使用攔截器Interceptor,對數 據進行參數設定等操作,并產生結果,之后作為系統的根據,去判定是否需要調 動Actiono WebWork提供了多種視圖形式對上述結果進行顯示。
在系統開發的過程中,WebWork具體起到以下幾點作用:首先是對用戶發出 的請求信息進行數據封裝,集合成為統一的數據格式;其次是根據用戶請求類型 調取邏輯處理單元,并將封裝的數據對象作為參數發送給邏輯處理單元;最后是 將邏輯處理單元的處理結果進行數據封裝,并將其按照預定表現層進行處理,展 現給用戶。
2.4系統模型層的技術選取
在傳統的 Java 三層架構中,業務邏輯層負責業務邏輯的計算、處理,數據持 久層保存數據對象的各類屬性,而MVC的模型層可以看做是實現持久層的一套固 定化方法。[6]在本文的研究中,對這部分的實現技術選取Spring Ioc Container框架 實現,并進一步使用Spring JdbcTemplate進行了操作簡化。在系統的開發中,Spring 具體起到以下幾點作用:對系統的業務對象進行管理并進行聲明;為業務對象輸 入所需的各類技術支持;使用該框架內嵌模板對JDBC進行簡化打包。
2.4.1Spring Ioc 容器
Spring Ioc ontainer是java的Bean Factory,在同類軟件中具有出色的性能。⑺ 在系統中,該技術主要負責創建Bean實例,創建依據包括Bean屬性值、依賴關 系、創建模式、初始化方法及銷毀方法等配置信息。其業務流程為:Spring首先將 業務對象加載到事先聲明的容器中,爾后通過BeanFactory對其進行實例化處理, 使其包含相應程序運行所必需的內容。當對應業務對象被系統調用時,只需將其 從容器中取出即可使用。
2.4.2Spring Jdbc 模板
Spring Jdbc Template在系統中用來實現數據持久層的需求。該技術對JDBC進 行了非常完整的封裝,并內置了模板和輔助構件。從而能夠大幅度減少操作的繁 瑣,縮短開發的周期。[8]從技術層面上看,Spring Jdbc Template對數據庫的訪問仍 需通過 JDBC 完成,但程序開發人員只需提供簡單地調用接口,而無需考慮訪問 過程中涉及的內部復雜內容。
2.5框架工作的基本過程
在本文的研究中,學生信息管理系統的各子功能應用集成框架的工作過程基 本相同,本節以用戶登錄功能為例給予簡要說明:
首先,用戶根據系統提示填寫登錄表單,表單設用戶名和密碼兩個必填內容; 第二步,系統將用戶提交的表單傳送至login. Action,按照系統默認設置, web. Xml中文件拓展名為.被映射到WebWork的Servlet中的為action的請求, 所以,系統向WebWork的控制層轉發請求;
第三步, Servlet 分派器由控制層進行調用,并通過分派器將請求發送給
Action,此Action是配置文件相應的;
第四步,Action通過使用Spring下的User_Ser,得到使用者的數據;
第五步,User_Ser通過Spring Jdbc Template對數據庫信息進行檢索,調用SQL 以獲取用戶的詳細信息,并將其返送給Action,至此密碼驗證工作完成;
第六步,系統根據密碼驗證成功的信息,將 SUCCESS 結果返送至 WebWork 的Servlet分派器中;
第七步,系統根據配置文件中定義的SUCCESS結果,調用FreeMarker;
第八步,FreeMarker根據接收到的數據信息,調用相應的頁面模板,顯示輸 出用戶“登錄成功”的信息。
2.6本章小結
本章重點對基于 C 架構模式的 Struts、WebWork、Spring、JSF 等多種主流的 項目框架進行了研究。由于在具體的軟件系統開發中,合理的框架可以保障開發 質量,縮短開發周期。因此本章從WebWork框架、Spring框架和FreeMarker與系 統需求之間的契合度出發,敘述了本文的設計思路,并對以上框架在本系統創建 時的應用進行了分析。
第3章 系統整體設計
3.1系統需求分析
3.1.1系統需求及其分類
在開發軟件系統時,不同人對系統有著不同的需求。對于使用者而言,軟件 需求是指使用軟件系統所要達到的提高工作效率、獲取經濟效益等目標。對于系 統分析員而言,軟件需求是依據使用者的需求確定軟件的具體需求。但是,開發 者認為軟件需求是指系統分析員給出的設計要求和細則。由此可見,軟件需求可 以分為三個層次:一是業務需求,主要是指軟件系統使用者對系統的高層次目標 要求。二是用戶需求,指的是系統必須得達到的用戶提出的任務需求,用戶會根 據業務需求來提出相應的用戶需求。三是功能/非功能需求。由用戶需求提出的, 功能需求是指系統設計人員必須實現的軟件功能,非功能需求則是指系統展示給 用戶的人機接口、可靠性、安全性等行為和操作規范等等。
3.1.2系統需求描述
從需求上來看,某學院的整個需求著重從這樣的三個方面展開,一個是學籍 的管理,主要的內容是其負責新學期的學生入學以及升學畢業等一般性的注冊互 動。正是因為有了這樣的而一個基礎性建設,才使得整個當前的系統性描述和建 設具有相對可操作性;
另一個內容就是成績管理,在學院執行成績管理的過程中,主要看其專業課 成績以及道德評價的整體性。這也是現有的發展過程中一個客觀性描述;
另一個就是能夠通過整個的成績管理和學籍管理的過程中,通過一個用戶與 角色的管理來整體上的完成現有階段的一個模式選擇。:
具體來看,各個方面需要關注到的用戶的需求主要基于如下的特征:
(1)錄入與生成新學期學生花名冊
從錄入到省城一個新學期的學生的姓名和基本信息,是一個非常艱巨的任務。 首先保障的整個系統能夠承受住這樣的壓力,另外,在展現在客觀發展的過程中 需要給予當前的學院一個客觀性的數據,這樣才能夠完全確保其執行的過程中有 一個相對全面的建設。
(2)學生學籍注冊 學生學籍的注冊不僅僅是當前的一個客觀性的變化,也是整個在未來多元化
建設過程中與現有的模式相結合發展的客觀性過程。所以,在關注到整個當前的 建設過程中就需要不斷的進行一個界面互動。這樣的界面互動的基本要求和基本 的方式更多的是來自當前發展的一個客觀性描述。
(3)學籍信息查詢 查詢基本內容主要呈現出的當前發展過程中的一個姓名,性別、學籍登記本
的資料。但是,正是因為有了這樣的查詢關鍵詞,就是在關注到整個當前的發展 過程中不斷進行一個客觀性的建設,這樣的建設性優勢呈現出來的是不斷變化的 可能性。正是因為有了這樣的可能性與變化的實踐性,才能夠完全確保整體發展 的理念性建設和操作性。
(4)學籍信息的統計與報表生成。 從前期到后期的整個建設的過程本身就是一個需要完善,所以在后期進行學
籍信息統計的過程也是很重要的。不管是從報表的生成還是從報表的統計上,主 要是集中在當前的管理模式和發展情況下的一個客觀性總結和描述的過程。
在課程成績和德育成績管理方面,應包括的用戶需求描述如下:
(1)成績錄入 僅允許任課教師錄入學生的課程成績和德育成績。
(2)成績查詢 成績查詢是需要現有的一個客觀性的模塊來實現這樣的發展,所以不管是當
前的業務建設還是未來的多元化建設的過程中,都需要有一個固定的模式形成。 不管是從現有的階段性建設還是未來的多元化創造,都是一個相對比較準確的格 式選擇。
(3)成績統計與報表生成 管理員對成績本身的選擇就是一個相對全面和客觀性的表述,在關注到未來
的多元化創造的過程中,正是因為有了這樣的描述性建設才能夠完全確保整體行 的客觀性形成。對于成績的統計與報表的正式生成來看,也是有著同樣的標準建 設的范圍和環節。
在加強數據型構建和管理的過程中,更是需要有這樣的一個多元化發展的描 述性,不管是從現有的發展還是未來的多元化發展,都需要有一個客觀性的總結 和描述,通過這樣的描述和發展在關注到整個的成績統計和報表生成上,體現出 當前發展的一個嚴格意義,具體來看,就是現有的一個發展性規劃的過程,正是 因為有了這樣的規劃性過程,才使得整個當前的發展有了一個相對全面和客觀性 的定義:學生表、教師表、專業表、院系表、任教表、成績表。
在用戶角色信息管理方面,應包括的用戶需求描述如下:
(1)用戶注冊
用戶注冊本身就是一個客觀性的進程,在關注到整個當前的建設過程和發展 過程的角度上,需要不斷的結合現有的發展模式來展開與現有的整體性進程相關 的業務描述。
(2)用戶信息查詢
用戶信息查詢的過程也是一個客觀性的表述,在關注到整體性結果中能夠顧 體現出這樣的。
(3)用戶信息管理
用戶的界面信息和發展也是同樣的表述,在關注到整個當前的發展上,依然 呈現出的一個相對全面和建設的過程,一個是需要讓用戶界面進行合理的控制, 另一個是用戶界面的實現能夠更多的體現出當前發展的客觀性。
3.1.3確定系統范圍和邊界
整個系統的范圍的控制的過程中,一個是需要有當前的發展的一個界面性支 付,另一個是就針對用戶群體進行的一個相對全面的客觀性描述,正是因為有了 這樣的一個極大的定義性描述,才能夠完全確保整個當前的實踐過程中呈現出其 客觀性的動力和發展的能力要求。不管是現有的確定系統邊界和發展的范圍,都 嚴格按照學院的相關需求展開分析。
3.1.4定義用戶
用戶的定義上來看,整個當前的發展不僅僅是一個相對全面和客觀性的描述, 也是整個當前的發展過程中的多元化建設的客觀性動力的建設。需要不斷的應對 這樣的發展在未來的產業化構建的過程中體現出客觀性的不足和實現系統的完整 性。從當前的角度上來看,依然具有一個相對全面的客觀性描述。這樣的描述性 一個是當前發展的客觀性環節,另一個是能夠面對這樣的發展帶來更多的描述性 建設的過程。
“學生”執行者使用學生信息管理系統查詢科目成績、德育成績和任課教師、 輔導員等信息,登記注冊用戶名,錄入和修改自己的基本信息。
“教師”執行者和“輔導員”執行者使用學生信息管理系統查詢新學期學生 信息、學生課程考試成績信息和獎懲信息等其他信息。
3.1.5用例的獲取
按照每一個用戶的適合性,在關注到整個當前的發展過程中的極大優勢,不 斷需要進行適當的合作,在關注到現有的發展過程中,不斷面臨的是多元化創造 過程的體現。所以,在用戶進行適當的選取的過程中,就需要不斷的通過當前的 建設來完成整個社會化發展的客觀性定義。具體來看,在用戶的距離獲取上完全 可以按照整個當前的界面性定義展開。
3.2課程成績管理子系統
3.2.1功能說明
課程成績管理子系統主要實現對學生課程成績的記錄和統計,并實現網上登 記與檢索的功能。教師在考試閱卷結束后使用教師機直接登錄,記錄課程成績信 息。使用這一功能,輔導員可以檢索到所帶班級學生的成績情況,并可以對每名 學生的成績進行統計和匯總。學生也可以檢索個人的成績記錄。
3.2.2用例分析
課程成績管理子系統的用戶類型設有學生、教師、輔導員三類。
各類型用戶通過使用課程成績管理子系統可以完成的工作包括:學生對相關 課程考試成績的檢索。教師對任課班級學生考試成績的錄入與查詢,并根據輔導 員提供的特殊情況(請假、休學、曠考等)對課程成績信息進行修改。輔導員可 以通過子系統檢索所帶班級學生各個課目的考試成績,并就特殊情況與任課教師 進行核實。
圖 3-1為考試成績信息管理子系統的用例圖:
3.3用戶與角色信息管理子系統
3.3.1功能說明
用戶與角色信息管理子系統主要實現對不同類型用戶信息的檢索、維護。在 本子系統中,用戶類型主要包括教師、輔導員、學生、系統管理員四種類型,教 師、輔導員、學生類型的用戶都可以檢索及維護本人信息,也可以檢索其他用戶 的信息。任課教師或班級輔導員可以檢索所帶班級學生的相關信息,學生也可對 其個人信息進行檢索,系統管理人員負責添加、修改、刪除學生相關信息等維護 工作。
3.3.2用例分析
用戶與角色信息管理子系統的用戶類型包括:教師、輔導員、學生、系統管 理員。
各類型用戶通過使用用戶與角色信息管理子系統可以完成的工作包括:教師 檢索及維護所帶學生的基本信息、獎懲信息及其他信息,檢索所在院系其他學生 所在班級等相關信息;輔導員檢索及維護學生的基本信息、所帶班級信息、獎懲 信息和其他信息,檢索其他院系學生的基本信息情況;管理人員批量導入學生信 息,并對發生變動的學生信息進行修改、刪除等操作;學生檢索個人基本信息、 獎懲信息、學分信息等各類信息,也可以檢索到所在班級其他學生的基本情況。
3.4學籍管理子系統
3.4.1功能說明
學籍管理子系統的用戶包括教師、輔導員、學生管理人員四種類型,主要實 現對學生及其所在院系、班級的各種相關信息,以及相關教學計劃信息的檢索、 維護等管理功能。
3.4.2用例分析
不同類型的用戶通過使用學籍管理子系統可以完成的工作有:任課教師檢索 授課班級學生信息,或按照專業及教學層次進行學生信息的高級檢索;輔導員老 師檢索所帶班級學生的學籍信息;學生瀏覽個人學籍信息,并能及時更新個人基 本情況;管理人員完成對專業、課程、班級、輔導員、教學計劃等學生學籍相關 信息的管理維護。
3.5本章小結
本章重點就某軟件學院學生信息管理系統的學籍、德育考試、課程成績、用 戶角色等管理子系統的劃分和功能分析進行了研究。詳細論述了對系統需要實現 的功能,重點介紹了科目成績、用戶與角色信息和學籍三個管理子系統的相關工 作,德育考核管理子系統的實現與課程成績管理子系統相似,不做重點介紹。為 下一步系統的設計與實現打下了基礎。
第4章 系統設計與實現
4.1系統設計
學生信息管理系統劃分學籍,德育考試,科目成績,用戶角色四個部分,另 設Common包為公共包,用以存放分頁顯示、攔截器等各子系統需用的公共內容。 其中,德育考試管理與課程成績管理的設計與實現類似,不再單獨介紹。
4.1.1系統功能劃分
根據需求分析,某軟件學院學生信息管理系統分為學籍,德育考試,科目成 績,用戶角色等管理子系統,如下圖 4-1所示。在本文的研究中,重點設計了課程 成績、用戶與角色基本信息以及學籍管理等子系統,這其中德育考核管理與課程 成績管理兩個系統很相似,因此不做過多介紹。
圖4-1學生信息系統劃分
4.1.2課程成績管理子系統的設計
(1)模塊的劃分 如圖4-2示意的,課程成績管理子系統可以按著功能的不同分為以下幾個 模塊:
圖4-2 課程成績信息管理子系統模塊圖
(2)主要業務模塊的Action描述
表 4-1 和表 4-2 分別列出了課程成績管理 ExamAction 及考試類型
ExamManAction的主要方法和功能。
表4-1 ExamAction的主要方法和功能
方法名 功能
listTechInfo 獲取考試計劃
classList 獲取班級信息
listClassInfo 根據教學班獲取行政班
listStulnfos 獲取學生列表
getExamList 輔導員查詢所帶班課程成績信息
listExamlnfo 獲取學生課程成績信息
stuExamEdit 修改學生課程成績信息
stuExamDel 刪除學生課程成績信息
stuExamAdd 添加學生課程成績信息
listEaxmBystu 教師查詢授課班級課程成績信息
examForMail 課程成績信息確認
listExam 課程成績信息統計
表4-2 ExamManAction的主要方法和功能
方法名 功能
tEdit 修改考試類型
tDelete 刪除考試類型
tAdd 添加考試類型
typeEdit 顯示修改考試類型頁面
examFormailEdit 郵件設置
(3)主要功能模塊時序圖
用來實現課程成績信息管理子系統各功能的原理基本類似,以查詢課
程成績信息為例,圖4-3為該功能的時序圖
圖4-3 課程成績信息查詢時序圖
4.1.3學籍管理子系統的設計
(1)模塊劃分
學箱皆理子系統2
圖4-4學籍管理子系統功能模塊劃分 學籍管理子系統的功能模塊劃分如圖4-4 所示。
(2)與主要業務模塊相關的Action及Service描述
在該子系統中,有不少的Action與Service都是與主業務有關系的,表4-3、
4-4中分別列出了該子系統的主要Service和Action。表4-5中是以課程信息管理模 塊為例,介紹ClassService的主要方法。
表4-3學籍管理子系統主要Service描述
Service 名稱 功能
StudentService 增加、修改、刪除、檢索學生信息
PlanService 增加、修改、檢索教學計劃
CourseService 增加、修改、刪除、檢索課程信息
MajorService 增加、修改、刪除、檢索專業信息
表4-4學籍管理子系統主要Action描述
Action名稱 功能
StudentAction 增加、修改、刪除、檢索學生信息
PlanAction 增加、修改、檢索教學計劃
CourseAction 增加、修改、刪除、檢索課程信息
MajorAction 增加、修改、刪除、檢索專業信息
表4-5 ClassService主要功能和方法描述
方法 功能
impClassinfo 導入班級信息
containsclass 檢索班級是否存在
Classupdate 班級信息更新
deleteClass 刪除班級信息
(3)主要功能模塊時序圖
因在學籍管理子系統中功能較多,原理相類,僅描繪主要功能中有代表性 的檢索本人信息、檢索班級信息,以及維護教學計劃等三個功能的時序圖。分別 為圖4-5、圖 4-6、圖 4-7所示:
圖4-5 學生查看本人信息時序圖
圖4-6教師/輔導員檢索班級信息時序圖
圖4-7維護教學計劃信息時序圖
4.1.4用戶角色管理子系統的設計
(1)模塊的劃分
關于用戶角色的管理系統詳細功能模塊如下示意圖。
圖4-8 用戶角色管理子系統模塊劃分圖
(2)與主要業務模塊相關的Action及Service描述
表 4-6、表4-7 中分別是用戶角色管理子系統主要業務模塊
ManagerManAction 和用戶角色信息前臺操作功能模塊 ManagerAction 的主要方法 和功能介紹:
表4-6用戶角色管理子系統的Manager.ManAction模塊主要方法和功能
方法名 功能
getManagerList 獲取用戶角色列表
getDivisionInfo 獲取院系信息
getManagerInfo 獲取用戶角色信息
addManagerInfo 添加用戶角色信息
deleteManagerInfo 刪除用戶角色信息
impManagerlist 導入用戶角色信息
addManagerlist 添加用戶角色信息
表4-7用戶角色管理子系統的Manager.Action模塊主要方法和功能
方法名 功能
getMInfo 獲取用戶角色信息
updateManagerInfo 更新用戶基本信息
getTCourseInfo 顯示教師課程信息
updateTeacherCourse 更新教師課程信息
addTeacherCourse 添加課程信息
deleteTeacherCourse 刪除課程信息
getTClassInfo 顯示輔導員班級信息
updateTeacherClass 更新輔導員班級信息
addTeacherClass 添加輔導員班級信息
deleteTeacherClass 刪除輔導員班級信息
getTOtherInfo 顯示教師其他信息
updateTeacherOther 更新教師其他信息
deleteTeacherOther 刪除教師其他信息
getTeacherListInfo 檢索教師信息
getAssisListInfo 檢索輔導員信息
(3)主要模塊時序圖
因在用戶角色管理子系統中功能較多,原理相類,僅描繪主要功能中有代 表性的教師、輔導員的查詢和本人信息的維護、系統中錄入教師信息,以及管理 人員維護功能模塊(即刪除、更改后臺管理功能)等三個功能的時序圖。分別為圖
4-9、圖4-10、圖 4-11 所示:
圖4-9 教師/輔導員檢索和維護本人信息時序圖
圖4-10 系統管理員維護功能時序圖
管理員
Web 的MVC
教師列表.ftl
***信息
管理人員的Action
管理員的Service
擇教師]
teacher!get***info.action
W
一編輯/刪除信息
teacher!update.action
圖4-11 系統管理員維護功能時序圖
4.2數據庫設計
數據本身的實現過程中就是一個相對比較全面而且客觀性的描述,在面對多 方面的挑戰和發展的過程中,需要通過現有的發展性描述和整個當前的模式建設 能夠完全呈現出當前發展的客觀性結論。誠然,在現有的發展基礎上不斷能夠帶 來的是整個當前的發展的客觀性動力,依然不能夠確保整個當前發展的過程中客 觀性結論。不管是數據庫的設計還是整個數據庫實現的發展,都需要有一個相對 比較全面而且客觀性的建設。正是因為有了這樣的一個確定性的結論闡述,才使 得整個當前發展具有了一定的可實踐性。這樣的實踐效果并不是單純的依靠客觀 性的發展動力,但是,依然具有一個相對全面的建設性發展和未來產業化發展的 客觀性動力。
從數據本身的實踐過程中,就不斷需要有一定的表格和模板進行套用,在關 注到這樣的模板套用的過程中體現了整體上的發展和能量的建設。所以在整體上 看來,要想更多的用到這樣的發展和能力的建設,就需要依靠現有的技術進行不 斷的跟進。在本論文中,數據庫的邏輯結構設計主要用到的數據表如下:
教師的基本信息數據表:
表4-8教師的基本信息數據表表(t each base informa tion)
字段名 類型 是否為空 描述
teacherid bigint(20) 否主鍵 教師工號
teachername varchar(20) 否 教師姓名
sex boolean 否 性別
age date 是 年齡
groupid bigint(20) 否 學院編號
comdate date 否 任教時間
major varchar(20) 是 專業
roleid bigint(20) 是 權限
state tinyint(4) 否 1教師2輔導員
學生信息表,主要用來存放學生的基本信息。詳見表4-9:
表 4-9 學生基本信息表(student base information)
字段名 類型 是否為空 描述
studentid bigint(20) 否主鍵 學生學號
studentname varchar(20) 否 學生姓名
sex int(1) 否 性別
birthday date 是 出生年月
groupid bigint(20) 否 學院編號
classid bigint(20) 否外鍵 班級
majorid varchar(20) 是外鍵 專業
email varchar(20) 是 電子郵件
phone1 varchar(20) 是 聯系電話
phone2 varchar(20) 是 聯系電話
comment text 是 備注
cospclassid bigint(20) 否 參加社團
班級信息表,主要用來存放學生所在班級的相關信息。詳見表4-10:
表 4T0 學生班級信息表(student class information)
字段名 類型 是否為空 描述
classid bigint(20) 否主鍵 班級號
departmentid bigint(20) 否 院系號
advisorid bigint(20) 是 輔導員
majorid bigint(20) 否 專業
monitorid bigint(20) 是 班長
studyid bigint(20) 是 學習委員
lifeid bigint(20) 是 生活委員
peid bigint(20) 是 體育委員
stucount int(11) 是 班級人數
classname varchar(20) 是 班級名稱
enrollmentyear varchar(11) 是 入學年份
成績信息表,主要用來存放學生考試成績的相關信息。詳見表 4-11
表4T1學生考試成績信息表(student exam information)
字段名 類型 是否為空 描述
stuexamid bigint(11) 否主鍵 成績記錄編號
studentname varchar(20) 否 學生姓名
studentid bigint(11) 否 學生學號
cpid bigint(11) 否 課程編號
examid bigint(11) 否 考試類型號
examdate date 是 考試時間
score bigint(11) 是 考試成績
info varchar(100) 是 具體信息
學生課程表,主要用來存放學生課程表信息。詳見表4-12
表4T2學生課程信息表(course schedule)
字段名 類型 是否為空 描述
scheduleid bigint(20) 否主鍵 課程表編號
position varchar(40) 是 上課地點
week bigint(20) 是 學周數
section bigint(20) 是 課時數
4.3系統的開發環境
在本文的設計中,根據某軟件學院學生信息管理系統所選取的方案,開發環 境如下:
選用Microsoft公司的Windows 7操作系統作為系統環境;選用J2SDK( Version 1.50)進行編譯;選用MySQL作為數據庫管理系統。Web服務器和應用服務器選 用開源的優秀服務器Tomcat; Java程序開發環境選用Eclipse,還用到了 Macromedia Dreamweaver 和 SourceSafe 等。
4.4系統實現
4.4.1視圖層的實現
在本文的設計中,系統頁面選用FreeMarker模板形式,采用FTL語言,主要 包含:文本、插補、標記以及注釋。其中:文本是主體部分,作為輸出;插補用 ${和}或者#{和}進行區分;FTL標記在字段前加#區分,注釋由<#--和-->進行區分, 但不輸出這兩部分內容。[10]
在進行 FreeMarker 頁面設計時,應當確保項目頁面嚴格可控;盡量形成協調 統一的頁面風格;應當有利于系統頁面整體風格的個性化修改;應盡可能地提高 頁面工作效率。基于以上編寫原則,設計者通常會在使用FreeMarker編寫頁面時, 將需要重復使用的頁面代碼抽出構建為宏(macro),這里的宏可以看做是與某個變 量相關聯的模板片斷。[11]技術開發人員通過構建FreeMarker宏,可以方便地在模 板中通過用戶定義指令使用該變量,實現統一系統頁面風格,提高工作效率和代 碼的重用率,方便頁面整體風格修改等目的。工程維護人員修改頁面時,僅僅需 要調整宏,而不需要逐一更改具體頁面。[12]以下是一些本文中涉及到的宏:
(1)p.paging
調用這個宏的基本作用是實現系統的分頁處理。如:
<table width="100%">
<tr>
<td align="right"> <@p.paging hwList/> </td>
</tr>
</table>
其中,hwList表示PagingList變量向該頁面的返回值。
(2)p.indent 調用這個宏的基本作用是實現系統代碼的縮進。如:
<select name="examid">
<#list courseExam as c>
<option value="$fc.EXAM}">
<@p.indent c.EXAM?length/>${c.EXAMNAME}</option>
</#list>
</select>
其中, c.EXAM?length 表示當前循環到的考試成績編碼的長度, c.EXAMNAME 是考試分類名稱。
(3)p,cal 調用這個宏的基本作用是在系統中對日歷進行控制。如:
<@p.cal name="endDate"/>
<input type="text"name="endDate"/>
其中,表示結束日期的文本框為endDate,系統通過宏引入日期控件并進行日 期的選定,該控件即會對endDate進行日期的賦值。
在系統的實現中,需在web.xml文件中加入以下配置,以確保FreeMarker設 計 Web 頁面的正常顯示:
<!--FreeMarker Servlet-->
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class> com.opensymphony.webwork.views.freemarker.FreemarkerServlet </servlet-class>
<load-on-startup>3</load-on-startup>
</servlet >
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
其中,系統對 url-pattern 向 FreemarkerServlet 進行映射,因此,在調用
FreeMarker的同時,調用對應的servlet,從而實現Web頁面的顯示。
此外,系統還要求創建編碼方式、數字格式、時間格式等 freemarker.properties 屬性文件,完成對freemarker的配置。具體內容為:
Default_encoding=UTF-8
Number_format=#
date_format=YYYY-MM-DD time_format=HH:MM:SS datetime_format=YYYY-MM-DD HH:MM:SS auto_import=/commordpage_macro.ftl as P auto_include2=/common/common_function.Ftl
4.4.2控制層的實現
在MVC架構的設計中,Action是控制層的核心部分,也是WebWork編程的 主要內容,其作用是完成Web程序的邏輯操作。[13] Action是作為 com. opensymphony. xwork. Action的擴展類而存在的Java類。其工作原理為: 當用戶向WebWork發送工作請求時,首先,系統中的Servlet. Dispatcher對其進 行調用,這種調用是URL請求,對Action中的execute()方法進行調用。爾后,Action 對請求進行處理,并將結果通過SUCCESS、INPUT、FLASE等代碼進行返送。最 后,WebWork通過其在xwork. xml中的賦值確定下一步的工作,并將處理結果通 過 FreeMarker 向用戶進行顯示。[14]在本文的設計中,系統控制層的實現主要完成 了以下工作:
(1)Action
在本文設計的某軟件學院學生信息管理系統中,共創建了兩個Action基類: 一種是BaseAction,用于需要用戶登錄之后才能使用的Action的繼承,根據需要, 系統在這一類 Action 中封裝了能夠提取出用戶注冊名、姓名、所屬院系或班級編 號、本身編號、對象等信息的方法;還有一個是AnonymousAction,其作用是在沒 有用戶登錄的情況下即可使用該Action的繼承類。另外,基于解決web項目設計 開發中遇到的一些普遍性問題的考慮,在設計中將 BaseAction 中將的部分公共內 容進行提取和歸納,創建了 CommonBaseAction 類,完成了環境信息取得、 Web 頁面分頁等。上述三種Action類的相互作用可以被表述為:
public class CommonBaseAction implements Action{ }
public class BaseAction extends CommonBaseAction{ }
按照這一思路,系統在進行 Action 創建時,首先創建一個類名為 XXXAction 的Java類繼承BaseAction;爾后對需用的變量和類型進行定影,并創建get&set 辦法和其他業務辦法。系統以配置文件為基礎,對 Action 進行調用。創建 Action 的語句為:public class ExamAcfion extends BaseAction{ }; 最后,編寫此 Action 的配置文件,例如Exam Action,這個Action類名為exam, ExamAction為對應的 類文件,當返回結果出現examMis,系統將會跳轉到頁面exammis.ftl。
<action name-= " exam " class= " neo.stumis.action.exammis.ExamAetion。" >
<result nanle="examMis">exammis.fll</result>
</action> 100
(2)自定義攔截器
攔截器是WebWork中一類特有的對象,在本文的設計中亦有重要作用。攔截 器貫穿于 Action 和 result 的執行過程,其先于 Action 的執行被調用,且在 Action 執行后以及result結束后仍可繼續工作,其主要任務是:判斷是否需要執行Action, 需要執行時怎樣執行,系統安全的管理、數據比對、維護日志等工作;數據庫事 務處理等附加工作[15]。
在本文設計的某軟件學院學生信息管理系統里,有兩個自定義的攔截器:一 個是登錄攔截器,其主要任務是攔截未登錄用戶,不允許其進入某些頁面,跳轉 至登錄頁面,用戶完成登錄后才可以繼續使用系統。登錄攔截器的工作原理是判 斷用戶操作,如果該指令未承接Anonymous接口,則轉至登錄頁面。另一個是異 常處理攔截器,其主要任務是針對用戶的非法操作進行攔截,防止系統錯誤。
在系統設計中,需要通過<interceptorsxinterceptors/>標簽對攔截器的配置文件 進行設置,以確保其穩定工作。對Action定義完成后,還可通過<interceptor-ref> 進行直接引用。例如對單個攔截器的定義:
<interceptor name ="timer" class="com.opeympony.xwork.intrcepor.Tiefinterceptor"/> 如果Action需要引用多個攔截器時,可以使用interceptor-stack將需引用的攔 截器進行堆棧,創建成為標準的interceptor組。按照這種方法,Action直接引用定 義好的堆棧,要求其按照順序執行就可以了。例如:
<intercptor-stak name="validtionWorkflwStack">
<intercepor-ref name="defautStack"/>
<intrceptor-reame="validatin"/>
<intereptor-rf name="wrk:flow"/>
</intereptor-sack>.
(3)Action配置文件
Action 創建完成后,完成對應的配置文件是首要的。在本文的設計中,選用 XML文件進行配置,這也是較為常用的一種方法。以下為若干重要的Action文件:
①xwork.xml
此文件主要作用是配置webwork及其內部的一些xwork等。在系統中,該文 件被分為多個不同文件,通過<include>標簽對被包含文件進行引用,它的主要內 容為:
<inclde file="webwrk-defalt.Xml"/>
<inclde file="neo.defalt.xml"/>
<inclde file="xwork/trainig-default.xml"/>
②neo-default.xml
此文件主要作用是配置 Action、global.results、Interceptor 以及 FreeMarker 等。 文件中主要包含以下幾個要素:
<package>標簽,Package> Action> Results等都是在這一標簽中進行定義。 <package>標簽的必選屬性為name,其是package的唯一性標識。可選屬性extends, 用以繼承已定義的一個或多個package配置信息。可選屬性abstract,來設置抽象 package包,使其能夠被繼承,還可以選擇該屬性Action配置為運行時不被看見。 選擇屬性namespace,用以對不同package定義的Action進行命名空間的分割,使 不同的package中可以有命名相同的Action。在系統的安全管理中,也可以通過 namespace為不同命名空間設定不同的訪問權限。namespace的默認值為空字符串。
Result-type。使用簡單的名稱、值對對輸出結果類型的class進行定義。例如: <result-tpe name ="dispather"
class="com.opensmpony.webwrk.dispather.SevletDspatherReult" default="true"/>
其中,default= n true "的意思為:如果對result.type進行指定,是不在Action 的 result 中的,則使用默認的 result-type。interceptor 和 interceptor.stack 都在 interceptors的<interceptors><interceptors/>標簽中得到定義。系統登錄、非法操作 等屬于全局性輸出結果的Web頁面則可以在global.results中定義。如前所述,只 要繼承其對應的package,則輸出結果都能夠被顯示出來。以global.results為例:
<global-results>
<result name="login" type="redirect">/login_view.action</result>
</global-results>
在Action執行完畢返回login時,系統將對以上輸出結果進行調用。
又如,對Action名稱及對應類的配置。通過Action或所屬包的命名空間文件, 能夠獲得指定的Action的信息,在經過<param>提取到該信息,然后對所有的指令 執行相應操作時,可以經由StaticParametersInterceptor獲取配置文件中的參數,并 對輸出結果進行配置。例如:
<action name="exam"class="neo.stumis.action.exammis.ExamAction">
<reult name="listTehInfo">teachrinfo.ftl</result>
<reult nalne="clasList">classifo.ftl</result>
<reslt name="examCassStatChart"type=“chart"/>
<param name="wdth">550</param>
<paam nalTle="eight">300</param>
< /result>
</action>
再如,對action攔截器的配置。基本方法是通過<interceptor-ref>標簽,屬性為 name的值,對應已經定義的攔截器或攔截器堆棧。假如并沒有提前在Action中使 用固定標簽對攔截器指定,系統將使用<default-interceptor.ref>標簽,對系統默認攔 截器進行定義。
在調用用戶自定義的Action時,需要對諸如stumis-exam.xml這樣的自定義配 置文件進行設置,且 stumis.default 使所有的配置文件都必須繼承的。具體過程如 下:
<xwork>
<pacage name="stumis-mnage"extends="stumis-default" namesace="/manage">
<action name="intro"class="neo.stmis.action.BaseAction"> <reslt>intro.ffi</result>
</action>
</pakage>
</xwork>
4.4.3模型層的實現
MVC架構中模型層的設計,是完成JAVA持久層的根本方法。[16]在本文設計 的某軟件學院學生信息管理軟件系統中,我們采取Spring框架的Service方法來完 成業務邏輯層,采取Jdbc Template的方法來實現持久層的數據處理等操作,二者 共同構建了 MVC架構的模型層。下面具體介紹之:
(1)基于 Spring 框架的 Service
在系統中新建Service基類Com_BaseSer,以實現log設置及數據庫訪問等功 能。
為了提高調用Service的工作效率,減少因輸入錯誤導致的調用失敗等問題, 在本文的研究中,通過創建Ser_Man類設置了幫助用戶準確調用所需Service的get 和set方法,舉例介紹如下:
public class ServiceManager
{
protected final Log log=LogFactory.getLog(getClass( ));
〃定義需調用的Service
private ExamService examService; 〃獲取ExamService的方法
public getExamService( )
{
return examService;
}
//設置ExamService的方法
public void setExamService(ExamService examService){
this.examService=examService;
}
}
由于,每一個Service都需要獲取Ser_Man,因此,在本文的研究中新建了繼 承Com_BaseSer的BaseSer,通過新建getServMgr方法進行實現。具體如下:
public class BaseService extends CommonBaseService
{
〃獲取 ServiceManager
public ServiceManager getServMgr0
{
return(ServiceManager)BeanManager.getBean("serviceManager");
}
在本文的研究中,要求每個具有實際功能的Service都是繼承與BaseSer的, 比如說:
public class Exa_Ser extends BaseSer{ }
在本文的設計中,用applicationContext-service.xml對創建的Service進行配置, 以確保其穩定運行。
<bean id="teacherService"parent="baseTxService">
<property name="target">
<bean class="neo.stumis.service.TeacherService">
</property>
</bean>
(2)Spring Jdbc Template
Spring Jdbe Template是JDBC核心包中的一個類。在軟件系統的設計開發中, Spring JdbeTemplate能夠通過對資源建立于釋放的處理,極大地簡化JDBC的操作 和使用,并幫助開發人員避免忘記斷開連接等常見的基本錯誤,是一項具有非常 重要作用的輔助工具。[17] [18]
使用Spring Jdbe Template的代碼在實現回調接口時,只需依據一組經過定義 的契約束,例如 PreparedStatementCreator 回調接口 CallableStatement 的創建,就是 依據該類提供的PreparedStatement。在具體實現的過程中則可以采取多種方法。 Jdbc Template 在文件 applicationContext.xml 中配置:
<bean id="propert" Configurer"
class=
"org.springframework.beans.factory.config.PropenyPlaceholderConfigurer"> <property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<bean id=-"jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name ="dataSource"ref ="dataSource",>
</bean>
(3)系統的事務處理
在本文的設計中,選用Svring的DataSourceTransactionManager作為系統的事 件控制器,通過配置文件 applicationContext.xml 中的 bean 定義檔進行設置,主要 內容為:
<bean id="transactionManager"
Class=
"org.springframework.jdbc.datasource.DataSottrceTransactionManager">
<property name="dataSource"
<refbean="dataSource">
</property>
</bean>
根據這一技術的定義,DataSourceTransactionManager將采取宣告式的事件控 制方法,即事件控制相關的代碼并不直接出現在Service中。
其中,配置的 DataSourceTransactionManager 是 TransactionProxyFactoryBean 系統的transactionManager,事件控制器通將transactionAttributes送入選定的方法, 比如:get+指代get的方法都必須有事件控制器控制,而Propagation Required則表 明數據在當前的事件中處理,并對不存在的事件進行創建。[19]最后,本系統中定 義的各種事件屬性都可以使用逗號進行分隔。
4.4.4科目成績管理子系統的實現
學生課程的子系統的實現是一個客觀性的過程,在關注到整個當前的發展過 程中依然不能具有一定的性的介紹,在關注到整個當前的發展過程中依然不具有 這樣的發展性能力,在管關注到整個當前的課程成績的管理子系統的實現和發展 的過程中依然需要有一個相對前面的建設性的發展的描述,客觀上來看,這樣的 體現的發展是一個相對前面的建設,也是整個課程管理的過程中需要不斷迎合發 展的一個客觀性觀念。具體來看:
(1)導入教學任務書的實現
為避免出現錯漏,需在導入教學任務書前對Excel文檔進行限定。例如:每個 教學任務書的Excel文件中僅限建立一個工作表,否則系統僅對文檔中第一個工作 表進行導入。在導入過程中,系統逐行讀取信息,包括:班級編號、科目、專業、 年級;教工名和編號;科目代碼、授課學院、授課時間;考試時間、類型等。爾
后對文件后續的信息進行讀取。讀取時,程序對數據的合法性進行判定,包括: 課程是否符合教學規劃,班級和授課教工是否非法等等。只要合法的教學任務信 息被導入,對非法數據輸出錯誤。實現教學任務書的核心代碼為:
HSSFWorkbook workbook=new HSSFWorkbook(new FilelnputStream(fileField));
HSSFSheet sheet = workbook.getSheetAt(0);
//讀取一行信息
HSSFRow cp_row=(HSSFRow)it.Next();
//判斷教學班級是否存在
if(!temap.containsKey(department+"/"+tcno+","+tcname+"/"+courseno));
(2)科目成績管理子系統的實現
在考試科目、授課教工與上課學生的信息給出后,用戶即可使用該子系統提 供的各種成績管理功能。用戶輸入賬號和密碼,如果用戶類型為教師,則會彈出 班級的頁面,點擊該頁面后,顯示班級相關內容,教師對學生的科目成績逐一操 作;如果用戶類型為輔導員,則會彈出所帶班級的科目成績信息,并能夠通過系 統的留言功能,核對異常成績信息;如果用戶類型為學生,則能夠檢索到其科目 的考試成績;如果用戶類型不是這幾個,就判定為用戶類型非法,系統不響應訪 問。需要說明的是,只有任課教師有權限添加科目成績信息。
0偵績歩加 I空|
成績添加
學期:12012-2013學年第二學麗三]
班級:莊麗I~三I 類型: 同耒 ZJ
學號:(300123101" 姓名: I丁明云—
諳輸入各科成績
語文 矗 I
確定 | 取消 |
圖4-12科目成績管理子系統運行界面
4.4.5用戶角色管理子系統的實現
此處一般是要由用戶自己對本人相關信息進行檢索和編輯,用戶類型包括教 工、輔導員和管理員三類。用戶角色管理子系統查詢學生用戶檔案功能的運行界 面如圖4-13 所示。
圖4-13 用戶角色管理子系統運行界面
用戶登錄系統后,第一步要甄別用戶身份:如果用戶類型為教工或者輔導員, 則系統會顯示出教工的基本情況、課程信息、班級信息等各類信息,用戶可以有 選擇地增加、刪除、更改等管理操作,并上傳修改后的內容;假如判斷用戶的類 型是管理員,那么他就有權利進行教職工及其他人員的信息的刪除、載入、編輯 等管理操作。系統檢測該內容和格式,爾后上傳數據庫,完成修改,系統在頁面 上向用戶返回修改是否成功的提示信息。
4.4.6學籍管理子系統的實現
該系統的用戶包括教師、輔導員、管理員和學生,如果用戶類型為輔導員, 其能夠檢索到其負責的所有學生的學籍情況。如果用戶類型為教師,則可以檢索 任課班級中所有學生的學籍情況。如果用戶類型為管理員,其可以對教學規劃、 院系、班級及學生等內容載入和編輯。如果用戶類型為學生,其僅能夠編輯本人 信息。
在本設計中,班級信息、教學計劃等和學生相關的基本內容都是通過后臺導
入學籍管理子系統的,圖4-14是該子系統中新增學籍的運行界面。
圖4-14學籍管理子系統的運行界面
4.5本章小結
本章用較大篇幅,首先提出某軟件學院學生信息管理系統的技術方案,在MVC 開發模式的理念基礎上,采取FreeMarker+WebWork+Spring的三層框架完成了系 統的設計開發,在很大程度上降低了系統顯示層、控制層和模型層之間的耦合度, 維護人員使用少量代碼就可以完成增減系統功能和對更改數據庫服務器等維護工 作。在數據庫的設計上充分考慮了系統實用性和拓展性需求,選用的是高效的 MySql5.0,能夠與系統完美兼容。
第5章 系統測試
系統測試是確保系統可靠性和高性能的重要步驟,是系統開發過程中不可或 缺的一環。雖然開發人員會在系統設計、開發的全過程采取多種措施確保軟件系 統的質量水平,但仍然難以避免各種錯誤或是缺陷的發生。軟件測試的目的在于 發現系統錯誤,確保執行程序順利。目標則是以最少的人力財力代價查找出軟件 系統中的各種潛在問題,并及時修正這些問題。
5.1軟件測試的基本原則
對于系統開發人員而言,軟件測試應遵循八條基本原則:
(1)軟件測試應當貫穿于軟件開發的全過程,堅持早動手,勤動手。
(2)在軟件測試中不應當安排程序員對自己編寫的程序進行檢查。[20]
(3)測試用例的設計應當考慮到各種客戶輸入條件及邊界條件,特殊情況應當 設計極端狀態及意外狀態,比如網絡異常中斷、意外停止供電等。
(4)在軟件測試中要高度關注集中發生的錯誤現象,這種現象往往是由于程序 員的編程習慣和業務水平中存在的缺陷造成的。[21]
(5)對軟件測試中發現的錯誤必須設置結果確認的程序。一般而言,由甲方測 試發現的錯誤,應由乙方進行結果確認,對嚴重的錯誤應當召開評審會集中研討 分析。
(6)在軟件測試前應當制定嚴格可行的工作計劃,并盡量賦予寬松的測試時 間,在極短時間內完成高質量的軟件測試是不可能實現的。[22]
(7)要高度關注軟件測試中回歸測試的關聯性,避免在解決一個問題的過程中 導致更多問題的出現。
(8)測試過程文檔體現了測試的重現性,是軟件測試的重要資料,必須妥善保 存和管理。
5.2軟件測試方法
軟件測試的目的在于尋找系統中隱藏的缺陷和錯誤,選擇合理適用的測試方 法,是決定軟件測試結果的首要環節。從測試目的進行分類,軟件測試主要有功 能性和結構性測試兩種。[23]
功能性測試指的是完全忽略程序邏輯結構和內部特性,集中檢查程序功能是 否符合設計目標的一種軟件測試方法,這種測試僅在系統接口處進行,檢查的內 容包括輸入是否能夠正確接收,輸出是否能夠正確生成兩部分。[24]功能性測試的 優點在于兩點:一是該項測試不受軟件實現的內部原理所影響,測試用例在測試 發生變化后仍然有用,另一個是測試用例開發可以并行完成,能夠有效節省項目 開發總時間,提高工作效率。
結構性測試是對系統具體運行過程的具體測試,這種測試可以根據系統結構 和代碼塊等,通過合理的方法對系統代碼進行仔細的檢測。[25]這種測試方法的測 試用例具有很強的針對性和不可重用性,在程序中添加一些測試點,進而對程序 的運行進行檢測,從而獲取系統運行與預期之間的差異。
5.3系統功能實現測試
5. 3. 1幾個典型模塊的測試用例介紹
在本文的設計中,系統測試主要通過功能性測試的方法完成。下面對幾個具 有代表性的用例進行簡要介紹。
(1)課程成績管理模塊測試用例
該用例內容如表5-1所示:
表5-1 課程成績管理模塊測試用例
序號 用例描述 具體操作方法 預期結果
1 顯示班級信息 教師登錄成功后進行考試成績管理子 系統,點擊任課課程 系統任教課程的班級列
表
2 顯示某班學生 名單 選擇相應的班級,點擊確定 將該班級的學生名單正
確完整顯示出來
3 選擇下周的某 天 選擇一周后的某天,添加課程成績記 錄提交 系統提示選擇日期非法
4 提交無效的成
績記錄 直接點擊確定 顯示“請選擇學生”的提 示符
5 修改成績 點擊科目成績,編輯考試烈性,點擊 確定 顯示已更新
6 刪除成績 點擊某科目成績后的刪除 顯示是否刪除提示框,點 擊確定,刪除該成績
7 檢索某班成績 選擇班級選項卡,選擇某班,點擊確 定 顯示選定班級的成績
8 導入成績記錄 點擊帶課班級列表,選擇導入 將當前顯示的課程成績
信息導出到一個表格上
(2)新用戶注冊測試用例 該用例內容如表5-2所示。
表5-2 新用戶注冊測試用例
序號 用例描述 具體操作方法 預期結果
1 成功注冊 將注冊所有相關信息依次填寫,點擊 確定 顯示注冊成功
2 重復注冊 用戶名填寫為已注冊過的用戶名 顯示用戶名已注冊
3 兩次密碼不一
致 在密碼欄和確定密碼欄輸入不一致的 密碼 顯示密碼輸入錯誤
4 密碼長度不足 在密碼欄和確認密碼欄輸入相同的, 但長度不足六位的密碼 顯示密碼長度過短
5 信息填寫不完 整 將一個帶*號的信息項不填寫,其余正 常填寫 顯示信息不全
6 清除已經填寫 的信息 點擊“重置” 已填寫信息清除
(3)用戶角色信息管理模塊測試用例 該用例內容如表5-3所示:
表5-3 用戶角色信息測試用例
序號 用例描述 具體操作方法 預期結果
1 修改用戶信息 點擊編輯,正確輸入修信息,點擊確 定 顯示更新成功
2 上傳照片 點擊瀏覽,選擇正確格式的照片,點 擊確定,點擊上傳 在窗口中顯示上傳的照 片
3 照片格式不正 確 點擊瀏覽,選擇錯誤格式的照片,點 擊確定,點擊上傳 顯示格式錯誤
4 查看詳細信息 點擊詳細信息 顯示詳細信息
5 修改 點擊編輯,修改信息,點擊確定 顯示更新成功
6 刪除 點擊編輯,點擊某條信息后面的刪除, 點擊確定 顯示刪除成功
(4)學生信息檢索模塊測試用例
該用例內容如表5-4所示:
表5-4 新用戶注冊測試用例
序號 用例描述 具體操作方法 預期結果
1 檢索所有學生 不進行任何選擇,點擊確定 按學號顯示全部學生
2 檢索某專業學 生 選擇專業,點擊確定 顯示選定專業的學生
3 檢索某年級學 生 選擇年級,點擊確定 顯示選定年級學生
4 檢索某年級和 專業的學生 選擇專業和年級,點擊確定 顯示選定專業和年級的 學生
5 檢索某班級學 生 選擇班級,點擊確定 顯示選定班級的學生
6 檢索某學號學 生(正確輸入) 輸入學號,點擊確定 顯示該學號的學生
7 檢索某學號學 生(錯誤輸入) 輸入0000,點擊確定 顯示學號格式錯誤
8 按姓名查詢學 生 輸入姓名,點擊確定 系統顯示指定姓名的學 生信息
5.3.2系統測試結果分析
在系統測試中,主要采用了功能性測試的方法,截至目前共發現了 26個問題, 我們按照邊發現邊解決的方法,分別按照問題的等級和成因進行了統計分析,大 部分問題已得到解決。如表5-5所示:
表5-5 新系統測試結果分析
序號 系統問題劃分 類別 測試及處理結果
1 嚴重影響系統運行的問題(A類) 測試中沒有發現
2 按等級劃分 影響系統運行的問題(B類) 共發現1處,在后期的系 統維護中已徹底解決
3 對系統運行不產生或產生輕微影響的 問題(C類) 共發現12處,分別進行 了優化和標記處理
4 建議類(D類)問題 共13處,將會在今后系 統的完善中予以考慮
6 功能性問題 正在試用過程中逐步解 決
7 按類型劃分 可用性問題 共5處,占測試問題總數 的20%,在后期的系統維 護中已徹底解決
8 性能問題 共2處,占測試問題總數 的10%,在維護中已基本 解決
5.4本章小結
本章應用性能測試軟件LoadRunner對其進行測試,并且使前文設計的學生管 理系統得以實現。該系統主要以LoadRunner作為系統測試軟件,開發環境平臺主 要以Microsoft Visual Studio 2010 SP1為主。在實際測試中以資料下載和并發用戶 登錄作為重點并對其加以研究,對于安卓客戶端和服務端的各功能模塊依次進行 的實際操作。由于該系統還處在試運行階段,軟件中存在的各種缺陷和問題也在 逐步的解決之中。因此本章的介紹并不盡詳細,這也是我們在下一步研究中需要 加強的工作之一。
經過一段時間的努力,某軟件學院學生信息管理系統的研究基本宣告完成。 在系統設計開發的整個過程中,本人查閱了大量文獻資料,進行了大量卓有成效 的研究分析工作;對系統的體系結構、功能需求、頁面布局等內容,都經過了反 復的論證,從目前試運行情況來看,這一學生信息管理系統運行情況正常,師生 反映良好。
本系統的架構基于MVC開發模式,采取FreeMarker+WebWork+Spring的三層 框架,在很大程度上降低了系統顯示層、控制層和模型層之間的耦合度,維護人 員使用少量代碼就可以完成增減系統功能和對更改數據庫服務器等維護工作。在 數據庫的設計上充分考慮了系統實用性和拓展性需求,選用的是高效的 MySql5.0, 能夠與系統完美兼容。[26]
本文的研究開發工作由以下幾點:
(1)對當前主流的基于MVC開發模式的框架進行比較分析,結合系統需求, 提出按照FreeMarker+WebWork+Spring集成框架實現的J2EE多層架構,在對框架 中各組成技術分析研究的基礎上,完成了本系統Web應用框架的整體實現。這種 框架結構對其它基于J2EE平臺web應用系統的開發具有借鑒價值。
(2)根據實際情況,對課程成績管理子系統、學籍管理子系統和用戶角色信息 管理子系統的需求和功能進行了分析。
(3)在控制層的實現上,提取 Action 中的共同內容,設計為可供其他 Action 調用的BaseAction,提高了系統工作效率。
(4)在模型層的實現上,設計了能夠通過連接配置文件獲取相應 Service 的 ServiceManager類,避免了由于輸入錯誤等常見原因導致調用Service錯誤的問題。
(5)本文設計并實現了課程成績管理子系統、學籍管理子系統和用戶角色信息 管理子系統,經過認真全面的測試,現已進入試運用階段,初步祈禱了提高學生 信息管理效率的預定目標。特別是課程成績系統的實現,使任課教師能在將學生 課程考試情況進行網上記錄,通過系統及時反映給相關輔導員和學校教務部門, 有助于對學生學習情況的動態監督和無縫管理。整個系統融合了教務、學工、學 生綜合信息,有效拓展了教學工作空間,開辟了教務工作新渠道,提高了學習活 動的情境化、多樣化、綜合化、主動化效果。具有一定的現實意義。
由于本人學識有限,在系統開發中還存在一些不足,將在今后的工作和學習 中繼續深入研究:(1) 系統的安全性和處理異常狀況的能力還有待提高。(2) 教學
管理系統還無法實現按需定制,系統放大到整個學校來說,難以保證各院系教學
平臺風格的一致性和個性化統一,如能解決,必將能夠進一步整合教學資源。
參考文獻
[1]殷盛,黃國興•基于MVC模式設計成功的struts框架研究和應用[J].微型 電腦應用,2005,21(9):45-47.
[2]黃映霞.Struts框架實現MVC模型的應用[J].科技廣場,2012, 12(7):1298.
[3]廖雪峰.設計模式和數據持久層框架在Web系統中的應用[J],天津理工大學 學報,2011,1(10):12-13.
[4]石道元.管理信息系統.北京:電子工業出版社,2006,
[5]袁梅冷,黃煙波,黃家林等.J2EE應用模型中MVC軟件體系結構的研究與應用
[J].計算機應用研究,2012,20(3):147-149.
[6]陳小虎.基于MVC的系統架構設計探究[J].數字技術與應用,2009, 22(10): 62-64.
[7]黃海,朱躍龍.J2EE設計模式與框架技術的應用研究[J].計算機與現代化, 2006,22(5):114一116.
[8]朱麗娜.ERP與CRM中人力資源基本信息和客戶基本信息整合研究[D].成都: 成都理工大學,2013.
[9]范會聯,張玉芳.基于JSF+Spring+Hibernate集成架構的Web信息系統設 計•計算機技術與發展[J],2007,17(3):23-26.
[10]梁博•基于MVC的人事招錄系統的設計與實現•北京:北京郵電大學[D], 2006.
[11]Patrick Lightbody,Jason Carreira.WebWork in action. 北京: 電子工 業山版社,2006.
[12]唐雅軒.基于AOP技術的性能監測工具的設計與實現[D].廈門:華僑大學, 2009.
[13]康健萍•基于MVC模式的Struts框架研究與應用[J].計算機與信息技術, 2013,8(11):23-26.
[14]張普超,王愚.UML與MVC設計模式在社區信息系統中的應用與實現[J].計 算機應用,201012(1),136.
[15]Patrick Lightbody, Jason Carreira. WebWork in action.OREILLY& ASSOCIATES INC,2005.
[16]尤英德.基于Internet的學生信息管理系統[D].成都:電子科技大學,2007.
[17]馮文龍.一種基于MVC的Web應用[J],海南大學學報(自然科學版),2008,
12(1):124-126.
[18]方一舟•基于MVC與J2EE的小區物業管理系統開發[J].現代計算機(專業 版),2012,12(9):141.
[19]孫麗娜.基于高校網絡辦公系統的設計與實現[J].計算機光盤軟件與應用, 2012,3(23):137T40.
[20]胡金成,劉亞斌.高校科研管理系統分析與設計[J].電腦知識與技術,2009, 1(9):356.
[21]Paul C.Jorgensen.Software Testing:A Craftsman's Approach (Second edition).CRC PRESS.2003.
[22]鄭浩,劉建芳•基于SSH的畢業設計管理系統的設計與實現[J].電子設計 工程,2011,2 (9):1527.
[23]龐紅玉.高校教務管理系統的實現技術分析[J].中國職工教育,2012, 10(11):45-47.
[24]Alur Deepak, Crupi John, Malks Dan. Core J2EE Patterns, Prentice Hall Ptr,2005.
[25]趙亞楠,董晶.模板技術在內容管理系統中的應用與實現[J].計算機工程 與設計,2010,12(11):163-170.
[26]李宏強,麻振華.奶牛場管理信息平臺研發[J].河北建筑工程學院學報, 2012,3(9):66-67.
[27]李繼瑞.St ru ts和H iberna te多層架構的研究與應用[D].武漢:武漢理工 大學,2012.
[28]鄭雙行•基于MVC的Android與Web雙模式教學平臺的設計與實現[D].大 連:大連理工大學,2011.
[29]曾俊國,羅剛•基于MVC的高校畢業論文管理系統研究[J].成都工業學院 學報,2013,5(12):49,51.
[30]Richardson Clay,Avondolio Donald. Professional Java Programming, John Wiley & Sons Inc, 2005.