版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘 要論壇系統(tǒng)是以萬維網(wǎng)服務(wù)為基礎(chǔ),以Web應(yīng)用服務(wù)功能為平臺,以數(shù)據(jù)庫系統(tǒng)為存儲,為學(xué)校等機(jī)構(gòu)提供信息交流服務(wù)的應(yīng)用系統(tǒng)。目前,各類機(jī)構(gòu)都需要此類信息交流平臺,現(xiàn)有的論壇系統(tǒng)不能面向特定行業(yè)或環(huán)境,通常是通用性很強(qiáng)的系統(tǒng),為適應(yīng)教育服務(wù)機(jī)構(gòu)面向?qū)W習(xí)方面的交流需求,提出了建設(shè)主要用于學(xué)習(xí)交流的論壇系統(tǒng)的需求。根據(jù)用戶的需求,開發(fā)了本論壇系統(tǒng)。本文介紹了論壇系統(tǒng)開發(fā)的研究背景和意義及國內(nèi)外發(fā)展?fàn)顩r,詳細(xì)介紹了課題采用的相關(guān)技術(shù)。結(jié)合學(xué)習(xí)論壇功能的基本要求,進(jìn)行了較詳細(xì)的分析研究,確定該系統(tǒng)主要功能包括四大模塊:用戶基本功能、論壇交流功能、用戶管理功能、系統(tǒng)數(shù)據(jù)的維護(hù)與管理功能。本文較為詳盡的闡述
2、了主要功能模塊的實(shí)現(xiàn)過程。本系統(tǒng)使用微軟Windows平臺常用的程序開發(fā)工具Visual Studio2005進(jìn)行開發(fā)。使用ASP.NET技術(shù)進(jìn)行B/S結(jié)構(gòu)的Web應(yīng)用開發(fā)完成論壇主要功能,使用Ajax.NET技術(shù)提升用戶體驗(yàn)。后臺數(shù)據(jù)庫使用微軟平臺常用的數(shù)據(jù)庫管理系統(tǒng)SQL Server進(jìn)行開發(fā),利用ADO.NET組件實(shí)現(xiàn)對數(shù)據(jù)庫的管理和操作。在以面向?qū)ο蟮某绦蛟O(shè)計技術(shù)為指導(dǎo)思想的前提下,完成了本系統(tǒng)的設(shè)計和實(shí)現(xiàn)過程。系統(tǒng)提供了更加符合學(xué)習(xí)習(xí)慣地交流平臺。關(guān)鍵詞:論壇系統(tǒng);ASP.NET;B/S結(jié)構(gòu);數(shù)據(jù)庫AbstractBBS system is based on the web serv
3、ice based on Web function, application service platform, the database system for storage, application system information exchange services for schools and other institutions. At present, all kinds of institutions are in need of such information exchange platform, not the BBS system existing for spec
4、ific industry or the environment, systems are usually very strong versatility, in order to adapt to the education service for the exchange of learning demand, construction mainly for the BBS system learning needs is proposed. According to the needs of users, to develop this BBS system.This paper int
5、roduces the system development background and significance of the research and development at home and abroad, introduces the related technology used in the subject3. Combined with the requirements of learning BBS function, are analyzed in detail, to determine the main function of this system includ
6、es four modules: user basic functions, the BBS function, user management, system data maintenance and management function. This paper detailed introduces the implementation of main function module.The system uses the Windows platform Microsoft commonly used program development tools Visual Studio200
7、5 development. The completion of the main functions of Web application development BBS B/S structure using ASP.NET technology, use Ajax.NET to enhance the user experience. Background database using Microsoft platform database management system SQL Server to develop, realize the management and operat
8、ion of the database using ADO.NET component. In the program design technology based on object oriented as the premise of guidance, completed the design and Realization of this system. The system provides a more consistent with the habit of learning exchange platform.Keyword: BBS system; ASP.NET; B/S
9、 structure; Database- 42 -目 錄摘 要IAbstractII目 錄I第1章 引 言- 1 -1.1 系統(tǒng)開發(fā)背景- 1 -1.2 國內(nèi)外發(fā)展?fàn)顩r- 1 -1.2.1 國內(nèi)方面- 1 -1.2.2 國外方面- 2 -1.3 研究內(nèi)容及目標(biāo)- 2 -第2章 相關(guān)技術(shù)綜述- 4 -2.1 Visual Studio- 4 -2.2 ASP.NET- 4 -2.3 ADO.NET- 5 -2.4 Ajax.NET- 5 -2.5 SQL Server- 6 -2.6 本章小結(jié)- 7 -第3章 需求分析與系統(tǒng)設(shè)計- 8 -3.1 需求分析- 8 -3.2 系統(tǒng)概要設(shè)計- 10
10、-3.2.1 系統(tǒng)體系結(jié)構(gòu)- 10 -3.2.2 系統(tǒng)組件結(jié)構(gòu)設(shè)計- 10 -3.2.3 系統(tǒng)功能結(jié)構(gòu)- 11 -3.3 系統(tǒng)詳細(xì)設(shè)計- 13 -3.3.1 系統(tǒng)功能設(shè)計- 13 -3.3.2 數(shù)據(jù)庫設(shè)計- 16 -3.4 本章小結(jié)- 20 -第4章 系統(tǒng)實(shí)現(xiàn)與測試- 21 -4.1 數(shù)據(jù)庫實(shí)現(xiàn)- 21 -4.2 系統(tǒng)功能實(shí)現(xiàn)- 22 -4.2.1 數(shù)據(jù)訪問- 22 -4.2.2 業(yè)務(wù)功能- 23 -4.2.3 功能實(shí)現(xiàn)- 24 -4.2.4 具體實(shí)現(xiàn)情況- 25 -4.3 系統(tǒng)測試- 34 -4.3.1 單元測試- 34 -4.3.2 負(fù)載測試- 37 -4.4 系統(tǒng)打包和安裝- 38 -4
11、.5 本章小結(jié)- 39 -第5章 結(jié) 論- 40 -參 考 文 獻(xiàn)- 41 -致 謝- 42 -沈陽城市學(xué)院(課程論文)第1章 引 言1.1 系統(tǒng)開發(fā)背景社會飛速發(fā)展,信息量急劇增長,在信息的交流過程中,互聯(lián)網(wǎng)占據(jù)著非常重要的位置。在互聯(lián)網(wǎng)飛速發(fā)展的今天,互聯(lián)網(wǎng)逐漸成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,在人們政治、經(jīng)濟(jì)、生活等各個方面發(fā)揮著重要的作用1。人們可以通過在互聯(lián)網(wǎng)上收到最新的消息,也可以通過互聯(lián)網(wǎng)進(jìn)行信息的交流。而論壇系統(tǒng)提供了人們進(jìn)行信息交流的一個途徑。論壇系統(tǒng)服務(wù)已經(jīng)是互聯(lián)網(wǎng)一種極為常見的互動交流服務(wù)。它可以用于公告,群組討論,社區(qū)內(nèi)通信,聯(lián)系,在線聊天,找工作等,利用網(wǎng)絡(luò)
12、實(shí)時,便捷的特點(diǎn)來方便人們的交流,聯(lián)系和娛樂。論壇可以向網(wǎng)友提供開放性的分類專題討論區(qū)服務(wù),可以在此發(fā)表自己的觀感、交流技術(shù)、經(jīng)驗(yàn)?zāi)酥寥松母形虻?。通過論壇的方式,增強(qiáng)個人與個人,團(tuán)體與團(tuán)體,個人與團(tuán)體之間的交流聯(lián)系,在互聯(lián)網(wǎng)上實(shí)現(xiàn)信息的傳遞,提高辦事效率。因此論壇建設(shè)在互聯(lián)網(wǎng)應(yīng)用上的地位顯而易見,它已成為現(xiàn)代人溝通和獲取信息的重要組成部分,從而倍受人們的重視2。為了大家方便的溝通和獲取信息,我利用ASP.NET和SQL Server數(shù)據(jù)庫等技術(shù)制作了一個學(xué)習(xí)論壇系統(tǒng)。該系統(tǒng)以互聯(lián)網(wǎng)技術(shù)為基礎(chǔ),建立友好的頁面。前臺任何人都可以進(jìn)行注冊,登錄和發(fā)帖討論。1.2 國內(nèi)外發(fā)展?fàn)顩r1.2.1 國內(nèi)方面
13、我國最早的BBS站是1991年建的北京長城站,當(dāng)時限于互聯(lián)網(wǎng)尚未開始普及,當(dāng)時用戶訪問量每天只有十幾人。1994年春,大陸第一個BBS網(wǎng)站曙光BBS站開通。隨著計算機(jī)以及外圍設(shè)備的大幅度降價、互聯(lián)網(wǎng)在國內(nèi)迅速發(fā)展。BBS被逐漸認(rèn)識,并以驚人的速度發(fā)展起來。我國的論壇系統(tǒng)在1997年達(dá)到一個發(fā)展頂峰,各種論壇系統(tǒng)大量涌現(xiàn),論壇功能不斷改進(jìn),內(nèi)容涉及領(lǐng)域幾乎無所不包3。此后,由于發(fā)展無需和疏于管理,在網(wǎng)絡(luò)泡沫的沖擊下,許多論壇系統(tǒng)消亡。之后,我國的論壇系統(tǒng)進(jìn)入調(diào)整和成熟時期,成為現(xiàn)實(shí)社會的縮影。隨著經(jīng)濟(jì)全球化和信息技術(shù)與信息產(chǎn)業(yè)迅速發(fā)展,Web2.0時代已經(jīng)到來,Web2.0和傳統(tǒng)的萬維網(wǎng)之間最主
14、要的區(qū)別就是用戶和用戶、產(chǎn)品供應(yīng)商以及企業(yè)之間更加緊密地協(xié)作。Web1.0時代,論壇系統(tǒng)基本滿足網(wǎng)民信息生活的需求,Web2.0時代論壇系統(tǒng)呈現(xiàn)出巨大的商業(yè)價值。當(dāng)論壇用戶數(shù)量達(dá)到引爆點(diǎn)后,論壇流量將開始飛速成長,遠(yuǎn)遠(yuǎn)大于Web1.0網(wǎng)站的流量增長速度。伴隨Web2.0時代的到來,論壇系統(tǒng)將朝著以下兩個方面發(fā)展:論壇系統(tǒng)將朝著即時性方面發(fā)展4?,F(xiàn)在動態(tài)網(wǎng)站使用Ajax技術(shù),在不需要刷新頁面就可以更新數(shù)據(jù),從而提升論壇內(nèi)容響應(yīng)的即時性5。此外,論壇系統(tǒng)還將朝著圖形化方向發(fā)展,使論壇系統(tǒng)提供更好的用戶體驗(yàn)。1.2.2 國外方面20世紀(jì)70年代,BBS誕生于的美國,1978年在美國芝加哥開發(fā)出基于8
15、080芯片的CBBS(Computerized Bulletin Board System),這是最早的BBS系統(tǒng)6。主要用于BBS成員之間的信息交流和網(wǎng)絡(luò)通訊。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,在20世紀(jì)90年代,BBS的主要應(yīng)用轉(zhuǎn)移到論壇系統(tǒng)上,也就是現(xiàn)在為大多數(shù)人所接受的論壇系統(tǒng)概念。論壇系統(tǒng)發(fā)展至今,目前世界上業(yè)余的論壇系統(tǒng)除了FIDONET以外,還有EGGNET、AlterNet和RBBS-Net等比較知名5。由于這些論壇系統(tǒng)和惠多網(wǎng)之間的信息交流不成問題,這就實(shí)現(xiàn)了跨網(wǎng)。國外對論壇系統(tǒng)的直接研究較少,間接的研究主要集中在對網(wǎng)絡(luò)社會、虛擬社區(qū)方面。針對網(wǎng)絡(luò)社會中的人際關(guān)系、行為方式、價值觀念和社
16、會結(jié)構(gòu)等,對虛擬社區(qū)自身特征和虛擬社區(qū)中的社會問題進(jìn)行廣泛研究7。1.3 研究內(nèi)容及目標(biāo)為實(shí)現(xiàn)論壇系統(tǒng)的設(shè)計與實(shí)現(xiàn),首先要研究ASP.NET網(wǎng)站開發(fā)技術(shù)。ASP.NET是統(tǒng)一的Web應(yīng)用程序平臺,它提供了為建立和部署企業(yè)級 Web 應(yīng)用程序所必需的服務(wù)8。ASP.NET為能夠面向任何瀏覽器或設(shè)備的更安全的、更強(qiáng)的可升級性、更穩(wěn)定的應(yīng)用程序提供了新的編程模型和基礎(chǔ)結(jié)構(gòu)。本網(wǎng)站的開發(fā)采用ASP.NET技術(shù)建設(shè),它具有簡單以及高度可定制化的優(yōu)點(diǎn),除此之外,ASP.NET 包含大量 HTML 控件,可以大大提高開發(fā)效率。此外,數(shù)據(jù)庫采用SQLSever 2005數(shù)據(jù)庫。數(shù)據(jù)庫設(shè)計是網(wǎng)站建設(shè)中非常重要的
17、一個環(huán)節(jié),有良好的數(shù)據(jù)結(jié)構(gòu)是信息系統(tǒng)的穩(wěn)固基礎(chǔ)。如果設(shè)計的不好,在后來的系統(tǒng)維護(hù)、變更和功能擴(kuò)充時,甚至在系統(tǒng)開發(fā)過程中,將會引起較大的問題,會遇到非常大的困難,大量的工作將會重復(fù)進(jìn)行9。系統(tǒng)設(shè)計實(shí)現(xiàn)過程,按照軟件生命周期完成。分別進(jìn)行系統(tǒng)需求分析、系統(tǒng)概要設(shè)計、系統(tǒng)詳細(xì)設(shè)計、編碼實(shí)現(xiàn)、系統(tǒng)測試等。本文結(jié)構(gòu)安排如下:第1章,介紹本課題的背景和擬解決的問題;第2章,概括性介紹基于ASP.NET的論壇系統(tǒng)所需要解決的體系結(jié)構(gòu)、數(shù)據(jù)存儲、數(shù)據(jù)處理等問題所涉及到的相關(guān)技術(shù);第3章,詳細(xì)分析以學(xué)習(xí)為目的論壇系統(tǒng)需要的功能,并根據(jù)需求分析結(jié)果做出模塊劃分,同時對所遇到的問題提出詳細(xì)的設(shè)計方案;第4章,闡述
18、了針對系統(tǒng)設(shè)計方案的具體實(shí)現(xiàn)方法,并對系統(tǒng)的功能實(shí)現(xiàn)做出了必要的測試;第5章,總結(jié)本文的工作,并對下一步研究工作進(jìn)行展望。第2章 相關(guān)技術(shù)綜述本系統(tǒng)使用微軟Windows平臺常用的程序開發(fā)工具Visual Studio進(jìn)行開發(fā)。使用ASP.NET技術(shù)進(jìn)行B/S結(jié)構(gòu)的Web應(yīng)用開發(fā)完成論壇主要功能,使用Ajax.NET技術(shù)提升用戶體驗(yàn)。后臺數(shù)據(jù)庫使用微軟平臺常用的數(shù)據(jù)庫管理系統(tǒng)SQL Server進(jìn)行開發(fā),利用ADO.NET組件實(shí)現(xiàn)對數(shù)據(jù)庫的管理和操作。在以面向?qū)ο蟮某绦蛟O(shè)計技術(shù)為指導(dǎo)思想的前提下,完成了本系統(tǒng)的設(shè)計和實(shí)現(xiàn)過程。2.1 Visual StudioVisual Studio是目前最
19、流行的Windows平臺應(yīng)用程序的集成開發(fā)環(huán)境(IDE),用于開發(fā)ASP.NET Web應(yīng)用程序、Web Services、桌面應(yīng)用程序和移動應(yīng)用程序。它使用的核心語言是由多種經(jīng)典程序設(shè)計語言發(fā)展而來的C#語言,以圖形用戶界面方式進(jìn)行開發(fā),透過集成開發(fā)工具與編譯器,配合連接數(shù)據(jù)庫的功能,構(gòu)成一個以面向?qū)ο蟪绦蛟O(shè)計(OOP)為中心的應(yīng)用程序開發(fā)工具。Visual Studio是全新的可視化編程環(huán)境,提供了一種方便、快捷的桌面應(yīng)用軟件、Web 應(yīng)用程序和Web Services開發(fā)的工具,它使用微軟Windows圖形用戶界面的許多先進(jìn)特性和設(shè)計思想10。Visual Studio提供了各種開發(fā)工具
20、,包括集成環(huán)境、圖像編輯(Image Editor),以及各種開發(fā)數(shù)據(jù)庫的應(yīng)用程序,對于廣大的程序開發(fā)人員來講,使用Visual Studio開發(fā)應(yīng)用軟件,會毫無疑問的大大地提高編程效率11。Visual Studio可以在后臺在窗體中操縱的控件編輯器中加入代碼來定義應(yīng)用程序的行為,同時還可以在同一個編輯器中通過設(shè)置斷點(diǎn)和監(jiān)控點(diǎn)等來調(diào)試程序。Visual Studio是基于.NET框架的,它同時也能開發(fā)跨平臺的應(yīng)用程序,如開發(fā)使用微軟操作系統(tǒng)的手機(jī)的程序等12??傮w來說是一個非常龐大的軟件,甚至包含代碼測試功能。這個版本的Visual Studio包含有眾多版本,分別面向不同的開發(fā)角色。同時還
21、永久提供免費(fèi)的Visual Studio Express版本。2.2 ASP.NETASP.NET建立在.NET框架的基礎(chǔ)上,為Web應(yīng)用程序開發(fā)提供了一組可簡化Web應(yīng)用程序生成的控件和基礎(chǔ)結(jié)構(gòu),是一種使嵌入網(wǎng)頁中的腳本可由因特網(wǎng)服務(wù)器執(zhí)行的服務(wù)器端腳本技術(shù),可以在通過HTTP請求文檔時再在Web服務(wù)器上動態(tài)創(chuàng)建它們,運(yùn)行于IIS(Internet Information Server服務(wù))之上的程序。ASP.NET包括可用于封裝通用HTML用戶界面元素(如文本框、按鈕和列表框)的一組控件13。但這些控件在Web服務(wù)器上運(yùn)行,并以HTML的形式將其用戶界面呈現(xiàn)在瀏覽器中。在服務(wù)器上,這些控件
22、公布面向?qū)ο蟮木幊棠P?,該模型為Web開發(fā)人員提供面向?qū)ο缶幊痰呢S富功能。ASP.NET還提供基礎(chǔ)結(jié)構(gòu)服務(wù),如狀態(tài)管理和進(jìn)程回收,從而可以進(jìn)一步減少開發(fā)人員必須編寫的代碼數(shù)量,并提高應(yīng)用程序的可靠性。另外,ASP.NET使用這些同樣的概念使開發(fā)人員能夠以服務(wù)的形式交付軟件。使用XML Web Services功能,ASP.NET開發(fā)人員可以編寫他們的業(yè)務(wù)邏輯,并使用ASP.NET基礎(chǔ)結(jié)構(gòu)通過SOAP交付該服務(wù)14。2.3 ADO.NETADO.NET起源于ADO(ActiveX Data Objects),是一個用于在微軟技術(shù)平臺中訪問數(shù)據(jù)的類組。使用ADO.NET名稱,是因?yàn)槲④洷砻髟?NE
23、T編程環(huán)境中優(yōu)先使用的數(shù)據(jù)訪問接口。ADO.NET提供了平臺互用性和可伸縮的數(shù)據(jù)訪問。ADO.NET增強(qiáng)了對非連接編程模式的支持,傳送的數(shù)據(jù)都是XML格式的,因此,任何能夠讀取XML格式的應(yīng)用程序都可以進(jìn)行數(shù)據(jù)處理。ADO.NET是一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢悗?。通常情況下,數(shù)據(jù)源是數(shù)據(jù)庫,但它同樣也能夠是文本文件、Excel表格或者XML文件15。ADO.NET允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進(jìn)行交互。然而并沒有與此相關(guān)的一系列類來完成這樣的工作。因?yàn)椴煌臄?shù)據(jù)源采用不同的協(xié)議,所以對于不同的數(shù)據(jù)源必須采用相應(yīng)的協(xié)議16。一些老式的數(shù)據(jù)源使用ODBC協(xié)議,許多新的數(shù)據(jù)源使用OleDB
24、協(xié)議,并且現(xiàn)在還不斷出現(xiàn)更多的數(shù)據(jù)源,這些數(shù)據(jù)源都可以通過.NET的ADO.NET類庫來進(jìn)行連接。ADO.NET提供與數(shù)據(jù)源進(jìn)行交互的相關(guān)的公共方法,但是對于不同的數(shù)據(jù)源采用一組不同的類庫。這些類庫稱為Data Providers,并且通常是以與之交互的協(xié)議和數(shù)據(jù)源的類型來命名的。2.4 Ajax.NETAjax.NET擴(kuò)展了現(xiàn)有的ASP.NET技術(shù),能夠方便快捷的應(yīng)用Ajax技術(shù)17。Ajax.NET使開發(fā)者在不了解更多的Ajax技術(shù)細(xì)節(jié)并且更少的改動Web開發(fā)模式下輕松的使用Ajax技術(shù)18。在較新版本的.NET Framework中它已經(jīng)被集成到了ASP.NET中。Ajax.NET 為A
25、SP.NET開發(fā)帶來了更好的用戶體驗(yàn)。Ajax.NET是一個類庫,可以方便的以控件或?qū)ο蟮姆绞綉?yīng)用其中的功能。Ajax.NET類庫的特殊性在于,它除了一個動態(tài)鏈接庫文件外還包括一系列的Javascript代碼19。Ajax.NET建立一個可以在任何Web開發(fā)環(huán)境都可以使用的客戶端類庫。Ajax技術(shù)本質(zhì)是利用Javascript實(shí)現(xiàn)的。然而,Ajax.NET不是簡單的使用Javascript代碼來封裝了Ajax功能,而是提供了一個更好用的,更有效的客戶端類庫。它使用類似的面向?qū)ο蟮母拍顦O大的擴(kuò)展了原生態(tài)的Javascript。2.5 SQL Server結(jié)構(gòu)化查詢語言(SQL, Structur
26、ed Query Language)的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。按照美國國家標(biāo)準(zhǔn)協(xié)會的規(guī)定,SQL被作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言20。SQL語句可以用來執(zhí)行各種各樣的操作,例如更新數(shù)據(jù)庫中的數(shù)據(jù),從數(shù)據(jù)庫中提取數(shù)據(jù)等。SQL Server是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能工具提供了企業(yè)級的數(shù)據(jù)管理。SQL Server數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。SQL Server數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心21。此外,SQL Server結(jié)合了分析、報表、集成和通知功能。這些
27、功能將有助于三個主要方面提高業(yè)務(wù):企業(yè)數(shù)據(jù)管理,SQL Server針對行業(yè)和分析應(yīng)用程序提供了一種更安全可靠和更高效的數(shù)據(jù)平臺。SQL Server的最新版本不僅是迄今為止SQL Server的最大發(fā)行版本,而且是最為可靠安全的版本;開發(fā)人員生產(chǎn)效率,SQL Server提供了一種端對端的開發(fā)環(huán)境,其中涵蓋了多種新技術(shù),可幫助開發(fā)人員大幅度提高生產(chǎn)效率;商業(yè)智能,SQL Server的綜合分析、集成和數(shù)據(jù)遷移功能使各個企業(yè)無論采用何種基礎(chǔ)平臺都可以擴(kuò)展其現(xiàn)有應(yīng)用程序的價值。構(gòu)建于SQL Server的商業(yè)智能解決方案使所有員工可以及時獲得關(guān)鍵信息,從而在更短的時間內(nèi)制定更好的決策22。2.6
28、 本章小結(jié)本章介紹了本課題中用來解決進(jìn)行系統(tǒng)開發(fā)的集成開發(fā)工具特點(diǎn),以及實(shí)現(xiàn)系統(tǒng)功能所使用到的Web開發(fā)技術(shù)、數(shù)據(jù)訪問技術(shù)、數(shù)據(jù)存儲等問題所涉及到的相關(guān)內(nèi)容。第3章 需求分析與系統(tǒng)設(shè)計本章以前面章節(jié)介紹的技術(shù)為基礎(chǔ),對學(xué)習(xí)論壇系統(tǒng)的業(yè)務(wù)需求進(jìn)行分析和設(shè)計,得出需求分析和系統(tǒng)設(shè)計的原則和思路。根據(jù)業(yè)務(wù)需求對系統(tǒng)的體系結(jié)構(gòu)進(jìn)行構(gòu)建,按功能設(shè)計、數(shù)據(jù)庫設(shè)計、界面設(shè)計的系統(tǒng)設(shè)計思路,進(jìn)行本項(xiàng)目系統(tǒng)設(shè)計。3.1 需求分析經(jīng)過對現(xiàn)有論壇系統(tǒng)常規(guī)功能和以學(xué)習(xí)為目的的交流平臺系統(tǒng)功能的分析,確定學(xué)習(xí)論壇系統(tǒng)的基本功能應(yīng)該包括:用戶基本功能,回復(fù)、發(fā)布、瀏覽帖子。此外,還應(yīng)該包括相應(yīng)的系統(tǒng)管理功能,包括:用戶信
29、息管理、系統(tǒng)信息管理、專業(yè)信息管理、帖子管理、回復(fù)管理等。具體的用例圖如圖3-1所示。圖3-1 論壇系統(tǒng)全局用例圖論壇系統(tǒng)中兩個主要角色是普通用戶和系統(tǒng)管理員,而且全局用例還可以進(jìn)一步細(xì)化。其中,普通用戶相關(guān)的用例有,登錄、注冊、注銷、修改密碼、修改個人信息、發(fā)布帖子、瀏覽帖子、回復(fù)帖子、發(fā)送個人消息、瀏覽個人消息等功能。與普通用戶相關(guān)的用例如圖3-2所示。系統(tǒng)管理員相關(guān)的用例,除了用戶基本功能外,還有,用戶審批、查詢用戶、刪除用戶、專業(yè)信息管理、屏蔽帖子、查詢帖子、回復(fù)管理、日志管理、帖子類型管理、用戶狀態(tài)信息管理等功能。與系統(tǒng)管理員相關(guān)的用例如圖3-3所示。圖3-2 普通用戶相關(guān)用例圖圖3
30、-3 管理員相關(guān)用例圖3.2 系統(tǒng)概要設(shè)計3.2.1 系統(tǒng)體系結(jié)構(gòu)本系統(tǒng)采用瀏覽器/服務(wù)器結(jié)構(gòu)(B/S 結(jié)構(gòu)),即大家熟知的瀏覽器和服務(wù)器結(jié)構(gòu)。B/S結(jié)構(gòu)系統(tǒng)通常是使用Internet的萬維網(wǎng)來實(shí)現(xiàn)的;B/S結(jié)構(gòu)系統(tǒng)適合應(yīng)用在廣域網(wǎng)上,通過HTTP協(xié)議傳輸數(shù)據(jù),通常傳輸?shù)氖羌冏址腍TML文檔;B/S結(jié)構(gòu)系統(tǒng)適合保存并提供公共性質(zhì)的信息;B/S結(jié)構(gòu)系統(tǒng)適合處理里并發(fā)訪問,并且開發(fā)時不用考慮此問題11。功能設(shè)計要落實(shí)到系統(tǒng)實(shí)現(xiàn)和部署設(shè)計上,接下來進(jìn)行本系統(tǒng)的配置方案設(shè)計。IIS服務(wù)和SQL Server服務(wù)可以同時運(yùn)行在一臺服務(wù)器上,所以Web服務(wù)器和數(shù)據(jù)庫服務(wù)器可以部署在同一物理服務(wù)器上。在
31、最初的部署設(shè)計中被設(shè)計部署到一個服務(wù)器上,如果Web服務(wù)或數(shù)據(jù)庫服務(wù)壓力過大也可將其分開部署,以便負(fù)載平衡。本系統(tǒng)配置方案硬件結(jié)構(gòu)如圖3-4所示。數(shù)據(jù)庫服務(wù)器局域網(wǎng)客戶端n客戶端1InternetWeb服務(wù)器圖3-4 系統(tǒng)配置方案硬件結(jié)構(gòu)3.2.2 系統(tǒng)組件結(jié)構(gòu)設(shè)計根據(jù)上一節(jié)配置方案以及軟件分層開發(fā)的設(shè)計理念,系統(tǒng)配置方案軟件結(jié)構(gòu)如圖3-5所示。在圖中箭頭表示各個組件之間的引用關(guān)系,箭頭指向被引用組件。在圖3-5中表明了各個組件之間的依賴關(guān)系。模型(Model)層對數(shù)據(jù)庫中的實(shí)體進(jìn)行描述,所以模型層依賴于數(shù)據(jù)庫的表結(jié)構(gòu)。模型層是數(shù)據(jù)庫中數(shù)據(jù)模型在軟件中的對象模型的映射,凡是需要進(jìn)行數(shù)據(jù)處理均需
32、要依賴對象模型,所以軟件系統(tǒng)中的所有組件都依賴于模型層。網(wǎng)頁界面(UI)數(shù)據(jù)庫(DB)數(shù)據(jù)訪問(DAL)業(yè)務(wù)邏輯(BLL)模型(Model)圖3-5 系統(tǒng)配置方案軟件結(jié)構(gòu)數(shù)據(jù)訪問層(DAL, Data Access Layer),訪問數(shù)據(jù)庫表中數(shù)據(jù),依賴于數(shù)據(jù)庫的表結(jié)構(gòu)。不同類型的數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)訪問方式有所不同,所以數(shù)據(jù)訪問層還依賴于數(shù)據(jù)庫管理系統(tǒng)的類型。數(shù)據(jù)訪問層提供了對數(shù)據(jù)庫中數(shù)據(jù)的增加、刪除、修改、刪除等功能。業(yè)務(wù)邏輯層(BLL, Business Logic Layer),獲取并處理數(shù)據(jù),依賴于數(shù)據(jù)訪問層。業(yè)務(wù)需求在軟件使用和軟件開發(fā)時都可能會有需求變化,將這部分功能獨(dú)立出來,在
33、需求變化時修改起來較為方便,并且對其它組件影響較小。業(yè)務(wù)邏輯層不能直接訪問數(shù)據(jù)庫,必須通過調(diào)用數(shù)據(jù)訪問層的方法來實(shí)現(xiàn),有時涉及到復(fù)雜的業(yè)務(wù)邏輯需要在數(shù)據(jù)訪問層專門設(shè)計方法。用戶界面(UI, User Interface)層,展示經(jīng)過業(yè)務(wù)處理后數(shù)據(jù),數(shù)據(jù)均從業(yè)務(wù)邏輯層獲取,所以依賴于業(yè)務(wù)邏輯層。展示給用戶的功能都需要符合相應(yīng)的業(yè)務(wù)邏輯需求,不容許用戶界面層直接從數(shù)據(jù)訪問層獲取數(shù)據(jù)。B/S結(jié)構(gòu)系統(tǒng)的用戶界面以網(wǎng)頁形式呈現(xiàn),網(wǎng)頁形式的用戶界面是部署在Web服務(wù)器上的,可以直接引用同樣部署在Web服務(wù)器上的業(yè)務(wù)邏輯層組件12。3.2.3 系統(tǒng)功能結(jié)構(gòu)本系統(tǒng)的功能可以劃分為三大模塊:用戶基本功能、論壇交
34、流功能、系統(tǒng)數(shù)據(jù)的維護(hù)與管理功能。并可以進(jìn)一步細(xì)化為具體功能模塊如圖3-6所示的功能結(jié)構(gòu)。用戶基本功能論壇系統(tǒng)功能模塊回復(fù)帖子回復(fù)管理帖子管理日志管理發(fā)布帖子瀏覽帖子系統(tǒng)信息管理刪除帖子用戶管理用戶功能管理員功能注銷登錄注冊修改密碼密碼修改登錄日志專業(yè)信息用戶類型圖3-6 論壇系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)功能總體劃分為用戶功能和管理員功能,系統(tǒng)功能模塊細(xì)化如下:用戶基本功能,包括用戶注冊、登錄、注銷、修改密碼等功能。(1) 新用戶注冊:用戶訪問本系統(tǒng),瀏覽器中顯示有注冊功能的主頁面。用戶選擇“注冊”進(jìn)入注冊界面,輸入相應(yīng)的個人信息:登錄名、密碼、用戶名、用戶真實(shí)姓名、性別、生日聯(lián)系方式、所屬專業(yè)、地址等
35、,即可創(chuàng)建于該用戶對應(yīng)的登錄信息。用戶信息經(jīng)驗(yàn)證合法后即可使用注冊的登錄信息登錄本論壇系統(tǒng)。(2) 用戶登錄:用戶訪問本系統(tǒng),瀏覽器中顯示帶登錄界面的主頁面。用戶輸入登錄名和密碼,提交頁面。系統(tǒng)驗(yàn)證用戶的登錄:若登錄名和密碼不正確,系統(tǒng)顯示“登錄名或密碼錯誤”,用戶可再次登錄;若登錄名和密碼正確,用戶登錄成功,系統(tǒng)顯示主頁面,并顯示該登錄權(quán)限對應(yīng)的操作鏈接。(3) 用戶注銷:用戶登錄系統(tǒng)之后,點(diǎn)擊“注銷”鏈接,系統(tǒng)銷毀與該登錄的會話有關(guān)的資源,呈現(xiàn)主頁面給用戶,可供其再次登錄系統(tǒng)。(4) 密碼修改:用戶登錄系統(tǒng)之后,可以選擇“修改密碼”進(jìn)入密碼修改界面,錄入用戶名、原密碼、新密碼及相關(guān)確認(rèn)信息
36、(如郵箱地址等),系統(tǒng)驗(yàn)證正確后,修改密碼并提示用戶“密碼修改成功”,同時發(fā)送郵件通知用戶。新密碼在用戶下次登錄時生效。帖子相關(guān)功能包括:瀏覽帖子、發(fā)布帖子、回復(fù)帖子、刪除帖子等。(1) 瀏覽帖子:用戶訪問本系統(tǒng),可以在主頁看到帖子標(biāo)題列表,用戶可以根據(jù)標(biāo)題內(nèi)容可選擇瀏覽帖子的具體內(nèi)容。(2) 發(fā)布帖子:普通用戶登錄后,可以選擇發(fā)布帖子功能,進(jìn)入發(fā)布帖子頁面,在該頁面中填寫帖子標(biāo)題和內(nèi)容,編輯完成后即可發(fā)布帖子。(3) 回復(fù)帖子:普通用戶登錄后,在帖子內(nèi)容瀏覽頁顯示回復(fù)輸入框,用戶輸入回復(fù)內(nèi)容,選擇回復(fù)即可完成對帖子的回復(fù)。(4) 刪除帖子:普通用戶登錄后,在帖子標(biāo)題列表中將顯示該用戶發(fā)布的帖
37、子的刪除功能,用戶選擇對應(yīng)帖子的刪除并確認(rèn),即可部門消息按鈕來刪除自己已經(jīng)成功發(fā)布的消息,通過確認(rèn)對話框?qū)τ脩舨僮鬟M(jìn)行二次確認(rèn)。系統(tǒng)管理功能通常是對系統(tǒng)后臺數(shù)據(jù)進(jìn)行增、刪、改、查、排序等操作,具體包括:(1) 用戶管理:用戶審批、刪除用戶信息、查詢用戶信息等;(2) 帖子管理:屏蔽帖子、查詢帖子;(3) 回復(fù)管理:屏蔽回復(fù)、查詢回復(fù)等;(4) 日志管理:登錄日志管理、密碼修改日志管理等;(5) 系統(tǒng)信息管理:用戶類型管理、專業(yè)信息管理等。3.3 系統(tǒng)詳細(xì)設(shè)計3.3.1 系統(tǒng)功能設(shè)計在設(shè)計系統(tǒng)功能時,先完成對應(yīng)功能的時序圖設(shè)計和功能描述。以下完成了主要功能的系統(tǒng)設(shè)計。(1) 登錄功能,時序圖如圖
38、3-7所示,時序描述見表3-1。圖3-7 登錄功能時序圖表3-1 登錄功能描述編號類名功能描述1Login.aspx顯示登錄界面,接收用戶輸入的登錄名和密碼,同時進(jìn)行輸入信息驗(yàn)證。2UserBLL通過IsLogin()方法判斷登錄名和密碼是否匹配。3UserDAL通過GetUserByLoginName()方法,從數(shù)據(jù)庫中獲取相應(yīng)的登錄名的用戶信息4Deafult.aspx顯示信息主界面,登錄信息驗(yàn)證正確,跳轉(zhuǎn)到本頁。(2) 注冊功能,時序圖如圖3-8所示,時序描述見表3-2。圖3-8 注冊功能時序圖表3-2 注冊功能描述編號類名功能描述1Register.aspx顯示注冊界面,接受用戶輸入的
39、登錄信息:登錄名,姓名,密碼,性別,生日,電子郵箱等。2UserBLL通過輸入驗(yàn)證信息方法判斷注冊信息是否正確。3UserDAL通過獲取注冊信息的方法,從數(shù)據(jù)庫中寫入注冊的登錄名和系統(tǒng)信息。4Deafult.aspx如果注冊信息正確跳轉(zhuǎn)到主頁面。(3) 帖子發(fā)布功能,時序圖如圖3-9所示,時序描述見表3-3。圖3-9 帖子發(fā)布功能時序圖表3-3 帖子發(fā)布功能描述編號類名功能描述1PublishMessage.aspx顯示帖子發(fā)布界面,接受并驗(yàn)證用戶輸入的帖子信息:標(biāo)題、內(nèi)容、所屬專業(yè)等,以及從系統(tǒng)獲取,登錄賬戶信息、當(dāng)前時間、客戶端IP等。2MessageBLL通過業(yè)務(wù)邏輯需求處理帖子對象信息
40、。3MessageDAL調(diào)用InsertMessage()方法訪問數(shù)據(jù)庫,實(shí)現(xiàn)添加帖子功能。4PublishMessage.aspx根據(jù)添加帖子情況提示用戶帖子發(fā)布結(jié)果。(4) 回復(fù)功能,時序圖如圖3-10所示,時序描述見表3-4。圖3-10 回復(fù)功能時序圖表3-4 回復(fù)功能描述編號類名功能描述1ShowMessage.aspx顯示帖子內(nèi)容界面,登錄用戶可以輸入回復(fù)內(nèi)容,并從系統(tǒng)獲取,登錄信息、當(dāng)前時間、客戶端IP等。2ReplyBLL通過業(yè)務(wù)邏輯需求處理回復(fù)對象信息。3ReplyDAL調(diào)用InsertReply()方法訪問數(shù)據(jù)庫,實(shí)現(xiàn)回復(fù)功能。4ShowMessage.aspx根據(jù)回復(fù)添加情
41、況提示用戶回復(fù)結(jié)果。其它的功能均按以上方法描述,并形成系統(tǒng)設(shè)計說明書,這里不再贅述。3.3.2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是項(xiàng)目開發(fā)的系統(tǒng)設(shè)計過程中非常重要的一個關(guān)鍵環(huán)節(jié),之所以強(qiáng)調(diào)數(shù)據(jù)庫的重要性,是因?yàn)槿绻O(shè)計不好,在后來的需求變更、功能擴(kuò)充、和系統(tǒng)維護(hù)時,甚至在系統(tǒng)開發(fā)過程中,將會引起比較大的問題,會遇到非常大的困難,大量工作將會重新進(jìn)行13。根據(jù)需求分析得到了數(shù)個關(guān)鍵抽象概念,九個關(guān)鍵抽象概念設(shè)計成一個實(shí)體并建立了如表3-5中所示的數(shù)據(jù)庫表對象。表3-5 數(shù)據(jù)庫表列表序號表名說明1Logins登錄信息表2LoginLogs登錄日志表3LoginStates登錄狀態(tài)信息表4Users用戶信息表5
42、ChangePasswordLogs修改密碼日志信息表Professions專業(yè)信息表7Messages帖子表8Notes個人消息信息9Replys回復(fù)信息表其中較為重要的表設(shè)計有登錄信息表(Logins),用來存儲登錄信息,例如,登錄名、密碼、登錄狀態(tài)、登錄次數(shù)、登錄等級、安全郵箱等與系統(tǒng)相關(guān)的用戶邏輯信息的表,該表以標(biāo)識列,即自增長字段作為主鍵,唯一標(biāo)識每條記錄。具體設(shè)計如表3-6所示。表3-6 登錄信息表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1LoginIDINTIDENTITY(1,1) PRIMARY KEY登錄編號2LoginNameVARCHAR(32)UNIQUE登錄名3Passwo
43、rdVARCHAR(32)密碼4ProfessionIDSMALLINTFOREIGN KEY所屬專業(yè)5NickNameVARCHAR(32)昵稱6RegistDateTimeDATETIME注冊時間7RegistIPVARCHAR(32)注冊IP8LastLoginDateTimeDATETIME最后登錄時間9LastLoginIPVARCHAR(32)最后登錄IP10LoginTimeBIGINT登錄次數(shù)11StateSMALLINTFOREIGN KEY登錄狀態(tài)12GradeSMALLINT等級13EmailVARCHAR(64)安全郵箱用戶信息表(Users),用來存儲用戶的姓名、生日
44、、證件號碼、通信地址、聯(lián)系方式、備注等信息,并且該表的證件號碼具有唯一約束,不容許同一個證件號碼出現(xiàn)多次。具體設(shè)計如表3-7所示。表3-7 用戶信息表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1LoginIDINTPRIMARY KEY登錄編號2UserNameNVARCHAR(20)姓名3BirthdayDATETIME出生日期4CardIDVARCHAR(32)UNIQUE證件號碼5PhoneVARCHAR(32)聯(lián)系方式6AddressVARCHAR(32)通信地址7RemarkVARCHAR(500)備注密碼修改日志表(ChangePasswordLogs),用來存儲登錄編號、原密碼、修改時間、
45、修改IP等信息,并且該表以登錄編號和密碼修改時間的組合鍵作為主鍵。具體設(shè)計如表3-8所示。表3-8 密碼修改日志表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1LoginIDINTPRIMARY KEYFOREIGN KEY登錄編號2OldPasswordVARCHAR(32)原密碼3UpdateTimeDATETIMEPRIMARY KEY修改時間4LoginIPVARCHAR(32)登錄IP登錄日志表(LoginLogs),用來存儲登錄編號、登錄時間、登錄IP等信息,并且該表以登錄編號和登錄時間的組合鍵作為主鍵。具體設(shè)計如表3-9所示。表3-9 登錄日志表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1LoginI
46、DINTPRIMARY KEYFOREIGN KEY登錄編號2LastLoginDateTimeDATETIMEPRIMARY KEY登錄時間3LastLoginIPVARCHAR(32)登錄IP專業(yè)信息表(Professions),用來存儲專業(yè)編號、專業(yè)名稱等信息,并且該表的專業(yè)名稱具有唯一約束,不容許同一個專業(yè)出現(xiàn)多次。具體設(shè)計如表3-10所示。表3-10專業(yè)信息表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1ProfessionIDINTPRIMARY KEY專業(yè)編號2ProfessionNameVARCHAR(32)UNIQUE專業(yè)名稱帖子表(Messages),用來存儲帖子標(biāo)題、帖子內(nèi)容、帖子發(fā)
47、布人、發(fā)布時間、發(fā)布IP、最后修改時間、最后修改IP、訪問次數(shù)、帖子類型、所屬專業(yè)等信息,具體設(shè)計如表3-11所示。表3-11 帖子信息表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1MessageIDINTPRIMARY KEY帖子編號2TitleVARCHAR(32)UNIQUE帖子標(biāo)題3ContentVARCHAR(8000)帖子內(nèi)容4PublisherINTFOREIGN KEY發(fā)布人5PublishDateTimeDATETIME發(fā)布時間6PublishIPVARCHAR(32)發(fā)布IP7LastModifyDateTimeDATETIME最后修改時間8LastModifyIPVARCHAR(3
48、2)最后修改IP9AccessTimeINT訪問次數(shù)10TypeINT帖子類型11ProfessionIDINTFOREIGN KEY專業(yè)名稱回復(fù)表(Replys),用來存儲回復(fù)人、回復(fù)時間、回復(fù)IP、回復(fù)內(nèi)容、主帖編號等信息,具體設(shè)計如表3-12所示。表3-12 回復(fù)信息表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1ReplyIDINTPRIMARY KEY回復(fù)編號2PublishDateTimeDATETIME回復(fù)時間3PublisherINTFOREIGN KEY回復(fù)人4PublishIPVARCHAR(32)回復(fù)IP5ContentVARCHAR(8000)回復(fù)內(nèi)容6MessageIDINTFO
49、REIGN KEY主帖編號個人消息表(Notes),用來存儲個人消息編號、個人消息標(biāo)題、個人消息內(nèi)容、發(fā)送人、接受人、發(fā)送時間、發(fā)送IP、讀取狀態(tài)等信息,具體設(shè)計如表3-13所示。表3-13 個人消息表序號數(shù)據(jù)字段數(shù)據(jù)類型約束存儲內(nèi)容1NoteIDINTPRIMARY KEY個人消息編號2TitleVARCHAR(32)個人消息標(biāo)題3ContentVARCHAR(8000)個人消息內(nèi)容4FromINTFOREIGN KEY發(fā)送人5ToINTFOREIGN KEY接受人6PublishDateTimeDATETIME發(fā)送時間7PublishIPVARCHAR(32)發(fā)送IP8StateBIT讀取
50、狀態(tài)3.4 本章小結(jié)本章主要介紹了學(xué)習(xí)論壇系統(tǒng)分析和設(shè)計方案。首先,分析了系統(tǒng)的分析原則和設(shè)計目標(biāo),并給出了系統(tǒng)B/S體系結(jié)構(gòu);然后,對系統(tǒng)架構(gòu)進(jìn)行了模塊劃分;最后,進(jìn)行了功能詳細(xì)設(shè)計和數(shù)據(jù)庫設(shè)計并對實(shí)現(xiàn)細(xì)節(jié)進(jìn)行了必要描述。第4章 系統(tǒng)實(shí)現(xiàn)與測試本系統(tǒng)使用微軟的.NET平臺完成開發(fā)工作,該平臺開發(fā)快捷,而且系統(tǒng)運(yùn)行比較穩(wěn)定。.NET平臺既可以完成B/S結(jié)構(gòu)系統(tǒng)開發(fā),在分析設(shè)計時決定使用B/S結(jié)構(gòu)來實(shí)現(xiàn)該系統(tǒng),因?yàn)?NET平臺的Web應(yīng)用開發(fā)效率較高,所以選擇.NET平臺進(jìn)行本項(xiàng)目開發(fā)14。4.1 數(shù)據(jù)庫實(shí)現(xiàn)本系統(tǒng)是以數(shù)據(jù)為中心的系統(tǒng),此類系統(tǒng)首先需要創(chuàng)建數(shù)據(jù)庫。因?yàn)楸鞠到y(tǒng)使用.NET平臺進(jìn)行開
51、發(fā),所以數(shù)據(jù)庫管理系統(tǒng)使用微軟的主流數(shù)據(jù)庫產(chǎn)品SQL Server2005實(shí)現(xiàn)。其具體實(shí)現(xiàn)情況如圖4-1所示。圖4-1 數(shù)據(jù)庫關(guān)系圖在進(jìn)行表設(shè)計時,除了關(guān)系圖中顯示的主鍵約束和外鍵約束外,其中字段較多的表,例如登錄信息表、帖子表、回復(fù)表、個人消息表示本系統(tǒng)的核心業(yè)務(wù)所涉及的表中均設(shè)置了必要的唯一約束、檢查約束、默認(rèn)約束等,此處不再贅述。4.2 系統(tǒng)功能實(shí)現(xiàn)本系統(tǒng)依據(jù)設(shè)計階段的組件結(jié)構(gòu)設(shè)計,采用分層結(jié)構(gòu)完成編碼實(shí)現(xiàn)工作,解決方案和項(xiàng)目創(chuàng)建情況如圖4-2所示。 圖4-2 系統(tǒng)解決方案結(jié)構(gòu)圖4.2.1 數(shù)據(jù)訪問數(shù)據(jù)訪問層(DAL),實(shí)現(xiàn)SQL語句生成功能,該層實(shí)現(xiàn)的方法與業(yè)務(wù)邏輯有一定的邏輯耦合。該
52、層運(yùn)行具有增加、刪除、修改、查詢等功能的SQL語句,也就是將常規(guī)的數(shù)據(jù)庫操作原子化,使用常規(guī)功能可以實(shí)現(xiàn)簡單業(yè)務(wù)邏輯。其中具有持久性影響的功能,即對數(shù)據(jù)庫中數(shù)據(jù)產(chǎn)生影響的功能使用增、刪、改語句實(shí)現(xiàn);具有非持久性影響的功能,即對數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行查詢操作,不對數(shù)據(jù)產(chǎn)生實(shí)際影響;此外,對于復(fù)雜業(yè)務(wù)邏輯的實(shí)現(xiàn)在該層的調(diào)用較為復(fù)雜,復(fù)雜業(yè)務(wù)邏輯需要在該層特殊處理15。其中具體方法如表4-1所示。將所有功能劃分為兩大類,常規(guī)數(shù)據(jù)功能和特殊數(shù)據(jù)訪問功能。常規(guī)數(shù)據(jù)訪問功能完全依賴于表結(jié)構(gòu),有固定的編寫方式可以使用模版生成;特殊數(shù)據(jù)訪問功能與復(fù)雜業(yè)務(wù)需求,需要特殊編寫。表4-1 數(shù)據(jù)訪問層的方法列表方法命名方法
53、功能描述添加Insert數(shù)據(jù)對象()添加一條記錄Insert數(shù)據(jù)對象集合()添加多條記錄,逐一添加,需要事務(wù)處理修改Update數(shù)據(jù)對象()修改一條記錄刪除Delete數(shù)據(jù)對象By主鍵()根據(jù)主鍵刪除一條記錄Delete數(shù)據(jù)對象By唯一鍵()根據(jù)唯一鍵刪除一條記錄Delete數(shù)據(jù)對象集合By條件()刪除符合條件的記錄查詢Get數(shù)據(jù)對象By主鍵()根據(jù)主鍵查詢一條記錄Get數(shù)據(jù)對象By唯一鍵()根據(jù)唯一鍵查詢一條記錄GetAll數(shù)據(jù)對象集合()獲取全部記錄Get數(shù)據(jù)對象集合By外鍵()獲取應(yīng)用相同外鍵值的從表中的所有記錄Get數(shù)據(jù)對象集合By條件()獲取符合條件的所有記錄其它根據(jù)業(yè)務(wù)邏輯功能與業(yè)
54、務(wù)邏輯相關(guān)的其它數(shù)據(jù)庫訪問功能,通常是較復(fù)雜的業(yè)務(wù)邏輯,需要事務(wù)處理等4.2.2 業(yè)務(wù)功能業(yè)務(wù)邏輯是應(yīng)用軟件的核心,業(yè)務(wù)邏輯是以數(shù)據(jù)處理為基礎(chǔ)的。業(yè)務(wù)處理邏輯由用戶提出,由開發(fā)人員實(shí)現(xiàn)。在具體實(shí)現(xiàn)過程中經(jīng)常涉及到邏輯表述不清或業(yè)務(wù)理解錯誤的問題,設(shè)計人員和編碼人員會將這種錯誤放大,等到發(fā)現(xiàn)問題時返工成本劇增。之前的系統(tǒng)分析已經(jīng)使用了UML的用例圖進(jìn)行了分析。在設(shè)計階段,尤其是業(yè)務(wù)邏輯設(shè)計,主要使用時序圖來描述業(yè)務(wù)邏輯及實(shí)現(xiàn)細(xì)節(jié),方便設(shè)計人員和開發(fā)人員溝通,有助于開發(fā)人員能夠以更簡潔的方式更快更準(zhǔn)確地理解系統(tǒng)。業(yè)務(wù)邏輯層(BLL),實(shí)現(xiàn)功能所有的業(yè)務(wù)邏輯需求。首先,實(shí)例化數(shù)據(jù)訪問對象,通過該對象完成對應(yīng)的數(shù)據(jù)庫操作。在進(jìn)行對應(yīng)的數(shù)據(jù)操作前,通常先完成數(shù)據(jù)整理和數(shù)據(jù)驗(yàn)證工作。數(shù)據(jù)整理包括字符串去掉左右空格、時間合法性等基本整理工作。數(shù)據(jù)驗(yàn)證工作包括例如密碼長度是否符合要求、注冊用戶名是否超長等,雖然以上驗(yàn)證在界面層通常已經(jīng)驗(yàn)證過,但為了保證完整的業(yè)務(wù)邏輯在業(yè)務(wù)邏輯層又重復(fù)實(shí)現(xiàn)。此外,數(shù)據(jù)驗(yàn)證還包括數(shù)據(jù)完整性驗(yàn)證例如檢查約束、唯一約束、外鍵約束等。當(dāng)出現(xiàn)數(shù)據(jù)不符合驗(yàn)證條件的情況時,應(yīng)該將錯誤原因的描述通過異常對象拋出給界面層,并對用戶做出明確的提示16。4.2.3 功能實(shí)現(xiàn)此前的所有工作都是為了最終的Web
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)業(yè)科技企業(yè)股權(quán)分紅及轉(zhuǎn)讓協(xié)議3篇
- 2024音樂素材版權(quán)質(zhì)押合同:視頻素材制作融資
- 2025年度新能源汽車共享平臺車輛掛靠管理合同3篇
- 2025年度智慧城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目施工合同范本3篇
- 2025年度漁船租賃與漁業(yè)產(chǎn)業(yè)鏈整合服務(wù)合同3篇
- 2024鐵路員工勞動協(xié)議樣本一
- 2025年中國汽輪機(jī)行業(yè)市場供需格局及投資規(guī)劃建議報告
- 2025年度個人汽車租賃合同綠色出行附加服務(wù)4篇
- 2025年度智能機(jī)器人研發(fā)與技術(shù)服務(wù)合作協(xié)議書4篇
- 2025年陜西西安人才市場有限公司招聘筆試參考題庫含答案解析
- 第1本書出體旅程journeys out of the body精教版2003版
- 臺資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書
- 羅盤超高清圖
- 參會嘉賓簽到表
- 機(jī)械車間員工績效考核表
- 2.48低危胸痛患者后繼治療評估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評論
0/150
提交評論