![汽車租賃管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第1頁](http://file4.renrendoc.com/view/6b625dbabf7879a66a5195e5b7681893/6b625dbabf7879a66a5195e5b76818931.gif)
![汽車租賃管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第2頁](http://file4.renrendoc.com/view/6b625dbabf7879a66a5195e5b7681893/6b625dbabf7879a66a5195e5b76818932.gif)
![汽車租賃管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第3頁](http://file4.renrendoc.com/view/6b625dbabf7879a66a5195e5b7681893/6b625dbabf7879a66a5195e5b76818933.gif)
![汽車租賃管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第4頁](http://file4.renrendoc.com/view/6b625dbabf7879a66a5195e5b7681893/6b625dbabf7879a66a5195e5b76818934.gif)
![汽車租賃管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第5頁](http://file4.renrendoc.com/view/6b625dbabf7879a66a5195e5b7681893/6b625dbabf7879a66a5195e5b76818935.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中南財(cái)經(jīng)政法大學(xué)畢業(yè)設(shè)計(jì)(論文)第32頁共32頁畢業(yè)設(shè)計(jì)論文汽車租賃管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:汽車租賃業(yè)被稱為“朝陽產(chǎn)業(yè)”,它因?yàn)闊o須辦理保險(xiǎn)、無須年檢維修、車型可隨意更換等優(yōu)點(diǎn),以租車代替買車來控制企業(yè)成本,這種在外企中十分流行的管理方式,正慢慢受到國內(nèi)企事業(yè)單位和個(gè)人用戶的青睞。將買車、養(yǎng)車的包袱全丟給汽車租賃公司,而把主要財(cái)力和精力放在自己的主業(yè)上,這是當(dāng)今國際跨國公司流行的做法。據(jù)統(tǒng)計(jì),一年下來,像桑塔納2000這樣的普通車,購車要比租車多花費(fèi)10000元修理費(fèi),即以租車代替買車,成本就可以下降3成。另外,租車還為企業(yè)節(jié)省一筆管理成本,其根本原因在于對(duì)企業(yè)管理上“成本可控”理念認(rèn)可——采用租賃,隨時(shí)可以調(diào)整開支,風(fēng)險(xiǎn)小,靈活性強(qiáng),是降低成本的最好辦法。那些對(duì)中國地方性法規(guī)制度不熟悉的商家可以減少諸如汽車上牌、年檢、繳費(fèi)、違章事故的處理等一系列不必要的麻煩。客戶們還可以自由地選擇租賃汽車的品牌,從經(jīng)濟(jì)型車到高檔車,所有汽車均有完備的手續(xù)。汽車租賃的五個(gè)優(yōu)勢(shì)車型可隨時(shí)更新隨著人們消費(fèi)水平的提高,對(duì)高檔消費(fèi)品有不斷更新的欲望。在歐美人們平均8個(gè)月更換一次車型。假如現(xiàn)在花費(fèi)三十多萬元購買一臺(tái)轎車,因社會(huì)經(jīng)濟(jì)發(fā)展很快,一年后汽車的性能、外觀改進(jìn)很多,而價(jià)格卻會(huì)大幅下降。一年后,如果想換新車型,老車可能15萬元就很難賣出。這意味著,一年中車價(jià)損失接近20萬元。但假如租賃一臺(tái)三十多萬元的車,只需10余萬元。而且,可隨時(shí)租用最新車型。從目前人們經(jīng)常更換手機(jī)的狀況就能預(yù)料到幾年后,經(jīng)常換新車,將是人們的新時(shí)尚。解除車輛維修、年度檢驗(yàn)的煩惱自購車輛后對(duì)車輛的維修和保養(yǎng)及一年一度的車輛年檢要耗費(fèi)很多財(cái)力和精力。但如果租車,就不存在這些煩惱,無論是車輛維修還是其它原因,車輛不能正常使用時(shí),租賃公司都會(huì)及時(shí)提供替代車,保證用車。三、可充分提高資金利用率如果自購車輛要一次性支付30萬元,消費(fèi)者具有一定經(jīng)濟(jì)實(shí)力。也就是說租車和買車相比至少可節(jié)省一次性投資20萬元。消費(fèi)者用這20萬元去經(jīng)營,可賺取一筆可觀的利潤。四、可保證你良好的財(cái)務(wù)狀況自購車輛必然會(huì)造成固定資產(chǎn)增加、借款增加、流動(dòng)資產(chǎn)減少使財(cái)務(wù)出現(xiàn)不良狀況,而租賃車輛將有效回避上述風(fēng)險(xiǎn)。五、有利于提高成本觀念,減少浪費(fèi)自購車輛使用時(shí)隨心所欲,特別是單位公車,私自用車現(xiàn)象較多,造成不必要的浪費(fèi),而如果租賃車,一是可根據(jù)業(yè)務(wù)需要隨時(shí)調(diào)控用車數(shù)量,二是用車人知道自己的用車成本,,可直接減少不必要的用車,有效地提高員工的成本觀念。第1章開發(fā)環(huán)境1.1開發(fā)所需工具 Tomcat6.0,WindowsXP,EditPlus,DreamweaverMX2004,IE6.0,Firefox火狐瀏覽器,Oracle10g等。1.2Tomcat Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,目前最新版本是6.0.18.Tomcat是Apache軟件基金會(huì)(ApacheSoftwareFoundation)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet2.4和JSP2.0規(guī)范。因?yàn)門omcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。 Tomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。 Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML頁面的訪問請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。1.3JSP JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。JSP與JavaServlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺(tái)。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。JavaServlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。 自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。1.4Servlet Servlet是一種獨(dú)立于平臺(tái)和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動(dòng)態(tài)的Web頁面。它擔(dān)當(dāng)Web瀏覽器或其他HTTP客戶程序發(fā)出請(qǐng)求,與HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間層。 Servlet是位于Web服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。 在傳統(tǒng)的CGI中,每個(gè)請(qǐng)求都要啟動(dòng)一個(gè)新的進(jìn)程,如果CGI程序本身的執(zhí)行時(shí)間較短,啟動(dòng)進(jìn)程所需要的開銷很可能反而超過實(shí)際執(zhí)行時(shí)間。而在Servlet中,每個(gè)請(qǐng)求由一個(gè)輕量級(jí)的Java線程處理(而不是重量級(jí)的操作系統(tǒng)進(jìn)程)。在傳統(tǒng)CGI中,如果有N個(gè)并發(fā)的對(duì)同一CGI程序的請(qǐng)求,則該CGI程序的代碼在內(nèi)存中重復(fù)裝載了N次;而對(duì)于Servlet,處理請(qǐng)求的是N個(gè)線程,只需要一份Servlet類代碼。在性能優(yōu)化方面,Servlet也比CGI有著更多的選擇。 Servlet提供了大量的實(shí)用工具例程,例如自動(dòng)地解析和解碼HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭、處理Cookie、跟蹤會(huì)話狀態(tài)等。 在Servlet中,許多使用傳統(tǒng)CGI程序很難完成的任務(wù)都可以輕松地完成。例如,Servlet能夠直接和Web服務(wù)器交互,而普通的CGI程序不能。Servlet還能夠在各個(gè)程序之間共享數(shù)據(jù),使得數(shù)據(jù)庫連接池之類的功能很容易實(shí)現(xiàn)。Servlet用Java編寫,ServletAPI具有完善的標(biāo)準(zhǔn)。因此,為IPlanetEnterpriseServer寫的Servlet無需任何實(shí)質(zhì)上的改動(dòng)即可移植到Apache、MicrosoftIIS或者WebStar。幾乎所有的主流服務(wù)器都直接或通過插件支持Servlet。 不僅有許多廉價(jià)甚至免費(fèi)的Web服務(wù)器可供個(gè)人或小規(guī)模網(wǎng)站使用,而且對(duì)于現(xiàn)有的服務(wù)器,如果它不支持Servlet的話,要加上這部分功能也往往是免費(fèi)的(或只需要極少的投資)。1.5靜態(tài)網(wǎng)頁與動(dòng)態(tài)網(wǎng)頁 靜態(tài)網(wǎng)頁是標(biāo)準(zhǔn)的HTML文件,其文件擴(kuò)展名是.htm或.html。它可以包含HTML標(biāo)記、文本、Jave小程序、客戶端腳本以及客戶端ActiveX控件,但這種網(wǎng)頁不包含任何服務(wù)器端腳本,該頁中的每一行HTML代碼都是在放置到Web服務(wù)器前由網(wǎng)頁設(shè)計(jì)人員編寫的,在放置到Web服務(wù)器后便不再發(fā)生任何更改,所以稱之為靜態(tài)網(wǎng)頁。 程序是否在服務(wù)器端運(yùn)行,是動(dòng)態(tài)網(wǎng)頁的重要標(biāo)志。在服務(wù)器端運(yùn)行的程序、網(wǎng)頁、組件,屬于動(dòng)態(tài)網(wǎng)頁,它們會(huì)隨不同客戶、不同時(shí)間,返回不同的網(wǎng)頁,例如ASP、PHP、JSP、ASP.net、CGI等。運(yùn)行于客戶端的程序、網(wǎng)頁、插件、組件,屬于靜態(tài)網(wǎng)頁,例如html頁、Flash、JavaScript、VBScript等等,它們是永遠(yuǎn)不變的。1.6JDBC JDBC(JavaDataBaseConnectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純JavaAPI編寫數(shù)據(jù)庫應(yīng)用程序,同時(shí),JDBC也是個(gè)商標(biāo)名。 有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個(gè)程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個(gè)程序,或?yàn)樵L問Informix數(shù)據(jù)庫又編寫另一個(gè)程序等等,程序員只需用JDBCAPI寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時(shí),將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)。 Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。 Java具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對(duì)話的方法。而JDBC正是作為此種用途的機(jī)制。 JDBC擴(kuò)展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁,而該applet使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計(jì)算機(jī)有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對(duì)從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。1.7Oracle Oracle是殷墟(YinXu)出土的甲骨文(oracleboneinscriptions)的英文翻譯的第一個(gè)單詞,在英語里是“神諭”的意思。 與無壓縮格式下存儲(chǔ)數(shù)據(jù)相比,新的Oracle數(shù)據(jù)壓縮技術(shù)能夠確保以較小的開銷節(jié)省三倍以上的磁盤存儲(chǔ)空間。這一點(diǎn)比僅節(jié)省磁盤空間要具有更大的優(yōu)勢(shì),因?yàn)樗軌蚴蛊髽I(yè)節(jié)約更多的開支,以便有更多的資金來鞏固自己的地位。 自動(dòng)診斷知識(shí)庫(AutomaticDiagnosticRepository,ADR)是專門針對(duì)嚴(yán)重錯(cuò)誤的知識(shí)庫。該知識(shí)庫基本上能夠自動(dòng)完成一些以往需要由數(shù)據(jù)庫管理員來手動(dòng)完成的操作。 作為ADR的一部分,SQL性能分析器(SQLPerformanceAnalyzer,SPA)是最讓人驚喜的特性之一。SQL性能分析器是一個(gè)整體調(diào)整工具,管理員可以通過該工具在數(shù)據(jù)庫上定義和重演(replay)一個(gè)典型的工作負(fù)載,之后管理員可以調(diào)節(jié)整體參數(shù)來使數(shù)據(jù)庫盡快的達(dá)到最佳性能——而這一任務(wù)同樣也是許多年以來由數(shù)據(jù)庫管理員手動(dòng)完成的。 由于獲得了最優(yōu)的初始參數(shù),數(shù)據(jù)庫管理員就不需要調(diào)整數(shù)以萬計(jì)的SQL語句。管理員需要做的就是給定一個(gè)典型的負(fù)載,由SAP根據(jù)歷史記錄來決定SQL的最終設(shè)置,而不用管理員來檢測(cè)哪一個(gè)SQL設(shè)置是最合理的。 多年以來,甲骨文公司一直在努力完成地另一個(gè)新特性便是“聯(lián)機(jī)更新”(在不down機(jī)的情況下更新軟件)。實(shí)際上,很難從軟件工程的角度來設(shè)計(jì)一個(gè)運(yùn)行時(shí)能自動(dòng)升級(jí)的軟件。由于真正的應(yīng)用集群(RealApplicationClusters,RAC)特性,甲骨文公司再一次對(duì)其他的數(shù)據(jù)庫供應(yīng)商造成了更大的壓力。在實(shí)際的使用過程中,數(shù)據(jù)庫產(chǎn)品的用戶總是希望產(chǎn)品有持續(xù)的高可用性,這并不是說只需滿足下次補(bǔ)丁更新之前的3年的時(shí)間就夠了。 自動(dòng)內(nèi)存管理特性可以追根溯源至Oracle9i,那時(shí)甲骨文公司推出首款自動(dòng)調(diào)節(jié)存儲(chǔ)池的工具。AMM工具其實(shí)就是一種探測(cè)機(jī)制。實(shí)際上,Oracle11g有很多隨機(jī)訪問存儲(chǔ)池,當(dāng)AMM探測(cè)到某個(gè)存儲(chǔ)池中已滿時(shí),它將整個(gè)RAM從一個(gè)區(qū)域分配到其他相對(duì)合適的區(qū)域。系統(tǒng)后臺(tái)設(shè)計(jì)2.1系統(tǒng)的主要技術(shù)分析2.1.1.Browser/Server系統(tǒng)的三層體系結(jié)構(gòu) 在Browser/Server的系統(tǒng)中,用戶可以通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求。Browser/Server結(jié)構(gòu)極大的簡化了客戶機(jī)的工作,客戶機(jī)上只需安裝、配置少量的客戶端軟件即可,服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。 在Browser/Server三層體系結(jié)構(gòu)下,表示層(Presentation)、功能層(BusinessLogic)、數(shù)據(jù)層(DataService)被分割成三個(gè)相對(duì)獨(dú)立的單元: 第一層--表示層:Web瀏覽器在表示層中包含系統(tǒng)的顯示邏輯,位于客戶端。它的任務(wù)是由Web瀏覽器向網(wǎng)絡(luò)上的某一Web服務(wù)器提出服務(wù)請(qǐng)求,Web服務(wù)器對(duì)用戶身份進(jìn)行驗(yàn)證后用HTTP協(xié)議把所需的主頁傳送給客戶端,客戶機(jī)接受傳來的主頁文件,并把它顯示在Web瀏覽器上。 第二層--功能層:具有應(yīng)用程序擴(kuò)展功能的Web服務(wù)器在功能層中包含系統(tǒng)的事務(wù)處理邏輯,位于Web服務(wù)器端。它的任務(wù)是接受用戶的請(qǐng)求,首先需要執(zhí)行相應(yīng)的擴(kuò)展應(yīng)用程序與數(shù)據(jù)庫進(jìn)行連接,通過SQL等方式向數(shù)據(jù)庫服務(wù)器提出數(shù)據(jù)處理申請(qǐng),而后等數(shù)據(jù)庫服務(wù)器將數(shù)據(jù)處理的結(jié)果提交給Web服務(wù)器,再由Web服務(wù)器傳送回客戶端。 第三層--數(shù)據(jù)層:數(shù)據(jù)庫服務(wù)器在數(shù)據(jù)層中包含系統(tǒng)的數(shù)據(jù)處理邏輯,位于數(shù)據(jù)庫服務(wù)器端。它的任務(wù)是接受Web服務(wù)器對(duì)數(shù)據(jù)庫操縱的請(qǐng)求,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫查詢、修改、更新等功能,把運(yùn)行結(jié)果提交給Web服務(wù)器。 從上面的分析中可以看出,三層的Browser/Server體系結(jié)構(gòu)是把二層Client/Server結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來,由單獨(dú)組成的一層來負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力大大減輕了,把負(fù)荷均衡地分配給了Web服務(wù)器,于是由原來的兩層的Client/server結(jié)構(gòu)轉(zhuǎn)變成三層的Browser/Server結(jié)構(gòu)。圖2-1數(shù)據(jù)模型第3章數(shù)據(jù)庫設(shè)計(jì)3.1數(shù)據(jù)庫模式數(shù)據(jù)庫模式定義了數(shù)據(jù)庫的結(jié)構(gòu)、表、關(guān)系、域和業(yè)務(wù)規(guī)則。數(shù)據(jù)庫模式是一種設(shè)計(jì),數(shù)據(jù)庫和應(yīng)用正是建立在此基礎(chǔ)上的。域是一列可能擁有的值的集合。必須為每一個(gè)表的每一列確定域。除了數(shù)據(jù)的物理格式外,還需要確定是否有些域?qū)Ρ韥碚f是唯一的。數(shù)據(jù)庫模式的最后一個(gè)要素是業(yè)務(wù)規(guī)則,它是對(duì)需要反映在數(shù)據(jù)庫和數(shù)據(jù)庫應(yīng)用程序中的業(yè)務(wù)活動(dòng)的約束。業(yè)務(wù)規(guī)則是模式的一個(gè)重要部分,因?yàn)樗麄冎付藷o論什么數(shù)據(jù)變化到達(dá)DBMS引擎,允許的數(shù)據(jù)值必須滿足的約束。不管無效的數(shù)據(jù)變化請(qǐng)求是來自窗體的用戶、查詢/修改請(qǐng)求還是應(yīng)用程序,DBMS都應(yīng)該拒絕。遺憾的是,不同的DBMS產(chǎn)品用不同的方法實(shí)施業(yè)務(wù)規(guī)則。在某些情況下,DBMS產(chǎn)品不具備實(shí)施必要業(yè)務(wù)規(guī)則的能力,必須以代碼形式把它們編入應(yīng)用程序。3.2用戶表結(jié)構(gòu)用戶表用來反映用戶在數(shù)據(jù)庫內(nèi)所有屬性,包括:用戶ID,登入名,密碼,身份證號(hào),姓名,性別,地址,聯(lián)系電話,職位以及用戶類型.用戶表Users名稱中文名稱物理名稱字段類型主鍵字段名IDUserid(PK)Number是字段名登錄名UsernameVarchar2(30)否字段名身份證IdentityNumber否字段名姓名FullnameVarchar2(30)否字段名性別SexNumber否字段名地址AddressVarchar2(30)否字段名聯(lián)系電話PhoneNumber否字段名職位PositionVarchar2(30)否字段名用戶類型UserlevelNumber否字段名密碼UserpwdVarchar2(30)否表3-1用戶表功能關(guān)系圖如下:用戶管理用戶管理添加用戶修改用戶密碼查詢用戶修改用戶刪除用戶分配權(quán)限圖3-1功能關(guān)系圖3.3客戶表結(jié)構(gòu)客戶表用來反正真實(shí)客戶在數(shù)據(jù)庫內(nèi)所有屬性,包括:客戶ID,身份證號(hào),姓名,性別,地址,電話,職業(yè),密碼等。客戶表:Customers名稱中文名稱物理名稱字段類型主鍵字段名IDCust_id(PK)Number是字段名身份證IdentityNumber否字段名姓名CustnameVarchar2(30)否字段名性別SexNumber否字段名地址AddressVarchar2(30)否字段名電話PhoneNumber否字段名職業(yè)CareerVarchar2(30)否字段名密碼CustpwdVarchar2(30)否表3-2客戶表結(jié)構(gòu)功能關(guān)系圖如下:客戶管理客戶管理添加客戶修改客戶密碼查詢客戶刪除客戶修改客戶圖3-2功能關(guān)系圖3.4汽車表結(jié)構(gòu)汽車表用來反正真實(shí)汽車在數(shù)據(jù)庫內(nèi)所有屬性,其中包括:汽車ID,車號(hào),車型,顏色,價(jià)值,租金,押金,租用情況,簡介等.汽車信息表:Cars名稱中文名稱物理名稱字段類型主鍵字段名IDcarid(PK)Number是字段名車號(hào)carnumberVarchar2(30)否字段名型號(hào)cartypeVarchar2(30)否字段名顏色colorVarchar2(30)否字段名價(jià)值priceNumber否字段名租金rentpriceNumber否字段名押金depositNumber否字段名租用情況isrentingNumber否字段名簡介descriptionVarchar2(50)否表3-3信息表功能關(guān)系圖如下:汽車管理汽車管理查詢汽車信息刪除汽車信息添加汽車信息修改汽車信息圖3-4關(guān)系圖3.5出租單表結(jié)構(gòu) 反映出租單情況,包括出租單編號(hào),預(yù)付金,應(yīng)付金,實(shí)際交付金額,起租日期,應(yīng)歸還日期,歸還日期,出租單狀態(tài),客戶號(hào),車號(hào),服務(wù)人員編號(hào)等.出租單信息表:Rentable名稱中文名稱物理名稱字段類型主鍵字段名出租單編號(hào)tableid(PK)Number是字段名預(yù)付金ImprestNumber否字段名應(yīng)付金shouldpaypriceNumber否字段名實(shí)際交付金額PriceNumber否字段名起租日期BegindateDate否字段名應(yīng)歸還日期shouldreturndateDate否字段名歸還日期ReturndateDate否字段名出租單狀態(tài)RentflagNumber否字段名客戶號(hào)custid(FK)Number否字段名車號(hào)carid(FK)Number否字段名服務(wù)人員編號(hào)userid(FK)Number否表3-4信息表3.6檢查單表結(jié)構(gòu) 反映檢查單實(shí)際情況,包括檢查單號(hào),檢查時(shí)間,屬性,問題,賠費(fèi),檢查員,出租單編號(hào)等.檢查單信息表:checktable名稱中文名稱物理名稱字段類型主鍵字段名檢查單號(hào)checkid(PK)Number是字段名檢查時(shí)間checkdateDate否字段名屬性FieldVarchar2(30)否字段名問題problemVarchar2(30)否字段名賠費(fèi)payingNumber否字段名檢查員checkuserid(FK)參照用戶表Number否字段名出租單編號(hào)Rentid(FK)參照出租單表 Number否表3-5檢查單信息表客戶租車流程圖:圖3-5客戶租車流程圖客戶請(qǐng)客戶請(qǐng)求業(yè)務(wù)出租汽車查詢是否存在此客戶生成出租單并修改數(shù)據(jù)庫汽車信息數(shù)據(jù)庫內(nèi)修改該客戶信息記錄租車記錄客戶還車流程圖:圖3-6客戶還車流程圖客戶歸還汽車客戶歸還汽車查詢出租單生成檢查單修改客戶租用狀態(tài)修改汽車租用狀態(tài)修改出租單狀態(tài)連接數(shù)據(jù)庫 通過JDBC連接到ORACLE,利用JAVA的反射機(jī)制來尋找ORACLE提供的JDBC連接方法源代碼節(jié)選:/***連接數(shù)據(jù)庫抽象類*作為工具提供其他類直接調(diào)用Connection連接數(shù)據(jù)庫*含有關(guān)閉數(shù)據(jù)庫連接方法*/ Class.forName(ConnectionImport.driver);//反射機(jī)制獲取數(shù)據(jù)庫驅(qū)動(dòng)! conn=DriverManager.getConnection(ConnectionImport.url, ConnectionImport.user,ConnectionImport.password); //回滾操作。 第4章建立數(shù)據(jù)庫4.1數(shù)據(jù)庫建模 通過建模工具建立數(shù)據(jù)庫中所有數(shù)據(jù)模型UML圖如下:圖4-1UML數(shù)據(jù)模型4.2數(shù)據(jù)庫建表 利用SQL語句建立數(shù)據(jù)庫表,利用數(shù)據(jù)庫表的互相管理來反映具體事務(wù)的真實(shí)關(guān)系。由于表太多,這里也就不一一列舉了。 權(quán)限與目錄表的SQL語句如下: createtableOA_ROLES_MENUS(ROLE_IDNUMBERnotnull,MENU_IDNUMBERnotnull,constraintROLES_MENUSprimarykey(ROLE_ID,MENU_ID)系統(tǒng)前臺(tái)設(shè)計(jì)系統(tǒng)登入界面:界面如下圖:圖5-1登陸界面源代碼節(jié)選: Stringname=request.getParameter("username");//獲取用戶名 Stringpassword=request.getParameter("password");//獲取密碼 Stringrole_id=request.getParameter("role");//獲取用戶等級(jí) intid=Integer.parseInt(role_id); LoginDAOlogin=newLoginDAO(name,password,id); booleanflag=login.checkUser(); if(flag){ //建立回話 Useruser=login.getUser(); HttpSessionsession=request.getSession(); //在會(huì)話中將用戶操作目錄和所能操作的功能做保存 session.setAttribute(Constants.KEY_SESSION,user); response.sendRedirect("default.jsp");//跳轉(zhuǎn)生成目錄 }else{ //System.out.println(flag); request.setAttribute("msg","err"); request.getRequestDispatcher("wrong.html").forward(request, response); }動(dòng)態(tài)生成菜單 每次登入時(shí)自動(dòng)訪問數(shù)據(jù)庫查詢角色所對(duì)應(yīng)的功能菜單如圖所示 圖5-2功能菜單查詢界面如圖所示圖5-3查詢界面 通過查詢數(shù)據(jù)庫生成數(shù)組進(jìn)行遍歷產(chǎn)生結(jié)果集,利用分頁技術(shù)展示給用戶使用。代碼節(jié)選: 根據(jù)角色I(xiàn)D查詢角色對(duì)應(yīng)的菜單 conn=JdbcUtil.getConnection(); stat=conn.prepareStatement(sql); stat.setInt(1,id); set=stat.executeQuery(); while(set.next()){ menu=newMenu(); 如果沒有父目錄,則將父目錄設(shè)為-1 intmenuid=set.getInt("id"); FunDAOfun=newFunDAOImpl(); List<Fun>funs=fun.findFunByMenu(menuid); menu.setId(menuid); menu.setName(set.getString("name"));目錄名 intfatherid=set.getInt("father_id"); if(fatherid<1){ fatherid=-1; } menu.setFatherid(fatherid);父目錄ID menu.setUri(set.getString("uri")); menu.setFuns(funs); list.add(menu); }角色添加如圖所示 添加角色是比較關(guān)鍵的部分,修改角色對(duì)應(yīng)的目錄和功能,通過修改中間表.并且不通過UPDATA來修改,只能將原有數(shù)據(jù)刪除然后重新插入代碼如下:Stringsql1="deletefromoa_roles_menuswhererole_id=?";//刪除菜單語句Stringsql3="deletefromoa_roles_funswhererole_id=?";//刪除功能語句Stringsql2="insertintooa_roles_menusvalues(?,?)";//插入菜單語句Stringsql4="insertintooa_roles_funsvalues(?,?)";//插入功能語句 stat=conn.prepareStatement(sql1);//刪除菜單關(guān)聯(lián)stat.setInt(1,role.getRole_id());//插入刪除值stat2=conn.prepareStatement(sql3);//刪除功能關(guān)聯(lián)stat2.setInt(1,role.getRole_id());//插入刪除值stat.execute();stat2.execute();stat3=conn.prepareStatement(sql2);//批量插入菜單對(duì)應(yīng)關(guān)聯(lián) 參考文獻(xiàn)[1].孫衛(wèi)琴.Java網(wǎng)絡(luò)編程精解[M].–北京:電子工業(yè)出版社,2007.3[2].林勝利.連旦暉Java開發(fā)經(jīng)典模式與實(shí)例[M].–北京:中國鐵道出版社,2007.1[3].張洪偉.TomcatWeb開發(fā)整合應(yīng)用[M].清華大學(xué)出版社,2006.3.[4]閆靜,鐘斌.DreamweaverMX2004與ASP動(dòng)態(tài)網(wǎng)頁基礎(chǔ)與范例[M].北京:機(jī)械工業(yè)出版社,2004.1-280.[5]邱旭東,劉文浩.基于JSP的MVC開發(fā)模式研究及應(yīng)用[J].中國科技術(shù)信息2006[6]汪孝宜等.JSP數(shù)據(jù)庫開發(fā)實(shí)例精粹[M].電子工業(yè)出版社2005[7]孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設(shè)計(jì)與開發(fā)[M].電子工業(yè)出版社2004[8]屈文軍,孫林夫,趙慧娟,屈喜龍.ASP服務(wù)平臺(tái)身份認(rèn)證技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2006(5).[9]劉麗平,王文杰.基于Web的自適應(yīng)性智能試題庫的設(shè)計(jì)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2006(4).[9]劉明,蔣朝慧,李燕華.基于J2EE標(biāo)準(zhǔn)ASP服務(wù)平臺(tái)的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2006(4).[10]RusselWinderGrahamRoberts著.Java軟件開發(fā)[M].人民郵電出版社2004[11]GaryBollinger,BharathiNatarajan著.JSP程序設(shè)計(jì)指南[M].清華大學(xué)出版社2002附錄《TheArtofTrade-offs》HowdoyouDevelopSoftware?Thereseemstobeacommonmisunderstandingamongnetizenswhocreatesoftwareforaliving.Therearethosewhoproclaimloudlythatonemustmodelthewholeworldbeforecommittingtocodeandthatthosewhojumpintocodeearlyaremerely``code-like-hell''hackers.Thenthere'sthecrowdthatsays,Hey,waitaminute.Youcan'tlearnenoughfromasimplemodelupfront.Youhavetoexplorewithcodeofsometype.Otherwise,youcouldveryeasilymissimportantdetails,orevencreateamodelthatcan'tbebuilt!TheOneTrueAnswerSowhichcampiscorrect?Thosewhopreferhackingaroundincode,orthethosewhoinsistonfullymodelingtheirperceptionoftheworldbeforeeventhinkingaboutcode?Well,inaway,theyarebothright.Atleast,theyaretryingtosolvethesameproblemgainingsufficientknowledgetocorrectlyimplementasystem.See,asoftwareprojectisunlikeprojectsinotherengineeringdisciplines.Softwareprojectsareinherentlyprojectsofdiscovery.Youandyourteamwilllearnmoreastimegoesby.Yourknowledgeofthecustomer,theapplication,theenvironment,thesponsoryouwillcometoknowmuchmoreabouteachofthesetopicsasyougoalong.Andyoumustbepreparedtoactonthatnew-foundknowledge.Theerroroftheclassicwaterfallapproachisthatthereisn'tanyfeedback.Discoveriesmadeatthelowerlevelsofcodinghavenowaytoaffectrequirementsorarchitectureinawaterfallmodel.Yettheselowerleveldetailscanoftenhaveprofoundeffectsonyourunderstandingofthehigherlevels!MitigateRiskMitigationofriskisattheheartoftraditionalengineering.Whenyoubuildabridge,youdon'tbuilditasaperfectstructurethatwillnevercollapse.Insteadyoubuildittowithstand500yearwinds,200yearfloods,300%expectedmaximumload,etc.Ifyoudidn'tmakethesedesigntrade-offs,everybridgewouldbesolidconcretefromthedecktotheground,andwouldbesomethinglike500feetwide.Engineeringisallaboutmakingthesecompromises,andsoissoftwareengineering.Thedifferenceisthatwithsoftwareengineering,muchoftheriskisintheprocessofbuildingit,aswellasinthefinishedstructure,duetothenatureofdiscovery.Knowingthatyouwillcontinuetomakediscoveriesasyouproceed,itcomesdowntothefactthatyouwanttominimizetheriskofdiscoveringsomethingthatinvalidatestoomuchofyourexistingwork.Thosewhojumprightintohackingoutproductioncodearealreadyintroublebeforetheybegin:largechangesindirection(broughtaboutbyincreasedknowledge)arehardesttochangehere,andarethemostexpensive.Thosewhoproposemodelingfullybeforedoinganyimplementationrunthesameriskofmakingimportantdiscoverieswhilecreatingproductioncode.Themodel,beinganabstractversionofreality,mustforfeitsomedetails.Andthedevilmaywellbelurkinginthosedetails.Thentherearethosewhotrytobalancethesetwoextremes,bymodelingalittle,andcodingalittle,orbymodelingwithadisposableprototypeortracer-bulletcode.ManyoftheUsenetdiscussionsofthistopicseemtoboggeddowninthedetailshereofbreadth-firstversusdepth-first;whendoyoumodelandwhendoyoucode,andsoon.Differentmethodswillsuggestdifferentwaysofattackingthisproblem.MethodsRUseXtremeProgrammingisbasedonthepremiseofmitigatingrisk,andinaway,soarealltheotherpopulardesignmethodsofthedaywhethertheyadmittoitornot.Publishedmethodsattempttoanswerthequestion``HowdoIandmyteamgainthemostknowledgeabouttheproblemandsolutiondomaininthemosteconomicalwaypossibleinordertocreateasoftwaresystem?''Clearly,riskisinherentinthediscoveryprocessofaproject.Butthatdiscoveryisongoing,andwecan'taffordtomakecrucialdiscoverieslateinthegame.Ideally,wewanttodiscovereverythingwe'llneedtoknowup-frontandunderstanditperfectly.Itwillneverhappenthatway,ofcourse,soeverymethodtriestocreateanenvironmentwhereyoucanmaketheimportantdiscoveriesasearlyaspossible.ThegoldenAnswerofaparticularmethodisbasedonhowtoloweryourriskofmakingcrucial,latediscoveries.Butthoseanswerswillbedifferentforeveryone.Theanswerdependsonyourteam,yourproject,yourexperience,yourproblemdomain,yourworkenvironment,etc.Onceyouhavefoundamethodthatworkswellforoneproject,thereisnoguaranteethatitwillworkwellonthenext.Ifanyoftheselistedfactorschange,yourprocesswilllikelyneedrevising.Itain'tPerfectYousee,unlikethepristinebeautyofanalgorithmorsequenceoftightly-codedmachineinstructions,itain'tperfect.Processesandmethodsdependonpeopletocarrythemoutandtounderstandthematerialbeingexamined.Andpeoplearefallible.Sointheend,itcomesbackaroundtotheideaofmanagingtrade-offs.Youcouldspendsixmonthsonaprojectdiddlingaroundwithanobjectmodel,onlytodiscoverthatyoumisunderstoodthecustomer'sperformancerequirementsduringimplementation.Youcouldjumpintoimplementationtooearly,andlockyourselfintoadesignorarchitecturethatwon'tsupportimportantrequirementsthatyouhaven'tgottentoyet.Oryoucanweighthetrade-offstominimizeoverallrisk,andanalyzealittle,designalittle,andcodealittle.Therelativeproportionofeachtask,theorder,theamountoffeedbackallofthesewillbedifferentforeachproject,andeachpractitioner.Therearenorightanswersthatarecorrectallthetime,inallcontexts.Oncemustbepragmatic,andmakethechoicethatfitsthecurrentproblem,thecurrentteam,thecurrentenvironment,andsoon.Sonexttimeyouenterintoadiscussionofcomputerasanengineeringexerciseversusanart,considertheartoftrade-offs.Otherdisciplinesmustlivewithtrade-offsconcerningthephysicalworld;wemustlivewithtrade-offsconcerningourselves.Andthenwecanproceedtodevelopsoftware.文獻(xiàn)翻譯你是怎樣開發(fā)軟件的?在那些以編寫軟件為生的人們之間有一個(gè)常見的爭執(zhí)。有些人堅(jiān)持認(rèn)為在編寫代碼前必須先要有一個(gè)完整的模型,那些過早進(jìn)行編碼的人只不過是一些“在地獄中編碼”的hacker。然后,就會(huì)有另外一群人說,嗨!等一下。你無法從一個(gè)簡單的預(yù)先模型中學(xué)到足夠的知識(shí)。你必須得編寫某些形式的代碼。否則,你很可能會(huì)遺漏掉一些重要細(xì)節(jié),甚至創(chuàng)建出一個(gè)無法構(gòu)建的模型。正確答案那么哪一方正確呢?是整天侵淫在代碼之中的那一方呢?還是堅(jiān)持在思考代碼前必須先完整地建立對(duì)世界感知的模型那一方呢?嗯,他們?cè)谀撤N程度上都是正確的。至少,他們?cè)谠噲D解決同樣的問題--獲取正確實(shí)現(xiàn)一個(gè)系統(tǒng)的足夠知識(shí)。請(qǐng)注意,軟件項(xiàng)目和其他工程學(xué)科中的項(xiàng)目不同。軟件項(xiàng)目在本質(zhì)上是以發(fā)現(xiàn)為中心的項(xiàng)目。隨著時(shí)間的過去,你和你的團(tuán)隊(duì)會(huì)學(xué)到更多的知識(shí)。你對(duì)客戶、應(yīng)用、環(huán)境以及發(fā)起者的認(rèn)識(shí)也會(huì)隨著項(xiàng)目的進(jìn)展而增加。你必須得做好適應(yīng)新發(fā)現(xiàn)的知識(shí)的準(zhǔn)備。典型的瀑布方法的錯(cuò)誤就在于根本沒有任何反饋。在瀑布模型中,低層編碼中的任何發(fā)現(xiàn)根本無法影響到需求和架構(gòu)。然而,這些低層細(xì)節(jié)對(duì)于理解更高層的東西來說常常具有深遠(yuǎn)的影響。降低風(fēng)險(xiǎn)降低風(fēng)險(xiǎn)是傳統(tǒng)工程的核心。當(dāng)建造一座橋梁時(shí),你不會(huì)考慮把它建造成一座永遠(yuǎn)不會(huì)倒塌的完美橋梁。相反,你只會(huì)考慮它能經(jīng)受500年的風(fēng)吹、200年的水淹、最大3倍于所期望的承重,等等。如果不做這些設(shè)計(jì)權(quán)衡,那么所有的橋梁都將是從橋面到地面的實(shí)心混凝土,都將有500英尺寬。工程的全部就是做這些折中,軟件工程也是如此。軟件工程的困難在于:大部分的風(fēng)險(xiǎn)都存在于構(gòu)建它的過程以及所完成的結(jié)構(gòu)之中。原因就是其發(fā)現(xiàn)的本質(zhì)。知道了要在前進(jìn)中不斷地進(jìn)行發(fā)現(xiàn),那么問題的核心就在于要使所發(fā)現(xiàn)的東西使你已完成工作失效的風(fēng)險(xiǎn)最小化。那些直接去拼湊產(chǎn)品代碼的人在開始之前就已經(jīng)陷入麻煩之中:(由增加的知識(shí)所導(dǎo)致的)方向上大的變化此時(shí)更改起來最為困難,也最為昂貴。那些建議在做任何實(shí)現(xiàn)之前要先建立完整模型的人,同樣也冒著在創(chuàng)建產(chǎn)品代碼期間會(huì)出現(xiàn)重要發(fā)現(xiàn)的風(fēng)險(xiǎn)。作為現(xiàn)實(shí)抽象版本的模型,必然會(huì)失去一些細(xì)節(jié)。而惡魔很可能就潛伏在這些細(xì)節(jié)之中。于是,就有一些人試圖在這兩個(gè)極端之間進(jìn)行平衡,他們建立一點(diǎn)模型,就進(jìn)行一些編碼,他們使用一次性的原型或者代碼曳光彈進(jìn)行建模。Usenet中許多關(guān)于這個(gè)主題的討論都集中在是寬度優(yōu)先還是深度優(yōu)先;何時(shí)建模以及何時(shí)編碼等細(xì)節(jié)之上。針對(duì)這個(gè)問題,不同的方法會(huì)給出不同的建議。方法就是我們自己極限編程是基于降低風(fēng)險(xiǎn)的前提之上,當(dāng)今所有其他流行設(shè)計(jì)方法在某種程度上亦是如此――不管它們是否承認(rèn)這一點(diǎn)。已公開的方法都在試圖回答下面問題:“為了創(chuàng)建一個(gè)軟件系統(tǒng),我和我的團(tuán)隊(duì)如何才能以最為經(jīng)濟(jì)的方法獲取最多的問題領(lǐng)域和解決方案領(lǐng)域知識(shí)?!焙苊黠@,風(fēng)險(xiǎn)固有地存在于項(xiàng)目的發(fā)現(xiàn)過程之中。然而,該發(fā)現(xiàn)是一直在進(jìn)行的,我們無法承受游戲后期的重大發(fā)現(xiàn)。在理想情況下,我們希望能夠預(yù)先發(fā)現(xiàn)我們希望知道的一切,并且完全理解它們?,F(xiàn)實(shí)肯定不會(huì)是這樣的,所以每個(gè)方法都試圖創(chuàng)建出一個(gè)環(huán)境,在其中你能夠盡可能早地做出最重要的發(fā)現(xiàn)。一個(gè)特定方法最有價(jià)值之處就在于它是如何降低在晚期出現(xiàn)的關(guān)鍵發(fā)現(xiàn)的風(fēng)險(xiǎn)的。不過,這些答案對(duì)每個(gè)人來說都是不同的。答案和你的團(tuán)隊(duì)、項(xiàng)目、經(jīng)驗(yàn)、問題領(lǐng)域、工作環(huán)境等相關(guān)。如果你曾經(jīng)發(fā)現(xiàn)一個(gè)方法很適合于一個(gè)項(xiàng)目,誰也無法保證它會(huì)適合于下一個(gè)項(xiàng)目。如果所列出的這些因素中的任何一個(gè)發(fā)生變化,很可能就要對(duì)過程進(jìn)行修訂。它并不完美你已經(jīng)看到,和算法或者堅(jiān)固的機(jī)器指令序列的質(zhì)樸之美不同,它并不完美。過程和方法依賴于人去維持它們,去理解將被檢查的要素。而人是很容易犯錯(cuò)誤的。所以在最后,我們?cè)倩氐綄?duì)管理權(quán)衡的想法。你可以在一個(gè)項(xiàng)目的對(duì)象模型上浪費(fèi)6個(gè)月的時(shí)間,結(jié)果在實(shí)現(xiàn)期間卻發(fā)現(xiàn)你錯(cuò)誤的理解了客戶的性能需求。你可以很早就開始實(shí)現(xiàn),把自己鎖定在一個(gè)無法支持一些你還不知道的重要需求的設(shè)計(jì)和架構(gòu)上。或者,你可以對(duì)權(quán)衡進(jìn)行評(píng)估以最小化總的風(fēng)險(xiǎn),接著分析一點(diǎn)、設(shè)計(jì)一點(diǎn)、編碼一點(diǎn)。每個(gè)任務(wù)所占的相對(duì)比例、順序、反饋的數(shù)量――所有這些對(duì)每個(gè)項(xiàng)目、每個(gè)實(shí)踐者都是不同的。不存在在任何時(shí)間、任何場(chǎng)合都正確的答案。所以,一定要注重實(shí)效,作出最適合當(dāng)前問題、當(dāng)前團(tuán)隊(duì)、當(dāng)前環(huán)境的選擇。所以,當(dāng)你下次進(jìn)行計(jì)算機(jī)是工程實(shí)踐還是藝術(shù)的討論時(shí),請(qǐng)考慮一下權(quán)衡的藝術(shù)。其他的工程學(xué)科必須要建立在和物理世界有關(guān)的權(quán)衡之上;我們必須要面對(duì)和我們自己相關(guān)的權(quán)衡。然后我們就可以開始開發(fā)軟件了?;贑8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量儀的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量儀的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)HYPERLINK"/detail.htm?353
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 分析倉庫管理中的常見問題計(jì)劃
- 秋季文史課程教學(xué)計(jì)劃
- 提升教學(xué)質(zhì)量計(jì)劃
- 安全生產(chǎn)與健康管理方案計(jì)劃
- 樹立良好的生活部形象方針計(jì)劃
- 2025年陶瓷生產(chǎn)加工機(jī)械項(xiàng)目合作計(jì)劃書
- 美術(shù)教師職業(yè)素養(yǎng)提升計(jì)劃
- 從數(shù)據(jù)中尋找倉儲(chǔ)優(yōu)化機(jī)會(huì)的總結(jié)計(jì)劃
- 財(cái)務(wù)合規(guī)性的強(qiáng)化措施計(jì)劃
- 可行性研究與市場(chǎng)定位計(jì)劃
- 綠色工廠評(píng)價(jià)指標(biāo)及評(píng)分標(biāo)準(zhǔn)
- 高一必修二英語測(cè)試題
- 甲型流感患者的護(hù)理查房
- 禮儀概述和原則
- 裝飾施工圖設(shè)計(jì)深度
- 100以內(nèi)的加減法練習(xí)1000題(可直接打印)
- 技術(shù)人員能力評(píng)價(jià)表
- 體育賽事招商方案
- 西師版三年級(jí)下冊(cè)第六單元第1課時(shí)旋轉(zhuǎn)與平移市公共課一等獎(jiǎng)市賽課金獎(jiǎng)?wù)n件
- 我是家務(wù)小能手(課堂PPT)
- 英語學(xué)術(shù)論文寫作引言
評(píng)論
0/150
提交評(píng)論