版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于微信小程序的超市購(gòu)物系統(tǒng)Supermarketshoppingsystembasedonwechatapplet1緒論緒論1Introduction1.1課題背景和研究意義(BackgroundandSignificance)隨著“新零售”觀點(diǎn)的提出,網(wǎng)上購(gòu)物早就不再局限于建立人和網(wǎng)絡(luò)的聯(lián)系,更在于建設(shè)線上線下的購(gòu)物場(chǎng)景。微信小程序作為微信戰(zhàn)略級(jí)別的產(chǎn)品,已經(jīng)擔(dān)任起了以社交為屬性的電商角色,而它所提供的購(gòu)物場(chǎng)景已經(jīng)在全方位的輻射到我們的生活中,朋友之間的分享、二維碼的鋪設(shè)、公眾號(hào)文章中的植入、優(yōu)惠券各種活動(dòng)的發(fā)起、社交立減金的使用……我們無(wú)時(shí)不刻都在通過(guò)微信這個(gè)巨大的流量入口接近微信小程序。因此,結(jié)合以上優(yōu)勢(shì)設(shè)計(jì)并實(shí)現(xiàn)基于微信小程序的商城系統(tǒng),具有一定的研究意義和商業(yè)價(jià)值,符合我國(guó)互聯(lián)網(wǎng)精準(zhǔn)化營(yíng)銷和個(gè)性化服務(wù)的趨勢(shì)。信息技術(shù)的發(fā)展、傳統(tǒng)商務(wù)、電子商務(wù)在線上推廣和用戶購(gòu)物體驗(yàn)等方面遇到了新的問(wèn)題。利用微信的社交基因,微信小程序能覆蓋的場(chǎng)景會(huì)越來(lái)越多,商家們終于不用每天焦慮怎么在淘寶上占據(jù)一個(gè)絕佳的位置,因?yàn)樗耆梢蚤_(kāi)發(fā)一個(gè)自己的微信小程序,做自己的“專賣店”,而不必在淘寶這個(gè)“大商場(chǎng)”里和鄰居“打架”。功能豐富,場(chǎng)景豐富的微信小程序是非常適合為人們生活中的需求服務(wù),相對(duì)于原生態(tài)的APP無(wú)需下載,即走即用。微信小程序于2017年1月9日凌晨正式上線。,簡(jiǎn)稱小程序,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開(kāi)應(yīng)用。也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問(wèn)題。經(jīng)過(guò)幾年的發(fā)展,時(shí)至今日,微信小程序已經(jīng)為越來(lái)越多的用戶所認(rèn)知,也在越來(lái)越多的領(lǐng)域發(fā)揮著作用。據(jù)2019年騰訊開(kāi)發(fā)者大會(huì)上的數(shù)據(jù)顯示,微信小程序的日活躍量已經(jīng)達(dá)到3.8億,交易額已經(jīng)達(dá)到了8000多億。本論文以便利店的購(gòu)物方式為出發(fā)點(diǎn),結(jié)合微信小程序技術(shù),采用JAVA面向?qū)ο蟮拈_(kāi)發(fā)方法,開(kāi)發(fā)設(shè)計(jì)出方便快捷,無(wú)需下載安裝,方便商戶與消費(fèi)者的微信小程序。1.2國(guó)內(nèi)外研究狀況(FeasibilityAnalysis)由于微信在國(guó)內(nèi)十分火熱,基本上包含各種年齡的人群,根據(jù)騰訊2018年一季報(bào)數(shù)據(jù),微信及WeChat合并MAU達(dá)到10.4億,超過(guò)2017年底我國(guó)7.53億的手機(jī)網(wǎng)民規(guī)模,微信已實(shí)現(xiàn)對(duì)國(guó)內(nèi)移動(dòng)互聯(lián)網(wǎng)用戶的大面積覆蓋。2017年微信登錄人數(shù)已達(dá)9.02億,較2016年增長(zhǎng)17%,日均發(fā)送微信次數(shù)為380億,微信已成為國(guó)內(nèi)最大的移動(dòng)流量平臺(tái)之一。類似于基于微信小程序超市購(gòu)物系統(tǒng)目前在國(guó)內(nèi)的應(yīng)用也很廣泛,目前有很多類似的微信小程序超市購(gòu)物系統(tǒng),比如七天超市購(gòu)物系統(tǒng)、網(wǎng)易優(yōu)品超市購(gòu)物系統(tǒng)等超市購(gòu)物系統(tǒng),因此這樣的超市購(gòu)物系統(tǒng)還是十分值得我們?nèi)ネ茝V并做進(jìn)一步的研究,該超市購(gòu)物系統(tǒng)應(yīng)該具備商品瀏覽購(gòu)買以及對(duì)后臺(tái)對(duì)商品管理功能。1.3全文安排(Fulltextarrangement)本章主要對(duì)“基于微信小程序的超市購(gòu)物系統(tǒng)”的課題的研究背景和國(guó)內(nèi)外的研究狀況進(jìn)行分析。后面對(duì)整個(gè)程序設(shè)計(jì)和開(kāi)發(fā)過(guò)程進(jìn)行分析和講述,主要包括從設(shè)計(jì)程序的開(kāi)發(fā)技術(shù)和開(kāi)發(fā)工具,當(dāng)前的可行性分析和需求分析,系統(tǒng)總體和詳細(xì)的分析,系統(tǒng)功能的測(cè)試和檢驗(yàn),結(jié)論,外文翻譯,致謝。4系統(tǒng)詳細(xì)設(shè)計(jì)4系統(tǒng)詳細(xì)實(shí)現(xiàn)2開(kāi)發(fā)技術(shù)與開(kāi)發(fā)工具2Developmenttechnologyandtools2.1微信小程序(Wechatapplet)小程序”是一種無(wú)需安裝,即可使用的手機(jī)“應(yīng)用”。不需要像往常一樣下載App,用戶在微信中“用完即走”。它簡(jiǎn)單無(wú)需占用收集內(nèi)存非常方便。小程序是基于微信平臺(tái)的輕量級(jí)應(yīng)用,它的開(kāi)發(fā)是應(yīng)用微信提供的小程序前端規(guī)范,結(jié)合企業(yè)自己開(kāi)發(fā)的應(yīng)用后端來(lái)制作??傮w來(lái)說(shuō),也就是微信小程序在微信平臺(tái)中只需要開(kāi)發(fā)前端版本,而在后臺(tái)等部分則由網(wǎng)站公司采用各種程序語(yǔ)言自行編寫。微信小程序常見(jiàn)使用“MINA”框架,ApacheMinaServer是一個(gè)網(wǎng)絡(luò)通信應(yīng)用框架,也就是說(shuō),它主要是對(duì)基于TCP/IP、UDP/IP協(xié)議棧的通信框架,Mina可以幫助開(kāi)發(fā)者快速開(kāi)發(fā)高性能、高擴(kuò)展性的網(wǎng)絡(luò)通信應(yīng)用,Mina提供了事件驅(qū)動(dòng)、異步(Mina的異步IO默認(rèn)使用的是JAVANIO作為底層支持)操作的編程模型。這個(gè)框架為微信小程序的運(yùn)行提供了豐富的組件和API。微信小程序開(kāi)發(fā)者要學(xué)會(huì)和掌握小程序的框架結(jié)構(gòu)、數(shù)據(jù)綁定機(jī)制、模板、數(shù)據(jù)緩存、常用組件和API等相關(guān)知識(shí)。2.2java語(yǔ)言技術(shù)(Javalanguagetechnology) Java是一門面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,Java具有簡(jiǎn)單性、面向?qū)ο?、分布式、健壯性、安全性、平臺(tái)獨(dú)立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)。Java的開(kāi)發(fā)環(huán)境主要是JDK。JDK全稱是JavaDevelopmentToolKit,是Java語(yǔ)言的軟件開(kāi)發(fā)工具包,用于構(gòu)建在Java平臺(tái)上發(fā)布的應(yīng)用程序、applet和組件的開(kāi)發(fā)環(huán)境。“它是整個(gè)Java開(kāi)發(fā)的核心部分,包含了大量的Java工具、基本類庫(kù)(rt.jar)和運(yùn)行環(huán)境(JavaRuntimeEnvironment)”。Java的眾多特點(diǎn)使得它的應(yīng)用范圍也很廣,比如:由于Java具有安全性,所以被廣泛應(yīng)用于金融行業(yè),很多第三方交易系統(tǒng)、銀行的前后臺(tái)電子交易系統(tǒng)等都是用Java開(kāi)發(fā)的;由于Java具有平臺(tái)獨(dú)立與可移植性讓它可以被應(yīng)用于嵌入式物聯(lián)網(wǎng)領(lǐng)域。Java作為一種主流編程語(yǔ)言占到了很大份額。在嵌入式方面的發(fā)展更是迅速,現(xiàn)在流行的手機(jī)游戲,幾乎都是應(yīng)用Java語(yǔ)言開(kāi)發(fā)的。可以說(shuō)Java和人們的生活息息相關(guān)。2.3Maven工具(Maventools) Maven是Apache軟件基金會(huì)組織維護(hù)的一款自動(dòng)化構(gòu)建工具,專注服務(wù)于Java平臺(tái)的項(xiàng)目構(gòu)建和依賴管理。Maven是一個(gè)用于項(xiàng)目構(gòu)建的工具,通過(guò)它便捷的管理項(xiàng)目的生命周期。即項(xiàng)目的jar包依賴,開(kāi)發(fā),測(cè)試,發(fā)布打包,主要管理工作是:依賴管理,項(xiàng)目一鍵構(gòu)建。使用maven構(gòu)建的項(xiàng)目,整個(gè)項(xiàng)目的體積小。maven項(xiàng)目不需要手動(dòng)導(dǎo)入jar包,通過(guò)在pom.xml中添加依賴,引用依賴會(huì)自動(dòng)從maven倉(cāng)庫(kù)下載jar包,方便快捷。項(xiàng)目一鍵構(gòu)建:使用maven可以快速地對(duì)項(xiàng)目進(jìn)行編譯--測(cè)試--運(yùn)行--打包--安裝。maven支持跨平臺(tái)操作,可在window、linux、mac上使用。maven遵循規(guī)范開(kāi)發(fā)有利于提高大型團(tuán)隊(duì)的開(kāi)發(fā)效率,降低項(xiàng)目的維護(hù)成本,屬于主流技術(shù),一般公司都會(huì)使用maven來(lái)構(gòu)建項(xiàng)目。2.4Spring+SpringMVC+MyBatis框架(Spring+springmvc+mybatisframework)2.4.1Spring簡(jiǎn)介 Spring是一個(gè)開(kāi)源框架,Spring是于2003年興起的一個(gè)輕量級(jí)的Java開(kāi)發(fā)框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中闡述的部分理念和原型衍生而來(lái)。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。2.4.2SpringMVC簡(jiǎn)介 SpringMVC屬于SpringFramework的后續(xù)產(chǎn)品,已經(jīng)融合在SpringWebFlow里面,它原生支持的Spring特性,讓開(kāi)發(fā)變得非常簡(jiǎn)單規(guī)范。SpringMVC分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行定制。2.4.3Mybatis簡(jiǎn)介 MyBatis本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由apachesoftwarefoundation遷移到了googlecode,并且改名為MyBatis。MyBatis是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQLMaps和DataAccessObjects(DAO)MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis使用簡(jiǎn)單的XML或注解用于配置和原始映射,將接口和Java的POJOs(PlainOldJavaObjects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄??梢赃@么理解,MyBatis是一個(gè)用來(lái)幫你管理數(shù)據(jù)增刪改查的框架。2.5開(kāi)發(fā)工具介紹(IntroductionofJavatechnologydevelopmenttools)對(duì)于開(kāi)發(fā)人員來(lái)說(shuō),選擇一個(gè)既支持控件技術(shù)又適合自己的編譯器是至關(guān)重要的,它在很大程度上能提高開(kāi)發(fā)效率。2.5.1IDEA簡(jiǎn)介后端編譯器為IntelliJIDEA。它可以自動(dòng)感知錯(cuò)誤代碼并提出簡(jiǎn)單的修復(fù)建議,可以靈活的添加或刪除插件的管理功能、代碼自動(dòng)提示與重構(gòu)功能、各類版本工具(Git、SVN)、JUnit、CVS的整合功能以及多種形式的導(dǎo)航功能,直觀簡(jiǎn)潔的GUI,靈巧的編輯功能,強(qiáng)大的集成功能以及XML的支持;此外,“它同樣支持重定向技術(shù)”[12]。在業(yè)界被公認(rèn)為最好的Java開(kāi)發(fā)工具之一。2.5.2微信開(kāi)發(fā)者工具簡(jiǎn)介本系統(tǒng)前端編譯器為微信開(kāi)發(fā)者工具。微信為開(kāi)發(fā)者提供了微信開(kāi)發(fā)者工具和其他的開(kāi)發(fā)工具都差不多,集成了開(kāi)發(fā)調(diào)試,代碼編輯和程序發(fā)布等功能。代碼編輯器支持四中文件的編輯,分別是wxml、wxss、js和json文件。調(diào)試工具部分頂部的菜單Console、Sources、Network、Storage、APPDate、Wxml。Console:控制臺(tái),可以直接在這里輸入代碼調(diào)試,另外可以顯示小程序的錯(cuò)誤輸出,Sources:源文件調(diào)試,用來(lái)顯示當(dāng)前項(xiàng)目的腳本文件,Network:網(wǎng)絡(luò)調(diào)試,用來(lái)顯示各個(gè)元素請(qǐng)求信息和網(wǎng)絡(luò)相關(guān)信息。Storage:數(shù)據(jù)存儲(chǔ),用來(lái)顯示當(dāng)前項(xiàng)目使用存儲(chǔ)API借口的數(shù)據(jù)存儲(chǔ)情況,以key、value顯示。AppData:調(diào)試顯示當(dāng)前項(xiàng)目的應(yīng)用具體數(shù)據(jù)。Wxml:幫助開(kāi)發(fā)者調(diào)試Wxml轉(zhuǎn)化后的界面。2.4.3Mysql簡(jiǎn)介MySQL是一個(gè)全球流行的數(shù)據(jù)庫(kù),也是一個(gè)可以處理數(shù)據(jù)庫(kù)的管理系統(tǒng)(RDBMS)。phpMyAdmin是用于管理MySQL的軟件,SQL是一種用于操作關(guān)系數(shù)據(jù)庫(kù)的語(yǔ)言,也有是一種結(jié)構(gòu)化查詢語(yǔ)言,每個(gè)RDBMS都有許多不同的語(yǔ)法部分。MySQL支持當(dāng)前的SQL標(biāo)準(zhǔn),此外,MySQL以各種SQL模式運(yùn)行,例如ANSI,STRICTTRANSTABLES,TRADITIONAL。值得注意的是,MySQL使用了幾個(gè)擴(kuò)展來(lái)增強(qiáng)SQLServer標(biāo)準(zhǔn)。MySQL可以把數(shù)據(jù)保存在不同的表中,而不是將數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)中可以運(yùn)行于多個(gè)系統(tǒng)上,并且支持多種編程語(yǔ)言,包括C、C++、Python、Java、Perl、PHP、Ruby等,可以搭配JAVA和Apachetomcat組成良好的開(kāi)發(fā)環(huán)境。3可行性分析與需求分析3Feasibilityanalysisanddemandanalysis3.1可行性分析(FunctionalAnalysis)3.1.1經(jīng)濟(jì)可行性 相對(duì)于傳統(tǒng)的商城APP,微信小程序無(wú)需下載,即用即走,用戶基數(shù)大,隨時(shí)隨地都可以在附件的商店通過(guò)網(wǎng)絡(luò)進(jìn)行購(gòu)物。商戶可以節(jié)省實(shí)體店的裝修費(fèi)用和投資,只需在管理網(wǎng)站進(jìn)行及時(shí)商品管理利用快遞服務(wù),便可以賣出商品,推動(dòng)了自身發(fā)展和快遞業(yè)經(jīng)濟(jì),方便了用戶。3.1.2技術(shù)可行性 本次畢業(yè)設(shè)計(jì)采用iDEA編輯器,Spring+SpringMVC+Mybatis框架技術(shù),微信開(kāi)發(fā)者工具,使用MySQL數(shù)據(jù)庫(kù),編程使用java語(yǔ)言,這些技術(shù)已經(jīng)非常成熟。而微信小程序的開(kāi)發(fā)已經(jīng)成為當(dāng)前一個(gè)熱門的主流技術(shù),微信開(kāi)發(fā)者工具也同時(shí)不斷發(fā)展和更新,java語(yǔ)言的安全性,可移植性也為本系統(tǒng)打下了基礎(chǔ),并且以上所提到的技術(shù)是免費(fèi)。3.1.3操作可行性本系統(tǒng)以微信小程序?yàn)榍岸?,用戶即走即用,方便快捷,讓用戶的?gòu)買方法更加豐富,使用戶的購(gòu)物體驗(yàn)更加舒適。后臺(tái)管理員界面使用jsp技術(shù),頁(yè)面簡(jiǎn)潔,操作簡(jiǎn)單方便,隨時(shí)可以更新商品信息和查看修改訂單和用戶信息,使管理員的操作體驗(yàn)更加輕松。3.2需求分析(FunctionalAnalysis)為了更好理解和設(shè)計(jì)比較好的軟件,我們需要對(duì)其進(jìn)行詳細(xì)和全面的需求分析,來(lái)呈現(xiàn)次成品的效果。以下從業(yè)務(wù)需求,用戶需求和功能模塊需求三個(gè)方面對(duì)本系統(tǒng)進(jìn)行全面的需求分析。3.2.1業(yè)務(wù)需求 基于微信小程序的超市購(gòu)物系統(tǒng)有不同的角色操作,并且將系統(tǒng)分為微信小程序的客戶端和后臺(tái)管理端,這樣分開(kāi)功能明確,方便快捷,管理性強(qiáng)。微信小程序超市購(gòu)物系統(tǒng)的主要工作流程為:?jiǎn)?dòng)服務(wù)器并進(jìn)入系統(tǒng)界面,用戶可以瀏覽小程序,挑選自己喜歡的商品,管理員可以管理整個(gè)系統(tǒng),對(duì)所售商品進(jìn)行添加、修改和刪除,還可以處理客戶訂單,以及對(duì)商品銷量進(jìn)行查看管理、查看留言。用戶在該超市購(gòu)物系統(tǒng)中的業(yè)務(wù)流程圖如圖3.2-1所示。表3.2-1業(yè)務(wù)流程圖名稱簡(jiǎn)述用戶登錄系統(tǒng)用戶可以直接登錄小程序,直接查看與購(gòu)物商品瀏覽或搜索商品用戶可以在搜索欄中直接搜索自己需要的商品,并且看到當(dāng)前該商品的實(shí)際情況,或者通過(guò)當(dāng)前頁(yè)瀏覽推薦商品并查看詳情添加購(gòu)物車用戶將自己需要購(gòu)買的商品選中放進(jìn)購(gòu)物車中,可在購(gòu)物車中看商品的價(jià)格與數(shù)量信息,也可以直接刪除購(gòu)物車中的商品用戶反饋收集用戶對(duì)該商品的反饋意見(jiàn),及時(shí)記錄并在管理后臺(tái)中3.2.2用戶需求基于微信小程序的超市購(gòu)物系統(tǒng)的開(kāi)發(fā)需求是以小程序超市購(gòu)物系統(tǒng)為平臺(tái),將前臺(tái)微信小程序用戶模塊和后臺(tái)管理的管理員模塊的以不同需求體現(xiàn)出來(lái),且不同的角色擁有不同的貼合自身的功能。3.3功能模塊需求分析根據(jù)相對(duì)應(yīng)需求分析,將進(jìn)行詳盡的分析和設(shè)計(jì),通過(guò)開(kāi)發(fā)一個(gè)基于微信小程序的超市購(gòu)物系統(tǒng),方便便捷消費(fèi)者日常購(gòu)物的需求,用戶只需在小程序中選擇自己喜歡的商品下單,管理者通過(guò)后臺(tái)系統(tǒng)的管理對(duì)商品及時(shí)的更新和用戶訂單信息及時(shí)的查看,有效地節(jié)約了人力物力。根據(jù)要求主要包括以下幾個(gè)模塊:(1)用戶模塊主要包括用戶登陸該超市購(gòu)物系統(tǒng)、注冊(cè)個(gè)人信息,可以對(duì)自己的個(gè)人信息進(jìn)行更新。(2)管理員模塊主要包括登錄后臺(tái)管理系統(tǒng),注冊(cè)個(gè)人信息,管理普通管理員信息,商品管理,用戶管理,訂單管理和平用戶反饋管理。(3)小程序超市購(gòu)物首頁(yè)模塊用戶進(jìn)入小程序后,可以瀏覽商品列表,可以瀏覽商品的詳細(xì)信息,可以直接查看在輪播圖中的熱銷商品的信息或加入購(gòu)物車,可以在搜索欄中直接搜索或查詢自己喜歡的商品,只要在搜索欄中輸入商品的名稱或者是與商品相關(guān)的信息,便可以搜索出自己想要的商品,更加方便了用戶購(gòu)物體驗(yàn)。(4)購(gòu)物車管理模塊主要包括對(duì)對(duì)購(gòu)物車?yán)锏纳唐愤M(jìn)行查看它的數(shù)量和價(jià)格,也可以對(duì)商品的數(shù)量進(jìn)行調(diào)整,刪除自己不想買的或者添加的商品,顯示出已選擇商品的總價(jià)格,最終確認(rèn)訂單信息后進(jìn)行下訂單。(5)商品管理模塊主要包括在后臺(tái)管理中對(duì)商品的信息進(jìn)行修改,如價(jià)格,圖片,簡(jiǎn)介等信息,并可以將其設(shè)置熱門商品,在頁(yè)面中的輪播圖模塊進(jìn)行展示。(6)訂單管理模塊主要包括用戶對(duì)自己想要的商品進(jìn)行購(gòu)買并確認(rèn)訂單信息且下單,用戶拿到商品后,可以確認(rèn)訂單信息并且對(duì)商品進(jìn)行評(píng)價(jià),當(dāng)用戶對(duì)此商品不滿意或者商品質(zhì)量本身出現(xiàn)問(wèn)題時(shí),可以隨時(shí)商家進(jìn)行反饋并可以對(duì)次商品提出退貨。(7)收藏夾模塊主要包括可以對(duì)自己喜歡的商品進(jìn)行收藏,可以對(duì)收藏中的商品提交到購(gòu)物車進(jìn)行購(gòu)買或者將其刪除。(8)信息反饋管理模塊主要包括管理員對(duì)用戶對(duì)商品的做出的反饋和評(píng)價(jià)并且對(duì)其回復(fù)留言,管理員也可以對(duì)一些言論進(jìn)行刪除或修改。 如功能模塊圖如圖3.1所示。前臺(tái)頁(yè)面主要功能包括:商品分類:當(dāng)用戶第一次訪問(wèn)該商城時(shí),可以按照商品分類快速查找到自己所需商品是屬于哪一類型;2.商品描述:當(dāng)用戶看到某一商品時(shí),可以查看該商品情況的詳細(xì)介紹。3.購(gòu)物車:該功能也是一個(gè)購(gòu)物網(wǎng)站必須的功能,用戶不可能看中一件商品就去付一次款,用戶可以先將看中的商品加入購(gòu)物車中,等挑選結(jié)束后,再進(jìn)行統(tǒng)一付款。4.查看訂單:該功能主要是方便用戶查看自己的訂單,當(dāng)用戶下一次單時(shí),商家可以受理此訂單并進(jìn)行發(fā)貨,用戶收到貨后,可以確認(rèn)收貨并評(píng)價(jià)商品。后臺(tái)管理頁(yè)面的功能主要包括:系統(tǒng)參數(shù):該功能可以使管理員看到該商城系統(tǒng)的版本號(hào)和作者及作者的郵箱,有需要改進(jìn)的地方可以直接和作者聯(lián)系。管理員維護(hù):該功能可以讓管理員對(duì)自己的密碼進(jìn)行修改。訂單管理:當(dāng)某一用戶在前臺(tái)下單后,管理員在后臺(tái)可以查看訂單明細(xì),受理此訂單或刪除該訂單,方便管理員對(duì)訂單的管理。留言公告管理:管理員在后臺(tái)可以查看或刪除用戶的留言,發(fā)布最新的公告或刪除過(guò)期的公告。退出后臺(tái):該功能主要是方便管理員的退出,當(dāng)管理員想退出后臺(tái)管理頁(yè)面時(shí),點(diǎn)擊此按鈕,可以迅速返回到后臺(tái)的登錄頁(yè)面。前臺(tái)管理模塊用例模型如圖3-2-1所示:前臺(tái)管理用例說(shuō)明如表3-2-1所示:用例前臺(tái)管理活動(dòng)者管理員目的對(duì)用戶信息進(jìn)行查詢,及時(shí)更新商品信息簡(jiǎn)述查詢用戶的信息,訂單信息,反饋信息,及時(shí)添加或刪除商品信息后臺(tái)管理子模塊用例模型如圖3-2-2所示:圖3-2-1后臺(tái)管理子用例圖后臺(tái)管理用例說(shuō)明如表3-2-2所示:用例后臺(tái)管理活動(dòng)者管理員目的對(duì)用戶信息進(jìn)行查詢,及時(shí)更新商品信息簡(jiǎn)述查詢用戶的信息,訂單信息,反饋信息,及時(shí)添加或刪除商品信息4系統(tǒng)總體設(shè)計(jì)4Systemoveralldesign4.1數(shù)據(jù)庫(kù)E-R圖圖4.1管理員與商品的E-R圖圖4-1管理員與商品的E-R圖管理員實(shí)體的屬性圖圖4-2管理員實(shí)體的E-R圖商品的E-R圖圖4-3商品的E-R圖商品訂單的E-R圖圖4-4商品訂單的E-R圖用戶登錄E-R圖圖4-5用戶登錄的E-R圖用戶收藏E-R圖圖4-6用戶登錄的E-R圖用戶收貨信息E-R圖圖4-6用戶收貨信息的E-R圖4.2數(shù)據(jù)流圖 頂層數(shù)據(jù)流圖如圖4-2所示:頂層數(shù)據(jù)流圖4-24.3數(shù)據(jù)字典4.3.1系統(tǒng)功能設(shè)計(jì)(FunctionalModuleDesign)“功能設(shè)計(jì)就是按照系統(tǒng)定位的初步要求,在對(duì)需求及現(xiàn)有產(chǎn)品進(jìn)行功能調(diào)查分析的基礎(chǔ)上,對(duì)系統(tǒng)所應(yīng)具備的目標(biāo)功能系統(tǒng)進(jìn)行概念性的構(gòu)建活動(dòng)”[16]。功能設(shè)計(jì)是功能創(chuàng)新和系統(tǒng)設(shè)計(jì)的早期工作,也是系統(tǒng)成熟與否的重要依據(jù)。4.3.2數(shù)據(jù)庫(kù)設(shè)計(jì)(DatabaseDesign)“數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造(設(shè)計(jì))優(yōu)化的數(shù)據(jù)庫(kù)邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效的存儲(chǔ)和管理數(shù)據(jù),以滿足各種用戶的應(yīng)用需求”[16]。數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì) 概念結(jié)構(gòu)設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,它通過(guò)對(duì)用戶需求進(jìn)行綜合,歸納與抽象,形成了一個(gè)獨(dú)立于具體DBMS的概念模型。設(shè)計(jì)概念結(jié)構(gòu)通常有四類方法:自頂向下。即首先定義全局概念結(jié)構(gòu)的框架,再逐步細(xì)化。自底向上。即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后再將他們集成起來(lái),得到全局概念結(jié)構(gòu)。逐步擴(kuò)張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)張,以滾雪球的方式逐步生成其他的概念結(jié)構(gòu),直至總體概念結(jié)構(gòu)?;旌喜呗?。即自頂向下和自底向上相結(jié)合數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)相關(guān)的需求分析和系統(tǒng)設(shè)計(jì),在數(shù)據(jù)庫(kù)中設(shè)計(jì)相關(guān)數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫(kù)表中相對(duì)應(yīng)的數(shù)據(jù)關(guān)系模型用戶實(shí)體對(duì)應(yīng)的關(guān)系模式用戶(用戶id,用戶名,密碼,電話)商品實(shí)體對(duì)應(yīng)的關(guān)系模式商品(商品id,圖片,價(jià)格,標(biāo)題,反饋,分類,類型,狀態(tài))角色實(shí)體對(duì)應(yīng)的關(guān)系模式角色(角色id,角色名)分類實(shí)體對(duì)應(yīng)的關(guān)系模式分類(分類id,分類名)購(gòu)物車實(shí)體對(duì)應(yīng)的關(guān)系模式購(gòu)物車(商品id,價(jià)格,用戶序號(hào),選擇序號(hào),購(gòu)物車序號(hào))數(shù)據(jù)庫(kù)表的設(shè)計(jì)在分析完E-R圖并轉(zhuǎn)換成系統(tǒng)的關(guān)系模式后,下面應(yīng)根據(jù)關(guān)系模式創(chuàng)建數(shù)據(jù)庫(kù)和基本表。“在設(shè)計(jì)數(shù)據(jù)庫(kù)表的時(shí)候需要滿足系統(tǒng)中的實(shí)際需要,也就是某些模塊中需要為其設(shè)計(jì)多張表,能夠提高數(shù)據(jù)庫(kù)的運(yùn)行效率,更方便系統(tǒng)與數(shù)據(jù)庫(kù)之間的交互”[18]。本系統(tǒng)數(shù)據(jù)庫(kù)名稱為wxshop。用戶基本表表3-1用戶基本表序號(hào)字段名稱字段類型是否為主鍵是否為空描述1idvarchar(255)是否用戶表主鍵2usernamevarchar(255)否否用戶名3passwordvarchar(255)否否用戶密碼4addressvarchar(255)否否用戶地址5Telvarchar(255)否是用戶電話商品基本表表3-2商品基本表序號(hào)字段名稱字段類型是否為主鍵是否為空描述1idvarchar(255)是否商品表主鍵2Namevarchar(255)否否商品價(jià)格3Pricedouble(255)否否商品摘要4titlevarchar(255)否否商品簡(jiǎn)介5url1varchar(255)否否圖片路徑16url2varchar(255)否否圖片路徑27url3varchar(255)否否圖片路徑38ppIdint(11)否否商品品牌編號(hào)角色基本表表3-3角色基本表序號(hào)字段名稱字段類型是否為主鍵是否為空描述1idvarchar(255)是否角色表主鍵2namevarchar(255)否否角色名稱分類基本表表3-4分類基本表序號(hào)字段名稱字段類型是否為主鍵是否為空描述1idvarchar(255)是否分類表主鍵2isDeleteint(11)否否商品標(biāo)簽3namevarchar(255)否否角色名稱地址基本表表3-5地址基本表序號(hào)字段名稱字段類型是否為主鍵是否為空描述1idvarchar(255)是否單位表主鍵2namevarchar(255)否否角色名稱3Phonevarchar(255)否否電話號(hào)碼4ContentText(0)否否用戶地址5AddtimeDatetime否否添加時(shí)間購(gòu)物車基本表表3-6購(gòu)物車基本表序號(hào)字段名稱字段類型是否為主鍵是否為空描述1idint(11)是否編輯表主鍵2pricedoubler(0)否否商品價(jià)格3goodidint(11)否否商品序號(hào)4Useridint(11)否否用戶id5Selectint(11)否否選擇序號(hào)管理員基本表表3-7管理員基本表序號(hào)字段名稱字段類型是否為主鍵是否為空描述1idvarchar(255)是否管理員表主鍵2usernamevarchar(255)否否用戶名3passwordvarchar(255)否否密碼4identityvarchar(255)否否身份id5系統(tǒng)功能實(shí)現(xiàn)5SystemFunctionRealization5.1包結(jié)構(gòu)設(shè)計(jì)(PackageStructureDesign)在數(shù)據(jù)庫(kù)設(shè)計(jì)完成后,下面應(yīng)創(chuàng)建項(xiàng)目并設(shè)計(jì)目錄結(jié)構(gòu)。根據(jù)微信開(kāi)發(fā)者工具中固定的包結(jié)構(gòu),本項(xiàng)目將圖片資源放在images包中,將頁(yè)面布局文件放在pages包中,并配置本項(xiàng)目的配置文件。5.1.1前端包結(jié)構(gòu)設(shè)計(jì)前端包結(jié)構(gòu)截圖如圖5-1-1所示,該截圖充分展示了各頁(yè)面組件的存放位置。系統(tǒng)頁(yè)面內(nèi)容:data包存放的是與后端進(jìn)行交互的url接口,pages包存放的頁(yè)面布局文件。Templates包放置的是能共用的組件:utils包存放的是工具包,images包存放的是頁(yè)面布局圖片資源。以及微信開(kāi)發(fā)者工具本身自帶的json文件和系統(tǒng)配置的文件。圖5-1-1前端包結(jié)構(gòu)5.1.2后端包結(jié)構(gòu)設(shè)計(jì)后端包結(jié)構(gòu)截圖如圖5-1-2所示。Po包放置的是后端所有實(shí)體類,mapper包存放的是數(shù)據(jù)庫(kù)的交互邏輯,utils包存放的是工具類。,controller,service,dto三個(gè)包分別是是接受前端請(qǐng)求控制,管理書(shū)寫控制代碼,和在數(shù)據(jù)庫(kù)中查找數(shù)據(jù)的包,mybatis包是存放mybais框架數(shù)據(jù)和控制管理數(shù)據(jù)查詢更新的包,webroot是前后端分離的存放后臺(tái)管理頁(yè)面布局資源的包,以及springMVC框架的配置文件,和maven在項(xiàng)目中的配置文件。圖4-2后端包結(jié)構(gòu)5.2小程序超市購(gòu)物頁(yè)面模塊用戶登錄小程序后,展示商品信息,輪播推薦商品,并顯示搜索欄,分類,購(gòu)物車,個(gè)人信息等功能按鈕,用戶可以選擇自己喜歡的商品,點(diǎn)擊某一商品即會(huì)彈出相對(duì)于的商品信息,用戶可以查看商品價(jià)格和評(píng)價(jià)等信息,可以加入購(gòu)物車進(jìn)行購(gòu)買。圖5-1主頁(yè)面實(shí)現(xiàn)效果圖關(guān)鍵代碼:
<swiper-item>
<scroll-view
scroll-y="true"
class="scroll-box">
<view
class="list-view"
>
<view
class="list-box"
wx:for="{{listgoods}}"
wx:for-item="list"
wx:key="index"
data-id="{{list.id}}"
bindtap="lookdetail">
<view
class="list-images"
><image
src="{{list.url1}}"
/></view>
<view
class="list-text">
<text
class="name">{{list.title}}</text>
<view
class="txt">
<text
class="price">¥{{list.price}}</text>
<text
class="type">{{list.type}}</text>
</view>
</view>
</view>
</view>
</scroll-view>
</swiper-item>5.1.1商品分類模塊對(duì)商品信息進(jìn)行分類,管理員方便管理商品,有利于用戶更快的挑選自己需要的商品,該商城的商品主要分為以下五類,點(diǎn)擊每一類,都可以查看這個(gè)類中的所有商品,如圖5-2所示。圖5-1-1商品分類實(shí)現(xiàn)效果圖關(guān)鍵代碼:<view
class="sidebar"
style="height:
{{sidebarHeight}}px;">
<text
wx:for="{{topCategories}}"
wx:key="objectId"
bindtap="tapTopCategory"
data-object-id="{{item.objectId}}"
data-index="{{index}}"
class="{{highlight[index]}}">{{item.title}}</text>
</view>
<!--
right
-->
<view
class="main">
<!--
banner
-->
<image
class="banner"
src="{{banner}}"
mode="widthFix"
bindtap="showGoods"/>
<!--
GridView
-->
<view
class="gridview">
<dl
wx:for="{{subCategories}}"
wx:key="objectId">
<dt>
<image
src="{{item.avatar.attributes.url}}"
mode="scaleToFit"
bindtap="avatarTap"
data-object-id="{{item.objectId}}"
style="width:{{imageWidth}}px;
height:
{{imageWidth}}px;"/>
</dt>
<dd>
<text>{{item.title}}</text>
</dd>
</dl>
</view>
</view>5.1.2商品信息展示模塊對(duì)商品價(jià)格,圖片,商品簡(jiǎn)介等信息展示圖5-1-2商品信息展示實(shí)現(xiàn)效果圖關(guān)鍵代碼:/***查詢用戶購(gòu)物車列表*@paramcar*@parammodel*@paramrequest*@paramresponse*@return*/@RequestMapping(value="/userList",method=RequestMethod.POST,produces="text/html;charset=UTF-8")@ResponseBodypublicStringuserList(Carcar1,Modelmodel,HttpServletRequestrequest,HttpServletResponseresponse){JSONObjectjsonObject=newJSONObject();List<CarGoods>gg=newArrayList<CarGoods>();Carc=newCar();c.setUserId(car1.getUserId());List<Car>pagers=carService.listAllByEntity(c);if(!isEmpty(pagers)){for(Carcar:pagers){CarGoodsg=newCarGoods();g.setCarId(car.getId());g.setNum(car.getNum());if(car.getSelected()==0){g.setSelected(false);}if(car.getSelected()==1){g.setSelected(true);}g.setGoods(car.getGoods());gg.add(g);}}}5.1.3購(gòu)物車信息管理模塊顯示用戶加入購(gòu)物車中的商品,并結(jié)算所選擇的商品的總金額,增加或減少商品的數(shù)量圖5-13購(gòu)物車實(shí)現(xiàn)效果圖關(guān)鍵代碼:<view
class="container
carts-list">
<view
wx:for="{{carts}}"
class="carts-container"
wx:key="index"
bindtap="showGoods"
data-object-id="{{item.goods.id}}">
<view
class="carts-item"
style="left:
{{itemLefts[index]}}px;"
data-index="{{index}}"
bindtouchstart="touchStart"
bindtouchmove="touchMove"
bindtouchend="touchEnd">
<!--
復(fù)選框圖標(biāo)
-->
<icon
type="{{item.selected
?
'success_circle'
:
'circle'}}"
size="20"
catchtap="bindCheckbox"
data-index="{{index}}"/>
<view>
<!--
縮略圖
-->
<image
class="carts-image"
src="{{item.goods.url1}}"
mode="aspectFill"/>
</view>
<view
class="carts-text">
<!--
商品標(biāo)題
-->
<text
class="carts-title">{{item.goods.title}}</text>
<view
class="carts-subtitle">
<!--
價(jià)格
-->
<text
class="carts-price">{{item.goods.price}}</text>
<!--
數(shù)量加減
-->
<view>
<view
class="stepper">
<!--
減號(hào)
-->
<text
class="{{minusStatuses[index]}}"
data-index="{{index}}"
catchtap="bindMinus">-</text>
<!--
數(shù)值
-->
<input
type="number"
data-index="{{index}}"
catchchange="bindManual"
catchtap="bindManualTapped"
value="{{item.num}}"
/>
<!--
加號(hào)
-->
<text
class="normal"
data-index="{{index}}"
catchtap="bindPlus">+</text>
</view>
</view>
</view>
</view>
</view>
<button
type="warn"
class="delete-button"
catchtap="delete"
data-object-id="{{item.carId}}">刪除</button>
</view></view>5.1.3個(gè)人信息管理模塊展示用戶當(dāng)前購(gòu)買商品的狀態(tài),包含代發(fā)貨,已發(fā)貨,已收貨,已退款等,用戶可以修改自己的收貨地址,以及查看用戶反饋等信息圖5-13個(gè)人信息實(shí)現(xiàn)效果圖 關(guān)鍵代碼:<view
class="order-area">
<view
bindtap="navigateToOrder"
class="order"
data-status="0">
<image
src="../../../images/icon_order.png"
/>
<text>待發(fā)貨</text>
</view>
<view
bindtap="navigateToOrder"
class="order"
data-status="1">
<image
src="../../../images/icon_order.png"
/>
<text>已發(fā)貨</text>
</view>
<view
bindtap="navigateToOrder"
class="order"
data-status="2">
<image
src="../../../images/icon_order.png"
/>
<text>退款中</text>
</view>
<view
bindtap="navigateToOrder"
class="order"
data-status="3">
<image
src="../../../images/icon_order.png"
/>
<text>已退款</text>
</view>
<view
bindtap="navigateToOrder"
class="order"
data-status="4">
<image
src="../../../images/icon_order.png"
/>
<text>已收貨</text>
</view>
<!--
訂單狀態(tài)
0
已支付待發(fā)貨
1
已發(fā)貨
2.申請(qǐng)退款
3
已退款
4
已收貨
5
已評(píng)價(jià)
--></view><view
bindtap="navigateToAddress"
class="tableviewcell">
<image
src="../../../images/icon_address.png"
/>
<text>收貨地址</text></view><view
bindtap="navigateToMessage"
class="tableviewcell
tableviewcell2">
<image
src="../../../images/fk.png"
/>
<text>用戶反饋</text></view><view
bindtap="navigateToSC"
class="tableviewcell
tableviewcell2">
<image
src="../../../images/wdsc.png"
/>
<text>我的收藏</text></view>5.3管理員后臺(tái)管理頁(yè)面模塊管理員登錄頁(yè)面圖5-2管理員登錄實(shí)現(xiàn)效果圖關(guān)鍵代碼:/***管理員登陸*@parammanage*@paramrequest*@paramresponse*@return*/@RequestMapping("/toLogin")@ResponseBodypublicStringtoLogin(Managemanage,HttpServletRequestrequest,HttpServletResponseresponse){ManagebyEntity=manageService.getByEntity(manage);JSONObjectjsonObject=newJSONObject();if(byEntity==null){jsonObject.put("res",0);}else{request.getSession().setAttribute("role",byEntity.getType());request.getSession().setAttribute("mid",byEntity.getId());request.getSession().setAttribute("xm",byEntity.getRealName());jsonObject.put("res",1);}returnjsonObject.toString();}5.3.1后臺(tái)商品管理頁(yè)面模塊管理員可以修改或刪除商品的屬性,如價(jià)格,圖片商品描述等,也可以增加新的商品,并可以設(shè)置小程序的中推薦的熱門商品,并在可以在輪播圖中展示。用戶可以直接查看并加入購(gòu)物車中。圖5-2-1后臺(tái)商品管理實(shí)現(xiàn)效果圖關(guān)鍵代碼:/***管理員登陸*@parammanage*@paramrequest*@paramresponse*@return*/@RequestMapping("/toLogin")@ResponseBodypublicStringtoLogin(Managemanage,HttpServletRequestrequest,HttpServletResponseresponse){ManagebyEntity=manageService.getByEntity(manage);JSONObjectjsonObject=newJSONObject();if(byEntity==null){jsonObject.put("res",0);}else{request.getSession().setAttribute("role",byEntity.getType());request.getSession().setAttribute("mid",byEntity.getId());request.getSession().setAttribute("xm",byEntity.getRealName());jsonObject.put("res",1);}returnjsonObject.toString();}5.3.2后臺(tái)商品訂單管理頁(yè)面模塊管理員可以直接通過(guò)搜索欄查詢訂單,并顯示當(dāng)前商品的狀態(tài)圖5-2-2后臺(tái)商品訂單管理實(shí)現(xiàn)效果圖 關(guān)鍵代碼:/***查詢用戶訂單*@paramdd*@parammodel*@paramrequest*@paramresponse*@return*/@RequestMapping(value="/userList",method=RequestMethod.POST,produces="text/html;charset=UTF-8")@ResponseBodypublicStringuserList(Dddd,Modelmodel,HttpServletRequestrequest,HttpServletResponseresponse){JSONObjectjsonObject=newJSONObject();Stringpath=request.getContextPath();path="";StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"";List<DdDto>dds=newArrayList<DdDto>();Map<String,Object>alias=newHashMap<String,Object>();StringBuffersb=newStringBuffer();Ddin=newDd();if(dd.getStatus()!=-1){//sb=sb.append("fromDdwhere1=1anduser.id="+userId+"andstatus="+dd.getStatus());in.setUserId(dd.getUserId());in.setStatus(dd.getStatus());}else{in.setUserId(dd.getUserId());//sb=sb.append("fromDdwhere1=1anduser.id="+userId);}List<Dd>pagers=ddService.listAllByEntity(in);if(!isEmpty(pagers)){for(Ddd:pagers){DdDtodo2=newDdDto();Stringstring=basePath+d.getGoods().getUrl1();StringreplaceAll;try{replaceAll=string.replaceAll("\\\\","/").replaceAll("shop","");do2.setPpUrl(replaceAll);do2.setCode(d.getCode());do2.setDdId(d.getId());do2.setDj(String.valueOf(d.getGoods().getPrice()));do2.setPrice(String.valueOf(d.getPrice()));do2.setTitle(d.getGoods().getTitle());do2.setAddress(d.getAddress());do2.setName(d.getName());do2.setPhone(d.getPhone());do2.setNum(d.getNum());do2.setStatus(d.getStatus());do2.setId(d.getId());do2.setSpId(d.getGoods().getId());5.3.3后臺(tái)商品訂單管理頁(yè)面模塊管理員可以對(duì)商品進(jìn)行分類,可以添加商品分類,更改分類名稱,或者刪除分類名稱關(guān)鍵代碼:/***跳至添加頁(yè)面*@return*/@RequestMapping(value="/add")publicStringadd(){return"manage/add";}/***添加執(zhí)行*@return*/@RequestMapping(value="/exAdd")publicStringexAdd(Managemanage,Modelmodel,HttpServletRequestrequest,HttpServletResponseresponse){manage.setType(2);manageService.insert(manage);return"redirect:/manage/findBySql";}/***跳至修改頁(yè)面*@return*/@RequestMapping(value="/update")publicStringupdate(Integerid,Modelmodel){Manageobj=manageService.load(id);model.addAttribute("obj",obj);return"manage/update";}/***添加修改*@return*/@RequestMapping(value="/exUpdate")publicStringexUpdate(Managemanage,Modelmodel,HttpServletRequestrequest,HttpServletResponseresponse){manageService.updateById(manage);return"redirect:/manage/findBySql";}/***刪除通過(guò)主鍵*@return*/@RequestMapping(value="/delete")publicStringdelete(Integerid,Modelmodel,HttpServletRequestrequest,HttpServletResponseresponse){manageService.deleteById(id);return"redirect:/manage/findBySql";}6系統(tǒng)測(cè)試6SystemTest6.1程序調(diào)試(Programdebugging) 程序調(diào)試是指在程序調(diào)試階段依照逐個(gè)模塊的功能進(jìn)行依次調(diào)試,直到當(dāng)前程序模塊的功能已經(jīng)成功實(shí)現(xiàn),然后再進(jìn)行下一個(gè)模塊的調(diào)試。這個(gè)方法因?yàn)殛P(guān)注的重點(diǎn)僅限于本模塊,輸入輸出數(shù)量不多,相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,查找問(wèn)題和修改也比較輕松,解決問(wèn)題一般也會(huì)比較輕松。例如,有一個(gè)程序模塊實(shí)現(xiàn)了數(shù)值計(jì)算功能,那么我們?cè)谡{(diào)試的時(shí)候就只測(cè)試這個(gè)數(shù)值計(jì)算功能,看看給定輸入的時(shí)候程序是否能夠輸出正常,正常表示成功,不正常就繼續(xù)修改它直到成功。有些時(shí)候調(diào)試的輸出結(jié)果可能沒(méi)法直接給調(diào)試人員呈現(xiàn)出來(lái),這個(gè)時(shí)候可以簡(jiǎn)單另外增加幾行代碼或者利用其他輸出顯示的器件將結(jié)果顯示出來(lái),用以方便調(diào)試。假如有依賴于其他程序模塊,也可以幾個(gè)模塊一起進(jìn)行聯(lián)合調(diào)試,但是不建議引入太多的模塊,因?yàn)檫@會(huì)給修改造成麻煩。模塊化編程調(diào)試的方法,類似于蓋高樓大廈的過(guò)程,先把底層的樓蓋好后再蓋上層,這樣才能一層樓一層樓地把大樓建起來(lái),軟件的一個(gè)一個(gè)小模塊的小目標(biāo)逐個(gè)成功地實(shí)現(xiàn),會(huì)讓開(kāi)發(fā)者更加有獲得感,感覺(jué)自己的努力是沒(méi)有白費(fèi)的,工作起來(lái)也就越來(lái)越有勁。模塊化調(diào)試因?yàn)槭且来纬晒Φ倪^(guò)程,前面的模塊已經(jīng)成功,后端的其他模塊也無(wú)關(guān)緊要,只關(guān)注與模塊的本身以及周圍相關(guān)的部分,輸入輸出比較簡(jiǎn)單,這就簡(jiǎn)化了查找和消除程序BUG的過(guò)程,程序調(diào)試也會(huì)比較簡(jiǎn)單。6.2測(cè)試方法(Thetestmethod)軟件測(cè)試是為了保證軟件的可靠性而存在的,保證軟件的開(kāi)發(fā)符合預(yù)期的目標(biāo)。軟件測(cè)試是軟件開(kāi)發(fā)全過(guò)程的重要組成部分,即在軟件開(kāi)發(fā)過(guò)程中,為了發(fā)現(xiàn)軟件程序中的bug而執(zhí)行的重要環(huán)節(jié)。根據(jù)軟件開(kāi)發(fā)每個(gè)階段每個(gè)環(huán)節(jié)的規(guī)范嚴(yán)謹(jǐn)和程序完整的內(nèi)部結(jié)構(gòu),精心設(shè)計(jì)一批測(cè)試用例運(yùn)用在程序的調(diào)試當(dāng)中,查找程序bug的過(guò)程。通常有兩種測(cè)試方法,分別的黑盒測(cè)試和白盒測(cè)試。白盒測(cè)試:又稱結(jié)構(gòu)測(cè)試或者邏輯驅(qū)動(dòng)測(cè)試。白盒測(cè)試是把測(cè)試對(duì)象看作一個(gè)打開(kāi)的盒子。利用白盒測(cè)試法進(jìn)行動(dòng)態(tài)測(cè)試時(shí),需要測(cè)試軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過(guò)程,不需測(cè)試軟件產(chǎn)品的功能。白盒測(cè)試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測(cè)試。其中邏輯覆蓋包括語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。白盒測(cè)試是知道產(chǎn)品內(nèi)部工作過(guò)程,可通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書(shū)的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、基路測(cè)試等,主要用于軟件驗(yàn)證。黑盒測(cè)試:又稱功能測(cè)試或者數(shù)據(jù)驅(qū)動(dòng)測(cè)試。黑盒測(cè)試是根據(jù)軟件的規(guī)格對(duì)軟件進(jìn)行的測(cè)試,這類測(cè)試不考慮軟件內(nèi)部的運(yùn)作原理,因此軟件對(duì)用戶來(lái)說(shuō)就像一個(gè)黑盒子。軟件測(cè)試人員以用戶的角度,通過(guò)各種輸入和觀察軟件的各種輸出結(jié)果來(lái)發(fā)現(xiàn)軟件存在的缺陷,而不關(guān)心程序具體如何實(shí)現(xiàn)的一種軟件測(cè)試方法。黑盒測(cè)試主要有以下幾種方法:等價(jià)劃分、邊界值分析,猜錯(cuò)了,因果圖方法。該系統(tǒng)的測(cè)試綜合了白盒測(cè)試和黑盒測(cè)試兩種方法,但主要使用的還是黑盒測(cè)試方法。之后的測(cè)試“盡可能早和測(cè)試”,“保證測(cè)試用例的完整性和有效性”原則。通過(guò)測(cè)試達(dá)到以下測(cè)試目的:確定問(wèn)題:根據(jù)性能分析的結(jié)果
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 兩種生產(chǎn)決定社會(huì)制度
- 2026南海農(nóng)商銀行科技金融專業(yè)人才社會(huì)招聘?jìng)淇伎荚囋囶}附答案解析
- 副食品生產(chǎn)加工管理制度
- 種子生產(chǎn)經(jīng)營(yíng)檔案制度
- 水務(wù)局安全生產(chǎn)會(huì)議制度
- 豬場(chǎng)生產(chǎn)管理規(guī)章制度
- 生產(chǎn)企業(yè)崗位管理制度
- 2026湖北天門職業(yè)學(xué)院人才引進(jìn)(第一批)130人參考考試試題附答案解析
- 公租房安全生產(chǎn)管理制度
- 項(xiàng)目部生產(chǎn)部制度
- 達(dá)人精準(zhǔn)運(yùn)營(yíng)方案
- 四川省涼山州2025-2026學(xué)年上學(xué)期期末考試七年級(jí)數(shù)學(xué)試題(含答案)
- 管網(wǎng)安全生產(chǎn)管理制度
- DB2310-T 099-2022 牡丹江市中藥材火麻仁種植技術(shù)規(guī)程
- 婦產(chǎn)??漆t(yī)院危重孕產(chǎn)婦救治中心建設(shè)與管理指南
- 2026年建筑物智能化與電氣節(jié)能技術(shù)發(fā)展
- 垃圾填埋場(chǎng)排水施工方案
- 民航華東地區(qū)管理局機(jī)關(guān)服務(wù)中心2025年公開(kāi)招聘工作人員考試題庫(kù)必考題
- 員工個(gè)人成長(zhǎng)經(jīng)歷分享
- 自平衡多級(jí)泵培訓(xùn)課件
- 晝夜明暗圖課件
評(píng)論
0/150
提交評(píng)論