基于JSP和MySQL的網(wǎng)上書(shū)城系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
時(shí)間:2023-06-10 11:21:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-06-10 11:21:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)
基于JSP和MySQL的網(wǎng)上書(shū)城系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn):
摘 要
隨著科學(xué)技術(shù)的發(fā)展,網(wǎng)絡(luò)在人們生活中的應(yīng)用越來(lái)越廣泛。人們?cè)絹?lái)越想在最短的時(shí)間內(nèi)購(gòu)買到自己所需的圖書(shū)。但書(shū)目的繁多,給人們?cè)诜泵Φ墓ぷ魃钪械馁?gòu)書(shū)帶來(lái)了很大的麻煩,于是網(wǎng)上購(gòu)書(shū)便成了人們向往的事情。
圖書(shū)銷售系統(tǒng)的開(kāi)發(fā)為人們帶來(lái)了很大的方便,使他們足不出戶就可以輕輕松松地買到自己想要的書(shū),既省時(shí)又省力。有效地縮短了圖書(shū)流通發(fā)行環(huán)節(jié),將廣大讀者、圖書(shū)、出版者、發(fā)行者緊密地結(jié)合在一起,大大提高了圖書(shū)流通率。它有著經(jīng)營(yíng)成本低、庫(kù)存是虛擬的、用戶檢索方便、地域限制少等特點(diǎn)。
系統(tǒng)以JSP為主要制作工具,實(shí)現(xiàn)了用戶注冊(cè)、登陸、驗(yàn)證身份及書(shū)籍的預(yù)覽查詢、對(duì)書(shū)籍的購(gòu)買通過(guò)購(gòu)物車實(shí)現(xiàn)等功能。
關(guān)鍵詞:傳智播客;電子商務(wù);網(wǎng)上書(shū)城;管理信息系統(tǒng)
Abstract
With the development of science and technology, Internet is applied more and more widely in people's lives. There is a growing desire to purchase books which peoples possibly want to buy in the shortest time. However, a wide range of books brought a lot of troubles to people in the busy life. So book online has become a matter of people yearn for.
The development of this system will make a lot of convenience for people, so that they can buy books which they liked easily, both convenience and effective. The system effectively reduce the length of the book links the flow of distribution, it can be a large number of readers, books, publishers, distribution worked closely together, improving the flow rate of the book greatly. The system has many advantages such as low operating costs, virtual inventory, the user searches convenient, less geographical restrictions and so on.
JSP in the system as the main tool what to achieve the user registration, login, authentication, book preview inquiries, through the shopping cart in order to achieve the purchase of books.
Keywords: itcast, E-commerce, Online bookstore, MIS
第一章 緒論
1.1 課題背景、目的及意義
1.1.1 課題背景
隨著internet的普及和電子商務(wù)的興起,網(wǎng)上圖書(shū)銷售是Internet電子商務(wù)在圖書(shū)銷售行業(yè)發(fā)展的必然結(jié)果,這種新型的圖書(shū)銷售形式,與傳統(tǒng)利用書(shū)店進(jìn)行銷售的方式相比擁有許多優(yōu)勢(shì):一是降低了銷售成本;二是利用網(wǎng)絡(luò)作為交易平臺(tái),改變傳統(tǒng)的交易方式,使得交易活動(dòng)不受空間和時(shí)間的限制;三是信息的傳遞更迅速靈活,新書(shū)信息上傳后,客戶可以立即看到,交易馬上可以從網(wǎng)上進(jìn)行,從而大大提高了交易的效率。正是由于這些優(yōu)勢(shì),網(wǎng)上圖書(shū)銷售才能得以迅速地發(fā)展。網(wǎng)上圖書(shū)銷售系統(tǒng)的主要功能是利用網(wǎng)站作為交易平臺(tái),將圖書(shū)的一些基本信息以網(wǎng)站的形式發(fā)布到Internet中,客戶可以通過(guò)Internet登錄圖書(shū)銷售網(wǎng)站來(lái)查看售書(shū)信息并提交訂單訂購(gòu)圖書(shū),實(shí)現(xiàn)在線交易。
1.1.2 課題目的和意義
在各行各業(yè)競(jìng)爭(zhēng)日益激烈的今天,提高工作效率和工作質(zhì)量是每個(gè)企業(yè)必須面臨并且必須解決的重大課題。
有了《傳智播客網(wǎng)上圖書(shū)商城》就不需要客戶到書(shū)城手工查詢需要的圖書(shū),而只需在自家的電腦前輸入查詢條件,或通過(guò)類別查詢,快速而準(zhǔn)確的找到需要的圖書(shū),大大加快了查詢速度。
《傳智播客網(wǎng)上圖書(shū)商城》不僅可以大量減少人力、物力,降低了成本,而且突破了時(shí)間和空間的限制,使得圖書(shū)交易活動(dòng)可以在任何時(shí)間、任何地點(diǎn)進(jìn)行,實(shí)現(xiàn)24小時(shí)營(yíng)業(yè),不需要營(yíng)業(yè)員,網(wǎng)上書(shū)城可以被設(shè)置成一個(gè)自動(dòng)售貨機(jī)。同時(shí),《傳智播客網(wǎng)上圖書(shū)商城》更容易開(kāi)拓全球市場(chǎng)從而大大提高了效率,對(duì)推動(dòng)《傳智播客網(wǎng)上圖書(shū)商城》未來(lái)的發(fā)展有著一定的實(shí)際意義。
鑒于互聯(lián)網(wǎng)的優(yōu)勢(shì)以及對(duì)國(guó)內(nèi)外相關(guān)網(wǎng)上書(shū)城網(wǎng)站現(xiàn)狀的研究分析,我決定以基于Web的《傳智播客網(wǎng)上圖書(shū)商城》開(kāi)發(fā)作為我的畢業(yè)設(shè)計(jì)主題。立足于設(shè)計(jì)一個(gè)在網(wǎng)絡(luò)平臺(tái)上運(yùn)行的集購(gòu)物、支付和配送等功能于一體的網(wǎng)上書(shū)城,以小小的力量推動(dòng)中國(guó)互聯(lián)網(wǎng)的發(fā)展。
1.2 國(guó)內(nèi)外研究現(xiàn)狀
1.2.1 國(guó)外的研究現(xiàn)狀
網(wǎng)上售書(shū)這是信息社會(huì)發(fā)展的必然要求。國(guó)際互聯(lián)網(wǎng)的開(kāi)通,為信息社會(huì)的飛速發(fā)展創(chuàng)造了條件。在美、日等信息化程度較高的國(guó)家和地區(qū),網(wǎng)上圖書(shū)銷售發(fā)展速度迅猛。據(jù)InternetWorldStatS的統(tǒng)計(jì),今天的互聯(lián)網(wǎng)有17億用戶。而目前的全球人口為67億,到2020年毫無(wú)疑問(wèn)會(huì)有更多的人使用互聯(lián)網(wǎng)。美國(guó)國(guó)家科學(xué)基金會(huì)預(yù)計(jì),到那時(shí)互聯(lián)網(wǎng)的用戶數(shù)量將接近50億。網(wǎng)民隊(duì)伍的迅速擴(kuò)充,無(wú)疑為網(wǎng)上售書(shū)的發(fā)展提供了巨大的市場(chǎng)空間。加上圖書(shū)因其具有標(biāo)識(shí)清晰、規(guī)格統(tǒng)一、特征容易描述、同種商品個(gè)體之間無(wú)差異等特性而能成為發(fā)展電子商務(wù)的最為理想的商品類型。因此,網(wǎng)上售書(shū)成為各國(guó)發(fā)展電子商務(wù)的首選目標(biāo),國(guó)際互聯(lián)網(wǎng)開(kāi)通后,各國(guó)電子商務(wù)網(wǎng)站很大一部分都是網(wǎng)上書(shū)店。只要網(wǎng)絡(luò)發(fā)展沒(méi)有停止,網(wǎng)上售書(shū)的發(fā)展就不會(huì)停止。
1.2.2 國(guó)內(nèi)的研究現(xiàn)狀
近年來(lái),隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)技術(shù)應(yīng)用已經(jīng)相當(dāng)普及,使得在線購(gòu)買成為現(xiàn)實(shí),各種各樣的網(wǎng)上圖書(shū)銷售系統(tǒng)層出不窮,國(guó)內(nèi)各大圖書(shū)商都在創(chuàng)建自己的計(jì)算機(jī)網(wǎng)上電子商務(wù)系統(tǒng)。隨著科學(xué)技術(shù)的飛速發(fā)展,Internet這個(gè)昔日少數(shù)科學(xué)家接觸和使用的科研工具已經(jīng)成了普通百姓都可以觸及的大眾型媒體傳播手段。
第二章 可行性分析
2.1 社會(huì)可行性
隨著計(jì)算機(jī)技術(shù)的發(fā)展和網(wǎng)絡(luò)人口的增加,網(wǎng)絡(luò)世界也越來(lái)越廣博,越來(lái)越豐富,網(wǎng)上售書(shū)已經(jīng)成為網(wǎng)上的一股潮流。相信要不了太長(zhǎng)有時(shí)間,顧客就可以在網(wǎng)絡(luò)世界上獲得他們?cè)诂F(xiàn)實(shí)世界上可以獲得的任何圖書(shū)?!秱髦遣タ途W(wǎng)上圖書(shū)商城》系統(tǒng)主要目的是進(jìn)行網(wǎng)上售書(shū),并且嚴(yán)格按照國(guó)家法律法規(guī)來(lái)進(jìn)行研究和實(shí)踐,并無(wú)法律和政策方面的限制。
2.2 技術(shù)可行性
本系統(tǒng)采用的是JSP、Servlet和MySQL開(kāi)發(fā),Windows XP Professional操作系統(tǒng),用Dreamweaver進(jìn)行前臺(tái)網(wǎng)頁(yè)界面設(shè)計(jì)、采用JDBC方式與后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行連接,完成數(shù)據(jù)的添加、修改、刪除、查詢等功能。由于JSP、Servlet功能強(qiáng)大,而MySQL靈活易維護(hù)在開(kāi)發(fā)方面具有方便快捷、使用靈活的特點(diǎn),以及目前的廣泛實(shí)際應(yīng)用,因此使用JSP、Servlet、MySQL是開(kāi)發(fā)輕平臺(tái)的最佳組合從而說(shuō)明本系統(tǒng)在技術(shù)方面可行。
硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來(lái)越快,容量越來(lái)越大,可靠性越來(lái)越高,價(jià)格越來(lái)越低,其硬件平臺(tái)完全能滿足此系統(tǒng)的需要。
2.3 操作可行性
目前,大多數(shù)計(jì)算機(jī)都能運(yùn)行該系統(tǒng),該系統(tǒng)的安裝、調(diào)試、運(yùn)行不會(huì)改變?cè)?jì)算機(jī)系統(tǒng)的設(shè)置和布局,并且系統(tǒng)界面簡(jiǎn)單,提示信息完整,由相關(guān)人員指導(dǎo)便能夠方便的操作此軟件。
2.4 系統(tǒng)的技術(shù)介紹
2.4.1 Javascript
JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言。同時(shí)也是一種廣泛用于客戶端Web開(kāi)發(fā)的腳本語(yǔ)言,常用來(lái)給HTML網(wǎng)頁(yè)添加動(dòng)態(tài)功能,比如響應(yīng)用戶的各種操作。它最初由網(wǎng)景公司(Netscape)的Brendan Eich設(shè)計(jì),是一種動(dòng)態(tài)、弱類型、基于原型的語(yǔ)言,內(nèi)置支持類。
Javascript語(yǔ)言與Java語(yǔ)言在語(yǔ)法上比較相似,但隨著對(duì)Javascript的深入了解后你會(huì)發(fā)現(xiàn),它們說(shuō)到底是兩種語(yǔ)言!
2.4.2 JQuery
jQuery是一個(gè)兼容多瀏覽器的javascript框架,核心理念是write less,do more(寫(xiě)得更少,做得更多)。jQuery在2006年1月由美國(guó)人John Resig在紐約的barcamp發(fā)布,吸引了來(lái)自世界各地的眾多JavaScript高手加入,由Dave Methvin率領(lǐng)團(tuán)隊(duì)進(jìn)行開(kāi)發(fā)。如今,jQuery已經(jīng)成為最流行的javascript框架,在世界前10000個(gè)訪問(wèn)最多的網(wǎng)站中,有超過(guò)55%在使用jQuery。
jQuery是免費(fèi)、開(kāi)源的,使用MIT許可協(xié)議。jQuery的語(yǔ)法設(shè)計(jì)可以使開(kāi)發(fā)者更加便捷,例如操作文檔對(duì)象、選擇DOM元素、制作動(dòng)畫(huà)效果、事件處理、使用Ajax以及其他功能。除此以外,jQuery提供API讓開(kāi)發(fā)者編寫(xiě)插件。其模塊化的使用方式使開(kāi)發(fā)者可以很輕松的開(kāi)發(fā)出功能強(qiáng)大的靜態(tài)或動(dòng)態(tài)網(wǎng)頁(yè)。
2.4.3 MySQL
MySQL是一個(gè)開(kāi)放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。
自從Oracle公司收購(gòu)了MySQL后不久,就發(fā)行了MySQL的企業(yè)版(不再免費(fèi))!
2.4.4 MVC
MVC即模型-視圖-控制器,是Xerox PARC在八十年代為編程語(yǔ)言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,至今已被廣泛使用。最近幾年被推薦為Sun公司J2EE平臺(tái)的設(shè)計(jì)模式,并且受到越來(lái)越多的使用ColdFusion和PHP的開(kāi)發(fā)者的歡迎。
MVC是一種設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù).
模型模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusion Components這樣的構(gòu)件對(duì)象來(lái)處理數(shù)據(jù)庫(kù)。被模型返回的數(shù)據(jù)是中立的,就是說(shuō)模型與數(shù)據(jù)格式無(wú)關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫(xiě)一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。
視圖視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來(lái)說(shuō),視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標(biāo)識(shí)語(yǔ)言和Web services.如何處理應(yīng)用程序的界面變得越來(lái)越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒(méi)有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來(lái)講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。
控制器控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何的處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后確定用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù)。
綜上所述,MVC的處理過(guò)程是首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶。
2.4.5 JDBC
JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用純 Java API 編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序,同時(shí),JDBC也是個(gè)商標(biāo)名。
有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專門寫(xiě)一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門寫(xiě)一個(gè)程序,或?yàn)樵L問(wèn)Informix數(shù)據(jù)庫(kù)又編寫(xiě)另一個(gè)程序等等,程序員只需用JDBC API寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用。同時(shí),將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫(xiě)不同的應(yīng)用程序,只須寫(xiě)一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語(yǔ)言“編寫(xiě)一次,處處運(yùn)行”的優(yōu)勢(shì)。
2.4.6 DBUtils
Common Dbutils是操作數(shù)據(jù)庫(kù)的組件,對(duì)傳統(tǒng)操作數(shù)據(jù)庫(kù)的類進(jìn)行二次封裝,可以把結(jié)果集轉(zhuǎn)化成List。傳統(tǒng)操作數(shù)據(jù)庫(kù)的類指的是JDBC(java database connectivity:java數(shù)據(jù)庫(kù)連接,java的數(shù)據(jù)庫(kù)操作的基礎(chǔ)API。)。
DBUtils是java編程中的數(shù)據(jù)庫(kù)操作實(shí)用工具,小巧簡(jiǎn)單實(shí)用,
特色:
- 對(duì)于數(shù)據(jù)表的讀操作,他可以把結(jié)果轉(zhuǎn)換成List,Array,Set等java集合,便于程序員操作
- 對(duì)于數(shù)據(jù)表的寫(xiě)操作,也變得很簡(jiǎn)單(只需寫(xiě)sql語(yǔ)句)
- 可以使用數(shù)據(jù)源,使用JNDI,數(shù)據(jù)庫(kù)連接池等技術(shù)來(lái)優(yōu)化性能--重用已經(jīng)構(gòu)建好的數(shù)據(jù)庫(kù)連接對(duì)象,而不像php,asp那樣,費(fèi)時(shí)費(fèi)力的不斷重復(fù)的構(gòu)建和重構(gòu)這樣的對(duì)象
2.4.7 C3P0
C3P0是一個(gè)開(kāi)源的JDBC連接池,它實(shí)現(xiàn)了數(shù)據(jù)源和JNDI綁定,支持JDBC3規(guī)范和JDBC2的標(biāo)準(zhǔn)擴(kuò)展。目前使用它的開(kāi)源項(xiàng)目有Hibernate,Spring等。
2.5 系統(tǒng)開(kāi)發(fā)平臺(tái)及運(yùn)行環(huán)境
2.5.1 系統(tǒng)開(kāi)發(fā)平臺(tái)
系統(tǒng)的開(kāi)發(fā)是在Tomcat環(huán)境下進(jìn)行的。Tomcat是一個(gè)免費(fèi)的開(kāi)源的Servlet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache,Sun和其它一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat被Java World雜志的編輯選為2001年度最具創(chuàng)新的Java產(chǎn)品,可見(jiàn)其在業(yè)界的地位。
Tomcat的環(huán)境主要有以下幾方面技術(shù)優(yōu)勢(shì):
- Tomcat中的應(yīng)用程序是一個(gè)WAR(Web Archive)文件。WAR是Sun提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個(gè)壓縮包
- 在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓
- Tomcat不僅僅是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能:處理html頁(yè)面
- Tomcat也可以與其它一些軟件集成起來(lái)實(shí)現(xiàn)更多的功能
2.5.2 運(yùn)行環(huán)境
- 操作系統(tǒng):Windows 7以上版本
- 服務(wù)器軟件:Tomcat6.0以上版本
- 瀏覽器:IE、Fire Fox、Google Chrome
第三章 需求分析
3.1 系統(tǒng)功能模塊概述和分析
《傳智播客網(wǎng)上圖書(shū)商城》模型是典型的網(wǎng)上購(gòu)物實(shí)踐中最為普遍的電子商務(wù)企業(yè)對(duì)客戶(B2C)模式,主要包括會(huì)員注冊(cè)、訂單管理、購(gòu)物車、搜索、支付等基本功能。此外,本系統(tǒng)也將實(shí)現(xiàn)在線圖書(shū)銷售系統(tǒng)的后端管理,包括圖書(shū)的添加、訂單的處理等功能。本系統(tǒng)完全基于JSP技術(shù),在系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)過(guò)程中嚴(yán)格遵守軟件工程的規(guī)范,運(yùn)用軟件設(shè)計(jì)模式,從而減少系統(tǒng)模塊間的偶合,力求做到系統(tǒng)的穩(wěn)定性、可重用性和可擴(kuò)充性。
《傳智播客網(wǎng)上圖書(shū)商城》主要功能如下:
- 前臺(tái)(客戶購(gòu)買)部分
- 用戶管理:注冊(cè)會(huì)員、登錄、激活、退出、修改密碼
- 分類顯示:顯示所有1級(jí)和2級(jí)分類
- 圖書(shū)顯示:按分類查詢圖書(shū)、通過(guò)關(guān)鍵字搜索圖書(shū)、高級(jí)搜索圖書(shū)、查看某本圖書(shū)的詳細(xì)等
- 購(gòu)物車管理:向購(gòu)物車中添加圖書(shū)、修改購(gòu)物車中圖書(shū)數(shù)量、刪除購(gòu)物車中圖書(shū)、我的購(gòu)物車
- 訂單管理:通過(guò)購(gòu)物車中圖書(shū)生成訂單、查看我的訂單、查看某個(gè)訂單的詳細(xì)、訂單支付、確認(rèn)收貨、取消未付款訂單
- 后臺(tái)(管理員管理)部分
- 管理員:管理員登錄
- 分類管理:查看所有分類、添加1級(jí)分類、添加2級(jí)分類、修改1級(jí)分類、修改2級(jí)分類、刪除1級(jí)分類、刪除2級(jí)分類
- 圖書(shū)管理:按分類搜索圖書(shū)、高級(jí)搜索圖書(shū)、添加新圖書(shū)、查看圖書(shū)詳細(xì)信息、編輯圖書(shū)、刪除圖書(shū)
- 訂單管理:按狀態(tài)搜索訂單、查看訂單詳細(xì)信息、取消訂單、發(fā)貨
3.2 系統(tǒng)功能模塊設(shè)計(jì)
根據(jù)系統(tǒng)功能分析,可以畫(huà)出系統(tǒng)的功能模塊圖。
前臺(tái)用戶購(gòu)書(shū)功能圖后臺(tái)管理員功能圖3.3 數(shù)據(jù)庫(kù)分析
信息系統(tǒng)的主要任務(wù)是通過(guò)大量數(shù)據(jù)獲得管理所需要的信息,這就要求系統(tǒng)本身能夠存儲(chǔ)和管理大量的數(shù)據(jù),而這一功能的實(shí)現(xiàn)必須借助大型數(shù)據(jù)庫(kù)系統(tǒng)。本系統(tǒng)的開(kāi)發(fā)選擇MySQL作為后臺(tái)數(shù)據(jù)庫(kù)開(kāi)發(fā)工具。
3.3.1 概念模型設(shè)計(jì)
概念模型用于信息世界的建模,與具體的DBMS無(wú)關(guān)。為了把現(xiàn)實(shí)世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型。人們常常首先將現(xiàn)實(shí)世界抽象為信息世界,然后再將信息世界轉(zhuǎn)換為機(jī)器世界。也就是說(shuō),首先把現(xiàn)實(shí)世界中的客觀對(duì)象抽象為某一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)并不依賴于具體的計(jì)算機(jī)系統(tǒng)和具體的DBMS,而是概念級(jí)的模型,然后再把模型轉(zhuǎn)換為計(jì)算機(jī)上某一個(gè)DBMS支持的數(shù)據(jù)模型。實(shí)際上,概念模型是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。
信息世界中包含的基本概念有實(shí)體和聯(lián)系。
實(shí)體 (entity)客觀存在并可相互區(qū)別的事物稱為實(shí)體。實(shí)體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。例如,一個(gè)學(xué)生、一門課、一個(gè)供應(yīng)商、一個(gè)部門、一本 書(shū)、一位讀者等都是實(shí)體。
聯(lián)系 (relationship)在現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系。實(shí)體內(nèi)部的聯(lián)系通常是組成實(shí)體的各屬性之間的聯(lián)系。兩個(gè)實(shí)體型之間的聯(lián)系可以分為3類,一對(duì)一聯(lián)系,(1:1);一對(duì)多聯(lián)系(1 : n);多對(duì)多聯(lián)系(m : n)。
概念模型是對(duì)信息世界建模,所以概念模型應(yīng)該能夠方便、準(zhǔn)確地表示信息世界中的常用概念。概念模型的表示方法很多,其中最為常用的是P.P.S.Chen于1976年提出的實(shí)體,聯(lián)系方法(Entity-Relationship Approach)簡(jiǎn)記為E-R表示法)。該方法用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型,稱為實(shí)體-聯(lián)系模型,簡(jiǎn)稱E-R模型。
根據(jù)數(shù)據(jù)流程分析,繪制ITCAST網(wǎng)上書(shū)城的全局E-R模型如圖所示。
根據(jù)設(shè)計(jì)規(guī)劃的主要實(shí)體有:用戶、圖書(shū)分類、圖書(shū)、購(gòu)物車、訂單、管理員。各個(gè)實(shí)體具體的描述屬性圖如下(實(shí)體屬性在下圖中并沒(méi)有全部給出,因?yàn)閷傩赃^(guò)多的原因):
用戶實(shí)體圖書(shū)分類實(shí)體圖書(shū)實(shí)體購(gòu)物車實(shí)體訂單實(shí)體訂單項(xiàng)實(shí)體3.3.2 數(shù)據(jù)庫(kù)表設(shè)計(jì)
數(shù)據(jù)庫(kù)表設(shè)計(jì)主要是把概念結(jié)構(gòu)設(shè)計(jì)時(shí)設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。它包括數(shù)據(jù)項(xiàng)、記錄及記錄間的聯(lián)系、安全性和一致性約束等等。導(dǎo)出的邏輯結(jié)構(gòu)是否與概念模式一致,從功能和性能上是否滿足用戶的要求,要進(jìn)行模式評(píng)價(jià)。
本系統(tǒng)數(shù)據(jù)庫(kù)表如下:
t_user字段名稱 | 數(shù)據(jù)類型 | 主鍵 | 是否空 | 說(shuō)明 |
---|
t_category字段名稱 | 數(shù)據(jù)類型 | 主鍵 | 是否空 | 說(shuō)明 |
---|
t_book字段名稱 | 數(shù)據(jù)類型 | 主鍵 | 是否空 | 說(shuō)明 |
---|
t_cartitem字段名稱 | 數(shù)據(jù)類型 | 主鍵 | 是否空 | 說(shuō)明 |
---|
t_order字段名稱 | 數(shù)據(jù)類型 | 主鍵 | 是否空 | 說(shuō)明 |
---|
t_orderitem字段名稱 | 數(shù)據(jù)類型 | 主鍵 | 是否空 | 說(shuō)明 |
---|
t_admin字段名稱 | 數(shù)據(jù)類型 | 主鍵 | 是否空 | 說(shuō)明 |
---|
第四章 前臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
《傳智播客網(wǎng)上圖書(shū)商城》的整個(gè)前臺(tái)部分是供用戶瀏覽、選購(gòu)圖書(shū)的部分,一個(gè)好的網(wǎng)站的前臺(tái)部分一定非常精美,非常有條理,因此,前臺(tái)的設(shè)計(jì)主要把握3點(diǎn):簡(jiǎn)明扼要、條理清晰、層次分明。下面將一一介紹我的《傳智播客網(wǎng)上圖書(shū)商城》系統(tǒng)的前臺(tái)部分的實(shí)現(xiàn)。
4.1 首頁(yè)設(shè)計(jì)
首頁(yè)模塊包括3個(gè)主要的部分,采用內(nèi)嵌框架技術(shù)。位置分別為上、左、中。
- 上部的實(shí)現(xiàn),上部包含兩大部分內(nèi)容:
- 網(wǎng)站標(biāo)題
- 菜單 菜單部分就是一系列的超鏈接,用戶在未登錄時(shí)看到的是“登錄”和“注冊(cè)”鏈接;在登錄后看到的是“我的購(gòu)物車”、“我的訂單”、“修改密碼”、“退出”超鏈接,以及當(dāng)前用戶名稱。
- 左部的實(shí)現(xiàn) 左部顯示所有分類,包含所有1級(jí)、2級(jí)分類。左部使用了Javascript的Q6Menu組件來(lái)完成顯示所有分類。當(dāng)用戶點(diǎn)擊某個(gè)1級(jí)分類名稱時(shí)會(huì)展示當(dāng)前1級(jí)分類的所有2級(jí)分類。
- 中部的實(shí)現(xiàn) 中部是網(wǎng)站的骨干,點(diǎn)擊任何超鏈接都會(huì)在中部顯示。默認(rèn)只是使用純文本顯示歡迎信息。
4.2 用戶模塊
注冊(cè)用戶是構(gòu)成網(wǎng)站主體的一個(gè)重要組成部分,網(wǎng)站設(shè)置注冊(cè)用戶的目的之一在于方便網(wǎng)站信息的管理。
4.2.1 用戶注冊(cè)
用戶在登錄之前需要先進(jìn)行注冊(cè),在首頁(yè)中點(diǎn)擊“注冊(cè)”鏈接就可以到達(dá)注冊(cè)頁(yè)面。
表單校驗(yàn)注冊(cè)頁(yè)面使用JQuery對(duì)用戶輸入的數(shù)據(jù)進(jìn)行校驗(yàn):
- 用戶名
- 不能為空
- 長(zhǎng)度必須在2~15之間
- 不能是已注冊(cè)過(guò)的
- Email
- 不能為空
- 必須是正確的Email格式
- 不能是注冊(cè)過(guò)的Email
表單校驗(yàn)中,用戶名是否被注冊(cè)過(guò)、Email是否被注冊(cè)過(guò)、驗(yàn)證碼是否正確這三項(xiàng)都需要請(qǐng)求服務(wù)器,所以這里使用的是JQuery的ajax()來(lái)完成對(duì)服務(wù)器的訪問(wèn)。
激活當(dāng)用戶注冊(cè)成功后還需要激活成功后才能登錄。在注冊(cè)成功后,系統(tǒng)給用戶的郵箱發(fā)送一份激活郵件。當(dāng)用戶登錄自己的郵箱后,在激活郵件中點(diǎn)擊激活鏈接完成激活后,才可以去登錄。
4.2.2 用戶登錄
在首頁(yè)點(diǎn)擊“登錄”鏈接就可以來(lái)到登錄頁(yè)面。
表單校驗(yàn)- 用戶名
- 不能為空
- 長(zhǎng)度必須在2~15之間
- 用戶名是否存在;
登錄表單校驗(yàn)使用的JQuery完成,其中用戶名是否存在,以及驗(yàn)證碼是否正確需要使用JQuery的ajax()向服務(wù)器發(fā)送異步請(qǐng)求。
登錄成功用戶登錄成功后,會(huì)回到首頁(yè)。這時(shí)在首頁(yè)會(huì)顯示當(dāng)前用戶的名稱,以及“我的購(gòu)物車”、“我的訂單”、“修改密碼”、“退出”鏈接。也就是說(shuō),這幾個(gè)功能只能登錄用戶才能使用,而游客是無(wú)法使用的。
4.2.3 修改當(dāng)前用戶密碼
用戶在登錄成功后,點(diǎn)擊修改密碼鏈接就會(huì)到達(dá)修改密碼頁(yè)面。
表單校驗(yàn)- 原密碼
- 不能為空
- 長(zhǎng)度必須在2~15之間
- 是否正確
表單校驗(yàn)使用JQuery完成。其中原密碼和驗(yàn)證碼是否正確,需要異步訪問(wèn)服務(wù)器,這里使用的是JQuery的ajax()完成的。
4.2.4 退出
當(dāng)用戶登錄后,點(diǎn)擊退出鏈接可以完成退出。退出成功后會(huì)到達(dá)登錄頁(yè)面!
4.3 圖書(shū)模塊
4.3.1 圖書(shū)列表
在首頁(yè)左部點(diǎn)擊某個(gè)2級(jí)分類,會(huì)在首頁(yè)的中部顯示圖書(shū)列表頁(yè)面。圖書(shū)列表使用分頁(yè)顯示。
可以在圖書(shū)列表上方輸入關(guān)鍵字進(jìn)行搜索。
4.3.2 圖書(shū)詳細(xì)
點(diǎn)擊某本圖書(shū),會(huì)到達(dá)圖書(shū)詳細(xì)頁(yè)面。
4.3.3 高級(jí)搜索
在圖書(shū)列表頁(yè)面點(diǎn)擊高級(jí)搜索到達(dá)搜索頁(yè)面。
高級(jí)搜索有三個(gè)條件:書(shū)名、作者、出版社,三個(gè)條件的關(guān)系是并列的。而且三個(gè)條件都是模糊查詢。
4.4 購(gòu)物車
購(gòu)物車使用數(shù)據(jù)庫(kù)來(lái)保存數(shù)據(jù),也就是說(shuō)添加到購(gòu)物車中的圖書(shū),不會(huì)因?yàn)殛P(guān)閉瀏覽器,或者是關(guān)閉電腦而消失。而且修改數(shù)量,是通過(guò)異步請(qǐng)求來(lái)操作數(shù)據(jù)庫(kù)的。
4.4.1 添加圖書(shū)到購(gòu)物車
在圖書(shū)詳細(xì)頁(yè)面,給出數(shù)量,然后點(diǎn)擊“購(gòu)買”就可以把圖書(shū)添加到購(gòu)物車中,并且會(huì)到達(dá)購(gòu)物車列表頁(yè)面。
4.4.2 我的購(gòu)物車
也可以在首頁(yè)上部點(diǎn)擊“我的購(gòu)物車”鏈接查詢購(gòu)物車。購(gòu)物車列表頁(yè)面會(huì)顯示所有車中所有條目,每個(gè)條目會(huì)顯示圖書(shū)圖片、圖書(shū)名稱、圖書(shū)當(dāng)前價(jià)、數(shù)量,以及小計(jì)。
4.4.3 修改條目數(shù)量
在購(gòu)物車列表頁(yè)面中,點(diǎn)擊某個(gè)條目上的數(shù)量來(lái)完成修改數(shù)量。這項(xiàng)操作會(huì)修改底層數(shù)據(jù)庫(kù)。所以這里需要使用JQuery的異步處理訪問(wèn)服務(wù)器,完成對(duì)數(shù)據(jù)庫(kù)表的修改。
當(dāng)數(shù)量為1時(shí),如果把數(shù)量減1,會(huì)彈出確認(rèn)對(duì)話框,提示是否刪除該條目。
4.4.4 刪除條目
在購(gòu)物車列表頁(yè)面中,點(diǎn)擊某個(gè)條目后面的“刪除”鏈接會(huì)刪除當(dāng)前條目。也可以勾選N個(gè)條目,然后點(diǎn)擊“批量刪除”鏈接,完成一次刪除多個(gè)條目。
4.5 訂單模塊
對(duì)訂單的操作,對(duì)應(yīng)數(shù)據(jù)庫(kù)中的兩張表,即訂單表和訂單條目表(t_order和t_orderitem)。而且訂單模塊的功能比較多:
- 生成訂單:通過(guò)購(gòu)物車中勾選的條目來(lái)生成訂單
- 我的訂單:顯示當(dāng)前用戶的所有訂單,每個(gè)訂單所包含的訂單條目也需要顯示
- 訂單支付:使用易寶的第三方支付平臺(tái)完成,對(duì)“在線支付”的理解也是一個(gè)挑戰(zhàn)
- 訂單詳細(xì):顯示指定的某個(gè)訂單
- 訂單取消和訂單的確認(rèn)收貨:這兩個(gè)功能都是對(duì)訂單狀態(tài)的修改
4.5.1 選中條目,準(zhǔn)備生成訂單
在購(gòu)物車列表頁(yè)面中,勾選要購(gòu)買的條目,然后點(diǎn)擊“結(jié)算”按鈕,完成選中條目,準(zhǔn)備生成訂單,這會(huì)到達(dá)訂單準(zhǔn)備頁(yè)面。
4.5.2 生成訂單
在訂單準(zhǔn)備頁(yè)面,輸入收貨地址,然后點(diǎn)擊“提交訂單”按鈕,完成下單(生成訂單)。這時(shí)會(huì)到達(dá)“下單成功”頁(yè)面。
這時(shí)訂單已經(jīng)生成,但狀態(tài)為“未付款”??梢栽凇跋聠纬晒Α表?yè)面點(diǎn)擊“支付”按鈕到達(dá)“支付”頁(yè)面。
4.5.3 訂單列表
在首頁(yè)上部點(diǎn)擊“我的訂單”鏈接,就會(huì)到達(dá)訂單列表頁(yè)面。該頁(yè)面會(huì)顯示當(dāng)前用戶的所有訂單信息。該頁(yè)使用分頁(yè)顯示訂單!
4.5.4 支付頁(yè)面
在“下單成功”頁(yè)面,或者“訂單列表”頁(yè)面中點(diǎn)擊“支付”按鈕都可以到達(dá)“支付”頁(yè)面。在“支付”頁(yè)面中選擇銀行,后點(diǎn)擊下一步就會(huì)跳轉(zhuǎn)到銀行的支付頁(yè)面了。這里使用的是“易寶”第三方支付平臺(tái)!
4.5.5 訂單詳細(xì)頁(yè)面
在訂單列表頁(yè)面中,點(diǎn)擊某個(gè)訂單的“查看”、“取消”、“確認(rèn)收貨”都會(huì)到達(dá)“訂單詳細(xì)”頁(yè)面。其中點(diǎn)擊“查看”到達(dá)“訂單詳細(xì)”頁(yè)面后沒(méi)有按鈕;點(diǎn)擊“取消”到達(dá)“訂單詳細(xì)”頁(yè)面有“取消按鈕”按鈕;點(diǎn)擊“確認(rèn)收貨”按鈕到達(dá)“訂單詳細(xì)”頁(yè)面有“確認(rèn)收貨”按鈕。
4.5.6 訂單狀態(tài)
訂單的狀態(tài)分為5種:
- 未付款狀態(tài):當(dāng)訂單剛剛生成時(shí),就是1狀態(tài)
- 已付款狀態(tài),但未發(fā)貨:當(dāng)訂單剛剛支付之后,就是2狀態(tài)
- 已發(fā)貨,但未消確認(rèn)收貨:當(dāng)訂單剛剛發(fā)貨之后,就是3狀態(tài)
- 交易成功:當(dāng)訂單確認(rèn)收貨之后,就是4狀態(tài)。一旦訂單為4狀態(tài)后,就不能再改變狀態(tài)
- 已取消:當(dāng)訂單被取消后,就是5狀態(tài)。只有1狀態(tài)(未付款狀態(tài))的訂單可以取消,其他狀態(tài)的訂單是不可以取消的。一旦訂單為5狀態(tài)后,就不能再改變狀態(tài)
第五章 后臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
書(shū)城后臺(tái)的設(shè)計(jì)是為管理員方便管理系統(tǒng)而設(shè)計(jì)的,其中包括分類管理、圖書(shū)管理,以及訂單管理。
5.1 管理員登錄
后臺(tái)管理員登錄頁(yè)面,登錄成功后到達(dá)后臺(tái)主頁(yè)。
5.2 后臺(tái)主頁(yè)
管理員登錄成功后,到達(dá)主頁(yè)。主頁(yè)是框架頁(yè),由上、下兩部分構(gòu)成。
- 上部顯示標(biāo)題和菜單,分別為:“退出”、“分類管理”、“圖書(shū)管理”、“訂單管理”,以及當(dāng)前用戶名稱
- 中部默認(rèn)顯示歡迎圖片,當(dāng)點(diǎn)擊上部鏈接后,都在中部顯示
5.3 分類管理
5.3.1 分類列表
當(dāng)點(diǎn)擊首頁(yè)上部的“分類管理”鏈接到達(dá)分類列表頁(yè)面。
5.3.2 添加分類
在分類列表頁(yè)面中有“添加一級(jí)分類”鏈接,點(diǎn)擊該鏈接直接“添加一級(jí)分類頁(yè)面”。
列表中每個(gè)一級(jí)分類后面都存在“添加二級(jí)分類”鏈接,添加可以到達(dá)“添加二級(jí)分類頁(yè)面”。
添加二級(jí)分類需要指定父分類。
5.3.3 修改分類
在分類列表中,每個(gè)一級(jí)分類,以及二級(jí)分類后都存在“修改”鏈接。點(diǎn)擊一級(jí)分類后的“修改”鏈接進(jìn)入“修改一級(jí)分類頁(yè)面”;點(diǎn)擊二級(jí)分類后的“修改”鏈接進(jìn)入“修改二級(jí)分類頁(yè)面”。
5.3.4 刪除分類
在分類列表中,每個(gè)一級(jí)分類,以及二級(jí)分類后都存在“刪除”鏈接。點(diǎn)擊一級(jí)分類后的“刪除”鏈接完成刪除一級(jí)分類;點(diǎn)擊二級(jí)分類后的“刪除”完成刪除二級(jí)分類。
- 注意,如果一級(jí)分類下存在子分類,那么不能刪除
- 注意,如果一級(jí)分類下存在圖書(shū),那么不能刪除
5.4 圖書(shū)管理
后臺(tái)圖書(shū)管理這一部分,很多地方都與前臺(tái)的圖書(shū)操作相同,例如:分頁(yè)顯示所有圖書(shū)、按分類查詢圖書(shū)、高級(jí)查詢圖書(shū)、查看圖書(shū)詳細(xì)信息。后臺(tái)圖書(shū)管理還包括前臺(tái)所沒(méi)有的功能,例如:添加新圖書(shū)、編輯和刪除圖書(shū)。
5.4.1 圖書(shū)列表頁(yè)面
圖書(shū)列表頁(yè)面分為兩個(gè)部分:
- 左部:顯示所有分類,與前臺(tái)是相同的,用來(lái)通過(guò)指定分類來(lái)查詢圖書(shū)
- 中部:默認(rèn)顯示“添加圖書(shū)”和“高級(jí)查詢”兩項(xiàng)功能,當(dāng)管理員點(diǎn)擊某一分類后,中部顯示圖書(shū)列表
5.4.2 添加圖書(shū)
點(diǎn)擊“圖書(shū)管理”鏈接后,在中部會(huì)出現(xiàn)“添加圖書(shū)”鏈接,點(diǎn)擊后會(huì)進(jìn)入添加圖書(shū)表單頁(yè)面。
表單使用了JQuery進(jìn)行校驗(yàn),如果校驗(yàn)無(wú)誤,添加圖書(shū)會(huì)成功!
5.4.3 高級(jí)搜索
點(diǎn)擊“圖書(shū)管理”鏈接后,在中部會(huì)出現(xiàn)“高級(jí)搜索”鏈接,點(diǎn)擊后會(huì)進(jìn)入高級(jí)搜索表單頁(yè)面。
這個(gè)高級(jí)搜索與前臺(tái)是相同的,只需要在表單中輸入條件后搜索,即可在圖書(shū)列表中顯示結(jié)果。
5.4.4 圖書(shū)詳細(xì)
在圖書(shū)列表中點(diǎn)擊某一本圖書(shū)后會(huì)進(jìn)入圖書(shū)詳細(xì)頁(yè)面。
圖書(shū)詳細(xì)頁(yè)面上方有一個(gè)名為“編輯或刪除”的復(fù)選框,如果管理員勾選它,那么頁(yè)面會(huì)顯示表單,并多出兩個(gè)按鈕:“編輯”和“刪除”。
5.5 訂單管理
5.5.1 訂單列表
點(diǎn)擊“訂單管理”鏈接會(huì)到達(dá)訂單列表頁(yè)面。該頁(yè)面會(huì)分頁(yè)顯示所有訂單!
訂單列表頁(yè)面上包含按狀態(tài)查詢的鏈接,分別為:未付款、已付款、已發(fā)貨、交易成功、已取消,管理員可以點(diǎn)擊這幾個(gè)鏈接按狀態(tài)查詢顯示訂單。
5.5.2 訂單詳細(xì)
在訂單列表頁(yè)面中,點(diǎn)擊某個(gè)訂單后面的:查看、取消、發(fā)貨鏈接會(huì)進(jìn)入到訂單詳細(xì)頁(yè)面。訂單詳細(xì)頁(yè)面會(huì)顯示當(dāng)前訂單的信息,而且會(huì)根據(jù)點(diǎn)擊的鏈接顯示不同的按鈕。
點(diǎn)擊發(fā)貨或取消按鈕完成相應(yīng)操作即可。
第六章 系統(tǒng)測(cè)試
6.1 測(cè)試的目的與目標(biāo)
在此系統(tǒng)進(jìn)行初步實(shí)現(xiàn)之后,開(kāi)始進(jìn)行對(duì)系統(tǒng)進(jìn)行測(cè)試,找出系統(tǒng)中存在的Bug,通過(guò)測(cè)試,用提交的Bug報(bào)告來(lái)為以后軟件的改進(jìn)提供標(biāo)準(zhǔn)和參考,能夠在以后的系統(tǒng)改進(jìn)中找到依據(jù)。
測(cè)試后的軟件各模塊基本功能可以順利進(jìn)行,盡可能的提高軟件的健壯性。
6.2 測(cè)試方法
- 從是否關(guān)心軟件內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)的角度劃分:黑盒測(cè)試和白盒測(cè)試
- 從是否執(zhí)行程序的角度:靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試
- 從軟件開(kāi)發(fā)的過(guò)程按階段劃分有:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試、回歸測(cè)試、Alpha測(cè)試、Beta測(cè)試
單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位 ─ 程序模塊(這里所說(shuō)的程序模塊在Java中一個(gè)模塊就是一個(gè)方法),進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。
集成測(cè)試 (組裝測(cè)試、聯(lián)合測(cè)試),通常在單元測(cè)試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng)。這時(shí)需要考慮的問(wèn)題是:
- 在把各個(gè)模塊連接起來(lái)的時(shí)候,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失
- 一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響
- 各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能
- 全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題
- 單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度
確認(rèn)測(cè)試(Validation Testing),確認(rèn)測(cè)試又稱有效性測(cè)試。任務(wù)是驗(yàn)證軟件的功能和性能及其它特性是否與用戶的要求一致。對(duì)軟件的功能和性能要求在軟件需求規(guī)格說(shuō)明書(shū)中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。
系統(tǒng)測(cè)試(System Testing),是將通過(guò)確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過(guò)與系統(tǒng)的需求定義作比較, 發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。
驗(yàn)收測(cè)試(Acceptance Testing),在通過(guò)了系統(tǒng)的有效性測(cè)試及軟件配置審查之后,就應(yīng)開(kāi)始系統(tǒng)的驗(yàn)收測(cè)試。驗(yàn)收測(cè)試是以用戶為主的測(cè)試。軟件開(kāi)發(fā)人員和QA(質(zhì)量保證)人員也應(yīng)參加。由用戶參加設(shè)計(jì)測(cè)試用例,使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。在測(cè)試過(guò)程中,除了考慮軟件的功能和性能外,還應(yīng)對(duì)軟件的可移植性、兼容性、可維護(hù)性、錯(cuò)誤的恢復(fù)功能等進(jìn)行確認(rèn)。
6.3 測(cè)試結(jié)論
把開(kāi)始的代碼寫(xiě)得越好,它出現(xiàn)的錯(cuò)誤也就越少,你也就越能相信所做過(guò)的測(cè)試是徹底的。系統(tǒng)化測(cè)試以一種有序方式設(shè)法探測(cè)潛在的麻煩位置。同樣,毛病最可能出現(xiàn)在邊界,這可以通過(guò)手工的或者程序的方式檢查。自動(dòng)進(jìn)行測(cè)試是最理想的,用得越多越好,因?yàn)闄C(jī)器不會(huì)犯錯(cuò)誤、不會(huì)疲勞、不會(huì)用臆想某此實(shí)際無(wú)法工作的東西能行來(lái)欺騙自己?;貧w測(cè)試檢查一個(gè)程序是否能產(chǎn)生與它們過(guò)去相同的輸出。在做了小改變之后就測(cè)試是一種好技術(shù), 能幫助我們將出現(xiàn)問(wèn)題的范圍局部化,因?yàn)樾聠?wèn)題一般就出現(xiàn)在新代碼里面。
測(cè)試和排錯(cuò)常常被說(shuō)成是一個(gè)階段,實(shí)際上它們根本不是同一件事。簡(jiǎn)單地說(shuō),排錯(cuò)是在你已經(jīng)知道程序有問(wèn)題時(shí)要做的事情。而測(cè)試則是在你在認(rèn)為程序能工作的情況下,排錯(cuò)是在你已經(jīng)知道程序有問(wèn)題時(shí)要做的事情。而測(cè)試則是在你在認(rèn)為程序能工作的情況下,為設(shè)法打敗它而進(jìn)行的一整套確定的系統(tǒng)化的試驗(yàn)。
Edsger Dijkstra有一個(gè)非常有名的說(shuō)法:測(cè)試能夠說(shuō)明程序中有錯(cuò)誤,但卻不能說(shuō)明其中沒(méi)有錯(cuò)誤。他的希望是,程序可以通過(guò)某種構(gòu)造過(guò)程正確地做出來(lái),這樣就不再會(huì)有錯(cuò)誤了,因此測(cè)試也就不必要了。這確實(shí)是個(gè)美好生活的目標(biāo),但是,對(duì)今天的實(shí)際程序而言,這仍然還只是一個(gè)理想。所以應(yīng)該集中精力討論如何測(cè)試,如何才能夠更快地發(fā)現(xiàn)程序錯(cuò)誤,如何才可以使得工作更有成效、效率更高。
第七章 結(jié)論
通過(guò)開(kāi)發(fā)《傳智播客網(wǎng)上圖書(shū)商城》,我較全面的掌握了JAVA的基本知識(shí)和編程技巧,并在開(kāi)發(fā)過(guò)程中我的JAVA開(kāi)發(fā)能力得到了進(jìn)一步的提高。如:更進(jìn)一步的深入了解MVC設(shè)計(jì)模式,軟件三層框架;SQL語(yǔ)言的使用。
在開(kāi)發(fā)過(guò)程中我學(xué)到了一些經(jīng)驗(yàn):系統(tǒng)分析的好壞將決定著的系統(tǒng)開(kāi)發(fā)成功與否,一份好分析設(shè)計(jì)將是成功開(kāi)發(fā)主要因素。我們?cè)谥珠_(kāi)發(fā)之前不要急于編程,先應(yīng)有較長(zhǎng)的時(shí)間去把分析做好,做好數(shù)據(jù)庫(kù)設(shè)計(jì)工作,寫(xiě)出相關(guān)的開(kāi)發(fā)文檔等。然后再開(kāi)始編寫(xiě)程序代碼,這樣做到每寫(xiě)一步代碼心底有數(shù),有條不絮。當(dāng)然也有些還需待繼續(xù)深入地方如:控件的應(yīng)用等。
參考文獻(xiàn)
[1] 張孝祥,Java 就業(yè)培訓(xùn)教程(附盤),清華大學(xué),(2007-07)
[2] 石志國(guó),薛為民,董潔.JSP應(yīng)用教程.杭州:清華大學(xué)出版社.杭州交通大學(xué)出版社,2004
[3] 李曙光.JSP開(kāi)發(fā)實(shí)例完全剖析.杭州:中國(guó)電力出版社,2006
[4] 楊易.JSP高級(jí)程序設(shè)計(jì).人民郵電出版社,2006
[5] Vivek Chopra.JSP高級(jí)程序設(shè)計(jì),機(jī)械工業(yè)出版社,2001
[6] 申吉紅,廖學(xué)峰,余健.JSP課程設(shè)計(jì)案例精編.杭州:清華大學(xué)出版社,2007
[7] 盧瀟.軟件工程.杭州:清華大學(xué)出版社;杭州交通大學(xué)出版社,2005
[8] 薩師煊,王姍.數(shù)據(jù)庫(kù)系統(tǒng)概論.杭州:高等教育出版社,2000
[9] 馬運(yùn)濤.Eclipse精要與高級(jí)開(kāi)發(fā)技術(shù).杭州:電子工業(yè)出版社,2003
[10] PaulJPerrone etal,張志偉,譚郁松,張明杰.J2EE構(gòu)建企業(yè)系統(tǒng)[M] .杭州:清華大學(xué)出版社,2001
[11] Chuck Cavaness.Programming Jakarta Struts,2002
[12] Bruce Shive.Research Direction in Object-Oriented Programming,2002
[13] Miao H.K.McDermid J.A.andTony Ian,Proving the existence of the initial state in Z specification,Chinese Journal of Advanced Software Research,2003
[14] Apache Software.The Struts User's Guide.http://Jakarta.Apache.org/struts.
關(guān)鍵詞:系統(tǒng),設(shè)計(jì),實(shí)現(xiàn)