目錄
第一章緒論 1
1.1研究背景與意義 1
1.2現狀和存在問題 1
1.3論文研究內容 3
1.4論文組織結構 3
第二章相關技術介紹 5
2.1軟件系統結構 5
2.1.1C/S 與 B/S 結構 5
2.2開發技術簡介 7
2.2.1MVC 7
2.2.2.NET Framework 9
2.2.3ASP.NET 10
2.2.4C# 11
2.2.5ADO.NET 技術 11
2.2.6ASP.NET三層技術架構 12
2.3數據庫選型 13
2.4應用服務器 14
2.5Ajax 14
2.6本章小結 15
第三章需求分析 15
3.1指導思想和目標 16
3.2業務需求分析 17
3.2.1人員需求分析 17
3.2.2功能需求分析 20
3.3非功能性需求 26
3.4本章小結 27
第四章系統設計 28
4.1系統總體框架 28
4.2系統網絡拓撲圖 29
4.3系統功能模塊劃分 29
4.4數據庫設計 30
4.4.1E-R 圖設計 30
4.4.2核心數據庫表 40
4.5本章小結 45
第五章系統實現 46
5.1系統環境 46
5.1.1硬件環境 46
5.1.2軟件環境 46
5.2系統界面 47
5.3系統實現代碼 48
5.4本章小結 51
第六章總結與展望 52
6.1總結 52
6.2展望 52
參考文獻 53
致謝 55
Contents
Charter 1 Introduction 1
1.1Bacl^round and Significance 1
1.2Status and Problems 1
1.3Research Contents 3
1.4Organizational Structure 3
Charter 2 Related Tchnologies 5
2.1Frame Technology Introduction 5
2.1.1C/SandB/S 5
2.2Technology 7
2.2.1MVC 7
2.2.2.NET Framework 9
2.2.3ASP.NET 10
2.2.4C# 11
2.2.5ADO.NET 11
2.2.6ASP.NET Framework 12
2.3Database 13
2.4Application Server 14
2.5Ajax 14
2.6Summaiy 15
Charter 3 Requirements Analysis 15
3.1Guidelines and Objectives 16
3.2Requirements Analysis 17
3.2.1User Requirements 17
3.2.2Functional Requirements 20
3.3Non-fiinctional Requirements 26
3.4Summary •.?.27
Charter 4 System Design 28
4.1System framework 28
4.2System network topology 29
4.3System models 29
4.4Database design 30
4.4.1E-R design 30
4.4.2Code tables 40
4.5Summary 45
Charter 5 System Implementation 46
5.1System Environment 46
5.1.1Hardware Environment 46
5.1.2Software Environment 46
5.2Main Interface 47
5.3Implementation Code 48
5.4Summary 51
Charter 6 Conclusions and Outlooks 52
6.1Conclusions 52
6.2Outlooks 52
References 53
Acknowledgements 55
第一章緒論
1.1研究背景與意義
進入二十一世紀以來,信息化技術特別是網絡技術取得了迅猛發展,信息 化應用系統的廣泛應用以及互聯網在普通用戶的普及,極大的推動人類向信息 時代的快速邁進,信息化、網絡化以及數字化已經成為社會發展的大趨勢。作 為高等教育現代化發展的重要內容,高校教育信息化是我國教育發展的重大課 題,也是我國推進國家信息化和社會信息化發展的重要部分。加快構筑與現代 化教育相適應的信息化體系,確保教學、科研和社會服務三大功能的有效發揮, 是高校改革和發展的一項緊迫的戰略任務,也是高等教育現代化的必然選擇。
作為高等院校教學工作中的一個重要環節,實驗教學在整個高校人才培養 體系中具有不可替代的作用,而不斷完善和發展的實驗方法和內容是衡量實驗 教學的指標。從上世紀九十年代末開始,我國在推進高等教育的快速發展中, 采用了擴大高校辦學規模、增加在校學生的發展模式,隨著在校學生人數猛烈 增長,各高校在獲得資金保障的情況下購置了很多新的實驗設施,實驗室的基 礎設施建設獲得不斷完善,實驗項目的設置也在不斷擴大增加,擴大了實驗教 學的力度。
要提高實驗教學的水平,首先是提高實驗室管理的水平,而影響實驗室管 理的水平必須依賴實驗室管理的信息化。隨著實驗設備的增加,實驗的項目課 程也逐步增加,單純釆用傳統模式管理和維護設備、安排實驗課程已不能滿足 相關需求,所以,為更好地管理實驗設備、提高設備儀器的使用率,保障實驗 課程的順利進行,為學生提供更多更好的實驗機會和實驗環境,提高學生的綜 合素質,開發一套適合管理需求的實驗室信息管理系統是很有必要的。
1.2現狀和存在問題
實驗室信息管理是高校教學教務管理工作的重要內容,涉及到學校教學管 理的各個方面,包括教師、學生、課程、成績、設備、實驗室等一系列信息。 所以國內外都很重視實驗室信息管理工作。
在二十世紀九十年代,伴隨著四個現代化建設的發展,教育現代化逐步被 各高校所重視,隨著信息時代的到來,教育體制改造的深化以及教學規模的持 續擴大,教育信息化也被提到高校發展的日程上來,高校教育信息化主要是針 對教育教學過程中對產生的信息的提取、加工、再生、傳遞和應用。實驗室信 息管理信息化作為教育信息化的重要組成部分,是指在實驗室信息管理的過程 中,充分應用計算機技術、網絡技術以及相關的多媒體技術來輔助和管理實驗 室在教學中的應用過程。
國外高校在實驗室信息管理系統的投入和建設比較早,而且發展比較快, 而且一般具有一定規模的技術隊伍來提供服務與技術支持,所以整個模式較為 成熟。與國外高校相比較,國內高校在實驗室信息管理系統的建設方面起步較 晚,雖然在后來數字校園建設過程中不斷在硬件和軟件方面加大投資,但總體 來說,由于高校整體信息化建設發展的程度相對來說較為落后,而且在管理制 度、理論體系等方面存在不健全等原因,國內高校實驗室信息管理系統與國外 高校相比都有一定的差距。存在的問題包括:
1、 實驗室管理手段落后,管理工作效率低
當前,很多高校在實驗室管理方面還在釆用傳統的手工方式管理設備,這 種手工登記臺帳的管理方式不僅效率低速度慢、而且統計過程中容易出錯,記 錄的信息不夠全面,在信息查詢和統計方面存在弊端。管理人員必須花費很大 的時間和精力投入到數據的查詢統計過程中。
2、 實驗室管理信息混亂
實驗室管理信息混亂包括實驗數據紙質化所以數據不能共享、存放混亂、 格式不統一等。對于手工模式整理的數據,其好壞在一定程度上取決于統計人 員的自身素質和水平,對儀器設備檔案管理的手段落后,在設備出現故障時不 能迅速提取該設備的資料信息。缺少維修紀錄,維修人員必須花費大量的時間 進行排查以確認原因,結果造成人力、財力的無謂消耗,有時還會導致實驗材 料重復購入與閑置的不良后果。
3、 時效性差
實驗室的數據信息不能及時、快捷地反映出來,而是后期才能獲得,這就 使很多信息失真.并直接導致一些數據只能根據經驗籠統統計得出,最終致使 一些決策缺乏必要的依據。
1.3論文研究內容
論文首先對高校實驗室信息管理系統的研究背景和意義進行論述,然后對 存在的問題以及現狀作了簡要介紹,之后對項目開發中所用到的相關技術做了 詳細的介紹,從MVC框架、ASP.NET開發技術架構、數據庫等方面做深入細 致地研究分析,最后,根據軟件開發的一般過程,先對項目的實際需求分別從 人員和功能兩個不同的角度做了詳細的分析,然后開始進入系統的設計和實現, 在設計和實現的過程中,從總體的技術架構、網絡拓撲圖到系統的數據庫設計 都進行了全面的分析,最后通過對系統環境和部分代碼對系統的實現進行介紹。 論文的主要研究內容包括:
1、 對ASP.NET開發技術架構的相關技術做了深入分析,為整個系統的開 發奠定技術基礎。
2、 在需求設計的過程中從不同角度進行分析,并采用了 UML中的用例圖 對需求進行描述。
3、 從系統的總體技術架構、網絡架構、數據庫設計等多個方面入手,論述 了系統的設計過程。
4、 通過UML中的類的關系以及實現的代碼的介紹來對系統的實現進行概 要介紹。
1.4論文組織結構
本論文共分六章,各章內容組織如下:
第一章緒論,對系統研究的背景和意義、現狀和存在問題,以及論文的研 究內容,論文的組織結構作簡單的介紹。
第二章相關技術介紹,對系統設計和開發的所使用的主流技術作詳細介紹 與比較。
第三章系統需求分析,是本論文的重點章節,對實驗室信息管理系統的需 求作詳細的分析。
第四章系統設計,對實驗室信息管理系統進行系統設計。
第五章系統實現,實現系統的主要功能,包括系統管理、學生管理、教師 管理、成績管理、實驗室管理、設備管理等模塊。
第六章總結與展望,總結全文,展望今后的研究工作。
第二章相關技術介紹
實驗室信息管理系統基于WEB技術,開發技術上采用微軟公司的ASP.NET 的框架來實現。
2.1軟件系統結構
2.1.1C/S 與 B/S 結構
C/S (Client/server)結構,即大家熟知的客戶機和服務器結構。它是軟件系 統體系結構,通過它可以充分利用兩端硬件環境的優勢,將任務合理分配到 Client端和Server端來實現,降低了系統的通訊開銷。B/S(Browser/Server)結構 即瀏覽器和服務器結構。它是隨著Internet技術的興起,對C/S結構的一種變化 或者改進的結構。
目前大多數應用軟件系統都是Client/Server形式的兩層結構,由于現在的 軟件應用系統正在向分布式的Web應用發展,Web和ClienVServer應用都可以 進行同樣的業務處理,應用不同的模塊共享邏輯組件;因此,內部的和外部的 用戶都可以訪問新的和現有的應用系統,通過現有應用系統中的邏輯可以擴展 出新的應用系統。這也就是目前應用系統的發展方向。
傳統的C/S體系結構雖然采用的是開放模式,但這只是系統開發一級的開 放性,在特定的應用中無論是Client端還是Server端都還需要特定的軟件支持。 由于沒能提供用戶真正期望的開放環境,C/S結構的軟件需要針對不同的操作 系統開發不同版本的軟件,加之產品的更新換代十分快,已經很難適應百臺電 腦以上局域網用戶同時使用,而且代價高,效率低。
在B/S結構下,用戶工作界面是通過WWW瀏覽器來實現,極少部分事務 邏輯在前端(Browser)實現,但是主要事務邏輯在服務器端(Server)實現,形成所 謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升 級的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術看,局域網 建立B/S結構的網絡應用,并通過Intemet/Intranet模式下數據庫應用,相對易 于把握、成本也是較低的。它是一次性到位的開發,能實現不同的人員,從不 同的地點,以不同的接入方式(比如LAN, WAN, Intemet/Intranet等)訪問和操作 共同的數據庫;它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很 安全。
B/S結構采用星形拓撲結構建立企業內部通信網絡或利用Internet虛擬專網 (VPN)o前者的特點是安全、快捷、準確。后者則具有節省投資、跨地域廣的 優點。須視企業規模和地理分布確定。企業內部通過防火墻接入Internet,在整 個網絡采用TCP/IP協議。
C/S與B/S區別:
Client/Server是建立在局域網的基礎上的。Browser/Server是建立在廣域網 的基礎上的。
1.硬件環境不同
C/S 一般建立在專用的網絡上,小范圍里的網絡環境,局域網之間再通過 專門服務器提供連接和數據交換服務。
B/S建立在廣域網之上的,不必是專門的網絡硬件環境,例與電話上網, 租用設備。信息自己管理,有比C/S更強的適應范圍,一般只要有操作系統和 瀏覽器就行。
2.對安全要求不同
C/S 一般面向相對固定的用戶群,對信息安全的控制能力很強,一般高度 機密的信息系統采用C/S結構適宜。可以通過B/S發布部分可公開信息。
B/S建立在廣域網之上,對安全的控制能力相對弱,面向是不可知的用戶 群。
3.對程序架構不同
C/S程序可以更加注重流程,可以對權限多層次校驗,對系統運行速度可 以較少考慮。
B/S對安全以及訪問速度的多重的考慮,建立在需要更加優化的基礎之上。 比C/S有更高的要求B/S結構的程序架構是發展的趨勢,從MS的.Net系列的 BizTalk 2000 Exchange 2000等,全面支持網絡的構件搭建的系統。SUN和IBM 推的JavaBean構件技術等,使B/S更加成熟。
4.軟件重用不同
C/S程序可以不可避免的整體性考慮,構件的重用性不如在B/S要求下的 構件的重用性好。
B/S對的多重結構,要求構件相對獨立的功能。能夠相對較好的重用。就 入買來的餐桌可以再利用,而不是做在墻上的石頭桌子。
5.系統維護不同
系統維護是軟件生存周期中,開銷大。
C/S程序由于整體性,必須整體考察,處理出現的問題以及系統升級•升級 困難,可能是再做一個全新的系統。
B/S構件組成,方面構件個別的更換,實現系統的無縫升級。系統維護開銷減 到最小•用戶從網上自己下載安裝就可以實現升級。
6.處理問題不同
C/S程序可以處理用戶面固定,并且在相同區域,安全要求高需求,與操作系 統相關.應該都是相同的系統。
B/S建立在廣域網上,面向不同的用戶群,分散地域,這是C/S無法作到的。 與操作系統平臺關系最小。
7.用戶接口不同
C/S多是建立的Window平臺上,表現方法有限,對程序員普遍要求較高。
B/S建立在瀏覽器上,有更加豐富和生動的表現方式與用戶交流。并且大 部分難度減低,減低開發成本。
8.信息流不同
C/S程序一般是典型的中央集權的機械式處理,交互性相對低。
B/S信息流向可變化,B-B、B-C、B-等信息、流向的變化,更像交易中心。
9.C/S比較適合做胖客戶,B/S比較適合瘦客戶。
2.2開發技術簡介
2.2.1MVC
MVC模式(Model-View-Controller,模型-視圖-控制器)是軟件工程中的一 種軟件架構模式,把軟件系統分為三個基本部分:模型(Model)、視圖(View) 和控制器(Controller)o MVC模式最早由Trygve Reenskaug在1978年提出,是 施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk 發明的一種軟件設計模式。
MVC模式的目的是實現一種動態的程式設計,使后續對程序的修改和擴展 簡化,并且使程序某一部分的重復利用成為可能。除此之外,此模式通過對復 雜度的簡化,使程序結構更加直觀。軟件系統通過對自身基本部分分離的同時 也賦予了各個基本部分應有的功能,現已成為Sun公司J2EE平臺的設計模 式它為開發交互式應用系統提供了一個優秀的設計模式。專業人員可以通過自 身的專長分組:
(控制器Controller)-負責轉發請求,對請求進行處理。
(視圖View)-界面設計人員進行圖形界面設計。
(模型Model)-程序員編寫程序應有的功能(實現算法等等)、數據庫 專家進行數據管理和數據庫設計(可以實現具體的功能)。
圖2-1 MVC交互流程
MVC模式可以實現J2EE應用系統的分層,實現三層或者多層之間的松 散耦合,是一種面向動態內容的實現方式。在MVC模式中應用程序分成3個 核心部件模型(Model)>視圖(View)、控制器(Controller)- MVC的處理過程如圖 2-1所示,首先是控制器收到用戶的請求,控制器決定應該調用哪個模型來進行 處理,然后模型用業務邏輯處理用戶的請求并且返回數據,最后控制器將用對 應的視圖格式化模型,返回的數據在表示層顯示數據給用戶。
2.2.2.NET FRAMEWORK
•NET Framework是微軟公司的新戰略,它包含微軟公司對未來的核心戰 略、規劃和洞察力。所有微軟公司的產品都將圍繞這個戰略開發,此戰略的核 心就是.NET Framework,該框架提供了全面支持.NET的核心技術。.NET是一 種新的計算機平臺,它簡化了高度分布式Internet環境中的應用程序開發.NET Framework框架的基本思想是:把原有的重點從連接到互聯網的單一網站或設 備轉移到計算機、設備和服務群組上,而將互聯網本身作為新一代操作系統的 基礎。這樣,用戶將能控制信息的傳送方式、時間和內容,從而得到更多的服 務。.NET Framework具有兩個主要組件:公共語言運行庫和.NET Framework 類庫。創建.NET應用程序的步驟如下所示。
(1)編寫應用程序代碼,編譯成Microsoft中間語言(Microsoft Intennediate Language, MSIL)代碼,存儲在裝配件中。
⑵使用JIT(Just-In-Time)編譯器把MSIL編譯成為本機代碼。
(3)在托管的公共語言運行庫(Common Language Runtime, CLR)環境下運行 本機代碼。
而且.NET Framework可以用來解決編程人員面臨的許多問題:
(1)負責處理在創建大型、可靠的應用程序時的大量艱辛工作。
(2)允許程序員統一兩種架構,即在本地機器上運行的應用程序和通過Web 訪問的應用程序。
(3)減少了與編程框架相關的傳統開銷,即不再需要用高性能編程語言來編 寫復雜的代碼以獲得高速的.NET程序。
(4)允許不同語言的程序員在一個應用程序中協同工作。
(5)兼容各種最終用戶工具,包括桌面、PDA和手機,最終實現使開發人員 能夠創建出擺脫硬件束縛的,能夠在各種操作系統上運行的應用程序,能夠輕 松實現互聯網的連接。
總之,.NETFramework提供了一種更簡單、更快捷、更廉價的方式,來獲 得高效的程序。.NET的目標是人們今后無論何時何地,都可以通過任何一臺計 算機或手機、掌上電腦等移動設備來處理個人數據、玩游戲或者上網沖浪。通 俗地講,.NET的核心內容之一就是要搭建第三代互聯網平臺。
2.2.3ASP.NET
ASP.NET是一項微軟公司的技術,是一種使嵌入網頁中的腳本可由因特網 服務器執行的服務器端腳本技術。指Active Server Pages (動態服務器頁面), 運行于 IIS (Internet Information Server 服務,是 Windows 開發的 Web 服務器) 之中的程序。
ASP.NET是.NET的一部分,是建立動態Web站點的.NET,引入了服務器 端控件,提供了一種創建Web的簡單方式。一般在ASP.NET中,創建Web窗 體應用程序的生命周期和工作流程如下所示:
⑴頁面框架的初始化(Pagejnit)階段
該階段窗體傳遞回來,傳遞的數據就是保存在窗體上的信息(如:用戶輸入 數據),頁面控件的初始化階段,將觸發Page_Init事件。
(2)用戶代碼的初始化(Page_Load)階段
該階段觸發Page Load事件,通常檢查Page.IsPostBack屬性,以確定是第 一次被加載,還是傳遞回來的頁面,第一次被加載時,可以對控件數據綁定初 始化,傳遞回來的頁面時,ASP.NET來處理。
(3)有效性驗證(控件Validate方法)階段
該階段從Validator控件繼承而來的所有服務器控件都有Validator方法,可 以對輸入進行驗證。
(4)事件處理(控件事件)階段
該階段響應窗體控件事件處理程序
(5)清除處理(Page_Unload)階段
該階段釋放資源(如數據庫連接,打開的文件等),通常不對Page_Unload 方法進行改動。
相對于ASP來說,配置應用程序中ASP.NET的安全性更高。在ASP.NET 中身份認證有None、Windows> Forms> Passport等四種方式。ASP.NET是本地 Windows帳戶,當身份驗證省略時ASP.NET服務仍然有效。身份認證后,允許 或限制用戶訪問某些頁面。
2.2.4C#
ASP.NET是一個基于.NET的統一的Web開發平臺,該Web開發平臺使得 Web開發人員可以使用.NET編程語言(包括VB.NET、C#和C++托管擴展、Jscript 等)開發Web應用程序。
C# (讀做C-sharp)編程語言是由微軟公司的Anders Hejlsberg和Scott Willamette領導的開發小組專門為.NET平臺設計的語言,它可以使程序員移植 到.NET上。這種移植對于廣大的程序員來說是比較容易的,因為C#從C, C++ 和Java發展而來,它采用了這三種語言最優秀的特點,并加入了它自己的特性。 C#是事件的驅動的,完全面向對象的可視化編程語言,我們可以使用集成開發 環境來編寫C#程序。使用IDE,程序員可以方便的建立,運行,測試和調試 C#程序,這就將開發一個可用程序的時間減少到不用IDE開發時所用時間的一 小部分。使用IDE迅速建立一個應用程序的過程稱為快速反映開發。
C#具有現代、簡單、完全面向對象和類型安全等特點,相對于C / C++而言, 如果以前學過C/C++,學習會變得很容易,許多C#語句直接借用C, C++的 語言,包括表達式和操作符。關于C#最重要的一點是:它是現代的編程語言。 在類、命名空間、方法重載和異常處理等領域簡化了 C / C++,丟棄了 C / C++ 的復雜性,使它更容易使用、更加少出錯。減少了 C/C++的一些特性,不再 有宏、模板和多重繼承,這樣對于開發人員而言,省去了不少麻煩提高了工作 效益。所以,實驗室信息管理系統采用C#作為編程語言。
2.2.5ADO.NET 技術
AD0.NET的名稱起源于ADO (ActiveX Data Objects),這是一個廣泛的類 組,用于在以往的Microsoft技術中訪問數據。之所以使用AD0.NET名稱,是 因為MicrosoH希望表明,這是在NET編程環境中優先使用的數據訪問接口。
ADO.NET可讓開發人員以一致的方式存取資料來源(例如SQL Server與 XML),以及透過OLE DB和ODBC所公開的資料來源。資料共用的消費者應 用程序可使用ADO.NET來連接至這些資料來源,并且擷取、處理及更新其中 所含的資料。
ADO.NET可將資料管理的資料存取分成不連續的元件,這些元件可分開使 用,也可串聯使用ADO.NET也包含.NET Framework資料提供者,以用于連接 資料庫、執行命令和擷取結果。這些結果會直接處理、放入ADO.NET DataSet 物件中以便利用機器操作的方式公開給使用者、與多個來源的資料結合,或在 各層之間進行傳遞。DataSet物件也可以與.NET Framework資料提供者分開使 用,以便管理應用程序本機的資料或來自XML的資料。
DataSet是ADO.NET的中心概念。你可以把DataSet想象成內存中的數據 庫。正是由于DataSet,才使得程序員在編程序時可以屏蔽數據庫之間的差異, 從而獲得一致的編程模型。DataSet支持多表、表間關系、數據約束等。這些和 關系數據庫的模型基本一致。過去,數據處理主要依賴于兩層結構,并且是基 于連接的。連接斷開,數據就不能再存取。現在,數據處理被延伸到三層以上 的結構,相應地,程序員需要切換到無連接的應用模型。這樣,DataSet Command 就在ADO. NET中扮演了極其重要的角色。它可以取回一個DataSet,并維護 一個數據源和DataSet之間的"橋",以便于數據的訪問、修改和保存。DataSet Command自動將數據的各種操作變換到數據源相關的合適的SQL語句。
ADO. NET訪問數據庫的步驟是:
(1)創建一個數據庫鏈接;
(2)請求一個記錄集合;
(3)將記錄集合暫存到DataSet;
(4)如果需要,返回第2步;(DataSet可容納多個數據集合);
(5)關閉數據庫鏈接;
(6)在DataSet上作所需要的操作。
DataSet在內部用XML來描述數據。由于XML是一種平臺無關、語言無 關的數據描述語言,而且可以描述復雜數據關系的數據,比如父子關系的數據, 所以DataSet實際上可以容納具有復雜關系的數據,而且不再依賴于數據庫鏈 接。正是由于以上特點,在本系統中采用ADO.NET技術訪問數據庫。
2.2.6 ASP.NET三層技術架構
ASP.NET結構是一個三層結構模型的系統:即用戶界面層(UI層),業務邏輯 層和數據層,它們之間的關系如圖2-2所示:
圖2-2 ASP. NET三層架構
UI層負責與用戶交互,接收用戶的輸入并將服務器端傳來的數據呈現給客 戶,即ASP.NET頁面層,為用戶提供對應用程序的訪問功能。業務邏輯層負責 接收瀏覽器傳來的請求并將請求傳給數據層,同時將請求處理結果發給瀏覽器。 它由WEB表單、XML Web服務和組件服務組成。其中WEB表單是ASP.NET 應用程序的核心所在,它是向客戶呈現數據和信息的基礎,也是響應和處理客 戶與顯示的WEB表單交互生成的信息和數據的基礎,由于該層直接與數據庫 相關聯,同時又為UI層服務,所以業務邏輯層的設計直接關系到整個系統的成 敗。數據層是系統最底層,它存儲系統的所有數據,本系統中的系統數據庫是 使用SQL Server 2008來實現,通過ADO.NET操縱數據為事務邏輯層提供數據 服務,如存儲數據操作結果、返回數據檢索結果等等。
2.3數據庫選型
SQL Server是美國微軟公司推出的一種關系型數據庫系統。SQL Server是 一個可擴展的、高性能的、為分布式客戶機/服務器計算所設計的數據庫管理系 統,實現了與Windows NT的有機結合,提供了基于事務的企業級信息管理系 統方案。SQL Server 2008是一個重大的產品版本,它推出了許多新的特性和關 鍵的改進,使得它成為比較強大而且全面的SQL Server版本。
因此,我們系統采取的是SQL Server 2008數據庫。
2.4應用服務器
Internet Information Server (簡稱 IIS)是 Windows 系統提供的一種服務, 它包括WWW服務器、FTP服務器和SMTP服務器,是架設網站的首選。 Microsoft IIS是允許在公共Intranet或Internet上發布信息的Web服務器。 Internet Information Server通過使用超文本傳輸協議(HTTP)傳輸信息。還可配置 Internet Information Server以提供文件傳輸協議(FTP)和gopher服務。FTP服務 允許用戶從Web節點或到Web節點傳送文件。gopher服務為定位文檔使用菜 單驅動協議。HTTP協議已經盡可能地代替了 gopher協議。
2.5 AJAX
Ajax 的全稱是:Asynchronous JavaScript and XMLo Ajax 不是一個技術, 它實際上是幾種技術,每種技術都有其獨特這處,合在一起就成了一個功能強 大的新技術。
Ajax (Asynchronous JavaScript and XML)是結合了 Java 技術、XML 以及 JavaScript等編程技術,可以讓開發人員構建基于Java技術的Web應用,并打 破了使用頁面重載的慣例。Ajax是使用客戶端腳本與Web服務器交換數拯的 Web應用開發方法。這樣,Web頁面不用打斷交互流程進行重新加裁,就可以 動態地更新。使用Ajax,用戶可以創建接近本地桌面應用的直接、高可用、更 豐富、更動態的Web用戶界面。
jQuery是一個兼容多瀏覽器的Javascript框架,核心理念是Write less,Do more(寫得更少,做得更多),是實現Ajax的精簡利器。jQuery在2006年1月由美 國人John Resig在紐約的barcamp發布,吸引了來自世界各地的眾多JavaScript 高手加入,由Dave Methvin率領團隊進行開發。如今,jQuery已經成為最流行 的Javascript框架,在世界前10000個訪問最多的網站中,有超過55%在使用 j Query o
jQuery是免費、開源的,使用MIT許可協議。jQuery的語法設計可以使開 發者更加便捷,例如操作文檔對象、選擇DOM元素、制作動畫效果、事件處 理、使用Ajax以及其他功能。除此以外,jQuery提供API讓開發者編寫插件。 其模塊化的使用方式使開發者可以很輕松的開發出功能強大的靜態或動態網 頁。
2.6本章小結
本章著重介紹了開發實驗室信息管理系統的幾個主要技術和技術選型,包 括軟件體系架構,MVC設計模式,ASP.NET> ADO.NET和C#語言,以及簡單 介紹了系統所使用的數據庫SQL Server,應用服務器IIS,頁面開發使用的技術 AJAX等,從而確定了系統軟硬件環境。
第三章需求分析
需求分析是軟件工程中的一個關鍵過程。在這個過程中,系統分析員和軟 件工程師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新 系統的解決方法。需求分析階段的任務是確定軟件系統功能。
3.1指導思想和目標
實驗室信息管理系統的總目標是:在學校計算機網絡局域網平臺上,利用 現有的軟件,配置一定的硬件,開發一個具有開放體系結構的、易擴充的、易 維護的、具有良好人機交互界面的實驗室信息管理系統。
1、 通過使用實驗室信息管理系統降低實驗室管理人員的工作強度,實驗室 管理信息系統的開發與應用使實驗室人員從繁瑣的手工操作中解放出來。
2、 通過使用實驗室信息管理系統提高實驗室設備的利用率。
3、 通過使用實驗室信息管理系統為實驗室教學提供一個信息交流平臺,實 驗室管理員可以發布消息,學生可以向教師請教實驗問題,打破了時間與空間 的限制。
4、 通過使用實驗室信息管理系統為實驗項目的開發升級提供平臺。實驗項 目的開發升級是實驗室的一個重要評估指標。而網絡化的實驗室管理不但可使 實驗室管理人員有更多的時間思考這個問題,而且也可以讓學生和教師更多的 參與到這個事情。
5、 實驗室信息管理系統為實驗室評估提供真實有效的數據。不論是什么級 別的評估,實驗室都是一個必然要檢查的地方,而且每次評估都要手工統計大 量的數據,做成報表,報到幾個部門,網絡化的實驗室管理信息系統就可以做 到隨時提供準確、翔實的數據。
3.2業務需求分析
3.2.1人員需求分析
從系統用戶的角度進行需求分析,實驗室信息管理系統的用戶包括系統管 理員、實驗室管理員、實驗課程老師、實驗課程學生四大類,對于不同的人員 其需求不同。
1、系統管理員:系統管理員的主要需求是保障系統的正確運行,同時進行 系統運行基礎數據的維護以及用戶的管理配置,具體包括系統基本信息配置、 系統用戶管理、系統角色管理、用戶權限管理、系統日志管理、系統登錄以及 修改個人信息等。
2、實驗室管理員:實驗室管理員的主要需求是管理實驗室信息,管理設備 信息、管理耗材信息、發布相關通知公告、審批實驗室的預約申請、安排實驗 室、系統登錄以及修改個人信息等。
3、實驗課程老師:可以通過系統查詢實驗室的設備情況、實驗室的使用情 況、實驗室課程的申請情況、預約申請實驗室、申請設備、申請耗材、管理學 生實驗課程、管理實驗報告、系統登錄以及修改個人信息等。
圖3-4實驗課程學生用例圖
4、實驗課程學生:可以通過該系統提交實驗報告、與系統管理人員、教師 進行信息交流、查看實驗課程安排、查看實驗成績、登錄以及修改個人信息。
3.2.2功能需求分析
從系統功能的角度進行需求分析,實驗室信息管理系統應滿足以下需求: 系統管理、實驗室管理、實驗課程管理、查詢統計以及公共調用,以下將詳細 對每個需求進行分析。
1、系統管理
系統管理(圖3-5)主要是實現系統管理員維護整個系統的正常運行,包括的 主要用例有,系統基本信息配置、系統用戶管理、系統角色管理、系統權限管 理、系統日志管理、用戶授權。
圖3-5系統管理用例
系統基本信息管理:用系統管理員配置系統的基本信息,包括系統圖標、 系統名稱,上傳目錄等基本信息。
系統用戶管理:包括用戶的增加、修改、刪除、查詢、統計、密碼重置。
系統角色管理:包括系統角色的新增、修改、刪除、查詢。
系統權限管理:包括系統權限的初始化、系統權限的修改、刪除。
系統日志管理:包括系統日志的日常維護、日志查看和刪除、統計。
用戶授權:對用戶授予相應的角色。
2、公共需求
公共需求如圖3-6所示,主要包括系統常用的幾個功能:系統登錄、個人
信息維護、發布通知公告、查看通知公告等。
系統登錄:包括用戶的登錄系統、退出系統。
個人信息維護:包括用戶登錄之后修改個人信息、修改密碼。
發布通知公告:實現系統管理員在系統向系統用戶發布通知公告。
查看通知公告:查看系統管理員發布的通知公告。
3、實驗室管理
實驗室管理如圖3-7所示,包括實驗室信息管理、設備管理、耗材管理、 實驗設備申請、設備申請審批、耗材申請、耗材申請審批、實驗室申請、實驗 室申請審批、審批信息查看。
實驗室信息管理:實現實驗室管理員對實驗室信息的新增、修改、查詢、 刪除的維護操作。
設備管理:實現實驗室設備信息的新增、修改、査詢、刪除操作。
耗材管理:實現實驗室耗材信息的新增、修改、查詢、刪除操作。
實驗設備申請:實現實驗課程教師對實驗設備的使用申請。
設備申請審批:實現實驗室管理員對設備申請的審批。
耗材申請:實現實驗課程教師對耗材設備的使用申請。
耗材申請審批:實現實驗室管理員對耗材申請的審批。
實驗室申請:實現實驗課程教師對實驗室的使用申請。
實驗室申請審批:實現實驗室管理員對實驗室申請的審批,同時安排實驗 室。
審批信息查看:實現實驗室教師對申請信息是否審批的查看。
4、實驗課程
實驗課程如圖3-8所示,包括實驗報告提交、實驗報告批改、實驗成績查 詢、實驗課程管理、實驗課程查看。
實驗報告提交:實現學生在完成實驗后登錄系統提交實驗報告。
實驗報告批改:實現教師對實驗報告的批改并給出實驗成績。
實驗成績查詢:實現學生對實驗成績的查看。
實驗課程管理:實現教師對所要開辦的實驗課程的維護。
實驗課程查看:實現學生對所參加實驗的課程的相關信息查詢,以便為實 驗做好準備。
5、查詢統計
查詢統計如圖3-9所示,包括常用的查詢統計功能:用戶信息統計、實驗 室使用統計、實驗課程統計、設備使用統計、耗材損耗統計、實驗成績統計、 打印報表。
用戶信息統計:實現系統管理員的用戶信息統計。
實驗室使用統計:實現實驗室管理員對實驗室使用情況的統計。
實驗課程統計:實現實驗課程老師對實驗課程的統計。
設備使用統計:實現實驗室管理員對設備使用的統計。
耗材損耗統計:實現實驗室管理員對耗材使用的統計。
實驗成績統計:實現實驗課程老師對實驗成績的統計。
打印報表:實現統計報表的打印。
3.3非功能性需求
實驗室信息管理系統的非功能性需求包括如下幾點:
1、 準確性和實時性
數據的輸入是否準確是數據處理的前提,錯誤的輸入會導致系統輸出的不 正確和不可用,從而使系統的工作失去意義。數據的輸入來源是手工輸入。手 工輸入要通過系統界面上的安排系統具有容錯性,并且對操作人員要進行系統 的培訓。在系統中,數據的輸入往往是大量的,因此系統要有一定的處理能力, 以保證迅速的處理數據。
2、 一致性和完整性
由于系統的數據是共享的,在不同的客戶端中,教務文件是共享數據,所 以如何保證這些數據的一致性,是系統必須解決的問題。要解決這一問題,要 有一定的人員維護數據的一致性,在數據錄入處控制數據的去向,并且要求對 數據庫的數據完整性進行嚴格的約束。對于輸入的數拯,要為其定義完整性規 則,如果不能符合完整性約束,系統應該拒絕該數據。
3、 高效性
本系統只是在學校內部使用,最大用戶接入數量和并發使用用戶數量等技 術指標的設置要求不是很高,滿足學校內部人員系統網上工作的基本要求。
4、 整體性
系統整體設計應該統一規范,功能模塊設計應該清晰合理、方便實用,且 能夠有效的實現后臺一體化管理及后期的擴展性。
5、 安全性
需要采用先進、成熟、可靠的方法和技術,提高系統在安全和容錯方面的 能力,以確保系統的正常運轉和各類數據的完整性、一致性和安全保密性。同 時,要求系統要從權限控制、身份認證等方面建立完備的安全措施,具有嚴密 的權限管理機制,以防止發生泄密和破壞活動。
6、 實用性和易用性
系統的設計應該充分考慮管理員的實際工作需求,方便使用人員操作,使 得系統具有很強的實用性,統在界面上應該讓用戶在輸入工作量上盡可能減少, 在信息的共享上進可能多,此外,在界面的設計上,應該提供詳盡方便的幫助 信息。
7、 可維護性
系統可維護性主要體現在但系統的管理用戶或者普通用戶在使用系統時, 系統能夠提供良好的管理界面,方面用戶進行操作。
8、 可擴展性
系統的可擴展性即要求系統在靈活性上有良好表現,能夠在新的業務需求 提出時不需要對系統進行較大修改、只通過一定的配置擴展即可完成系統對新 業務功能的更新。
9、 可靠性
系統的可靠性是指系統應該具有較強的運行穩定性,在各個應用場景下能 夠發揮作用,順利完成用戶所發出的指令。
3.4本章小結
本章介紹實驗室信息管理系統的需求分析,分別從人員需求的角度和功能 需求的角度對系統的需求進行描述,在描述的過程中使用了用例圖。在下一章 節中將介紹系統的總體設計。
第四章系統設計
4.1系統總體框架
系統采用ASP.NET開發技術架構,包括表示層、業務層、數據持久層、數 據層。具體的系統總體框架圖如圖4-1所示:數據庫是最底層,它存儲系統的 所有數據。數據庫操作動態鏈接庫(DLL),它直接訪問應用系統的數據庫。數據 持久層建立在數據庫之上,為業務層提供數據服務,應用程序通過該層訪問數 據庫。數據持久層一般封裝操作數據庫的選擇、添加、更新和刪除等操作,同 時還為業務邏輯層提供訪問數據庫的接口或函數或方法等。它與數據庫相關聯, 同時又為表示層服務。
Web Pages + AJAX
DLL
SQL Server 2008
圖4-1系統總體框架圖
4.2系統網絡拓撲圖
系統網絡拓撲圖如圖4-2所示。該系統的網絡拓撲較為簡單:
1、 系統的服務器端主要由應用服務器IIS和數據庫服務器
SQLSERVER2008兩大部分組成。
2、 客戶端在學校局域網內直接采用瀏覽器訪問系統。
圖4-2系統網絡拓撲圖
4.3系統功能模塊劃分
圖4-3系統功能劃分
根據上一章的功能需求,系統劃分為以下幾個模塊如圖4-3所示:系統管 理模塊、實驗室管理模塊、實驗課程模塊、查詢統計模塊以及公共調用模塊。
4.4數據庫設計
數據庫在設計的時候要充分考慮需求,理清數據之間的邏輯關系,充分考 慮數據之間的相互影響,數據庫中表的各種關系和完整性約束條件要能真實反 映現實數據之間的現實關系。
E-R數據模型是一種描述現實信息世界中數據的靜態特性的重要方法。這 種模型不涉及數據的處理過程。它為數據庫系統應用的設計人員提供了三個基 本的模型描述成分,它們是實體、聯系和屬性。E-R數據模型就是利用這三個 成分來描述反映一個客觀信息世界內容的數據模型。它是從現實信息世界到數 據庫系統中數據邏輯組織結構設計之間的一個中間階段。因此本文采用E-R模 型來描述概念數據庫的模型并給出了部分實體和部分關系的E-R圖。
4.4.1E-R圖設計
1、學生信息實體
學生信息實體如圖4-4所示:主要記錄學生的基本信息情況,主要內容包 括有學號、姓名、角色、性別、身份證號、年級、所在院系、家庭住址、出生
日期、入學時間、所在院系等學生的基本信息。
圖4-4學生實體
2、教師信息實體
教師信息實體主要是記錄教師的基本信息,內容主要包括教師編號、姓名、 身份證號、性別、角色、聯系電話、家庭住址、政治面貌、出手日期、學歷、 職稱等基本信息。
3、院系實體
院系實體包括學院的院系編號、院系名稱、成立時間、下屬專業、院系人
數等學院的基本信息。
4、班級實體
班級實體記錄的內容包括有編號、班級名稱、班主任、年制、年級、所屬
專業、備注、所在院系等基本信息。
圖4-7班級實體
5、權限實體
權限實體主要是記錄系統管理中的權限信息,包括有權限編號、權限類型、 訪問地址、權限名稱和權限說明。
其中,權限類型包括有菜單類型和功能類型。
圖4-8權限實體
6、角色實體
角色實體主要包括有角色編號,角色名稱和角色說明。
7、系統日志實體
系統日志實體主要記錄系統在運行過程中所產生的日志信息,信息的內容
包括有日志編號、日志類型、日志信息、訪問地址和訪問的用戶。
圖4-10系統日志實體
8、設備信息實體
設備信息實體主要是記錄實驗室的設備基本信息,設備信息實體包括的內
容有設備編號、設備類型、設備名稱、購置時間以及購置數量。
圖4-11設備實體
9、耗材信息實體
耗材信息實體主要是記錄實驗室內所需的耗材基本信息,耗材信息實體包
括的內容有耗材編號、耗材類型、耗材名稱、購置時間以及購置的數量。
圖4-12耗材實體
10、實驗室實體
實驗室實體作為該系統中重要的基本數據,包括的屬性信息有實驗室編號、
實驗室名稱、實驗室類型、以及實驗室的位置數。
圖4-13實驗室實體
11、實驗課程實體
實驗課程記錄的字段內容包括有實驗課程編號、實驗課程類型、教師名稱 以及參加的人數。
圖4-14實驗課程實體
12、實驗報告實體
實驗報告只是老師所布置的實驗課程作業,記錄的字段包括報告編號、學 生學號、所屬課程、課程指導老師、報告的內容以及報告的成績。
12、用戶權限角色關系圖
用戶權限角色的關系主要是每個用戶屬于固定的某個角色、某個角色擁有 一定的權限、權限包括了菜單和功能,主要通過配置就可以某個用戶的角色類 型就是完成該類用戶的權限設置。
用戶
圖4-16用戶角色關系圖
13、教師學生實驗報告關系圖
教師學生實驗報告的關系主要有在課程結束之后,實驗課程教師布置作業, 學生完成實驗報告之后通過系統提交,教師可以通過系統對實驗報告批改,然 后記錄實驗成績,學生可以通過登錄系統查看本人的成績。
圖4-17教師學生實驗報告關系圖
14、教師學生實驗課程關系圖
教師學生實驗課程的關系主要有在教師發布課程結束之后,相關實驗課程 的學生可以在線查看和申請參加課程。
學生
圖4-18教師學生實驗課程關系圖
15、教師申請實驗室關系圖
教師申請實驗室的關系主要是教師在需要進行實驗課程時,首先要在系統 中申請實驗室,申請的內容還包括實驗室的類型和時間。
實驗室管理員
1
圖4-19教師申請實驗室關系圖
4.4.2核心數據庫表
系統采用SQL Server2008數據庫,開發設計過程中采用Sybase作為數據庫 設計的工具,主要的核心數據庫表包括學生基本信息表、院系基本信息表、班 級基本信息表、教師基本信息表、系統日志信息表、角色表、權限表、角色權 限表、設備表、耗材信息表、實驗報告表、實驗室信息表。如表4-1所示。
表4-1核心數據庫表明細
表名 說明
STUDENT 學生基本信息表
DEPARTMENT 院系基本信息表
TEACHER 教師基本信息表
SYS_CLASS 班級信息表
SYSLOG 系統日志信息表
ROLE 角色表
PRIVILEGE 權限表
ROLE_PRIVELEGE 角色權限表
DEVICE 設備信息表
MATERIAL 耗材信息表
LAB_REPORT 實驗報告表
LAB_INFO 實驗室信息表
1、學生基本信息表
學生信息表主要記錄的內容包括學號、姓名、性別、民族、籍貫、政治面
貌、所屬專業、學制等基本信息
表4-2學生基本信息表
列名 長度 類型 NULL DEFAULT 主鍵
學號 10 char() no no Yes
姓名 20 varchar() no no no
姓名拼音 50 varcharO yes no no
英文名稱 20 varcharO yes no no
性別 2 char() no no no
曾用名 20 varcharO yes no no
民族 16 char() yes no no
籍貫 40 varchar() yes no no
身份證號 18 char() no no no
出生日期 8 char() yes no no
所在專業 2 char() yes no no
所屬院系 2 char() yes no no
入學年份 4 char() yes no no
學制 1 char() yes no no
政治面貌 2 char() yes no no
家庭住址 50 varcharO yes no no
聯系電話 11 char() yes no no
住址郵編 6 char() yes no no
2、院系基本信息表
院系信息表包括院系編號、院系名稱、負責人信息。
表4-3院系基本信息表
列名 長度 類型 NULL DEFAULT 主鍵
院系編號 2 char() no no yes
院系名稱 20 char() yes no no
行政負責人 10 char() yes no no
黨務負責人 10 char() yes no no
教務管理員 10 char() yes no no
3、班級信息表
班級信息表主要記錄班級的信息,包括班級編號、班級名稱、所屬院系、
年級、班主任、年制等信息。
表4-4班級信息表
列名 長度 類型 NULL DEFAULT 主鍵
班級編號 2 char() no no Yes
班級名稱 20 varchar() no no no
所屬院系 4 char() yes no no
年級 4 char() yes no no
班主任 10 char() yes no no
年制 5 char() yes no no
備注 5 varcharQ yes no no
4、教師基本信息表
教師基本信息表包括有教師的編號、姓名、性別、學歷、身份證號、所屬
院系、入職年份等基本信息。
表4-5教師基本信息表
列名 長度 類型 NULL DEFAULT 主鍵
教師編號 10 char() no no yes
姓名 20 varchar() no no no
姓名拼音 50 varchar() yes no no
性別 2 char() yes no no
民族 16 char() yes no no
籍貫 40 varchar() yes no no
身份證號 18 varchar() yes no no
出生年月 8 char() yes no no
所屬院系 2 char() yes no no
入職年份 4 char() yes no no
職稱 10 char() yes no no
學歷 1 char() yes no no
政治面貌 2 char() yes no no
5、系統日志信息表
系統日志信息表包括日志編號、日志類型、操作人、訪問IP以及日志信息。
表4-6系統日志信息表
列名 長度 類型 NULL DEFAULT 主鍵
編號 30 varcharO yes no no
日志類型 20 varcharO no no no
日志信息 300 varchar() yes no no
操作人 50 varcharO yes no no
訪問IP 20 varchar() no no yes
6、角色表
角色表的內容角色編號、角色名稱以及角色說明。
表4-7角色表
列名 長度 類型 NULL DEFAULT 主 鍵
角色編號 20 varchar() no no yes
角色名稱 50 varcharO no no no
角色說明 300 varchar () yes no no
7、權限表
權限表的內容包括權限編號、權限類型、權限名稱、訪問地址以及權限說 明。
表4-8權限表
列名 長度 類型 NULL DEFAULT 主 鍵
權限編號 16 char() no no yes
權限類型 50 varcharO no no no
權限名稱 50 varcharO no no no
訪問地址 50 varcharQ no no no
權限說明 300 varchar() no no no
8、角色權限表
角色權限表主要記錄角色與權限的對應關系,包括編號、角色編號以及權
限編號。
表4-9角色權限表
列名 長度 類型 NULL DEFAULT 主 鍵
編號 16 char() no no yes
角色編號 50 varchar() no no no
權限編號 50 varcharQ no no no
9、設備信息表
設備信息表的內容包括設備編號、設備名稱、設備類型、設備數量以及設
備的購置時間。
表4-10設備信息表
列名 長度 類型 NULL DEFAULT 主 鍵
設備編號 16 char() no no yes
設備名稱 50 varchar() no no no
設備類型 50 varchar() no no no
設備數量 8 int no no no
購置時間 50 datetime no no no
10、耗材信息表
耗材信息表的內容包括耗材編號、耗材名稱、耗材類型、耗材數量以及耗 材的購置時間。
表4-11耗材信息表
列名 長度 類型 NULL DEFAULT 主 鍵
耗材編號 16 char() no no yes
耗材名稱 50 varcharQ no no no
耗材類型 50 varchar() no no no
耗材數量 8 int no no no
購置時間 50 datetime no no no
11、實驗室信息表
實驗室信息表的內容包括編號、實驗室名稱、實驗室類型以及所能容納的 位置數。
表4-12實驗室信息表
列名 長度 類型 NULL DEFAULT 主 鍵
編號 16 char() no no yes
名稱 50 varchar() no no no
類型 50 varcharQ no no no
位置數 8 int no no no
12、實驗報告表
實驗室報告表的內容包編號、學生學號、課程名稱、指導老師、報告內容 以及實驗報告的分數等。
表4-13實驗報告表
列名 長度 類型 NULL DEFAULT 主 鍵
編號 16 char() no no yes
學生學號 16 char() no no no
課程名稱 50 varchar() no no no
指導老師 50 varcharO no no no
報告內容 3000 varchar() no no no
分數 8 int no no no
4.5本章小結
本章對實驗室信息管理系統進行總體的設計,包括系統架構、網絡拓撲設 計和數據庫的設計,是整個系統實現的基礎。
第五章系統實現
第四章對實驗室信息管理系統進行總體設計。本章將對介紹系統的實現, 包括系統的開發運行環境、系統的運行界面以及部分核心代碼。
5.1系統環境
對服務器的要求取決于系統管理的信息量以及信息的復雜程度。信息量越 大、同時使用的用戶數量越多,要求服務器的性能越高。
5.1.1硬件環境
1、 數據庫服務器以及應用服務器
任何運行Windows NT或Unix/Linux的服務器。服務器配置根據訪問量會 有很大的變化。
2、 客戶端機器
CPU: > 1.8GHz
內存(RAM):建議2G以上,最低1G;
硬盤(HD):不小于120G;
顯示器:支持1024x768以上的分辨率。
5.1.2軟件環境
開發語言:C#
開發工具:Visual Studio 2010
數據庫服務器:SQL Server 2008
Web服務器:IIS
數據庫設計:Sybase Powerdesigner 15.0
客戶端:
操作系統:Windows 2000/ XP/2003或以上
瀏覽器:Microsoft Internet Explorer 6.0 以上、Chrome、Firefox
5.2系統界面
打開瀏覽器,在地址欄中輸入服務器IP地址,進入實驗室信息管理系統頁 面,輸入帳號、密碼后點擊登錄進入系統,如圖5-1所示。
實驗室信息管理系統
圖5-1系統登錄界面
實驗課程學生信息是系統用戶的基本信息,學生信息列表如圖5?2所示:
/編輯0>查詞®導岀
二學生信息列表
圖5-2實驗課程學生信息列表界面
系統管理員可以對實驗課程學生信息進行編輯修改操作,具體學生信息編
輯頁面如圖5-3所示:
圖5-3實驗課程學生信息編輯界面
5.3系統實現代碼
由于系統代碼量過多,在此不便一一列舉,下面是實驗室信息管理系統的 數據庫訪問層的部分實現代碼:
public static readonly sc ring ConnectlonScring — ConfigurationManacer.ConneccionScrings . Connect ionStxing;
ii 存芝Czhe緩存的 HaahtabieM^
private scatic Seshrable parsCache — Hashtable.Synchronized(new Hashtable()):
/// <suEniary>
///送飯趣戲2急笑左的卻Czr加G.丸溜趣1軽黏血級慈熱
/// </S^l?!3!R4ry>
/// <reisftrks>
"/豆躍:
/// &私w r-sult - ExeoutelJontfuery(connS^rinc, ConxRandri'pe.StcreciProceclure, "FvbiiehOrders", new iSqATsraBecer24)1;
/// <ZreKirJcs>
/// <SAS^ narne-"connectios5tr i ngr
/// aanxf-ctadType<SJfejXS/ « 萇£?:y/rsj越〉
i:! M!Ee="cEdTeKL>苓盜逗程名務或T-52I■語每v/syymp>
Hi narce'-wconsm*i:ci?arArseterj">SqlParfiXJecer^^A?Z^§.</jyix^3;>
Hi 返交克蔻Chzs
public static int ExecuteNonQuery(spring cormectionString, ConnnandType cradType, string crodTexc, pavans SqlParaaeter[j coramandParai&erers) (
SqlCommand entd ― new SglContmand ();
using (SqlConnection conn = new SqlConnectionCconnecEiCEString))
{
PrepareCciEBand(oed, conn, null, cadType, ordlex匸,camaandParanieters):
irtz val — cmd.ExecuceHonQuery():
cad,Parasecers.Clear<);
return val;
| // / <au?Km*ry>
}• / </suiweary>
/// <r«r.arics>
ZZ/丞憊:
::■ iai resale = ExecucsNonOueryCcssiandType.StoredProcedure, "FubiishCrderi", new 5qlParameter{"?PX2SU4"» 241};
f!( </rerearks>
<矽盂5 r.mJkcrodl簾£”>僉金矣型遼砂X思總企袁空弦篡宜議〉
"/ <Se«XW =ana”0dTex=">存緒過.理名稱或T-YQZ請毎<,鼻彩驅〉
/!{ nanre-"conanar:dParanseter£,,>Sqi?3ra!Ecer#^^t^.<,;RftSAvP
/// 52口>返耳膨觀法姿</0叱;5>
public static inc ExecuteBonQuexy(SqlConnection connection, CoroMKdType csndType, szring cmdTsxz, params SqlFarareeter(1 coraaandParaaeuers)
<
SqlCanwiand crad = new Sq2Canssand {);
PrepareCcress&Bd(csad, connection, null, cradType, ciBdTexr, coiEBaridPeraEecers);
is匸 val = c&d.ExecuceNcnQuexy():
casd.Para^ecers.Clear<);
return 7&1;
/// <suism?5.r7>
///
/// </suircBary>
/// najr!e="connec€lon,rx/R^x^>
〃/ <宓筆麺 na^®="如d叫x/燧?;砂
public static void ExecuteBulkCopy(stri ng connectionstring, DataTeble dr, scring dtNoxne)
<
SqlConnection conn = new SqlConnection(connectionstring); conn.Open();
using (SqlTransaccian trans = conn.BeginTransaction())
{
try
{
using (SqlBulkCapY bulk — new SqlBulkCopy(conn, SqlBullrCopyOptions.Default, trans)) (
bulk.BatchSize - 1DOOOCG;
bulk.DestxnatxonTableName = dtName;
bulk.WriteToSexver(dt);
trans.Commit();
)
}
catcb
{
trans.Rollback();
/// <siim&ry>
///在一個達接串上挾.倉一•甸令,返回一個SgDutag"氐x•対熟
/// </sxaBnMtry>
/// <xensaxk:3>
///亦滋:
iiI SqlDatiReader 丄•• ExecuueReader{ccnnStrSnc, CcxsaxsdType.Srcredfroceduxe. ~GetCvrder«", new Stji-Paiaxecer 24> >;
/// </reniarks>
//. connect igt.St r 1 r:<;" >
nn"EdType">復;(吏鍛金唸
/// gwust narae»"cxsdTexc">存俸il程名菽T_Sd遙句v/&尹磁>
/// <5?S;«3j nar&e,=*,coiriinaT3d?araireter2">S5ii-axaRC.er^?Z^^.</p^j§R>
li! <rerums>^回笆含維果握的Sqlg=°Re“e=v/=e3=M>
public szatlc SqlDataReadex ExecuteReader(string connectionstring, CoBsnaEdType ondType, string cmdTexz, params SqlParai&eter[] ccsssandParameters) (
SqlCoBnand a&d — new SqlCcnmacd{);
SqlConnection ccnn — new SqlConnection(conneccionString);
try
<
PrepareCoBKand(cred, conn, null, cadType, crndText, ccsraaandEarameters):
SqlDacaReader rdr — cmd. ExecuceReadex (CoiamandBehavlor.ClcseConnection):
end.Parameters.Clear();
return rdr;
1
catch
<
conn.CXosef);
throw;
/// <aunar>ary>
/// 沖
ll! f./aaxK&rvy
ii/ neit®«eMc<jnnectlcnStrxng~x/s5XAFi;>
/// <t9XW5 na^e—csKiXype"x/s»X^p-
j; : VRMAR 興&耳A"HdTexn"x;3j■議>
fit nai6e="coraR4ndParatteter«"></syixsa>
//Z < recuin3></ recaxsis>
public «ta£ic DataRaw GecDacaRow(airing connectionString, ConsniandType cradType, string cndText, parAms SqlFarameter[] conmiandParanecers) (
DataRow row — null:
SqiConuection conn — new SqlCozmection(conneccionStzin?);
try
(
SqlCois&and cohbs = new SqlCoassand (cadText, conn);
cossm.ComaandType - crndType;
coras.Connection.Open{);
SqlDavaAdapter adapter — new SqlDac&Adaprer();
adapter. SelectCcanmand ■■ coms;
DataSet ds = new DataSet():
adapter.Fill(ds);
row = ds.Tablesf;].Rows[:J;
cosas. Connect ion. Close ():
cans.DisposeO;
adapter.Dispose():
return xow;
)
catch (Exception)
<
return row = nail;
)
finally
(
conn.Close();
/// <suzBEiary>
///刻諾走迪崖邏卿•鬆釣觸金,抵施鏡速1參瓶返叵吳匕
/// </sarsniaxy>
/// <加皴naz="sg">存儲過程名sJcT-SQLT^-句V,{矽城>
/" ©斑B mrynrw滓令卷盟[克繞垃算命冷広在惑甚2</強如〉 f/} <recum3>i§.回一個包含結果集9jDataSet</recurns>
public static DataSet GetDataSet(scring and, ConmandType andType)
{
DataSet dt = new DataSet <);
SqlConnection myConnection = new SqlCannection(ConneccionString); try
<
myConnection.Close();
string strSql = cmd;
SqlConanand myCamni = new SqlCona&and (strSql, myConnectxon); myConnE. CcmmandType — cradType;
myCoram.Connection.Open();
SqlDataAdaprer adapter = new SqlDaraAdapcer(); adapter. SelectCommaiid = nayCoann;
adapter.Fill(dt):
myConm.Connection.Close():
myConnn. Dispose {);
adapter.Dispose 0; return dr;
}
finally
I (
myConcecrion.Close():
)
}
public static DataTable GetDacaTable(string cmd)
{
DataTable de = new DacaTable{>;
SqlConnection myConnecticn = new ScjlConnection (ConneccionString): try
{
myConnection.Close(); string strSql = emd; SqlCoismand myConan = new SqlCcnnnand(5trSql, myConnection); myCornm. ConroandType = ConsnandType. Text;
myConsm.Connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(); adapter. SelectConnnand = myConsm;
adapter.Fill(dt);
myComm.Connection.Close();
myConsm. Dispose (};
adapter.Dispose(): return de:
}
finally
(
myConnection.Close();
j )
5.4本章小結
本章將重點對實驗室信息管理系統的系統環境、系統界面和部分系統實現 的代碼做了簡單的介紹。
第六章總結與展望
6.1總結
隨著我國教育現代化和信息化的飛速發展,作為高校信息化的基礎,高校 信息管理技術的重要性越來越大,而作為高校信息化的重要組成部分,實驗室 管理往往又是最容易被忽略的環節,因此,提供高校實驗室管理的信息化數字 化水平是發展整個高校信息化的必須趨勢。
論文主要是探討基于ASP.NET的實驗室信息管理系統,該信息管理系統實 現的功能包括有:實驗室管理、實驗課程管理、系統管理以及查詢統計等。通 過實現這些功能,一方面為高校教務工作人員減輕實驗室管理工作的壓力,另 一方面為高校教師和學生提供了更多快速便捷的服務,此外,還可以為學校的 教務管理提供有效的決策支持。本文的主要工作有:
1.研究分析ASP.NET開發框架的相關技術,包括C#開發語言、三層架構 的特點、ADO.NET技術,以及系統開發相關的數據庫和服務器的選型。
2.分別從人員和功能兩種不同的需求角度進行需求分析,并根據需求和技 術框架對系統進行設計,最后列舉了部分系統實現的界面和代碼。
3.在系統需求分析和設計的過程中使用大量UML圖,讓整個系統的設計 更加完善合理。
6.2展望
整個實驗室信息管理系統經過幾個月的努力,也初見成果,目前設計的系 統中還有很大的改進空間,在未來可以繼續進行系統的優化,主要包括:
1.實驗信息管理系統目前實現的功能相對比較簡單,整個系統只是完成了 系統架構的搭建以及完成了部分模塊,隨著應用需求的增加,系統將逐步增加 功能模塊。
2.從代碼的角度看,目前系統代碼的重復利用率不高,存在很多重復功能 的代碼,未來需要進行代碼重構。
參考文獻
[1]王繼成,高珍•軟件需求分析的研究[J].計算機工程與設計.2002(08).
[2]王冬.實驗室管理系統的研究與實現.復旦大學.2009.
[3]謝慧敏.基于XML的數據轉換和發布的實現.南京理工大學.2007.
[4]劉治國•面向模式軟件工程的研究[J].信息技術.2008(05).
[5]劉學武,彭玲藝.淺談系統開發C/S與B/S模式[J].企業技術開發.2008(02).
[6]Karli Watson. Marco Bellinaso著.C#入門經典.北京:清華大學出版社.康 博譯,2001: 52-78.
[7]Jeffrey Richter著.Microsoft. NET框架程序設計(修訂版).北京:清華大 學出版社.李建忠譯,2003: 108-129.
[8]Glenn Johnson著.ADO.NET 2.0高級編程.北京:清華大學出版社.段超 譯,2000: 259-300.
[9]丁燕云,魏娟.淺析SQL數據庫的性能優化問題[J].科技信息(學術研究). 2007(34).
[10]百度百科.bs/cs 瀏覽方式.http://baike.baidu.com/view/677.htm.
[11]邵鵬鳴著.ASP.NET技術應用教程.北京:電子工業出版社,2005: 24-36.
[12]李萬寶著.ASP.NET企業級開發案例精解(C#).北京:北京希望電子出版 社,2006: 369-387.
[13]萬峰科技著.ASP.NET網站開發四酷全書.北京:電子工業出版社2005: 168-187.
[14]馬軍著.精通ASP.NET網絡應用系統開發.北京:人民郵電出版社,2006: 312-356.
[15]百度百科.ADO.NET.http://baike.baidu.com/view/159519.htm.
[16]百度百科.C#.net.http://baike.baidu.com/view/406857.htm.
[17]王嫻,劉輝,倪遠平.B/S與C/S體系結構的應用研究[J].信息技術.2006(06).
[18]劉寧,陸榮國,繆萬勝.MVC體系架構從模式到框架的持續抽象進化[J].計算 機工程.2008(04).
[19]百度百科.asp.net.http://baike.baidu.com/view/6752.htm.
[20]W3CSchool 菜 鳥 教 程^ ASP.NET 教
程.http://www.w3cschool.cc/aspnet/aspnet-tutoriaLhtml.
[21]劉慶國,聶元銘.ASP. NET企業級開發案例精解.北京:人民郵電出版 社。2006: 258-276.
[22]王晟.Visual c#. NET數據庫開發經典案例解析.北京:清華大學出版社, 2005: 109-139.
[23]王立豐.Visual C#. NET項目開發實用案例.科學出版社.2006: 214-235.