版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢 業(yè) 設(shè) 計(jì)(論 文)</p><p> 題 目 基于UML的書店在線銷售系統(tǒng) </p><p> 并列英文題 UML-Based Bookstore Online Sales System </p><p><b> 摘要</b></p><p>
2、; 隨著科技日新月異的發(fā)展,Internet已經(jīng)成為人們生活、工作、學(xué)習(xí)越來(lái)越離不開的平臺(tái)。Web技術(shù)已經(jīng)不在局限于單純地提供信息服務(wù),而是日益成為一個(gè)操作平臺(tái),為用戶提供強(qiáng)大的服務(wù)功能。例如網(wǎng)上電子商務(wù)、社會(huì)信息數(shù)據(jù)庫(kù)等。網(wǎng)絡(luò)實(shí)現(xiàn)了遠(yuǎn)程通訊,人們能夠通過計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行電子郵件的發(fā)送,召開網(wǎng)絡(luò)會(huì)議,網(wǎng)上購(gòu)物,甚至坐在家里就可以上大學(xué)(網(wǎng)上教育)。因此,考慮到我所學(xué)的專業(yè)知識(shí),及自己的能力,我決定做一個(gè)基于B/S體系架構(gòu)創(chuàng)建這個(gè)基于UM
3、L建模的書店在線銷售系統(tǒng),緊跟行業(yè)發(fā)展,滿足人們生活、學(xué)習(xí)的需要。</p><p> 本系統(tǒng)采用基本三層結(jié)構(gòu)建立一個(gè)基于B/S架構(gòu)的第三波書店在線銷售系統(tǒng),實(shí)現(xiàn)信息網(wǎng)絡(luò)化。登錄者可以注冊(cè)成為本系統(tǒng)的用戶,查詢圖書信息,將圖書放入購(gòu)物車,實(shí)現(xiàn)在線購(gòu)買和付款,及修改個(gè)人密碼和個(gè)人信息。在后臺(tái)管理員可以進(jìn)行訂單管理,用戶管理,圖書管理,圖片管理等,方便網(wǎng)站的管理與維護(hù)。</p><p> 本
4、系統(tǒng)中采用Microsoft Visual Studio 2008作為開發(fā)平臺(tái),使用SQLServer2005作為后臺(tái)數(shù)據(jù)庫(kù)。整個(gè)個(gè)性化頁(yè)面生成系統(tǒng)主要由使用ASP.NET技術(shù)開發(fā)實(shí)現(xiàn)個(gè)性化Web頁(yè)面生成。</p><p> 關(guān)鍵詞:UML、基本三層結(jié)構(gòu)、SQLServer數(shù)據(jù)庫(kù)、ASP.NET。</p><p><b> Abstract</b></p&g
5、t;<p> Along with the rapid development of science and technology, the Internet has become the platform of people's lives , work, and study, they can't depart from it .Web technology has not only limited
6、to provide information service, but also has increasingly become an operation platform, to provide powerful service functions for users.For example online e-commerce and social information database, etc.The remote commun
7、ication has come true,people can send E-mails,have a meeting and go shopping throug</p><p> This system uses a basic there-tier application and set up the third wave of online bookstore sales system
8、which is based on B/S structure,which can make information network come ture.You can register as users of the system,and then you can look up the informations of the books,put the books into the shopping cart and purchas
9、e and pay for them online.You can also change your password and personal information.In the background, the administrator can carry on the orders management,the library ma</p><p> The system uses Microsoft
10、Visual Studio 2008 as development platform and uses SQLServer2005 as backend database.The individual page generating system consists of using the Asp.net technology.</p><p> Keywords: UML, there-tier applic
11、ation, SQLServer database, ASP.NET.</p><p><b> 目 錄</b></p><p><b> 第一章 前言1</b></p><p> 1.1 課題背景1</p><p> 1.2 研究意義2</p><p> 1
12、.3 課題研究的主要工作3</p><p> 第二章 相關(guān)技術(shù)5</p><p> 2.1 基于UML語(yǔ)言的建模語(yǔ)言5</p><p> 2.2 三層結(jié)構(gòu)技術(shù)在系統(tǒng)中的應(yīng)用7</p><p> 2.3 用戶控件的應(yīng)用9</p><p> 2.4 數(shù)字水印效果的實(shí)現(xiàn)10</p><
13、;p> 2.5 ASP中session的用法10</p><p> 2.6 購(gòu)物車的實(shí)現(xiàn)原理11</p><p> 第三章 系統(tǒng)需求分析15</p><p> 3.1 系統(tǒng)的功能需求15</p><p> 3.2 系統(tǒng)設(shè)計(jì)思想16</p><p> 第四章 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)及其實(shí)現(xiàn)21&l
14、t;/p><p> 4.1 系統(tǒng)數(shù)據(jù)庫(kù)總體設(shè)計(jì)21</p><p> 4.2 部分?jǐn)?shù)據(jù)表的設(shè)計(jì)21</p><p> 第五章 系統(tǒng)總體設(shè)計(jì)及部分重要模塊的實(shí)現(xiàn)24</p><p> 5.1 部分界面的展示24</p><p> 5.2 三層結(jié)構(gòu)的實(shí)現(xiàn)25</p><p> 5.
15、3 登陸及注冊(cè)新用戶的實(shí)現(xiàn)28</p><p> 5.4 圖書增查改的實(shí)現(xiàn)34</p><p> 第六章系統(tǒng)測(cè)試38</p><p> 6.1 系統(tǒng)測(cè)試工具38</p><p> 6.2 簡(jiǎn)單的系統(tǒng)測(cè)試38</p><p><b> 第七章 總結(jié)1</b></p&
16、gt;<p><b> 致 謝2</b></p><p><b> 參考文獻(xiàn)3</b></p><p><b> 附錄A1</b></p><p><b> 第一章 前言</b></p><p><b> 1.1 課
17、題背景</b></p><p> 臨近畢業(yè),考慮三年來(lái)大學(xué)生活的點(diǎn)點(diǎn)滴滴,一直以來(lái)我都對(duì)網(wǎng)絡(luò)比較的感興趣,于是結(jié)合大學(xué)三年一直學(xué)習(xí)的C#.NET考慮做一個(gè)書店在線銷售系統(tǒng)。</p><p> 隨著21世紀(jì)的到來(lái),信息化時(shí)代已經(jīng)向我們走來(lái),這個(gè)時(shí)代的最重要的標(biāo)志就是計(jì)算機(jī)的廣泛應(yīng)用。如今社會(huì)上計(jì)算機(jī)應(yīng)用已經(jīng)達(dá)到非常普及的程度,隨處都可以見到計(jì)算機(jī)的身影。我們也熟悉了在社會(huì)各處
18、遇見它們的環(huán)境,家庭娛樂,學(xué)校的機(jī)房,金融場(chǎng)所,以及到處可見的網(wǎng)吧,計(jì)算機(jī)如水銀般無(wú)孔不入。我們甚至?xí)岩捎?jì)算機(jī)還將向哪里深入,還將控制哪個(gè)地方,當(dāng)然這前景依然是樂觀的。</p><p> 現(xiàn)在的計(jì)算機(jī)是由早期的電動(dòng)計(jì)算器發(fā)展而來(lái)的。1945年,世界上出現(xiàn)了第一臺(tái)電子數(shù)字計(jì)算機(jī)“ENIAC”,用于計(jì)算彈道。是由美國(guó)賓夕法尼亞大學(xué)莫爾電工學(xué)院制造的,但它的體積龐大,占地面積170多平方米,重量約30噸,消耗近10
19、0千瓦的電力。顯然,這樣的計(jì)算機(jī)成本很高,使用不便。1956年,晶體管電子計(jì)算機(jī)誕生了,這是第二代電子計(jì)算機(jī)。只要幾個(gè)大一點(diǎn)的柜子就可將它容下,運(yùn)算速度也大大地提高了。1959年出現(xiàn)的是第三代集成電路計(jì)算機(jī)。從20世紀(jì)70年代開始,這是電腦發(fā)展的最新階段。到1976年,由大規(guī)模集成電路和超大規(guī)模集成電路制成的“克雷一號(hào)”,使電腦進(jìn)入了第四代。超大規(guī)模集成電路的發(fā)明,使電子計(jì)算機(jī)不斷向著小型化、微型化、低功耗、智能化、系統(tǒng)化的方向更新?lián)Q代
20、。20世紀(jì)90年代,電腦向“智能”方向發(fā)展,制造出與人腦相似的電腦,可以進(jìn)行思維、學(xué)習(xí)、記憶、網(wǎng)絡(luò)通信等工作。進(jìn)入21世紀(jì),電腦更是筆記本化、微型化和專業(yè)化,每秒運(yùn)算速度超過100萬(wàn)次,不但操作簡(jiǎn)易、價(jià)格便宜,而且可以代替人們的部分腦力勞動(dòng),甚至在某些方面擴(kuò)展了人的智能。于是,今天的微型電子計(jì)算機(jī)就被形象地稱做電腦了。</p><p> 計(jì)算機(jī)技術(shù)的發(fā)展速度是其它科學(xué)行業(yè)不可比擬的,現(xiàn)代計(jì)算機(jī)是采用先進(jìn)的電子技
21、術(shù)來(lái)代替陳舊落后的機(jī)械或繼電器技術(shù),隨著大規(guī)模和超大規(guī)模集成電路的發(fā)展,應(yīng)用到計(jì)算機(jī)上,使計(jì)算機(jī)的體積越來(lái)越小,計(jì)算機(jī)的運(yùn)算速度越來(lái)越快,價(jià)格越來(lái)越低。但要想大幅度提高計(jì)算機(jī)的性能必將遇到難以逾越的障礙,科學(xué)家們把目光投向了最基本的物理原理上,未來(lái)光子、量子和分子計(jì)算機(jī)為代表的新技術(shù)將推動(dòng)新一輪超級(jí)計(jì)算技術(shù)革命。因此,面對(duì)當(dāng)前迅猛發(fā)展的信息化建設(shè)和靈活多變的信息系統(tǒng)的應(yīng)用,尋找一種易于維護(hù)、易于組件復(fù)用、交互性良好的、高效的Web應(yīng)用程
22、序開發(fā)方案,具有極其重要的意義,本文正是在這樣的背景下開展研究的。</p><p><b> 1.2 研究意義</b></p><p> 近年來(lái),隨著網(wǎng)絡(luò)技術(shù)和Internet的迅速發(fā)展,基于Browser/Server結(jié)構(gòu)的Web應(yīng)用,因其具有易用性、通用性和良好的可擴(kuò)展性等優(yōu)點(diǎn)而發(fā)展迅速,正逐漸成為實(shí)現(xiàn)企業(yè)管理信息系統(tǒng)的主流技術(shù)。而開發(fā)一個(gè)Web應(yīng)用系統(tǒng)是一項(xiàng)
23、浩大的工程,要求設(shè)計(jì)者能夠提出合理的系統(tǒng)架構(gòu)。合理的系統(tǒng)架構(gòu)可以減少開發(fā)及維護(hù)系統(tǒng)所用的資源,提升工作效率。因此,在Web企業(yè)級(jí)應(yīng)用系統(tǒng)開發(fā)過程中,設(shè)計(jì)模式的選定和應(yīng)用系統(tǒng)架構(gòu)的設(shè)計(jì)是一個(gè)重要環(huán)節(jié)。</p><p> 信息技術(shù)中具有重要地位的軟件產(chǎn)業(yè)發(fā)展速度更迅速,隨著軟件產(chǎn)業(yè)的規(guī)模越來(lái)越大和對(duì)軟件通用性的要求越來(lái)越強(qiáng),在軟件開發(fā)的各個(gè)階段都要求有盡可能的可交互性和可重用性,即要求有盡可能完善的規(guī)范和通用的工具
24、。因此在七十年代出現(xiàn)了各式各樣的建模語(yǔ)言,最多的時(shí)候有五六十種之多。這些建模語(yǔ)言,功能大體相近,但樣式大都不同,這給使用者帶來(lái)了很大的不便。用戶并不了解不同建模語(yǔ)言的優(yōu)缺點(diǎn)及相互之間的差異,因而很難根據(jù)應(yīng)用特點(diǎn)來(lái)選擇合適的建模語(yǔ)言。各國(guó)軟件開發(fā)人員歷經(jīng)各種比較和使用。最終,UML統(tǒng)一建模語(yǔ)言脫穎而出,成為軟件建模領(lǐng)域的佼佼者。因此當(dāng)今的軟件建?;臼茄芯炕赨ML建模的方案。利用UML采用面向?qū)ο蠓椒閃eb應(yīng)用程序建模,可以大大提高系
25、統(tǒng)開發(fā)的效率。</p><p> 隨著面向?qū)ο蠹夹g(shù)逐漸成為當(dāng)前計(jì)算機(jī)界關(guān)心的重點(diǎn),它成為當(dāng)今軟件開發(fā)方法的主流。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到很寬的范圍。如數(shù)據(jù)庫(kù)系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。當(dāng)然,在Web程序開發(fā)中,開發(fā)人員也經(jīng)常引入面向?qū)ο蠹夹g(shù)。面向?qū)ο筌浖到y(tǒng)設(shè)計(jì)的目標(biāo)是在支持可維護(hù)性的同時(shí),提高系統(tǒng)的可復(fù)用性。兩個(gè)目標(biāo)
26、存在同時(shí)達(dá)成的可能性,一個(gè)復(fù)用效率高的系統(tǒng)必定是一個(gè)維護(hù)方便的系統(tǒng)。因此,開發(fā)人員往往采用面向?qū)ο蠹夹g(shù)提高信息系統(tǒng)開發(fā)的效率。ASP.NET是創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的一種強(qiáng)大的服務(wù)器端技術(shù),是一種基于 B/S的應(yīng)用程序,可創(chuàng)建交互的Web頁(yè)面。ASP.NET頁(yè)面的開發(fā),包括數(shù)據(jù)綁定,狀態(tài)保持,母版頁(yè)和導(dǎo)航等。</p><p> 作為一個(gè)初學(xué)者,我希望自己可以根據(jù)自己所掌握的知識(shí),與當(dāng)前科技的發(fā)展相結(jié)合,使自己更好的掌握
27、所學(xué)的知識(shí),并且更加深入的了解當(dāng)前的科技發(fā)展方向,為以后的工作學(xué)習(xí)打下更加堅(jiān)實(shí)的基礎(chǔ)。</p><p> 1.3 課題研究的主要工作 </p><p> 本文以第三波書店在線銷售系統(tǒng)為背景,研究下面幾個(gè)方面的問題: </p><p> 利用Rational Rose和UML,進(jìn)行面向?qū)ο蟮男畔⑾到y(tǒng)的分析與設(shè)計(jì)的問題</p><p>
28、討論如何將建模語(yǔ)言UML及建模工具Rational Rose應(yīng)用到從需求分析到編碼的各個(gè)環(huán)節(jié)當(dāng)中。 通過對(duì)需求的深入理解使得項(xiàng)目開發(fā)從一開始就能按正確的分析和設(shè)計(jì)方法進(jìn)行。此后,借助 UML的一些成熟方法開發(fā)出可行的軟件設(shè)計(jì)方案,以編寫出最佳的軟件實(shí)現(xiàn),從而明顯提升所開發(fā)軟件的可擴(kuò)展性、易維護(hù)性以及可重用性。 </p><p> 2)利用三層構(gòu)架技術(shù)進(jìn)行系統(tǒng)設(shè)計(jì)及應(yīng)用</p><p>
29、 利用三層結(jié)構(gòu)實(shí)現(xiàn)系統(tǒng)的總體構(gòu)架,使系統(tǒng)的總體構(gòu)架清楚明了,并且通過此三層架構(gòu)的運(yùn)用,使系統(tǒng)適應(yīng)變化、利于維護(hù),同時(shí)將各功能模塊分離,有利于協(xié)作開發(fā)并且越來(lái)越多的企業(yè)在開發(fā)項(xiàng)目時(shí)采用三層結(jié)構(gòu)作為項(xiàng)目的基礎(chǔ)架構(gòu)。</p><p> 3)利用UML建模語(yǔ)言進(jìn)行系統(tǒng)需求分析</p><p> UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語(yǔ)言。它溶入了軟件工程領(lǐng)域的新思想、新方法和
30、新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)的全過程。</p><p> 4)利用用戶控件、封面數(shù)字水印等技術(shù)進(jìn)行頁(yè)面及圖片的顯示問題</p><p> 由于系統(tǒng)中多次用到登陸頁(yè)面和注冊(cè)頁(yè)面,這樣我使用了自己制作的一組自定義控件作為用戶控件,這樣不僅可以定義顯示界面,還可以編寫事件處理代碼,當(dāng)多個(gè)頁(yè)面包括有部分相同的用戶界面時(shí),可以將這些內(nèi)容相同的部
31、分提取出來(lái)。</p><p> 數(shù)字水印技術(shù)的使用保護(hù)了自己作品不被侵害,保護(hù)著作權(quán),防止他人盜用受保護(hù)的資源。</p><p><b> 第二章 相關(guān)技術(shù)</b></p><p> 2.1 基于UML語(yǔ)言的建模語(yǔ)言</p><p> UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語(yǔ)言。它溶入了軟件工程
32、領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)的全過程。</p><p> UML的本意是要成為一種標(biāo)準(zhǔn)的統(tǒng)一語(yǔ)言,使得IT專業(yè)人員能夠進(jìn)行計(jì)算機(jī)應(yīng)用程序的建模。UML的主要?jiǎng)?chuàng)始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他們最初都有自己的建模方法(OMT、OOSE和Booch),彼此之間存在著競(jìng)爭(zhēng)。最終,他們聯(lián)合起來(lái)
33、創(chuàng)造了一種開放的標(biāo)準(zhǔn)。UML成為"標(biāo)準(zhǔn)"建模語(yǔ)言的原因之一在于,它與程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)。(IBM Rational的UML建模工具被廣泛應(yīng)用于J2EE和.NET開發(fā)。)而且,UML符號(hào)集只是一種語(yǔ)言而不是一種方法學(xué)。這點(diǎn)很重要,因?yàn)檎Z(yǔ)言與方法學(xué)不同,它可以在不做任何更改的情況下很容易地適應(yīng)任何公司的業(yè)務(wù)運(yùn)作方式。</p><p> 2.1.1 IBM Rational Rose</p&g
34、t;<p> ?。?)IBM Rational Rose</p><p> IBM Rational軟件工具為開發(fā)人員和開發(fā)團(tuán)隊(duì)提供了整個(gè)開發(fā)生命周期的支持。單獨(dú)使用時(shí),Rational 軟件的每種工具在其各自市場(chǎng)領(lǐng)域中都處于領(lǐng)先地位。結(jié)合使用時(shí),它們更是提供了無(wú)與倫比的自動(dòng)化和易用性。Rational 軟件工具可以在 Windows、Unix、Linux 和大型機(jī)平臺(tái)上使用,并且可以支持絕大多數(shù)
35、語(yǔ)言、IDE 和操作環(huán)境,其中包括:Java、Eclipse、C/C++/C#、Visual Basic .NET、Microsoft .NET、COM/+、CORBA、100 多個(gè)針對(duì)實(shí)時(shí)和嵌入式系統(tǒng)開發(fā)人員的開發(fā)環(huán)境,以及最新的Internet/Web 服務(wù)標(biāo)準(zhǔn)。</p><p> ?。?)Rational Rose的特點(diǎn):</p><p> 保證模型和代碼高度一致</p>
36、;<p> Rose可以實(shí)現(xiàn)真正意義上的正向、逆向和雙向工程,可以方便快捷地建立軟件系統(tǒng)的原型模型,可縮短開發(fā)周期,降低維護(hù)成本,大幅度地提高程序的安全性,使編程過程更規(guī)范合理。</p><p><b> 支持多種語(yǔ)言</b></p><p> 用戶可以根據(jù)自己在開發(fā)語(yǔ)言方面的需要靈活選擇不同的版本。</p><p> 為
37、團(tuán)隊(duì)開發(fā)提供強(qiáng)有力的支持</p><p> 支持模型的Internet發(fā)布</p><p> 生產(chǎn)使用簡(jiǎn)單且定制靈活的文檔</p><p> 支持關(guān)系數(shù)據(jù)庫(kù)的建模</p><p> 2.1.2 實(shí)體建模</p><p> 軟件行業(yè)中最常被誤解的一個(gè)術(shù)語(yǔ)實(shí)際上是我們非常熟悉的一個(gè):實(shí)體關(guān)系(ER)。這是因?yàn)槲覀?/p>
38、經(jīng)常缺少一種能被開發(fā)團(tuán)隊(duì)的所有成員理解的共同定義。我們假定團(tuán)隊(duì)的每個(gè)成員都對(duì)與 ER 和 ER 建模相關(guān)的方法學(xué)、語(yǔ)法和機(jī)制(mechanics)有著同樣清楚的理解。</p><p> ER 建模本身定義了在基于信息的系統(tǒng)的分析和設(shè)計(jì)中用到的方法。數(shù)據(jù)庫(kù)設(shè)計(jì)者通常使用該方法來(lái)收集需求,并定義數(shù)據(jù)庫(kù)系統(tǒng)的構(gòu)架。該方法的輸出是實(shí)體類型、關(guān)系類型和約束條件的清單。</p><p> 2.1.
39、3 UML中的簡(jiǎn)單約束</p><p> 不幸的是,ER 建模沒有為 ER 圖的表示定義圖解語(yǔ)法。數(shù)據(jù)庫(kù)團(tuán)隊(duì)經(jīng)常單獨(dú)使用表示法,并且將 ER 建模限制在關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)的范圍內(nèi)。我們需要一種能讓整個(gè)系統(tǒng)開發(fā)團(tuán)隊(duì)的成員獲得更廣泛理解的表示法。</p><p> 統(tǒng)一建模語(yǔ)言(UML)是一種分析人員和軟件開發(fā)人員廣泛使用的語(yǔ)言,特別適合 ER 圖的圖形化表示。通過使用 UML,開發(fā)團(tuán)隊(duì)受益匪
40、淺,這些獲益包括團(tuán)隊(duì)成員間的交流更加簡(jiǎn)單,由于該語(yǔ)言是基于原模型的,因而更容易與知識(shí)庫(kù)集成,標(biāo)準(zhǔn)化輸入/輸出格式(XMI)的使用,應(yīng)用建模和數(shù)據(jù)建模的普遍使用,從分析到實(shí)施再到部署的統(tǒng)一表示,以及規(guī)格說(shuō)明書的完整性。</p><p> 2.2 三層結(jié)構(gòu)技術(shù)在系統(tǒng)中的應(yīng)用</p><p> 2.2.1三層架構(gòu)(3-tier application) </p><p&g
41、t; ?、?、三層架構(gòu)(3-tier application) 通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表示層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。</p><p> 圖2.1 三層結(jié)構(gòu)之間的關(guān)系</p><p> 1)、表示層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候他的所見所得。</p&g
42、t;<p> 2)、業(yè)務(wù)邏輯層(BLL):針對(duì)具體問題的操作,也可以說(shuō)是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理。</p><p> 業(yè)務(wù)邏輯層(Business Logic Layer)無(wú)疑是系統(tǒng)架構(gòu)中體現(xiàn)核心價(jià)值的部分。它的關(guān)注點(diǎn)主要集中在業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實(shí)現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計(jì),也即是說(shuō)它是與系統(tǒng)所應(yīng)對(duì)的領(lǐng)域(Domain)邏輯有關(guān)。</p><p>
43、業(yè)務(wù)邏輯層在體系架構(gòu)中的位置很關(guān)鍵,它處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對(duì)于上層而言是“無(wú)知”的,改變上層的設(shè)計(jì)對(duì)于其調(diào)用的底層而言沒有任何影響。如果在分層設(shè)計(jì)時(shí),遵循了面向接口設(shè)計(jì)的思想,那么這種向下的依賴也應(yīng)該是一種弱依賴關(guān)系。因而在不改變接口定義的前提下,理想的分層式架構(gòu),應(yīng)該是一個(gè)支持可抽取、可替換的“抽屜”式架構(gòu)。正因?yàn)槿绱?,業(yè)務(wù)邏輯層的設(shè)計(jì)對(duì)于一
44、個(gè)支持可擴(kuò)展的架構(gòu)尤為關(guān)鍵,因?yàn)樗缪萘藘蓚€(gè)不同的角色。對(duì)于數(shù)據(jù)訪問層而言,它是調(diào)用者;對(duì)于表示層而言,它卻是被調(diào)用者。依賴與被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上,如何實(shí)現(xiàn)依賴關(guān)系的解耦,則是除了實(shí)現(xiàn)業(yè)務(wù)邏輯之外留給設(shè)計(jì)師的任務(wù)。</p><p> 3)、數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫(kù),針對(duì)數(shù)據(jù)的增添、刪除、修改、更新、查找等。</p><p> 數(shù)據(jù)訪問層:有時(shí)候也稱為
45、是持久層,其功能主要是負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問,可以訪問數(shù)據(jù)庫(kù)系統(tǒng)、二進(jìn)制文件、文本文檔或是XML文檔。簡(jiǎn)單的說(shuō)法就是實(shí)現(xiàn)對(duì)數(shù)據(jù)表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就會(huì)包括對(duì)象和數(shù)據(jù)表之間的mapping,以及對(duì)象實(shí)體的持久化。</p><p> 2.2.2如何建立三層構(gòu)架</p><p> 決定如何劃分你的層(是物理的還是不是物理的)
46、是非常重要的。在劃分時(shí)應(yīng)考慮下面因素:</p><p> 1、注意如果劃分成物理層,你的應(yīng)用程序的速度會(huì)因?yàn)椴煌?wù)器在網(wǎng)絡(luò)中通信的延遲而減慢。所以,如果你決定用物理層,請(qǐng)確保獲得性能的提升大于性能的降低。</p><p> 2、按照n層架構(gòu)設(shè)計(jì)你的應(yīng)用程序。</p><p> 3、部署以及維護(hù)物理分布式的應(yīng)用程序的成本是很高的。你首先需要不止一臺(tái)服務(wù)器,你還
47、需要網(wǎng)絡(luò)硬件來(lái)連接這些服務(wù)器。在這種情況下,部署應(yīng)用變得更加復(fù)雜!因此這樣做之前請(qǐng)確定這樣做是否值得。</p><p> 另外還要注意,你的應(yīng)用程序的每層都做何使用。你也許因?yàn)檫\(yùn)行的多個(gè)服務(wù)都需要某一層而把該層放到別臺(tái)服務(wù)器上。例如,你也許會(huì)因?yàn)榻o不同的用戶定制不同的表現(xiàn)層,而將業(yè)務(wù)邏輯層放于別處;你也許會(huì)因?yàn)檫€有其它的應(yīng)用訪問同一個(gè)數(shù)據(jù)庫(kù),而把SQL server服務(wù)放到別處。 </p>
48、<p> 2.3 用戶控件的應(yīng)用</p><p> 在 ASP.NET 中,使用與 ASP.NET 頁(yè)相同的語(yǔ)法,以聲明方式創(chuàng)作的服務(wù)器控件。該控件用 .ascx 擴(kuò)展名保存為文本文件。用戶控件允許對(duì)頁(yè)功能進(jìn)行分區(qū)和重用。第一次請(qǐng)求時(shí),頁(yè)框架立即將用戶控件分析為從System.Web.UI.UserControl 派生的類,并將該類編譯到一個(gè)程序集中;頁(yè)框架在后面的請(qǐng)求中將重用該程序集。因?yàn)橛脩?/p>
49、控件不需要預(yù)編譯就可以進(jìn)行頁(yè)面樣式創(chuàng)作和部署,所以開發(fā)起來(lái)很容易。</p><p> 通常,開發(fā)服務(wù)器控件有兩種方法:</p><p> 第一種方法:就是所說(shuō)的自定義控件開發(fā),即繼承如Control的基類實(shí)現(xiàn)服務(wù)器控件。</p><p> 第二種方法:即開發(fā)用戶控件。創(chuàng)建用戶控件與創(chuàng)建普通ASP.NET Web頁(yè)面類似,但是如同簡(jiǎn)述的那樣,它們會(huì)有些不同。下面
50、列舉了創(chuàng)建用戶控件必須采取的主要步驟:</p><p> ?。?)創(chuàng)建一個(gè)擴(kuò)展名為.ascx的文本文件。這是用戶控件和ASP.NET Web頁(yè)面的第一個(gè)不同點(diǎn),后者使用的擴(kuò)展名為.aspx。</p><p> ?。?)在文本文件頂部添加@Control指令,并通過Language屬性來(lái)設(shè)置所選擇的編程語(yǔ)言,例如C#。這是用戶控件和Web頁(yè)面的第二個(gè)不同點(diǎn),后者使用@Page指令而不是@Co
51、ntrol。</p><p> ?。?)向文本文件添加HTML標(biāo)記文本和ASP.NET服務(wù)器控件。可以添加除html、body和form之外的任何HTML標(biāo)記。這是因?yàn)橛脩艨丶荒軉为?dú)使用,而必須作為Web頁(yè)面的一部分使用。這是用戶控件和Web頁(yè)面的第3個(gè)不同點(diǎn)。由于Web頁(yè)面自身獨(dú)立,因此最終用戶能夠直接訪問它,對(duì)于用戶控件則不是這樣。</p><p> 下面圖示為本系統(tǒng)中我使用的一個(gè)
52、控件:</p><p> 圖2.2 用戶控件的利用</p><p> 2.4 數(shù)字水印效果的實(shí)現(xiàn)</p><p> 數(shù)字水印(Digital Watermark)技術(shù)是將與多媒體內(nèi)容相關(guān)或不相關(guān)的一些標(biāo)示信息直接嵌入多媒體內(nèi)容當(dāng)中,但不影響原內(nèi)容的使用價(jià)值,并不容易被人的知覺系統(tǒng)覺察或注意到。通過這些隱藏在多媒體內(nèi)容中的信息,可以達(dá)到確認(rèn)內(nèi)容創(chuàng)建者、購(gòu)買者,或
53、者是否真實(shí)完整。數(shù)字水印是信息隱藏技術(shù)的一個(gè)重要研究方向。</p><p> 數(shù)字水印效果的三種實(shí)現(xiàn)方法如下:</p><p><b> 直接編輯每張圖片</b></p><p> 使用圖片編輯工具,對(duì)每張圖片進(jìn)行編輯。這種方法可以說(shuō)是省腦力,費(fèi)人工。</p><p> 編程實(shí)現(xiàn)批量編輯圖片</p>
54、<p> 通過編程方式給圖片批量添加數(shù)字水印效果。這種方式解決了上一種方法的問題,不過它也有一個(gè)問題,就是破壞了原始圖片。</p><p> 在圖片顯示時(shí),動(dòng)態(tài)添加數(shù)字水印效果</p><p> 能不能不修改原始圖片,只在服務(wù)器發(fā)送圖片到客戶端前我們做一些處理,動(dòng)態(tài)的添加水印效果呢?答案是肯定的,就是使用HttpHandler技術(shù)。</p><p>
55、;<b> 2.3 水印圖片</b></p><p> 在我的網(wǎng)站系統(tǒng)中,我是通過創(chuàng)建HttpHandler程序來(lái)動(dòng)態(tài)實(shí)現(xiàn)數(shù)字水印效果的。</p><p> 2.5 ASP中session的用法</p><p> Session其實(shí)指的就是訪問者從到達(dá)某個(gè)特定主頁(yè)到離開為止的那段時(shí)間。每一訪問者都會(huì)單獨(dú)獲得一個(gè)Session。在Web
56、應(yīng)用程序中,當(dāng)一個(gè)用戶訪問該應(yīng)用時(shí),Session類型的變量可以供這個(gè)用戶在該Web應(yīng)用的所有頁(yè)面中共享數(shù)據(jù);如果另一個(gè)用戶也同時(shí)訪問該Web應(yīng)用,他也擁有自己的Session變量,但兩個(gè)用戶之間無(wú)法通過Session變量共享信息,而Application類型的變更則可以實(shí)現(xiàn)站點(diǎn)多個(gè)用戶之間在所有頁(yè)面中共享信息。</p><p> 語(yǔ)法:Session.collection|property|method<
57、;/p><p> 集合:Contents 包含已用腳本命令添加到會(huì)話中的項(xiàng)目。 StaticObjects 包含通過 <OBJECT> 標(biāo)記創(chuàng)建的并給定了會(huì)話作用域的對(duì)象。 </p><p> 屬性:CodePage 將用于符號(hào)映射的代碼頁(yè)。 LCID 現(xiàn)場(chǎng)標(biāo)識(shí)。 Sess
58、ionID 返回用戶的會(huì)話驗(yàn)證。 Timeout 應(yīng)用程序會(huì)話狀態(tài)的超時(shí)時(shí)限,以分鐘為單位。 </p><p> 方法:Abandon 該方法破壞 Session 對(duì)象并釋放其資源。 </p><p> 事件:global.asa 文件中聲明下列事件的腳本。</p><p&g
59、t; Session_OnEnd Session_OnStart </p><p> 2.6 購(gòu)物車的實(shí)現(xiàn)原理</p><p> 購(gòu)物車相當(dāng)于現(xiàn)實(shí)中超市的購(gòu)物車,不同的是一個(gè)是實(shí)體車,一個(gè)是虛擬車而已。用戶可以在購(gòu)物網(wǎng)站的不同頁(yè)面之間跳轉(zhuǎn),以選購(gòu)自己喜愛的商品,點(diǎn)擊購(gòu)買時(shí),該商品就自動(dòng)保存到你的購(gòu)物車中,重復(fù)選購(gòu)后,最后將選中的所有商品放在購(gòu)物車中統(tǒng)一到付款臺(tái)結(jié)
60、賬,這也是盡量讓客戶體驗(yàn)到現(xiàn)實(shí)生活中購(gòu)物的感覺。服務(wù)器通過追蹤每個(gè)用戶的行動(dòng),以保證在結(jié)賬時(shí)每件商品都物有其主。</p><p> 購(gòu)物車的功能包括以下幾項(xiàng):</p><p> 把商品添加到購(gòu)物車,即訂單</p><p> 刪除購(gòu)物車中已定購(gòu)的商品</p><p> 修改購(gòu)物車中某一本圖書的訂購(gòu)</p><p>
61、;<b> 清空購(gòu)物車</b></p><p> 顯示購(gòu)物車中商品清單及數(shù)量、價(jià)格</p><p> 實(shí)現(xiàn)購(gòu)物車的關(guān)鍵在于服務(wù)器識(shí)別每一個(gè)用戶并維持與他們的聯(lián)系。但是HTTP協(xié)議是一種“無(wú)狀態(tài)(Stateless)”的協(xié)議,因而服務(wù)器不能記住是誰(shuí)在購(gòu)買商品,當(dāng)把商品加入購(gòu)物車時(shí),服務(wù)器也不知道購(gòu)物車?yán)镌扔行┦裁矗沟糜脩粼诓煌?yè)面間跳轉(zhuǎn)時(shí)購(gòu)物車無(wú)法“隨身攜帶”
62、,這都給購(gòu)物車的實(shí)現(xiàn)造成了一定的困難。</p><p> 目前購(gòu)物車的實(shí)現(xiàn)主要是通過cookie、session或結(jié)合數(shù)據(jù)庫(kù)的方式。下面分析它們的機(jī)制及作用。</p><p><b> 1. cookie</b></p><p> cookie是由服務(wù)器產(chǎn)生,存儲(chǔ)在客戶端的一段信息。它定義了一種Web服務(wù)器在客戶端存儲(chǔ)和返回信息的機(jī)制,c
63、ookie文件它包含域、路徑、生存期、和由服務(wù)器設(shè)置的變量值等內(nèi)容。當(dāng)用戶以后訪問同一個(gè)Web服務(wù)器時(shí),瀏覽器會(huì)把cookie原樣發(fā)送給服務(wù)器。通過讓服務(wù)器讀取原先保存到客戶端的信息,網(wǎng)站能夠?yàn)闉g覽者提供一系列的方便,例如在線交易過程中標(biāo)識(shí)用戶身份、安全要求不高的場(chǎng)合避免用戶重復(fù)輸入名字和密碼、門戶網(wǎng)站的主頁(yè)定制、有針對(duì)性地投放廣告等等。利用cookie的特性,大大擴(kuò)展了WEB應(yīng)用程序的功能,不僅可以建立服務(wù)器與客戶機(jī)的聯(lián)系,因?yàn)閏oo
64、kie可以由服務(wù)器定制,因此還可以將購(gòu)物信息生成cookie值存放在客戶端,從而實(shí)現(xiàn)購(gòu)物車的功能。用基于cookie的方式實(shí)現(xiàn)服務(wù)器與瀏覽器之間的會(huì)話或購(gòu)物車,有以下特點(diǎn):</p><p> cookie存儲(chǔ)在客戶端,且占用很少的資源,瀏覽器允許存放300個(gè)cookie,每個(gè)cookie的大小為4KB,足以滿足購(gòu)物車的要求,同時(shí)也減輕了服務(wù)器的負(fù)荷;</p><p> cookie為瀏
65、覽器所內(nèi)置,使用方便。即使用戶不小心關(guān)閉了瀏覽器窗口,只要在cookie定義的有效期內(nèi),購(gòu)物車中的信息也不會(huì)丟失;</p><p> cookie不是可執(zhí)行文件,所以不會(huì)以任何方式執(zhí)行,因此也不會(huì)帶來(lái)病毒或攻擊用戶的系統(tǒng);</p><p> 基于cookie的購(gòu)物車要求用戶瀏覽器必須支持并設(shè)置為啟用cookie,否則購(gòu)物車則失效;</p><p> 存在著關(guān)于
66、cookie侵犯訪問者隱私權(quán)的爭(zhēng)論,因此有些用戶會(huì)禁止本機(jī)的cookie功能。</p><p> 2. session</p><p> session是實(shí)現(xiàn)購(gòu)物車的另一種方法。session提供了可以保存和跟蹤用戶的狀態(tài)信息的功能,使當(dāng)前用戶在session中定義的變量和對(duì)象能在頁(yè)面之間共享,但是不能為應(yīng)用中其他用戶所訪問,它與cookie最重大的區(qū)別是,session將用戶在會(huì)話期
67、間的私有信息存儲(chǔ)在服務(wù)器端,提高了安全性。在服務(wù)器生成session后,客戶端會(huì)生成一個(gè)sessionid識(shí)別號(hào)保存在客戶端,以保持和服務(wù)器的同步。這個(gè)sessionid是只讀的,如果客戶端禁止cookie功能,session會(huì)通過在URL中附加參數(shù),或隱含在表單中提交等其他方式在頁(yè)面間傳送。因此利用session實(shí)施對(duì)用戶的管理則更為安全、有效。</p><p> 同樣,利用session也能實(shí)現(xiàn)購(gòu)物車,這種
68、方式的特點(diǎn)是:</p><p> ? 1)session用新的機(jī)制保持與客戶端的同步,不依賴于客戶端設(shè)置;</p><p> ? 2)與cookie相比,session是存儲(chǔ)在服務(wù)器端的信息,因此顯得更為安全,因此可將身份標(biāo)示,購(gòu)物等信息存儲(chǔ)在session中;</p><p> ? 3)ses
69、sion會(huì)占用服務(wù)器資源,加大服務(wù)器端的負(fù)載,尤其當(dāng)并發(fā)用戶很多時(shí),會(huì)生成大量的session,影響服務(wù)器的性能;</p><p> ? 因?yàn)閟ession存儲(chǔ)的信息更敏感,而且是以文件形式保存在服務(wù)器中,因此仍然存在著安全隱患。</p><p> 3. 連接數(shù)據(jù)庫(kù)的方式</p><p> 這也是目前較普遍的模式,在這種方式中,數(shù)據(jù)庫(kù)承擔(dān)
70、著存儲(chǔ)購(gòu)物信息的作用,session或cookie則用來(lái)跟蹤用戶。這種方式具有以下特點(diǎn):</p><p> 數(shù)據(jù)庫(kù)與cookie分別負(fù)責(zé)記錄數(shù)據(jù)和維持會(huì)話,能發(fā)揮各自的優(yōu)勢(shì),使安全性和服務(wù)器性能都得到了提高。</p><p> 每一個(gè)購(gòu)物的行為,都要直接建立與數(shù)據(jù)庫(kù)的連接,直至對(duì)表的操作完成后,連接才釋放。當(dāng)并發(fā)用戶很多時(shí),會(huì)影響數(shù)據(jù)庫(kù)的性能,因此,這對(duì)數(shù)據(jù)庫(kù)的性能提出了更高的要求。&
71、lt;/p><p> 使cookie維持會(huì)話有賴客戶端的支持。</p><p><b> 各種方式的選擇:</b></p><p> 雖然cookie可用來(lái)實(shí)現(xiàn)購(gòu)物車,但必須獲得瀏覽器的支持,再加上它是存儲(chǔ)在客戶端的信息,極易被獲取,所以這也限制了它存儲(chǔ)更多,更重要的信息。所以一般cookie只用來(lái)維持與服務(wù)器的會(huì)話,例如國(guó)內(nèi)最大的當(dāng)當(dāng)網(wǎng)絡(luò)書
72、店就是用cookie保持與客戶的聯(lián)系,但是這種方式最大的缺點(diǎn)是如果客戶端不支持cookie就會(huì)使購(gòu)物車失效。</p><p> Session 能很好地與交易雙方保持會(huì)話,可以忽視客戶端的設(shè)置。在購(gòu)物車技術(shù)中得到了廣泛的應(yīng)用。但session的文件屬性使其仍然留有安全隱患。</p><p> 結(jié)合數(shù)據(jù)庫(kù)的方式雖然在一定程度上解決了上述的問題,但當(dāng)在購(gòu)物流程中涉及到對(duì)數(shù)據(jù)庫(kù)表的頻繁操作,
73、尤其是用戶每選購(gòu)一次商品,都要與數(shù)據(jù)庫(kù)進(jìn)行連接,當(dāng)用戶很多的時(shí)候就加大了服務(wù)器與數(shù)據(jù)庫(kù)的負(fù)荷。</p><p> 第三章 系統(tǒng)需求分析</p><p> 3.1 系統(tǒng)的功能需求</p><p> 21世紀(jì)以來(lái),人類經(jīng)濟(jì)高速發(fā)展,人們生活發(fā)生了日新月異的變化,特別是計(jì)算機(jī)的應(yīng)用及普及到經(jīng)濟(jì)和社會(huì)生活的各個(gè)領(lǐng)域。使原本的舊的管理方式越來(lái)越不適應(yīng)現(xiàn)在社會(huì)的發(fā)展。許
74、多人還停留在以前的跑書店買需要的圖書,網(wǎng)上書店為大家?guī)?lái)了極大地方便。我所開發(fā)的第三波書店在線銷售系統(tǒng)基本上實(shí)現(xiàn)了在線購(gòu)物的需求,采用Microsoft Visual Studio 2008作為開發(fā)平臺(tái),使用SQLServer2005作為后臺(tái)數(shù)據(jù)庫(kù)。本網(wǎng)上書店在線銷售系統(tǒng)是基于B/S架構(gòu),本網(wǎng)站系統(tǒng)的開發(fā)主要是方便用戶足部出戶就可以購(gòu)買商品,減少供應(yīng)商店面費(fèi)用。</p><p> 本系統(tǒng)共有三類用戶: <
75、/p><p> 普通用戶是指沒有登陸權(quán)限(主要指網(wǎng)絡(luò)用戶),以匿名用戶的身份訪問系統(tǒng)網(wǎng)站。此類用戶主要有瀏覽系統(tǒng)信息、查看商品信息,注冊(cè)成為會(huì)員。把本網(wǎng)站設(shè)為首頁(yè),添加到收藏夾,聯(lián)系開發(fā)人,查看交款方式,退換貨原則,配送范圍,交易條款,保密協(xié)議等操作。瀏覽的內(nèi)容包括:商品信息、商品分類信息。</p><p> 用戶:這類用戶擁有普通用戶的所有權(quán)限;普通用戶可以注冊(cè)成為會(huì)員,并根據(jù)會(huì)員ID和
76、密碼登陸系統(tǒng),登陸之后可以對(duì)更改自己的信息但會(huì)員ID做為數(shù)據(jù)庫(kù)表主鍵不能修改。會(huì)員登陸后可以查看商品信息,查看各種分類商品信息,將商品添加到購(gòu)物車中,修改購(gòu)物車中商品數(shù)量,或是刪除某些不想要的商品。</p><p> 系統(tǒng)管理員:系統(tǒng)管理員主要負(fù)責(zé)管理著系統(tǒng)后臺(tái)信息;主要有訂單管理,商品管理,會(huì)員管理,物流管理和系統(tǒng)管理。訂單管理有未確認(rèn)訂單和已確認(rèn)訂單管理,未付款訂單。商品管理主要有商品添加和商品管理,商品類
77、別添加和商品類別管理。會(huì)員管理主要有添加管理員和管理管理員,管理會(huì)員。物流系統(tǒng)主要有支付方式添加和管理,配送方式添加和管理,配送地點(diǎn)添加和管理。系統(tǒng)管理主要是上傳管理。 </p><p> 因此,本系統(tǒng)主要功能是對(duì)商品進(jìn)行管理規(guī)劃,方便會(huì)員購(gòu)買。</p><p> 3.2 系統(tǒng)設(shè)計(jì)思想</p><p> 3.2.1 系統(tǒng)設(shè)計(jì)思想</p><
78、p> 書店前臺(tái):功能強(qiáng)大,操作方便。</p><p> 前臺(tái)作為與用戶直接交互的界面,在考慮功能的同時(shí),也考慮了操作的簡(jiǎn)潔和方便,目的是讓大多數(shù)不懂電腦操作的客戶也能輕松地享受網(wǎng)上購(gòu)物帶來(lái)的極大方便。主要包括以下幾個(gè)模塊:</p><p><b> ?、?商品信息展示</b></p><p><b> ② 用戶注冊(cè)<
79、/b></p><p><b> ③ 用戶登陸</b></p><p><b> ?、?用戶信息修改</b></p><p><b> ?、?購(gòu)物車管理</b></p><p> 書店后臺(tái):本系統(tǒng)后臺(tái)在考慮書店管理操作簡(jiǎn)便的同時(shí),提供了強(qiáng)大的書店管理模式。主要包括以下
80、幾個(gè)模塊:</p><p><b> ?、?訂單管理</b></p><p><b> ② 商品管理</b></p><p><b> ?、?用戶管理</b></p><p><b> ?、?物流管理</b></p><p>&l
81、t;b> ?、?系統(tǒng)管理</b></p><p> 3.2.2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</p><p><b> ?、?參與者匯總</b></p><p> 游 者:查看商品信息和注冊(cè)成為會(huì)員。</p><p> 會(huì) 員:查看商品信息和購(gòu)買商品,修改個(gè)人信息等。</p><p>
82、 管理員:管理商品信息,管理用戶信息等。</p><p> ?、?前臺(tái)流程:用戶登錄用戶登陸</p><p> 用戶注冊(cè)→用戶登錄→查看圖書信息→添加圖書到購(gòu)物車→在線支付</p><p><b> ?、?后臺(tái)流程:</b></p><p> 管理員登錄→訂單管理、圖書管理、用戶管理、圖片管理→退出</p&g
83、t;<p> 網(wǎng)上購(gòu)物系統(tǒng)為顧客提供一個(gè)類似于超級(jí)市場(chǎng)的網(wǎng)絡(luò)界面。通過網(wǎng)絡(luò)界面,用戶登錄后執(zhí)行各種操作,沒有注冊(cè)的用戶可以查找商品信息,查看首頁(yè)面的最受歡迎商品等信息。</p><p> 圖3.1 第三波書店系統(tǒng)流程圖</p><p><b> 1.系統(tǒng)邏輯</b></p><p> 這一階段的主要目標(biāo)是明確用戶的信息需求
84、,系統(tǒng)管理管理人員完成各自工作任務(wù)的信息需求。確定系統(tǒng)的邏輯功能,提出系統(tǒng)的邏輯方案,是系統(tǒng)分析階段的最終成果,是系統(tǒng)分析的最后一項(xiàng)活動(dòng),也是形成系統(tǒng)分析結(jié)果的關(guān)鍵工作,這一階段不但要利用前幾個(gè)活動(dòng)的工作成果,而且要在此基礎(chǔ)上進(jìn)一步調(diào)查、明確問題、進(jìn)行創(chuàng)新。</p><p> 本系統(tǒng)的邏輯模型主要以數(shù)據(jù)流圖和數(shù)據(jù)字典為描述工具。在對(duì)在線銷售系統(tǒng)的管理方式和業(yè)務(wù)流程進(jìn)行分析和研究的基礎(chǔ)上,通過對(duì)系統(tǒng)的初步調(diào)查和詳
85、細(xì)調(diào)查,按信息系統(tǒng)中應(yīng)有的數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)來(lái)勾畫系統(tǒng)的概貌。</p><p><b> 2.數(shù)據(jù)流圖</b></p><p> 數(shù)據(jù)流圖四種基本成分組成:外部項(xiàng)(外部實(shí)體)、加工(數(shù)據(jù)加工)、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)流。數(shù)據(jù)流圖基本圖例,如圖3.2所示。</p><p> 圖3.2 基本數(shù)據(jù)流圖</p><p> 本書店在
86、線銷售系統(tǒng)訂單審核數(shù)據(jù)流程圖為例,其頂層數(shù)據(jù)流圖,如圖3.4所示。</p><p> 圖3.3 系統(tǒng)審核訂單數(shù)據(jù)流程圖</p><p> 數(shù)據(jù)流圖重點(diǎn)在描述以處理邏輯為中心的數(shù)據(jù)的流入與流出,而對(duì)數(shù)據(jù)本身未加描述,影響了用戶對(duì)數(shù)據(jù)流圖的理解。數(shù)據(jù)字典是對(duì)數(shù)據(jù)流圖的很好的補(bǔ)充,它是數(shù)據(jù)流圖上所有成分的定義和解釋的文字集合,它是對(duì)數(shù)據(jù)流圖的各種成分起注解、說(shuō)明的作用,同時(shí)它還對(duì)系統(tǒng)分析中
87、其他需要說(shuō)明的問題進(jìn)行定義和說(shuō)明。系統(tǒng)分析人員把不便在數(shù)據(jù)流圖上注明而對(duì)于系統(tǒng)分析應(yīng)該獲得,對(duì)整個(gè)系統(tǒng)開發(fā)以至將來(lái)系統(tǒng)運(yùn)行與維護(hù)是必須的信息盡可能放入數(shù)據(jù)字典。</p><p> 數(shù)據(jù)字典對(duì)數(shù)據(jù)流圖的描述盡可能說(shuō)明下列問題:</p><p> ?、?什么?(是什么或是什么)</p><p> ?、?何出?(在何處來(lái)或者來(lái)自何處,去向何處)</p>&
88、lt;p> ?、?何時(shí)?(何時(shí)出現(xiàn),時(shí)間長(zhǎng)短)</p><p> 數(shù)據(jù)字典描述的主要內(nèi)容有:數(shù)據(jù)流、數(shù)據(jù)元素、數(shù)據(jù)存儲(chǔ)、加工和外部項(xiàng),其中數(shù)據(jù)元素是組成數(shù)據(jù)流的基本成分。在系統(tǒng)分析中,數(shù)據(jù)字典起著重要的作用。它包含關(guān)于系統(tǒng)詳細(xì)信息。一般說(shuō)來(lái),系統(tǒng)分析人員把不便在數(shù)據(jù)流圖上注明而對(duì)于系統(tǒng)分析應(yīng)該獲得,對(duì)整個(gè)系統(tǒng)開發(fā)必需的信息,盡可能放入數(shù)據(jù)字典,部分?jǐn)?shù)據(jù)字典如下所示。</p><p>
89、; 表3.4 數(shù)據(jù)字典:數(shù)據(jù)流</p><p> 表3.5 數(shù)據(jù)字典:數(shù)據(jù)元素</p><p> 表3.6 數(shù)據(jù)字典:數(shù)據(jù)存儲(chǔ)</p><p> 第四章 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)及其實(shí)現(xiàn)</p><p> 4.1 系統(tǒng)數(shù)據(jù)庫(kù)總體設(shè)計(jì)</p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p
90、><p> 圖4.1 數(shù)據(jù)路設(shè)計(jì)圖</p><p> 4.2 部分?jǐn)?shù)據(jù)表的設(shè)計(jì)</p><p> 1、Users表包括Id、 LoginId 、LoginPwd、Name、Address、Phone、Mail等,主要為:用戶名和密碼。系統(tǒng)管理員根據(jù)用戶名密碼登陸后臺(tái)系統(tǒng)。</p><p> 2、SearchKeyword</p&
91、gt;<p><b> 3、Order</b></p><p> 4、Category</p><p><b> 5、Book</b></p><p> 第五章 系統(tǒng)總體設(shè)計(jì)及部分重要模塊的實(shí)現(xiàn)</p><p> 5.1 部分界面的展示 </p><p&g
92、t; ?、盼业牡谌〞甑闹鹘缑妫?lt;/p><p> 圖5.1我的第三波書店的主界面</p><p><b> ?、莆业馁?gòu)物車界面:</b></p><p> 圖5.2 我的購(gòu)物車界面</p><p> ?、菆D書分類搜索界面:</p><p> 圖5.3 圖書分類搜索界面</p>
93、<p> 5.2 三層結(jié)構(gòu)的實(shí)現(xiàn)</p><p> 5.2.1 三層結(jié)構(gòu)的優(yōu)勢(shì)</p><p> 搭建第三波書店的三層架構(gòu)前,我們知道三層結(jié)構(gòu)有如下優(yōu)勢(shì):</p><p> 適應(yīng)變化、利于維護(hù):項(xiàng)目需求往往隨市場(chǎng)的變化而發(fā)生變化,三層結(jié)構(gòu)通過將各功能模塊分離,提高了項(xiàng)目的可維護(hù)性和代碼的課重用性。</p><p> 適
94、用于協(xié)作開發(fā):現(xiàn)在的項(xiàng)目往往是很多人參與開發(fā),有人專門負(fù)責(zé)頁(yè)面的設(shè)計(jì)和開發(fā),有人負(fù)責(zé)數(shù)據(jù)庫(kù)操作的相關(guān)模塊,三層結(jié)構(gòu)將各功能模塊分離,有利于協(xié)作開發(fā)。</p><p> 主流趨勢(shì):越來(lái)越多的企業(yè)在開發(fā)項(xiàng)目時(shí)采用三層結(jié)構(gòu)作為項(xiàng)目的基礎(chǔ)架構(gòu)。三層結(jié)果將來(lái)會(huì)有更多的市場(chǎng)。</p><p> 5.2.2 三層結(jié)構(gòu)的系統(tǒng)構(gòu)建</p><p> 基于以上幾點(diǎn)內(nèi)容的考慮,我采
95、用三層結(jié)構(gòu)的設(shè)計(jì)方式,搭建第三波書店的系統(tǒng)構(gòu)架。</p><p><b> ?、拍P蛯?lt;/b></p><p> 模型層包含所有與數(shù)據(jù)庫(kù)有關(guān)的的表相對(duì)應(yīng)得實(shí)體類。可以說(shuō),模型層提供了一個(gè)標(biāo)準(zhǔn)、規(guī)范,三層之間德 數(shù)據(jù)傳遞就是通過傳輸實(shí)體對(duì)象來(lái)達(dá)到目的的。</p><p><b> ?、倌P偷拿?lt;/b></p>
96、<p> 命名其實(shí)就是約定俗稱的規(guī)矩。一般模型的項(xiàng)目名稱為Model或者M(jìn)odels,模型層中的實(shí)體類一般和所對(duì)應(yīng)的表名一致。</p><p><b> ?、陬惤Y(jié)構(gòu)</b></p><p> 實(shí)體類一般比較簡(jiǎn)單,根據(jù)數(shù)據(jù)庫(kù)的字段編寫對(duì)應(yīng)的變量和屬性。除了構(gòu)造函數(shù)外,實(shí)體類一般沒有其他方法。</p><p><b>
97、?、圩⒁馐马?xiàng)</b></p><p> 序列化:實(shí)體對(duì)象作為數(shù)據(jù)的載體,常常需要在不同的途徑中進(jìn)行傳遞,為了保證數(shù)據(jù)傳遞的正確性,我實(shí)體類標(biāo)記為可序列化。</p><p><b> 外鍵的處理</b></p><p> 舉例來(lái)說(shuō),用戶有狀態(tài)之分(有效、無(wú)效),也有角色之分(普通用戶、VIP或者管理員)。這些內(nèi)容在數(shù)據(jù)庫(kù)中表現(xiàn)為
98、外鍵關(guān)系,如何處理這種關(guān)系?一般有兩種方式:使用外鍵表的ID或者使用外鍵對(duì)象。</p><p> ⑵數(shù)據(jù)訪問層。數(shù)據(jù)訪問層封裝了所有與數(shù)據(jù)交互的操作。數(shù)據(jù)交互無(wú)非就是增刪查改,數(shù)據(jù)訪問層就是針對(duì)每一個(gè)數(shù)據(jù)表提供增刪查改操作,不做業(yè)務(wù)邏輯的操作判斷。</p><p> ?、贁?shù)據(jù)訪問層的命名數(shù)據(jù)訪問層的項(xiàng)目一般命名為DAL,或解決方案名+DAL。在我的項(xiàng)目中,命好為MyBookShopDAL
99、,命名空間是MyBookShop.DAL。</p><p> 針對(duì)模型層中的每個(gè)類,數(shù)據(jù)訪問層有一個(gè)對(duì)應(yīng)的數(shù)據(jù)訪問類。例如針對(duì)U實(shí)體類,有一個(gè)對(duì)應(yīng)的類,專門處理相關(guān)表的數(shù)據(jù)處理。</p><p><b> ?、诜椒ǚ治?lt;/b></p><p> 數(shù)據(jù)訪問層就是處理數(shù)據(jù)的增、查、改、刪,所以處理方法也圍繞在這四個(gè)處理上。</p>
100、<p><b> 增(Create)</b></p><p> 一般增加的方法很簡(jiǎn)單,針對(duì)用戶類的增加方法如下:</p><p> public static User AddUser(User user) </p><p> 查(Rrtrieve)</p><p><b> 典型的查找
101、如下:</b></p><p> public static IList<User> GetAllUsers()</p><p> public static void ModifyUserStatusById(int userId)</p><p> public static bool AdminLogin(string login
102、Id, string loginPwd, out User validUser)</p><p><b> 改(Update)</b></p><p> 修改的方法也很單一,典型的有:</p><p> public static void ModifyUser(User user)</p><p><b&g
103、t; 刪(Delete)</b></p><p><b> 典型的刪除方法有:</b></p><p> public static void DeleteUser(User user)</p><p> public static void DeleteUserById(int id)</p><p&
104、gt; public static void DeleteUserByLoginId(string loginId)</p><p> 總的來(lái)說(shuō),數(shù)據(jù)訪問層就是增、刪、查、改,它不需要進(jìn)行業(yè)務(wù)邏輯的判斷。</p><p><b> ?、菢I(yè)務(wù)邏輯層</b></p><p> 業(yè)務(wù)邏輯層是表示層與數(shù)據(jù)訪問層的橋梁,負(fù)責(zé)業(yè)務(wù)處理和數(shù)據(jù)的傳遞。該
105、部分的方法一般與實(shí)際的需求相關(guān),比如用戶注冊(cè),雖然它也是在數(shù)據(jù)庫(kù)中添加一條記錄,但一般不以AddUser作為方法名,而是使用Register。事實(shí)上,用戶注冊(cè)也不僅僅是添加一條記錄那么簡(jiǎn)單的事,它還包含了驗(yàn)證登陸名是否已經(jīng)存在等業(yè)務(wù)邏輯。</p><p><b> ①業(yè)務(wù)邏輯層的命名</b></p><p> 在我的項(xiàng)目中,命好為MyBookShopBLL,命名空
106、間是MyBookShop.BLL</p><p><b> ?、诜椒ǚ治?lt;/b></p><p> 業(yè)務(wù)邏輯層應(yīng)該就是提供哪些方法一般根據(jù)實(shí)際需求來(lái)確定。比如頁(yè)面上有用戶登陸的功能,我們就可以考慮在業(yè)務(wù)邏輯層就創(chuàng)建一個(gè)對(duì)應(yīng)的用戶登陸的方法。</p><p><b> ⑷ 表示層</b></p><p
107、> ①表示層負(fù)責(zé)內(nèi)容的展現(xiàn)和與用戶的交互。它給予用戶直接的體驗(yàn),可以說(shuō)前面的幾層都是基礎(chǔ),表示層是最終的應(yīng)用。在ASP.NET中,表示層就是整個(gè)WEB站點(diǎn)。具體的內(nèi)容要根據(jù)需求的內(nèi)容而來(lái)。比如第三波書店,有自己的用戶系統(tǒng),自然需要有相關(guān)的用戶登陸、注冊(cè)、管理等頁(yè)面;圖書系統(tǒng),也就要有圖書管理、圖書列表、圖書詳細(xì)展示等頁(yè)面;在線銷售,還需要有購(gòu)物車、訂單管理等頁(yè)面。</p><p><b> ?、?/p>
108、方法分析</b></p><p> ASP.NET 程序員來(lái)說(shuō),表示層就是控制+事件,如果僅僅是展示,可能只需要將控件綁定數(shù)據(jù)即可,不需要編寫代碼;如果需要和用戶交互,就要編寫相關(guān)的事件代碼。比如登陸頁(yè)面,用戶單擊“登錄按鈕”的事件可能需要編寫代碼驗(yàn)證用戶的輸入內(nèi)容是否合法,然后通過業(yè)務(wù)邏輯層的相關(guān)方法判斷用戶名和密碼是否匹配。</p><p> 5.2.3 三層結(jié)構(gòu)的系統(tǒng)
109、</p><p> 圖5.4 第三波書店在線銷售系統(tǒng)的三層</p><p> 如圖所示為第三波書店在線銷售系統(tǒng)的三層架構(gòu)。我在構(gòu)建此系統(tǒng)時(shí)分別建立三個(gè)類庫(kù),每個(gè)類庫(kù)中寫入相應(yīng)的方法,當(dāng)需要使用它們時(shí),在合適的windows窗體下添加適當(dāng)?shù)囊茫梢詫?shí)現(xiàn)最此的引用。</p><p> 5.3 登陸及注冊(cè)新用戶的實(shí)現(xiàn)</p><p>&
110、lt;b> 5.3.1用戶登陸</b></p><p><b> 用戶登陸界面:</b></p><p> 圖5.5 用戶登錄界面</p><p> 用戶登陸的代碼實(shí)現(xiàn):</p><p> public static bool Login(string loginId, string log
111、inPwd, out User validUser)</p><p><b> {</b></p><p> User user = UserService.GetUserByLoginId(loginId);</p><p> if (user == null)</p><p><b> {</
112、b></p><p><b> //用戶名不存在</b></p><p> validUser = null;</p><p> return false;</p><p><b> }</b></p><p> if (user.LoginPwd == lo
113、ginPwd)</p><p><b> {</b></p><p> validUser = user;</p><p> return true;</p><p><b> }</b></p><p><b> else</b></p
114、><p><b> {</b></p><p><b> //密碼錯(cuò)誤</b></p><p> validUser = null;</p><p> return false;</p><p> } } </p><p> pub
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 在線書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)網(wǎng)上書店銷售系統(tǒng)
- 基于jsp的在線書店銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 網(wǎng)絡(luò)書店銷售管理畢業(yè)設(shè)計(jì)
- 基于jsp的在線書店畢業(yè)設(shè)計(jì)論文最終版.doc
- 花卉在線銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于uml的圖書管理系統(tǒng)
- 鮮花在線銷售系統(tǒng)-畢業(yè)設(shè)計(jì)-論文
- 書店銷售系統(tǒng)畢業(yè)論文
- 基于jsp的網(wǎng)上書店銷售系統(tǒng)設(shè)計(jì)
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)在線圖書銷售管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)--在線服裝銷售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)
- 書店銷售管理系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--在線服裝銷售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---基于jsp網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---基于web的網(wǎng)上銷售系統(tǒng)
- 基于jsp的網(wǎng)上書店畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論