版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)設(shè)計(jì)論文題目起訖日期年月日至年月日學(xué)生姓名專業(yè)班級(jí)所在院系指導(dǎo)教師職稱講師所在單位年月日摘要在市場(chǎng)經(jīng)濟(jì)中,銷售是企業(yè)運(yùn)作的重要環(huán)節(jié)。為了更好的推動(dòng)銷售,不少企業(yè)建立分公司或代理機(jī)制,通過(guò)分公司或代理把產(chǎn)品推向最終用戶,這些分公司或代理商大部分分布在不同的地理位置,跨空間、跨時(shí)間的頻繁業(yè)務(wù)交流是這些企業(yè)業(yè)務(wù)活動(dòng)的主要特點(diǎn)。在這種形式下,傳統(tǒng)地依靠管理人員人工工作傳遞信息和數(shù)據(jù)的管理方式就無(wú)法滿足企業(yè)日益增長(zhǎng)的業(yè)務(wù)需求了。本系統(tǒng)即為一個(gè)基本的藥品銷售管理系統(tǒng)就是利用信息化手段把企業(yè)先進(jìn)的管理方法引入企業(yè)的實(shí)踐,為企業(yè)的管理改革提供切實(shí)易行的途徑。系統(tǒng)對(duì)企業(yè)中常見的采購(gòu)、庫(kù)存、銷售等商業(yè)活動(dòng)以及相關(guān)的供應(yīng)商和客戶等基本的信息進(jìn)行管理。本系統(tǒng)采用目前流行的JSP進(jìn)行開發(fā),后臺(tái)數(shù)據(jù)庫(kù)使用功能強(qiáng)大、操作便捷的SQL2005數(shù)據(jù)庫(kù)。關(guān)鍵詞:管理系統(tǒng)、銷售、藥品、JSP、信息技術(shù)
目錄TOC\o"1-3"\h\u第一章引言 11.1課題的來(lái)源及意義 11.2發(fā)展?fàn)顩r 11.3開發(fā)技術(shù)介紹 21.4本論文的研究?jī)?nèi)容及結(jié)構(gòu) 2第二章開發(fā)環(huán)境 42.1軟件工程介紹 42.2開發(fā)環(huán)境及工具 42.2.1選擇JSP2.0作為開發(fā)語(yǔ)言 42.2.2選擇SQL2005作為后臺(tái)數(shù)據(jù)庫(kù) 52.3JSP數(shù)據(jù)庫(kù)開發(fā)技術(shù) 52.3.1.JDBC開發(fā)數(shù)據(jù)庫(kù) 52.3.2BDE開發(fā)數(shù)據(jù)庫(kù) 62.4開發(fā)方法整體選擇 7第三章系統(tǒng)分析 93.1可行性分析 93.1.1技術(shù)可行性分析 93.1.2管理可行性分析 93.1.3經(jīng)濟(jì)可行性分析 93.2需求分析 103.2.2功能需求分析 103.2.3系統(tǒng)功能模塊圖 113.3數(shù)據(jù)庫(kù)設(shè)計(jì)概述 113.4數(shù)據(jù)庫(kù)設(shè)計(jì)周期 113.5SQL查詢語(yǔ)言及使用 123.6系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 133.6.1實(shí)體描述 133.6.2聯(lián)系描述 133.6.2E-R圖 143.6.3數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì) 153.6.4數(shù)據(jù)庫(kù)的實(shí)現(xiàn) 16第四章系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 194.1登錄界面設(shè)計(jì) 194.2JDBC連接 204.3系統(tǒng)基本信界面設(shè)計(jì) 214.4庫(kù)存添加界面 214.5客戶管理 234.6藥品信息界面 234.7供應(yīng)商管理 254.8數(shù)據(jù)備份 26第五章系統(tǒng)的調(diào)試與測(cè)試 275.1程序調(diào)試 275.2程序的測(cè)試 275.2.1測(cè)試的重要性及目的 275.2.2測(cè)試的步驟 285.2.3測(cè)試的主要內(nèi)容 28第六章結(jié)論 30謝辭 32參考文獻(xiàn) 33PAGE33第一章引言1.1課題的來(lái)源及意義隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的蓬勃發(fā)展,醫(yī)藥行業(yè)正處于一個(gè)高速發(fā)展的時(shí)期。目前市場(chǎng)上的藥品銷售軟件比較多,應(yīng)用價(jià)值也挺高,但是大部分的重點(diǎn)都放在了藥品信息管理和員工信息管理方面,對(duì)于客戶,供貨商信息的管理做得都不完善,有的根本沒(méi)這部分內(nèi)容。而這些信息也是很重要的,有利于公司上層高級(jí)管理人員從各個(gè)方面對(duì)公司狀況進(jìn)行分析,管理和決策。因此,開發(fā)一個(gè)集處理藥品、客戶、供貨商信息于一體的,兼有員工管理的藥品銷售管理系統(tǒng),是符合市場(chǎng)發(fā)展需要的。藥品銷售管理系統(tǒng)是一個(gè)基于Internet的應(yīng)用系統(tǒng),它是一個(gè)面對(duì)當(dāng)前的進(jìn)銷存管理工作基本還處于手工和半信息自動(dòng)化處理狀態(tài)應(yīng)運(yùn)而生的一個(gè)基于Internet的完全自動(dòng)化的系統(tǒng),整個(gè)系統(tǒng)從符合操作簡(jiǎn)便、界面友好、靈活、實(shí)用、安全的要求出發(fā),完成進(jìn)貨、銷售、庫(kù)存管理的全過(guò)程。企業(yè)單位只需要具備訪問(wèn)Internet的條件,即可在系統(tǒng)發(fā)布的站點(diǎn)上進(jìn)行進(jìn)銷存的管理,在圖形化的人機(jī)界面中完成日常的進(jìn)銷存管理工作,一方面擺脫了時(shí)間和空間的界限,另一方面也能有效地解決數(shù)據(jù)可共享的問(wèn)題。經(jīng)過(guò)實(shí)際使用證明,這里所設(shè)計(jì)的企業(yè)進(jìn)銷存管理系統(tǒng)可以滿足企業(yè)進(jìn)貨、銷售管理等方面的需求。將計(jì)算機(jī)這一信息處理利器應(yīng)用于藥品銷售的日常管理已是勢(shì)必所然,而且這也將為倉(cāng)庫(kù)管理帶來(lái)前所未有的改變,它可以帶來(lái)意想不到的效益,同時(shí)也會(huì)為企業(yè)的飛速發(fā)展提供無(wú)限潛力。采用計(jì)算機(jī)管理信息系統(tǒng)已成為倉(cāng)庫(kù)管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理來(lái)了明顯的經(jīng)濟(jì)效益和社會(huì)效益。極大提高了倉(cāng)庫(kù)工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,周期長(zhǎng)的弊端?;趥}(cāng)庫(kù)管理的全面自動(dòng)化,可以減少入庫(kù)管理、出庫(kù)管理及庫(kù)存管理中的漏洞,可以節(jié)約不少管理開支,增加企業(yè)收入。倉(cāng)庫(kù)的管理的操作自動(dòng)化和信息的電子化,全面提高了倉(cāng)庫(kù)的管理水平。1.2發(fā)展?fàn)顩r隨著中國(guó)電子商務(wù)、互聯(lián)網(wǎng)業(yè)務(wù)的迅猛發(fā)展,國(guó)內(nèi)許多企業(yè)已跨入電腦網(wǎng)絡(luò)管理時(shí)代,并因此提高了管理效率和市場(chǎng)競(jìng)爭(zhēng)力。但目前仍有部分企業(yè)還停留在原始計(jì)賬管理階段,而隨著全球經(jīng)濟(jì)信息化進(jìn)程加快和WTO的成功實(shí)現(xiàn),企業(yè)面臨著前所未有的機(jī)遇和挑戰(zhàn),在如此激變的社會(huì)形勢(shì)和激烈的市場(chǎng)競(jìng)爭(zhēng)下,越來(lái)越多企業(yè)管理者意識(shí)到效率管理和科學(xué)管理的重要性,以及增強(qiáng)市場(chǎng)競(jìng)爭(zhēng)力的迫切性。因此建立科學(xué),規(guī)范,高效的管理制度和秉承富有競(jìng)爭(zhēng)力的經(jīng)營(yíng)理念是每一個(gè)企業(yè)管理者的渴望,企業(yè)采用電腦管理進(jìn)貨、存貨、銷售等諸多環(huán)節(jié)也已成為趨勢(shì)必然。在進(jìn)貨、庫(kù)存、銷售環(huán)節(jié)中,由于商品種類繁多、業(yè)務(wù)量大、庫(kù)存管理復(fù)雜,使用手工操作的工作量很大,在操作過(guò)程中也很容易出現(xiàn)各種錯(cuò)誤。而采用計(jì)算機(jī)管理則可以大大提高日常的效率,不僅將原來(lái)由手工操作的進(jìn)貨、出貨及銷售這一整套流程用計(jì)算機(jī)進(jìn)行全程管理,而且消除了手工操作中可能存在的不確定因素,實(shí)現(xiàn)了進(jìn)銷存管理流程清晰,從而能夠比較徹底地貫徹經(jīng)營(yíng)者的管理模式。1.3開發(fā)技術(shù)介紹SQLServer2005數(shù)據(jù)庫(kù)引擎提供完整的XML支持。它還具有構(gòu)成最大的Web站點(diǎn)的數(shù)據(jù)存儲(chǔ)組件所需的可伸縮性、可用性和安全功能。SQLServer2000程序設(shè)計(jì)模型與WindowsDNA構(gòu)架集成,用以開發(fā)Web應(yīng)用程序,并且SQLServer2000支持EnglishQuery和Microsoft搜索服務(wù)等功能,在Web應(yīng)用程序中包含了用戶友好的查詢和強(qiáng)大的搜索功能。數(shù)據(jù)庫(kù)SQLServer2005管理器提供了一個(gè)強(qiáng)大的任務(wù)安排引擎、管理警告能力、以及內(nèi)建的復(fù)制管理界面。因此可以通過(guò)SQLServer管理器可用來(lái)管理登錄和用戶權(quán)限,創(chuàng)建腳本,管理SQLSERVER對(duì)象的備份,備份數(shù)據(jù)庫(kù)和事務(wù)日志,管理表、視圖、存儲(chǔ)過(guò)程、觸發(fā)器、索引、規(guī)則、缺省設(shè)定和自定義數(shù)據(jù)類型等來(lái)進(jìn)行不同的數(shù)據(jù)管理任務(wù)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持Struts,JSP,Dss,Spring,SQL,Hibernate。Genuitec發(fā)布了MyEclipseEnterpriseWorkbench56.0,更智能、更快捷、更簡(jiǎn)單和更便宜的J2EE工具的新版本的誕生。它的價(jià)格對(duì)于個(gè)人和企業(yè)開發(fā)人員來(lái)說(shuō)都是非常有吸引力的。這是J2EEIDE市場(chǎng)一個(gè)重量級(jí)的選手。通過(guò)增加UML雙向建模工具、WYSIWYG的JSP/Strutsdesigner、可視化的Hibernate/ORM工具、Spring和Webservices支持,以及新的數(shù)據(jù)庫(kù)開發(fā),MyEclipse6.0.1繼續(xù)為業(yè)界提供全面的產(chǎn)品。1.4本論文的研究?jī)?nèi)容及結(jié)構(gòu)本次課題主要研究對(duì)象是監(jiān)獄管理系統(tǒng)。主要是針對(duì)解決目前監(jiān)獄管理中存在的問(wèn)題。系統(tǒng)采用目前管理系統(tǒng)開發(fā)主流技術(shù)JSP技術(shù),基于Windows7操作系統(tǒng)開發(fā),并采用了SQLServer2005數(shù)據(jù)庫(kù)。本次開發(fā)按照軟件工程的瀑布模型進(jìn)行,與之相應(yīng)的,論文結(jié)構(gòu)如下::引言。包含內(nèi)容有,介紹課題來(lái)源、外發(fā)展情況、開發(fā)環(huán)境介紹以及論文結(jié)構(gòu)。:系統(tǒng)的需求分析。包括系統(tǒng)的可行性分析,大致的功能模塊。:系統(tǒng)的概要設(shè)計(jì)。包括系統(tǒng)的總體結(jié)構(gòu),主要功能模塊設(shè)計(jì)以及數(shù)據(jù)庫(kù)設(shè)計(jì)。:系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)。包括系統(tǒng)的總體流程,以及主要功能模塊的詳細(xì)設(shè)計(jì)。:系統(tǒng)的測(cè)試與維護(hù)。:結(jié)論。
第二章開發(fā)環(huán)境2.1軟件工程介紹軟件工程是用科學(xué)知識(shí)和技術(shù)原理來(lái)定義、開發(fā)、維護(hù)軟件的一門學(xué)科。它涉及計(jì)算機(jī)科學(xué)、工程科學(xué)、管理科學(xué)、數(shù)學(xué)等領(lǐng)域,計(jì)算機(jī)科學(xué)著重于原理和理論,而軟件工程著重于如何建造一個(gè)軟件系統(tǒng)。軟件工程在軟件開發(fā)過(guò)程中占有不可動(dòng)搖的重要地位,一個(gè)軟件從開始計(jì)劃起,到廢棄不用止,稱為軟件生存周期。一般來(lái)說(shuō),軟件生存周包括計(jì)劃、開發(fā)、運(yùn)行三個(gè)時(shí)期,每一時(shí)期又可分為若干更小的階段。計(jì)劃時(shí)期的主要任務(wù)是分析用戶要求,分析新系統(tǒng)的主要目標(biāo)以及開發(fā)該系統(tǒng)的可行性。開發(fā)時(shí)期要完成設(shè)計(jì)和實(shí)現(xiàn)兩大任務(wù)具體。具體分為需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試。其中編碼和測(cè)試是軟件開發(fā)期的最后兩個(gè)階段。運(yùn)行時(shí)期是軟件生存周期的最后一個(gè)時(shí)期,軟件人員在這一時(shí)期的工作,主要是做好軟件維護(hù)?!氨O(jiān)獄值班與監(jiān)所排帳管理系統(tǒng)”雖然只是一個(gè)比較小的項(xiàng)目,但是為了做的更規(guī)范,也盡量按照軟件工程的指導(dǎo)來(lái)做,事實(shí)上,不管一個(gè)多小的工程,都是離不開軟件工程的指導(dǎo)思想的。2.2開發(fā)環(huán)境及工具2.2.1選擇JSP2.0作為開發(fā)語(yǔ)言JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
JSP技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。JSP技術(shù)的強(qiáng)勢(shì):1.一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。
2.系統(tǒng)的多平臺(tái)支持。基本上可以在所有平臺(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。
3.強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。4.多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。2.2.2選擇SQL2005作為后臺(tái)數(shù)據(jù)庫(kù)SQL是StructuredQuevyLanguage(結(jié)構(gòu)化查詢語(yǔ)言)的縮寫。SQL是專為數(shù)據(jù)庫(kù)而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫(kù)語(yǔ)言。在使用它時(shí),只需要發(fā)出“做什么”的命令,“怎么做”是不用使用者考慮的。SQL功能強(qiáng)大、簡(jiǎn)單易學(xué)、使用方便,已經(jīng)成為了數(shù)據(jù)庫(kù)操作的基礎(chǔ),并且現(xiàn)在幾乎所有的數(shù)據(jù)庫(kù)均支持SQL。2.3JSP數(shù)據(jù)庫(kù)開發(fā)技術(shù)2.3.1.JDBC開發(fā)數(shù)據(jù)庫(kù)JDBC(JavaDataBaseConnectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠用純JavaAPI編寫數(shù)據(jù)庫(kù)應(yīng)用程序,同時(shí),JDBC也是個(gè)商標(biāo)名。有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專門寫一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門寫一個(gè)程序,或?yàn)樵L問(wèn)Informix數(shù)據(jù)庫(kù)又編寫另一個(gè)程序等等,程序員只需用JDBCAPI寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用。同時(shí),將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語(yǔ)言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)。Java數(shù)據(jù)庫(kù)連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫(kù)廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫(kù)連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。Java具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而JDBC正是作為此種用途的機(jī)制。JDBC擴(kuò)展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁(yè),而該applet使用的信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)企業(yè)也可以用JDBC通過(guò)Intranet將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中(即使這些職員所用的計(jì)算機(jī)有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來(lái)越多的程序員開始使用Java編程語(yǔ)言,對(duì)從Java中便捷地訪問(wèn)數(shù)據(jù)庫(kù)的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡(jiǎn)化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù),Java和JDBC可為外部客戶提供獲取信息更新的更好方法。2.3.2BDE開發(fā)數(shù)據(jù)庫(kù)BDE是負(fù)責(zé)用戶和數(shù)據(jù)庫(kù)交流的中間媒介。事實(shí)上,應(yīng)用程序是通過(guò)數(shù)據(jù)訪問(wèn)組件和BDE連接,再由BDE去訪問(wèn)數(shù)據(jù)庫(kù),完成對(duì)數(shù)據(jù)庫(kù)的操作,而并非直接操作BDE。這樣用戶只需關(guān)心JSP中的數(shù)據(jù)組件即可,不用直接和BDE打交道。數(shù)據(jù)庫(kù)組件主要分為兩類:“數(shù)據(jù)訪問(wèn)組件”和“數(shù)據(jù)控制組件”,它們和數(shù)據(jù)庫(kù)的關(guān)系如圖2-1所示:圖2-1數(shù)據(jù)庫(kù)組件與數(shù)據(jù)庫(kù)關(guān)系圖其中,數(shù)據(jù)訪問(wèn)組件在JSP組件面板的DataSQL組件頁(yè)上。其中的Table、Query和Storedproc三個(gè)控件,它們稱為“數(shù)據(jù)集組件”,用于和數(shù)據(jù)庫(kù)連接。這些組件功能如下:1.DataSource控件是數(shù)據(jù)集組件和數(shù)據(jù)控制組件的連接媒介。數(shù)據(jù)控制組件是用戶操作數(shù)據(jù)庫(kù)中數(shù)據(jù)的界面,只有通過(guò)DataSource控件才能和數(shù)據(jù)集組件連接,從而對(duì)數(shù)據(jù)進(jìn)行顯示、修改、維護(hù)等操作。2.Table控件是通過(guò)數(shù)據(jù)庫(kù)引擎——BDE來(lái)存取數(shù)據(jù)庫(kù)中的數(shù)據(jù)的。通過(guò)BDE將用戶對(duì)數(shù)據(jù)庫(kù)的操作(如添加、刪除、修改等)傳遞給數(shù)據(jù)庫(kù)。3.Query控件是利用SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)通過(guò)BDE來(lái)操作數(shù)據(jù)庫(kù)的,和Table控件完成的功能相似,它只是采用了SQL來(lái)實(shí)現(xiàn)。4.Storedproc控件是通過(guò)BDE對(duì)服務(wù)器數(shù)據(jù)庫(kù)進(jìn)行操作的,常用于客戶/服務(wù)器(C/S)結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用程序。5.DataBase控件一般用于建立遠(yuǎn)程的數(shù)據(jù)庫(kù)服務(wù)器——客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用程序和數(shù)據(jù)庫(kù)之間的連接。6.Session控件是用于控制數(shù)據(jù)庫(kù)應(yīng)用程序和數(shù)據(jù)庫(kù)連接的,主要用于復(fù)雜功能的實(shí)現(xiàn),例如:多線程數(shù)據(jù)庫(kù)程序設(shè)計(jì)。而數(shù)據(jù)控制組件也可以稱為數(shù)據(jù)顯示組件或數(shù)據(jù)瀏覽組件。它們的主要功能是與數(shù)據(jù)訪問(wèn)組件相配合,提供給用戶一個(gè)對(duì)數(shù)據(jù)進(jìn)行瀏覽、編輯等操作的界面。數(shù)據(jù)控制組件在組件板上的DataControl頁(yè)上。從上圖可以看出,BDE負(fù)責(zé)與具體的數(shù)據(jù)庫(kù)相連,通過(guò)BDE,幾乎可以操作目前所有類型的數(shù)據(jù)庫(kù)。但是BDE也有很大的缺點(diǎn),當(dāng)然,在對(duì)于一些比較簡(jiǎn)單的數(shù)據(jù)庫(kù),例如ASCII,BDE可以直接訪問(wèn)。另外它也可以通過(guò)一些相應(yīng)的驅(qū)動(dòng),訪問(wèn)特定的數(shù)據(jù)庫(kù),例如通過(guò)DAO訪問(wèn)SQL數(shù)據(jù)庫(kù)。不同類型的驅(qū)動(dòng)程序都具有不同的特征,主要是表現(xiàn)在:數(shù)據(jù)庫(kù)的安全性,事務(wù),數(shù)據(jù)字典和完整性驗(yàn)證,存儲(chǔ)過(guò)程和觸發(fā)器。對(duì)于不能直接支持的數(shù)據(jù)庫(kù),BDE還可以連接到ODBC,通過(guò)ODBC進(jìn)行訪問(wèn),所以BDE有時(shí)效率很低。在JSP提供的所有數(shù)據(jù)庫(kù)訪問(wèn)方式中,BDE的歷史最長(zhǎng),因此提供的功能也最多,包括大量的和數(shù)據(jù)庫(kù)交互的API。使用它訪問(wèn)PARJDBCX和DBASE時(shí)效率最高。同時(shí),針對(duì)Oracle的訪問(wèn)也有專門的優(yōu)化,效率也最高。JSP目前正逐步放棄BDE,已經(jīng)不再為BDE增加新的功能,只是對(duì)現(xiàn)有的功能進(jìn)行維護(hù),排除BUG。BDE包含如下組件:TDATABASE,TTABLE,TQUERY,TSTOREDPROC,TSESSION,TBATCHMOVE,TUPDATESQL,TNESTEDTABLE。2.4開發(fā)方法整體選擇根據(jù)用戶的實(shí)際情況和需要,最終決定采用在Windows7下使用JSP+SQL開發(fā),采用B/S結(jié)構(gòu),使用JDBC連接數(shù)據(jù)庫(kù)。這樣的好處是:1.使用JSP+SQL靈活方便,可擴(kuò)充性、可移植性較好。2.JDBC與SQL同為微軟開發(fā),兼容性好,同時(shí)存取效率高,且較成熟,目前許多數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)都采用這種方式。3.采用B/S結(jié)構(gòu)是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶端響應(yīng)速度快。JDBC是Microsoft主要數(shù)據(jù)存儲(chǔ)技術(shù),JDBC主要讓應(yīng)用程序或WEB應(yīng)用程序存取各種不同的數(shù)據(jù)源。JDBC封裝了OLE-DB復(fù)雜的接口,以極為簡(jiǎn)單的COM接口存儲(chǔ)數(shù)據(jù),簡(jiǎn)化了程序員數(shù)據(jù)存取的工作。JDBC架構(gòu)圖如圖2-2所示:OLEDBOLEDBJDBCApplication/BrowserJDBCSQLDATA圖2-2JDBC架構(gòu)圖
第三章系統(tǒng)分析隨著信息技術(shù)集成化和網(wǎng)絡(luò)化的不斷發(fā)展,互聯(lián)網(wǎng)在人們政治、經(jīng)濟(jì)、生活等各個(gè)方面都發(fā)揮著重要的作用。需求分析是指理解用戶需求,就軟件功能與客戶達(dá)成一致,估計(jì)軟件風(fēng)險(xiǎn)和評(píng)估項(xiàng)目代價(jià),最終形成開發(fā)計(jì)劃的一個(gè)復(fù)雜的過(guò)程。簡(jiǎn)言之,需求分析的任務(wù)就是解決“做什么”的問(wèn)題,就是要全面地理解用戶的各項(xiàng)要求,并準(zhǔn)確地表達(dá)所接受的用戶需求。需求分析之所以重要,就因?yàn)樗哂袥Q策性,方向性,策略性的作用,它在軟件開發(fā)的過(guò)程中具有舉足輕重的地位。3.1可行性分析3.1.1技術(shù)可行性分析JSP+Servlet在技術(shù)上已經(jīng)成熟,SQLServers數(shù)據(jù)庫(kù)易于連接,采用MVC模式,使得視圖層和業(yè)務(wù)層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需要改動(dòng)MVC的模型層即可。因?yàn)槟P团c控制器和視圖相分離,所以很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。MVC模式允許你使用各種不同樣式的視圖來(lái)訪問(wèn)同一個(gè)服務(wù)器端的代碼。由于模型返回的數(shù)據(jù)沒(méi)有進(jìn)行格式化,所以同樣的構(gòu)件能被不同的界面使用。例如,很多數(shù)據(jù)可能用HTML來(lái)表示,但是也有可能用WAP來(lái)表示,而這些表示所需要的僅令是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無(wú)需做任何改變。3.1.2管理可行性分析本管理系統(tǒng)設(shè)有后臺(tái)管理,方便數(shù)據(jù)維護(hù),可確保系統(tǒng)在管理層面上可行,過(guò)本系統(tǒng)進(jìn)行信息管理工作,可以提高工作效率,管理科學(xué),數(shù)據(jù)處理準(zhǔn)確性高。3.1.3經(jīng)濟(jì)可行性分析JSP+Tomcat+SQLServer是免費(fèi)開源的框架或者軟件,使得開發(fā)成本大大下降。可重用性高,經(jīng)過(guò)修改后,可用于其他類型的博覽會(huì)管理服務(wù)。采用MVC模式是的開本成本降低和易于維護(hù)用戶接口。界面簡(jiǎn)潔、易懂、操作方便,電腦初學(xué)者無(wú)需經(jīng)過(guò)學(xué)習(xí)就可以輕松得操作本系統(tǒng)的所有功能。本系統(tǒng)的開發(fā)在經(jīng)濟(jì)上是可行的。3.2需求分析通過(guò)對(duì)藥品進(jìn)銷存等業(yè)務(wù)過(guò)程的了解和分析,本系統(tǒng)的主要功能模塊可以分為系統(tǒng)登錄模塊、藥品查詢管理模塊、藥品采購(gòu)管理模塊、藥品庫(kù)存管理模塊、藥品銷售管理模塊、用戶管理模塊、系統(tǒng)設(shè)置模塊、統(tǒng)計(jì)分析模塊這七個(gè)大模塊。3.2.2功能需求分析(1)系統(tǒng)登錄模塊本模塊主要實(shí)現(xiàn)登錄身份驗(yàn)證功能,即當(dāng)用戶登錄系統(tǒng)時(shí),需要驗(yàn)證個(gè)人詳細(xì)信息,只有系統(tǒng)注冊(cè)用戶才能登錄到系統(tǒng)中。(2)藥品查詢管理模塊本模塊主要完成藥品信息的添加、修改、刪除,查看詳細(xì)信息,按不同關(guān)鍵字進(jìn)行搜索等,以及藥品類別信息的添加、修改、刪除、檢索功能。(3)藥品采購(gòu)管理模塊本模塊主要功能是完成藥品采購(gòu)全過(guò)程的信息化管理。要向不同的供應(yīng)商采購(gòu)所需要的藥品,就要有采購(gòu)單管理、付款管理、統(tǒng)計(jì)打印等。(4)藥品庫(kù)存管理模塊本模塊功能主要是完成藥品入庫(kù)和出庫(kù)管理。藥品采購(gòu)回來(lái)后要進(jìn)行入庫(kù)操作,藥品售出后要進(jìn)行出庫(kù)操作,庫(kù)存中的藥品還要進(jìn)行調(diào)價(jià)、盤點(diǎn)、缺貨處理等操作。(5)藥品銷售管理模塊本模塊功能主要完成是對(duì)藥品售出過(guò)程相關(guān)信息的管理。藥品售出時(shí)要統(tǒng)計(jì)金額、打印清單、從庫(kù)存中減去相關(guān)藥品的數(shù)量,還要對(duì)銷售情況進(jìn)行統(tǒng)計(jì)等。(6)系統(tǒng)管理模塊本模塊主要功能是系統(tǒng)用戶的管理,如添加用戶、刪除用戶、用戶信息查看、編輯、打印,用戶權(quán)限設(shè)置等。管理員密碼修改、系統(tǒng)數(shù)據(jù)庫(kù)的備份和還原等功能。(7)統(tǒng)計(jì)分析模塊主要功能是對(duì)藥品進(jìn)銷存情況進(jìn)行全面統(tǒng)計(jì),分析經(jīng)營(yíng)活動(dòng)中的獲利情況等。實(shí)現(xiàn)藥品采購(gòu)支出情況的統(tǒng)計(jì),已采購(gòu)付款但還未到貨或還未入庫(kù)情況的統(tǒng)計(jì),庫(kù)存藥品情況的統(tǒng)計(jì)、藥品銷售收入情況的統(tǒng)計(jì)等[15]。3.2.3系統(tǒng)功能模塊圖根據(jù)需求分析,設(shè)計(jì)出藥品銷售管理系統(tǒng)的總體結(jié)構(gòu)。系統(tǒng)功能模塊圖如圖3-1所示。藥品銷售管理系統(tǒng)藥品銷售管理系統(tǒng)數(shù)據(jù)備份統(tǒng)計(jì)管理銷售管理數(shù)據(jù)備份統(tǒng)計(jì)管理銷售管理庫(kù)存管理采購(gòu)庫(kù)存管理采購(gòu)管理供應(yīng)商管理商品信息管理客戶管理系統(tǒng)用戶管理圖3-1系統(tǒng)功能模塊圖3.3數(shù)據(jù)庫(kù)設(shè)計(jì)概述計(jì)算機(jī)信息系統(tǒng)以數(shù)據(jù)庫(kù)為核心,在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,進(jìn)行信息的收集、整理、存儲(chǔ)、檢索、更新、加工、統(tǒng)計(jì)和傳播等操作。對(duì)于數(shù)據(jù)庫(kù)應(yīng)用開發(fā)人員來(lái)說(shuō),為使現(xiàn)實(shí)世界的信息流計(jì)算機(jī)化,并對(duì)計(jì)算機(jī)化的信息進(jìn)行各種操作,就是如何利用數(shù)據(jù)庫(kù)管理系統(tǒng)、系統(tǒng)軟件和相關(guān)硬件系統(tǒng),將用戶的要求轉(zhuǎn)化成有效的數(shù)據(jù)結(jié)構(gòu),并使數(shù)據(jù)庫(kù)結(jié)構(gòu)易于實(shí)現(xiàn)用戶新的要求的過(guò)程。確切的說(shuō),數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,提供一個(gè)確定最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計(jì),以及一個(gè)確定數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)與存取方法的物理設(shè)計(jì),建立起既能反映現(xiàn)實(shí)世界信息和信息聯(lián)系,滿足用戶數(shù)據(jù)要求和加工要求,又能被某個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)所接受,同時(shí)能實(shí)現(xiàn)系統(tǒng)目標(biāo),并有效存取數(shù)據(jù)的數(shù)據(jù)庫(kù)。3.4數(shù)據(jù)庫(kù)設(shè)計(jì)周期根據(jù)軟件工程的思想,數(shù)據(jù)庫(kù)設(shè)計(jì)的周期可以劃分為六個(gè)階段:規(guī)劃階段:確定開發(fā)的總目標(biāo),給出計(jì)劃開發(fā)的軟件系統(tǒng)的功能、性能以及可靠性等方面的設(shè)想。需求分析階段:認(rèn)真細(xì)致地了解用戶對(duì)數(shù)據(jù)的加工要求,確定系統(tǒng)的功能與邊界。本階段的最終結(jié)果能夠提供一個(gè)可作為設(shè)計(jì)基礎(chǔ)的系統(tǒng)說(shuō)明書,包括對(duì)軟硬件環(huán)境的要求和一整套完善的數(shù)據(jù)流程圖。設(shè)計(jì)階段:把需求分析階段所確定的功能細(xì)化,主要工作是概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段,然后,對(duì)每個(gè)階段內(nèi)部設(shè)計(jì)詳細(xì)的流程。程序編制階段:以一種或幾種特定的程序設(shè)計(jì)語(yǔ)言表達(dá)上一階段確定的各模塊控制流程。程序編制時(shí)應(yīng)遵循結(jié)構(gòu)化程序設(shè)計(jì)方法。調(diào)試階段:對(duì)已編好的程序進(jìn)行單元調(diào)試(分調(diào)),整體調(diào)試(聯(lián)調(diào))和系統(tǒng)測(cè)試(驗(yàn)收)。運(yùn)行和維護(hù)階段:是整個(gè)設(shè)計(jì)周期最長(zhǎng)的階段,其工作重點(diǎn)是收集和記錄系統(tǒng)實(shí)際運(yùn)行的數(shù)據(jù)。在運(yùn)行中,必須保持?jǐn)?shù)據(jù)庫(kù)的完整性,必須有效地處理數(shù)據(jù)故障和進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)。同時(shí)解決開發(fā)過(guò)程的遺留問(wèn)題,改正錯(cuò)誤進(jìn)行功能完善。數(shù)據(jù)是系統(tǒng)的靈魂所在,整個(gè)系統(tǒng)的運(yùn)行基礎(chǔ)是系統(tǒng)數(shù)據(jù)庫(kù),因而數(shù)據(jù)庫(kù)的設(shè)計(jì)質(zhì)量對(duì)整個(gè)系統(tǒng)的功能與效率有很大影響,所以我們?cè)谶M(jìn)行數(shù)據(jù)文件和數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),充分考慮了數(shù)據(jù)存儲(chǔ)的完整性、可靠性、安全性和數(shù)據(jù)的一致性及便于操作等方面的問(wèn)題。一個(gè)完整的信息系統(tǒng)的建設(shè)并不是一步到位的。在實(shí)際的建設(shè)過(guò)程中,在時(shí)間上各子系統(tǒng)有先建、后建之分,在開發(fā)人員的分配上有他建、我建之別,這就涉及到各子系統(tǒng)之間的兼容問(wèn)題。在現(xiàn)有的軟件水平下,追求應(yīng)用系統(tǒng)間的相互兼容存在困難,但對(duì)于數(shù)據(jù)的兼容也就是數(shù)據(jù)的共享來(lái)說(shuō),既非常重要,又相對(duì)應(yīng)用系統(tǒng)的兼容較易實(shí)現(xiàn)。在提高數(shù)據(jù)共享性方面,可主要從數(shù)據(jù)的一致性方面來(lái)考慮。在我們的數(shù)據(jù)庫(kù)系統(tǒng)建設(shè)中,著重考慮了以下兩個(gè)標(biāo)準(zhǔn)保證數(shù)據(jù)的一致性:字段標(biāo)準(zhǔn):字段標(biāo)準(zhǔn)不統(tǒng)一是造成數(shù)據(jù)庫(kù)難以共享的一個(gè)主要原因,因?yàn)樽侄蔚脑O(shè)計(jì)處于數(shù)據(jù)庫(kù)設(shè)計(jì)的最底層,或者可以說(shuō)是最基本的一層,如果這一層都不能統(tǒng)一的話,會(huì)直接影響到數(shù)據(jù)庫(kù)中數(shù)據(jù)的共享。代碼標(biāo)準(zhǔn):代碼的引入為保持?jǐn)?shù)據(jù)庫(kù)中數(shù)據(jù)的一致性提供了一個(gè)重要手段。
此外本數(shù)據(jù)庫(kù)設(shè)計(jì)主要遵循以下原則:數(shù)據(jù)庫(kù)文件的實(shí)用性,數(shù)據(jù)庫(kù)文件的安全性,數(shù)據(jù)庫(kù)文件的獨(dú)立性,節(jié)省磁盤空間。數(shù)據(jù)庫(kù)設(shè)計(jì)是要在一個(gè)給定的應(yīng)用環(huán)境(DBMS)中,通過(guò)合理的邏輯設(shè)計(jì)和有效的物理設(shè)計(jì),構(gòu)造較優(yōu)的數(shù)據(jù)庫(kù)模式、子模式,建立數(shù)據(jù)庫(kù)和設(shè)計(jì)應(yīng)用程序,滿足用戶的各種信息需求。物理結(jié)構(gòu)設(shè)計(jì)的原則如下:1.盡可能的減少數(shù)據(jù)冗余和重復(fù)。2.結(jié)構(gòu)設(shè)計(jì)與操作設(shè)計(jì)相結(jié)合。
3.數(shù)據(jù)結(jié)構(gòu)具有相對(duì)的穩(wěn)定性?;谝陨显O(shè)計(jì)原則,本系統(tǒng)設(shè)計(jì)了一個(gè)數(shù)據(jù)庫(kù),包含基本信息表(如員工類別、存貨等)及幾個(gè)實(shí)體聯(lián)系建模后的表(如散件銷售、整機(jī)銷售等)。為了加快系統(tǒng)訪問(wèn)的速度把這些表放在一個(gè)數(shù)據(jù)庫(kù)中。3.5SQL查詢語(yǔ)言及使用SQL語(yǔ)言是結(jié)構(gòu)化語(yǔ)言(StructureQueryLanguage)的縮寫,是一種用于數(shù)據(jù)庫(kù)查詢和編程的語(yǔ)言,已經(jīng)成為關(guān)系型數(shù)據(jù)庫(kù)普遍使用的標(biāo)準(zhǔn),使用這種標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)語(yǔ)言對(duì)程序設(shè)計(jì)和數(shù)據(jù)庫(kù)的維護(hù)都帶來(lái)了極大的方便,廣泛地應(yīng)用于各種數(shù)據(jù)查詢。JSP和其他的應(yīng)用程序包括SQLserver2000、Foxpro、Orcale、SQLSEVER2000等都支持SQL語(yǔ)言。SQL語(yǔ)言的常用操作有:建立數(shù)據(jù)庫(kù)數(shù)據(jù)表(CREATETABLE),如本系統(tǒng)中的學(xué)生及成績(jī)備份就用到該語(yǔ)句;從數(shù)據(jù)庫(kù)中篩選一個(gè)記錄集(SELECT),這是最常用的一個(gè)語(yǔ)句,功能強(qiáng)大,能有效地對(duì)數(shù)據(jù)庫(kù)中一個(gè)或多個(gè)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行訪問(wèn),并兼有排序、分組等功能;在數(shù)據(jù)表中添加一個(gè)記錄(INSERT);刪除符合條件的記錄(DELETE);更改符合條件的記錄(UPDATE)。JSP中的數(shù)據(jù)庫(kù)操作對(duì)象都提供了對(duì)SQL語(yǔ)句的支持。其一般的用法是以JSP的各種控件接收用戶對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的請(qǐng)求,在事件響應(yīng)程序代碼中將其轉(zhuǎn)換成對(duì)數(shù)據(jù)庫(kù)的SQL查詢語(yǔ)句,并以字符串的形式存在,然后將其傳遞給相應(yīng)的數(shù)據(jù)庫(kù)操作對(duì)象,最終完成對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。3.6系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)是開發(fā)數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的技術(shù),也是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分。具體的說(shuō),數(shù)據(jù)庫(kù)設(shè)計(jì)是要在一個(gè)給定的應(yīng)用環(huán)境中,通過(guò)合理的邏輯設(shè)計(jì)和有效的物理設(shè)計(jì),構(gòu)造較優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),滿足用戶的各種信息需求。在系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)中,首先對(duì)系統(tǒng)分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲(chǔ)進(jìn)行分析,分析各數(shù)據(jù)存儲(chǔ)之間的關(guān)系,然后得出系統(tǒng)的關(guān)系模式。本系統(tǒng)用實(shí)體-聯(lián)系圖(簡(jiǎn)稱E-R圖)來(lái)描述系統(tǒng)的概念模型。E-R圖由實(shí)體、屬性、聯(lián)系三部分組成,其符號(hào)如圖所示:實(shí)體屬性聯(lián)系圖3-2E-R圖圖例3.6.1實(shí)體描述本系統(tǒng)中所涉及的實(shí)體有3個(gè),其結(jié)構(gòu)如下:客戶(客戶編號(hào)、客戶名稱、聯(lián)系人、聯(lián)系電話、聯(lián)系地址)藥品(藥品號(hào)、藥品名稱、規(guī)格、單價(jià)、計(jì)量單位)供應(yīng)商(供應(yīng)商編號(hào)、供應(yīng)商名稱、地址、聯(lián)系人、聯(lián)系電話)3.6.2聯(lián)系描述本系統(tǒng)中實(shí)體之間有5個(gè)聯(lián)系,其關(guān)系如下:(1)訂貨關(guān)系:業(yè)務(wù)員、客戶和藥品的關(guān)系是1:M:N,因?yàn)槎鄠€(gè)客戶可以向某一個(gè)業(yè)務(wù)員訂購(gòu)多種藥品;(2)存儲(chǔ)關(guān)系:倉(cāng)位和藥品的關(guān)系是1:N,因?yàn)橐粋€(gè)倉(cāng)位可以存放多種藥品,一種藥品只能存放在一個(gè)倉(cāng)位中;(3)出庫(kù)關(guān)系:客戶、倉(cāng)位和藥品的關(guān)系是M:N:N,因?yàn)槎鄠€(gè)用戶可以將多個(gè)倉(cāng)位中的多種藥品銷售。(4)入庫(kù)關(guān)系:供銷商、倉(cāng)位和藥品的關(guān)系是:N:M:N,因?yàn)槎鄠€(gè)供銷商可以將多種藥品存放在多個(gè)倉(cāng)位中。以上實(shí)體的聯(lián)系屬性如下:訂貨(訂貨單號(hào)、訂貨日期、數(shù)量、單價(jià))入庫(kù)(入庫(kù)單號(hào)、日期、數(shù)量)出庫(kù)(出庫(kù)單號(hào)、日期、數(shù)量)存儲(chǔ)(日期、數(shù)量)3.6.2E-R圖本系統(tǒng)的E-R圖如下圖所示:圖3-3藥品管理E-R圖圖3-4管理員E-R圖圖3-5庫(kù)存管理E-R圖圖3-6供應(yīng)商E-R圖3.6.3數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段的基本E-R圖轉(zhuǎn)化為與選用具體機(jī)器上的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),首先要實(shí)現(xiàn)的是E-R圖關(guān)系模型的轉(zhuǎn)化。而為此要解決的問(wèn)題是如何將實(shí)體和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼。對(duì)于實(shí)體,將每個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系,實(shí)體的屬性即為關(guān)系的屬性,實(shí)體的碼即為關(guān)系的碼。對(duì)于實(shí)體間的聯(lián)系,可以分成三種情況:若實(shí)體間的聯(lián)系是1:1,可以在兩個(gè)實(shí)體轉(zhuǎn)換成的兩個(gè)關(guān)系中任意一個(gè)關(guān)系的屬性中加入另一個(gè)關(guān)系的碼。若實(shí)體間的聯(lián)系是1:n,則在n端實(shí)體轉(zhuǎn)換成的關(guān)系中加入1端實(shí)體轉(zhuǎn)換成的關(guān)系碼。若實(shí)體間的聯(lián)系是n:m,則將聯(lián)系轉(zhuǎn)換為關(guān)系,關(guān)系的屬性為諸個(gè)實(shí)體的碼加上聯(lián)系具有的屬性,而關(guān)系的碼則為諸實(shí)體的碼的組合。本系統(tǒng)中所涉及到的6個(gè)實(shí)體轉(zhuǎn)換為6個(gè)關(guān)系,4個(gè)三元聯(lián)系轉(zhuǎn)換為4個(gè)關(guān)系,1:N的聯(lián)系轉(zhuǎn)換為1個(gè)關(guān)系,所以本系統(tǒng)共有11個(gè)關(guān)系,每個(gè)關(guān)系的主碼用下劃線,外碼用#標(biāo)出:客戶(客戶編號(hào)、客戶名稱、聯(lián)系人、聯(lián)系電話、聯(lián)系地址)藥品(藥品號(hào)、藥品名稱、規(guī)格、計(jì)量單位、安全庫(kù)存)供應(yīng)商(供應(yīng)商編號(hào)、供應(yīng)商名稱、地址、聯(lián)系人、聯(lián)系電話)出庫(kù)(出庫(kù)單號(hào)、倉(cāng)位號(hào)#、藥品號(hào)#、日期、數(shù)量)存儲(chǔ)(倉(cāng)位號(hào)#、藥品號(hào)#、日期、數(shù)量、)入庫(kù)(入庫(kù)單號(hào)、倉(cāng)位號(hào)#、藥品號(hào)#、日期、數(shù)量)3.6.4數(shù)據(jù)庫(kù)的實(shí)現(xiàn)按照數(shù)據(jù)字典中的數(shù)據(jù)元素說(shuō)明確定每個(gè)數(shù)據(jù)項(xiàng)的類型和長(zhǎng)度,使每個(gè)關(guān)系都對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)表:用戶表:此表中存儲(chǔ)的是該管理系統(tǒng)所有用戶的基本信息。表5-1用戶表序號(hào)字段名稱字段類型大小允許為空是否是主鍵最大長(zhǎng)度1IDInt4自增編號(hào)是102usernameVarChar50是否2553pwdVarChar50是否2554cxVarChar50是否2555addtimeDateTime8是否23出庫(kù)記錄表:記載所有產(chǎn)品出庫(kù)的信息,包括時(shí)間、編號(hào)、數(shù)量等等。表5-2出庫(kù)記錄表序號(hào)字段名稱字段類型大小允許為空是否是主鍵最大長(zhǎng)度1IDInt4自增編號(hào)是102bianhaoVarChar50是否2553mingchengVarChar50是否2554kucunVarChar50是否2555chukushuliangVarChar50是否2556kehuVarChar50是否2557beizhuVarChar50是否2558caozuoyuanVarChar50是否2559addtimeDateTime8是否23
供應(yīng)商信息表:表中記載了供應(yīng)商的詳細(xì)信息。表5-3供應(yīng)商信息表序號(hào)字段名稱字段類型大小允許為空是否是主鍵最大長(zhǎng)度1IDInt4自增編號(hào)是102bianhaoVarChar50是否2553gongsimingchengVarChar50是否2554dianhuaVarChar50是否2555chuanzhenVarChar50是否2556youxiangVarChar50是否2557dizhiVarChar50是否2558zhuyingchanpinVarChar50是否2559beizhuVarChar50是否25510addtimeDateTime8是否23客戶信息表:表中記載的是客戶的詳細(xì)信息。表5-4客戶信息表序號(hào)字段名稱字段類型大小允許為空是否是主鍵最大長(zhǎng)度1IDInt4自增編號(hào)是102bianhaoVarChar50是否2553xingmingVarChar50是否2554gongsimingchengVarChar50是否2555dianhuaVarChar50是否2556chuanzhenVarChar50是否2557youxiangVarChar50是否2558dizhiVarChar50是否2559beizhuVarChar50是否25510addtimeDateTime8是否23
入庫(kù)記錄表:表中記載的是藥品入庫(kù)的全部信息,包括藥品入庫(kù)的數(shù)量、編號(hào)等信息。表5-5入庫(kù)記錄表序號(hào)字段名稱字段類型大小允許為空是否是主鍵最大長(zhǎng)度1IDInt4自增編號(hào)是102bianhaoVarChar50是否2553mingchengVarChar50是否2554kucunVarChar50是否2555rukushuliangVarChar50是否2556gongyingshangVarChar50是否2557beizhuVarChar50是否2558caozuoyuanVarChar50是否2559addtimeDateTime8是否23
藥品信息:表中記載的是藥品的詳細(xì)信息,包括藥品的編號(hào)、名稱、供應(yīng)商等等。表5-6藥品信息表序號(hào)字段名稱字段類型大小允許為空是否是主鍵最大長(zhǎng)度1IDInt4自增編號(hào)是102bianhaoVarChar50是否2553mingchengVarChar50是否2554leibieVarChar50是否2555tupianVarChar50是否2556beizhuVarChar50是否2557addtimeDateTime8是否238jiageVarChar50是否2559kucunInt4是否10
第四章系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)詳細(xì)設(shè)計(jì)的主要任務(wù)是設(shè)計(jì)每個(gè)模塊的詳細(xì)功能、實(shí)現(xiàn)算法、所需的局部數(shù)據(jù)結(jié)構(gòu)等?;谇懊娴南到y(tǒng)總體設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì),在此章進(jìn)入詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)階段的任務(wù)。在這個(gè)階段需要對(duì)總體設(shè)計(jì)階段所闡述的基本功能進(jìn)行一一具體描述并實(shí)現(xiàn)。4.1登錄界面設(shè)計(jì)為了保證系統(tǒng)的安全性,進(jìn)入系統(tǒng)之前必須經(jīng)過(guò)必要的安全性檢驗(yàn),輸入相應(yīng)的用戶名和密碼,只有合法用戶方可登陸。簡(jiǎn)潔、清晰、友好是此模塊的設(shè)計(jì)風(fēng)格,如圖6-1所示:圖6-1用戶登錄界面如果輸入的用戶名或者密碼錯(cuò)誤,就會(huì)彈出下面的窗口,見圖4.1所示:圖6-2錯(cuò)誤信息本模塊是系統(tǒng)登陸界面,實(shí)現(xiàn)的功能是檢測(cè)合法用戶,驗(yàn)證其用戶名和密碼,以杜絕非法用戶侵入系統(tǒng),對(duì)系統(tǒng)所存儲(chǔ)的信息構(gòu)成威脅。本模塊界面非常簡(jiǎn)單,就一用戶名和密碼兩個(gè)文本框和一個(gè)登陸按鈕,但實(shí)現(xiàn)的方法比較復(fù)雜,因?yàn)橄到y(tǒng)要自動(dòng)判斷其輸入的用戶名及密碼的正誤,還要自動(dòng)識(shí)別其權(quán)限(超級(jí)管理員與普通管理員之分),如果登陸正常后,系統(tǒng)要將當(dāng)前用戶名和權(quán)限記錄下來(lái)以便之后其他操作給予適當(dāng)?shù)臋?quán)限分配。4.2JDBC連接要想讓本系統(tǒng)運(yùn)行成功需要將此設(shè)計(jì)與數(shù)據(jù)庫(kù)連接起來(lái),用戶在頁(yè)面進(jìn)行的操作在數(shù)據(jù)庫(kù)中得以保存,新進(jìn)的藥品、新來(lái)的管理員、倉(cāng)庫(kù)內(nèi)清除的藥品等這樣方便以后的正常的記錄。而如果想讓這些操作都被記錄下來(lái)操作成功就離不開頁(yè)面與數(shù)據(jù)庫(kù)的交互,JDBC部分代碼就是要將數(shù)據(jù)庫(kù)和頁(yè)面操作連接起來(lái),通過(guò)代碼控制并將數(shù)據(jù)庫(kù)連接所需要的東西配置好就將數(shù)據(jù)庫(kù)連接成功了。在程序中JDBC連接部分的代碼如下:packagedb;importjava.sql.*;publicclassdb{ privateStringdbDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; privateStringsConnStr="jdbc:microsoft:sqlserver://localhost:1433;databasename=jspspjxcxns"; publicConnectionconnect=null; publicResultSetrs=null; publicdb(){ try{ Class.forName(dbDriver).newInstance(); connect=DriverManager.getConnection(sConnStr,"sa","8888"); } catch(Exceptionex){ System.out.println("12121"); } } publicResultSetexecuteQuery(Stringsql){ try{ connect=DriverManager.getConnection(sConnStr,"sa","8888"); Statementstmt=connect.createStatement(); rs=stmt.executeQuery(sql); }catch(SQLExceptionex){ System.err.println(ex.getMessage()); } returnrs; } publicvoidexecuteUpdate(Stringsql) { Statementstmt=null; rs=null; try {connect=DriverManager.getConnection(sConnStr,"sa","8888"); stmt=connect.createStatement(); stmt.executeUpdate(sql); stmt.close(); connect.close(); } catch(SQLExceptionex) { System.err.println(ex.getMessage()); } }}4.3系統(tǒng)基本信界面設(shè)計(jì)輸入正確的用戶名和密碼后,即進(jìn)入系統(tǒng)的主界面。系統(tǒng)的基本操作界面如圖4-1所示:圖4-1系統(tǒng)基本操作界面該界面是系統(tǒng)登陸后的第一個(gè)界面,也是系統(tǒng)操作的主界面,除了登錄模塊之外,其他后臺(tái)操作均在本平臺(tái)上進(jìn)行,再次頁(yè)面可以找到所想要做的操作所在的模塊,可以對(duì)藥品、客戶、供應(yīng)商進(jìn)行操作。本界面是由一個(gè)框架組成,包括上左右三大塊。左邊是一個(gè)菜單列表,包括該系統(tǒng)所能進(jìn)行的所有操作,單擊菜單時(shí)右邊顯示主模塊頁(yè),顯示出所能進(jìn)行的操作,非常簡(jiǎn)單明了。4.4庫(kù)存添加界面(1)入庫(kù)記錄添加,和入庫(kù)記錄查詢界面如下:圖4-4入庫(kù)記錄添加界面圖4-5入庫(kù)記錄查詢界面當(dāng)有新的產(chǎn)品進(jìn)入到倉(cāng)庫(kù)中被保存的時(shí)候進(jìn)入入庫(kù)添加界面,藥品入庫(kù)的時(shí)候需要錄入藥品的詳細(xì)信息,藥品的編號(hào)、名稱、入庫(kù)數(shù)量、供應(yīng)商等等詳細(xì)的信息,這樣方便以后的管理,輸入結(jié)束之后點(diǎn)擊提交,這樣藥品的信息會(huì)被放到數(shù)據(jù)庫(kù)中保存。當(dāng)需要查詢倉(cāng)庫(kù)內(nèi)現(xiàn)有的藥品或者查找某一個(gè)藥品時(shí)進(jìn)入該頁(yè)面,在此頁(yè)面可以根據(jù)藥品的編號(hào)查找所要找的藥品以及藥品的詳細(xì)信息,省去了在大量藥品中查找的時(shí)間,快捷方便,只需要知道編號(hào)和名稱即可找到所想要查找的藥品。(2)銷售記錄添加,銷售記錄查詢界面如下:圖4-6銷售記錄添加界面當(dāng)從該倉(cāng)庫(kù)出庫(kù)藥品時(shí)需要經(jīng)過(guò)該頁(yè)面,需要記錄一下本次出庫(kù)藥品的詳細(xì)信息,藥品編號(hào)、藥品名稱庫(kù)存等等,每一次出庫(kù)藥品的時(shí)候都需要記錄這些信息以方便之后的藥品管理,見信息填寫完畢提交之后信息就會(huì)在數(shù)據(jù)庫(kù)中完整保存,這樣方便以后的查找。需要查詢每次藥品出庫(kù)的數(shù)量等信息時(shí)需要調(diào)用此出庫(kù)記錄查詢界面,在此界面可以根據(jù)某以藥品的編號(hào)以及名稱查詢到某一藥品出庫(kù)的詳細(xì)信息,包括數(shù)量、出庫(kù)時(shí)間等。方便對(duì)某一藥品作具體查詢。庫(kù)存查詢界面圖6-8庫(kù)存查詢界面此頁(yè)面為庫(kù)存查詢頁(yè)面,所提供的功能為查詢當(dāng)前庫(kù)存的藥品及數(shù)量,也可以根據(jù)編號(hào)和名稱詳細(xì)查詢某一藥品的詳細(xì)庫(kù)存數(shù)量信息。4.5客戶管理(1)客戶添加圖4-9客戶添加界面隨著企業(yè)壯大,出現(xiàn)的新客戶會(huì)越來(lái)越多。當(dāng)出現(xiàn)新客戶的時(shí)候進(jìn)入該客戶添加界面對(duì)新出現(xiàn)的客戶進(jìn)行信息登記,輸入客戶的編號(hào)、姓名、聯(lián)系方式等重要信息,以方便日后對(duì)客戶的管理。(2)客戶查詢圖6-10客戶查詢界面當(dāng)客戶越來(lái)越多的時(shí)候難免要從眾多的客戶中尋找想要找的客戶,本模塊就是為了方便查找客戶而設(shè)計(jì)的,根據(jù)客戶添加信息時(shí)的編號(hào)、客戶姓名等可以準(zhǔn)確找找客戶的詳細(xì)信息,也可以查看現(xiàn)有的全部客戶的信息。4.6藥品信息界面(1)藥品類別圖4-11藥品類別添加界面?zhèn)}庫(kù)中不會(huì)一直只存放一種類別的藥品,所以設(shè)計(jì)了藥品類別添加界面,此界面的功能只是添加新類別的產(chǎn)品,以方便日后同種類別的藥品的存放歸類,以避免倉(cāng)庫(kù)內(nèi)藥品信息的過(guò)于雜亂。(2)藥品類別查詢圖6-12藥品類別查詢界面如若不確定莫以藥品類別倉(cāng)庫(kù)內(nèi)是否存在則可通過(guò)該功能查詢倉(cāng)庫(kù)內(nèi)的藥品類別以及某一編號(hào)對(duì)應(yīng)的藥品類別,這樣可以方便新建藥品類別或者將某一藥品歸類,方便倉(cāng)庫(kù)內(nèi)藥品的管理。藥品信息添加有新藥品入庫(kù)的時(shí)候需要調(diào)用該頁(yè)面,在本頁(yè)面輸入藥品的庫(kù)存編號(hào)、藥品名稱等將藥品信息添加完成后點(diǎn)擊提交將數(shù)據(jù)傳到后臺(tái)數(shù)據(jù)庫(kù)保存,以后調(diào)用的時(shí)候根據(jù)編號(hào)就可以從數(shù)據(jù)庫(kù)中將本次信息調(diào)用出來(lái),方便操作員操作和庫(kù)存的管理。圖6-13藥品信息添加界面(4)藥品信息查詢圖6-14藥品信息查詢界面在眾多的倉(cāng)庫(kù)鎖儲(chǔ)存的藥品中找到所想要查找的藥品就是本界面的設(shè)計(jì)理念,當(dāng)庫(kù)存藥品越來(lái)越多藥品越來(lái)越復(fù)雜的時(shí)候本模塊就會(huì)顯示出優(yōu)越性,可以查詢出本倉(cāng)庫(kù)鎖存儲(chǔ)的所有藥品,也可以根據(jù)編號(hào)具體查找所想要的具體的藥品的詳細(xì)信息。4.7供應(yīng)商管理圖4-15供應(yīng)商查詢界面?zhèn)}庫(kù)內(nèi)所儲(chǔ)存的藥品都是由供應(yīng)商供給的,所以有必要登記供應(yīng)商信息,每出現(xiàn)一個(gè)新的供應(yīng)商的時(shí)候都會(huì)登記該供應(yīng)商的詳細(xì)信息,然后保存到后臺(tái)數(shù)據(jù)庫(kù)中,當(dāng)要查詢某一個(gè)供應(yīng)商的信息的時(shí)候根據(jù)編號(hào)和供應(yīng)商的名稱進(jìn)行詳細(xì)查詢,查詢?cè)摴?yīng)商的詳細(xì)信息。4.8數(shù)據(jù)備份系統(tǒng)有很強(qiáng)的不穩(wěn)定性,該系統(tǒng)有可能會(huì)出現(xiàn)某些故障,電腦系統(tǒng)也有可能出現(xiàn)故障,所以當(dāng)有新信息添加或者倉(cāng)庫(kù)的進(jìn)、銷、存相關(guān)操作進(jìn)行過(guò)后要隨時(shí)做好數(shù)據(jù)備份,以便突然出現(xiàn)問(wèn)題的時(shí)候可以找到數(shù)據(jù)的備份,避免對(duì)企業(yè)造成很嚴(yán)重的損失。
第五章系統(tǒng)的調(diào)試與測(cè)試5.1程序調(diào)試在設(shè)計(jì)系統(tǒng)的過(guò)程中,存在一些錯(cuò)誤是必然的。對(duì)于語(yǔ)句的語(yǔ)法錯(cuò)誤,在程序運(yùn)行時(shí)自動(dòng)提示,并請(qǐng)求立即糾正,因此,這類錯(cuò)誤比較容易發(fā)現(xiàn)和糾正。但另一類錯(cuò)誤是在程序執(zhí)行時(shí)由于不正確的操作或?qū)δ承?shù)據(jù)的計(jì)算公式的邏輯錯(cuò)誤導(dǎo)致的錯(cuò)誤結(jié)果。這類錯(cuò)誤隱蔽性強(qiáng),有時(shí)會(huì)出現(xiàn),有時(shí)又不出現(xiàn),因此,對(duì)這一類動(dòng)態(tài)發(fā)生的錯(cuò)誤的排查是耗時(shí)費(fèi)力的。5.2程序的測(cè)試5.2.1測(cè)試的重要性及目的測(cè)試的重要性:軟件的測(cè)試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測(cè)試學(xué)僅處于運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來(lái),軟件工程界趨向于一種新的觀點(diǎn),即認(rèn)為軟件生命周期每一階段中都應(yīng)包含測(cè)試,從而檢驗(yàn)本階段的成果是否接近預(yù)期的目標(biāo),盡可能早的發(fā)現(xiàn)錯(cuò)誤并加以修正,如果不在早期階段進(jìn)行測(cè)試,錯(cuò)誤的延時(shí)擴(kuò)散常常會(huì)導(dǎo)致最后成品測(cè)試的巨大困難。事實(shí)上,對(duì)于軟件來(lái)講,不論采用什么技術(shù)和什么方法,軟件中仍然會(huì)有錯(cuò)。采用新的語(yǔ)言、先進(jìn)的開發(fā)方式、完善的開發(fā)過(guò)程,可以減少錯(cuò)誤的引入,但是不可能完全杜絕軟件中的錯(cuò)誤,這些引入的錯(cuò)誤需要測(cè)試來(lái)找出,軟件中的錯(cuò)誤密度也需要測(cè)試來(lái)進(jìn)行估計(jì)。測(cè)試是所有工程學(xué)科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設(shè)計(jì)的那天起測(cè)試就一直伴隨著。統(tǒng)計(jì)表明,在典型的軟件開發(fā)項(xiàng)目中,軟件測(cè)試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測(cè)試上的開銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個(gè)軟件生存期時(shí),測(cè)試的成本比例也許會(huì)有所降低,但實(shí)際上維護(hù)工作相當(dāng)于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測(cè)試工作。在實(shí)踐中,軟件測(cè)試的困難常常使人望而卻步或敷衍了事,這是由于對(duì)測(cè)試仍然存在一些不正確的看法和錯(cuò)誤的態(tài)度,這包括:1.認(rèn)為測(cè)試工作不如設(shè)計(jì)和編碼那樣容易取得進(jìn)展難以給測(cè)試人員某種成就感;2.以發(fā)現(xiàn)軟件錯(cuò)誤為目標(biāo)的測(cè)試是非建設(shè)性的,甚至是破壞性的,測(cè)試中發(fā)現(xiàn)錯(cuò)位是對(duì)責(zé)任者工作的一種否定;3.測(cè)試工作枯燥無(wú)味,不能引起人們的興趣;4.測(cè)試工作是艱苦而細(xì)致的工作;5.對(duì)自己編寫的程序盲目自信,在發(fā)現(xiàn)錯(cuò)誤后,顧慮別人對(duì)自己的開發(fā)能力的看法。這些觀點(diǎn)對(duì)軟件測(cè)試工作是極為不利的,必須澄清認(rèn)識(shí)、端正態(tài)度,才可能提高軟件產(chǎn)品的質(zhì)量。測(cè)試的目的:如果測(cè)試的目的是為了盡可能多地找出錯(cuò)誤,那么測(cè)試就應(yīng)該直接針對(duì)軟件比較復(fù)雜的部分或是以前出錯(cuò)比較多的位置。1.軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程;2.測(cè)試是為了證明程序有錯(cuò),而不是證明程序無(wú)錯(cuò)誤;3.一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;4.一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。這種觀點(diǎn)可以提醒人們測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會(huì)產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測(cè)試的唯一目,查找不出錯(cuò)誤的測(cè)試就是沒(méi)有價(jià)值的,事實(shí)并非如此。首先,測(cè)試并不僅僅是為了要找出錯(cuò)誤。通過(guò)分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過(guò)程的缺陷,以便改進(jìn)。同時(shí),這種分析也能幫助我們?cè)O(shè)計(jì)出有針對(duì)性地檢測(cè)方法,改善測(cè)試的有效性。其次,沒(méi)有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種方法。5.2.2測(cè)試的步驟與開發(fā)過(guò)程類似,測(cè)試過(guò)程也必須分步驟進(jìn)行,每個(gè)步驟在邏輯上是前一個(gè)步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個(gè)子系統(tǒng)組成,每個(gè)子系統(tǒng)又由若干個(gè)模塊組成。因此,大型軟件系統(tǒng)的測(cè)試基本上由下述幾個(gè)步驟組成:1.模塊測(cè)試:在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。2.系統(tǒng)測(cè)試:在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說(shuō)明中的錯(cuò)誤。3.驗(yàn)收測(cè)試:在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說(shuō)明書中的錯(cuò)誤。5.2.3測(cè)試的主要內(nèi)容為了保證測(cè)試的質(zhì)量,將測(cè)試過(guò)程分成幾個(gè)階段,即:代碼審查、單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。1.單元測(cè)試單元測(cè)試集中在檢查軟件設(shè)計(jì)的最小單位—模塊上,通過(guò)測(cè)試發(fā)現(xiàn)實(shí)現(xiàn)該模塊的實(shí)際功能與定義該模塊的功能說(shuō)明不符合的情況,以及編碼的錯(cuò)誤。2.集成測(cè)試集成測(cè)試是將模塊按照設(shè)計(jì)要求組裝起來(lái)同時(shí)進(jìn)行測(cè)試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問(wèn)題。如一個(gè)模塊與另一個(gè)模塊可能有由于疏忽的問(wèn)題而造成有害影響;把子功能組合起來(lái)可能不產(chǎn)生預(yù)期的主功能;個(gè)別看起來(lái)是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯(cuò)誤等。3.確認(rèn)測(cè)試確認(rèn)測(cè)試的目的是向未來(lái)的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測(cè)試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是確認(rèn)測(cè)試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。4.系統(tǒng)測(cè)試軟件開發(fā)完成以后,最終還要與系統(tǒng)中其他部分配套運(yùn)行,進(jìn)行系統(tǒng)測(cè)試。包括恢復(fù)測(cè)試、安全測(cè)試、強(qiáng)度測(cè)試和性能測(cè)試等。單獨(dú)對(duì)系統(tǒng)的測(cè)試主要從以下幾方面入手:1.功能測(cè)試:測(cè)試是否滿足開發(fā)要求,是否提供設(shè)計(jì)所描述的功能,是否用戶的需求都得到滿足。功能測(cè)試是系統(tǒng)測(cè)試最常用和必須的測(cè)試,通常還會(huì)以正式的軟件說(shuō)明書為測(cè)試標(biāo)準(zhǔn)。2.強(qiáng)度測(cè)試及性能測(cè)試:測(cè)試系統(tǒng)能力最高實(shí)際限度,即軟件在一些超負(fù)荷情況下功能實(shí)現(xiàn)的情況。3.安全測(cè)試:驗(yàn)證安裝在系統(tǒng)內(nèi)的保護(hù)機(jī)構(gòu)確實(shí)能夠?qū)ο到y(tǒng)進(jìn)行保護(hù),使之不受各種非常的干擾。針對(duì)本系統(tǒng)主要是對(duì)權(quán)限系統(tǒng)的測(cè)試和對(duì)無(wú)效數(shù)據(jù)、錯(cuò)數(shù)據(jù)、和非法數(shù)據(jù)干擾的能力的測(cè)試。經(jīng)過(guò)上述的測(cè)試過(guò)程對(duì)軟件進(jìn)行測(cè)試后,軟件基本滿足開發(fā)的要求,測(cè)試宣告結(jié)束。
結(jié)論幾個(gè)月來(lái)忙碌緊張而又有條不紊的畢業(yè)設(shè)計(jì),使我有機(jī)會(huì)對(duì)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 應(yīng)城市七年級(jí)上學(xué)期語(yǔ)文期中試題
- 四年級(jí)數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
- 分?jǐn)?shù)的初步認(rèn)識(shí)的說(shuō)課稿
- 蹲踞式跳遠(yuǎn)說(shuō)課稿初中
- 南京工業(yè)大學(xué)浦江學(xué)院《汽車構(gòu)造(下)》2023-2024學(xué)年第一學(xué)期期末試卷
- 《相交線》初中數(shù)學(xué)說(shuō)課稿
- 南京工業(yè)大學(xué)浦江學(xué)院《房屋建筑學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 約定工資結(jié)清協(xié)議書(2篇)
- 南京工業(yè)大學(xué)《巖體力學(xué)與工程》2023-2024學(xué)年第一學(xué)期期末試卷
- 對(duì)課件分析教學(xué)課件
- (完整版)四宮格數(shù)獨(dú)題目204道(可直接打印)及空表(一年級(jí)數(shù)獨(dú)題練習(xí))
- JIT、QR與供應(yīng)鏈管理課件
- 車輛采購(gòu)服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 《大學(xué)生軍事理論教程》第四章
- 光伏發(fā)電項(xiàng)目達(dá)標(biāo)投產(chǎn)實(shí)施細(xì)則之歐陽(yáng)科創(chuàng)編
- 第屆世界旅游小姐大賽中國(guó)云南總決賽招商贊助方案
- 愛立信網(wǎng)管BO操作流程
- 大學(xué)生計(jì)算與信息化素養(yǎng)-北京林業(yè)大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 第四代篦冷機(jī)液壓系統(tǒng)的故障與維護(hù)獲獎(jiǎng)科研報(bào)告
- 人大代表為人民
- 文明之痕:流行病與公共衛(wèi)生知到章節(jié)答案智慧樹2023年四川大學(xué)
評(píng)論
0/150
提交評(píng)論