天氣信息管理系統(tǒng)論文_第1頁
天氣信息管理系統(tǒng)論文_第2頁
天氣信息管理系統(tǒng)論文_第3頁
天氣信息管理系統(tǒng)論文_第4頁
天氣信息管理系統(tǒng)論文_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGE1第一章緒論1.1項(xiàng)目的開發(fā)背景21世紀(jì)是信息技術(shù)高速發(fā)展的世紀(jì),在這個(gè)嶄新的世紀(jì)中,隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,大量的信息技術(shù)產(chǎn)品如雨后春筍般地不斷涌現(xiàn)出來且被人們所接受?,F(xiàn)在人類的工作、學(xué)習(xí)、生活等無一能離開信息技術(shù)。總而言之,信息技術(shù)已溶入了人類生活的點(diǎn)點(diǎn)滴滴??梢哉f,信息技術(shù)的出現(xiàn)改變了世界,也改變了人類的生活。本論文研究的是天氣信息管理系統(tǒng),它就是在信息技術(shù)的基礎(chǔ)上所研究和開發(fā)的。它集信息技術(shù)及時(shí)、快速、準(zhǔn)確的特點(diǎn)于一身,充分地發(fā)揮出效率高的特點(diǎn)。該管理系統(tǒng)適用于對(duì)天氣信息有一定要求的場(chǎng)所,例如:航空公司、旅行社等地方,所以該管理系統(tǒng)應(yīng)用范圍廣泛,具有一定的使用價(jià)值。1.2該系統(tǒng)所具備的幾大突出特點(diǎn):1.2.1使用靈活在該管理系統(tǒng)中,不但設(shè)置了命令按鈕,而且還設(shè)置了菜單和快捷鍵可以讓用戶在任何一個(gè)界面利用它們進(jìn)行進(jìn)一步相關(guān)的操作。這樣不僅就為用戶的操作提供了多種的使用方法,而且還為用戶的操作提供了很大的方便。1.2.2.以曲線圖的方式描述數(shù)據(jù)該管理系統(tǒng)不但具有列表顯示數(shù)據(jù)和文本顯示某一條數(shù)據(jù)的功能,而且還有利用曲線圖描述數(shù)據(jù)的功能。每條直觀、生動(dòng)的曲線分別用不同的顏色來表示不同的數(shù)據(jù),其中,每一條曲線又代表著不同時(shí)期的數(shù)據(jù),使用戶不用再面對(duì)枯燥、乏味的數(shù)字,把用戶從成天面對(duì)雜亂無章數(shù)字的尷尬境地中解脫出來。這樣,以另外一種方式描繪數(shù)據(jù)的方法可以達(dá)到更好的效果。1.2.3批量的數(shù)據(jù)導(dǎo)入與導(dǎo)出可以文本文件格式對(duì)數(shù)據(jù)執(zhí)行批量導(dǎo)入或到處數(shù)據(jù)庫操作,方便了用戶之間的信息交流。也可將數(shù)據(jù)生成RTF報(bào)表格式,方便用戶查看或打印。1.2.3將數(shù)據(jù)信息生成RTF報(bào)表格式目前RTF格式是最流行的字處理文件格式,許多優(yōu)秀的基于數(shù)據(jù)信息的管理系統(tǒng)都可將數(shù)據(jù)轉(zhuǎn)換為RTF格式,以方便以后的排版和打印。本系統(tǒng)也可生成全年或單月的RTF表格形式。第二章開發(fā)工具簡介2.1UML簡要概述2.1.1UML簡介UML(UnifiedModelingLanguage)是面向?qū)ο蟮臉?biāo)準(zhǔn)建模語言,是面向?qū)ο蠹夹g(shù)領(lǐng)域的重要成果。標(biāo)準(zhǔn)建模語臺(tái)UML融合了Booch,OMT(ObjectModelingTechnique)和OOSE(Object-OrientedSoftwareEngineering)等方法中的基本概念,集眾家之長,并對(duì)現(xiàn)有的應(yīng)用范圍進(jìn)行擴(kuò)展。統(tǒng)一建模語言(UML)又是一個(gè)通用的可視化建模語言,用于對(duì)軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。它記錄了對(duì)必須構(gòu)造的系統(tǒng)的決定和理解,可用于對(duì)系統(tǒng)的理解、設(shè)計(jì)、瀏覽、配置、維護(hù)和信息控制。UML適用于各種軟件開發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具,UML是一種總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。UML包括概念的語義,表示法和說明,提供了靜態(tài)、動(dòng)態(tài)、系統(tǒng)環(huán)境及組織結(jié)構(gòu)的模型。它可被交互的可視化建模工具所支持,這些工具提供了代碼生成器和報(bào)表生成器。UML標(biāo)準(zhǔn)并沒有定義一種標(biāo)準(zhǔn)的開發(fā)過程,但它適用于迭代式的開發(fā)過程。它是為支持大部分現(xiàn)存的面向?qū)ο箝_發(fā)過程而設(shè)計(jì)的。UML描述了一個(gè)系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為。UML將系統(tǒng)描述為一些離散的相互作用的對(duì)象并最終為外部用戶提供一定的功能的模型結(jié)構(gòu)。靜態(tài)結(jié)構(gòu)定義了系統(tǒng)中的重要對(duì)象的屬性和操作以及這些對(duì)象之間的相互關(guān)系。動(dòng)態(tài)行為定義了對(duì)象的時(shí)間特性和對(duì)象為完成目標(biāo)而相互進(jìn)行通信的機(jī)制。從不同但相互聯(lián)系的角度對(duì)系統(tǒng)建立的模型可用于不同的目的。UML還包括可將模型分解成包的結(jié)構(gòu)組件,以便于軟件小組將大的系統(tǒng)分解成易于處理的塊結(jié)構(gòu),并理解和控制各個(gè)包之間的依賴關(guān)系,在復(fù)雜的開發(fā)環(huán)境中管理模型單元。它還包括用于顯示系統(tǒng)實(shí)現(xiàn)和組織運(yùn)行的組件。UML不是一門程序設(shè)計(jì)語言,可以使用代碼生成器工具將UML模型轉(zhuǎn)換為多種程序設(shè)計(jì)語一言代碼,或使用反向生成器工具將程序源代碼轉(zhuǎn)換為UML.UML不是一種可用于定理證明的高度形式化的語言,這樣的語言有很多種,但它們通用性較差,不易理解和使用。UML是一種通用建模語言。對(duì)于一些專門領(lǐng)域,例如用戶圖形界面(GUI)設(shè)計(jì)、超大規(guī)模集成電路(VLSI)設(shè)計(jì)、基于規(guī)則的人工智能領(lǐng)域,使用專門的語言和工具可能會(huì)更適合些。UML是一種離散的建模語言,不適合對(duì)諸如工程和物理學(xué)領(lǐng)域中的連續(xù)系統(tǒng)建模。它是一個(gè)綜合的通用建模語言,適合對(duì)諸如由計(jì)算機(jī)軟件、固件或數(shù)字邏輯構(gòu)成的離散系統(tǒng)建模。UML是在多種面向?qū)ο蠼7椒ǖ幕A(chǔ)上發(fā)展起來的建模語言,主要用于軟件密集型系統(tǒng)的建模。2.1.2UML概念域UML的概念和模型可以分成以下幾個(gè)概念域:1)靜態(tài)結(jié)構(gòu)任何一個(gè)精確的模型必須首先定義所涉及的范圍,即確定有關(guān)應(yīng)用、內(nèi)部特性及其相互關(guān)系的關(guān)鍵概念。UML的靜態(tài)組件稱為靜態(tài)視圖。靜態(tài)視圖用類構(gòu)造模型來表達(dá)應(yīng)用,每個(gè)類由一組包含信息和實(shí)現(xiàn)行為的離散對(duì)象組成。對(duì)象包含的信息被作為屬性,它們執(zhí)行的行為被作為操作。多個(gè)類通過泛化處理可以具有一些共同的結(jié)構(gòu)。子類在繼承它們共同的父類的結(jié)構(gòu)和行為的基礎(chǔ)上增加了新的結(jié)構(gòu)和行為。對(duì)象與其它對(duì)象之間也具有運(yùn)行時(shí)間連接,這種對(duì)象與對(duì)象之間的關(guān)系被稱為類間的關(guān)聯(lián)。一些元素通過依賴關(guān)系組織在一起,這些依賴關(guān)系包括在抽象級(jí)上進(jìn)行模型轉(zhuǎn)換、模板參數(shù)的捆綁、授予許可以及通過一種元素使用另一種元素等。另一類關(guān)系包括用例和數(shù)據(jù)流的合并。靜態(tài)視圖主要使用類圖。靜態(tài)視圖可用于生成程序中用到的大多數(shù)數(shù)據(jù)結(jié)構(gòu)聲明。在UML視圖中還要用到其它類型的元素,比如接口、數(shù)據(jù)類、用例和信號(hào)等,這些元素統(tǒng)稱為類元,它們的行為很像在每種類元上具有一定限制的類。2)動(dòng)態(tài)行為有兩種方式對(duì)行為建模。一種是根據(jù)一個(gè)對(duì)象與外界發(fā)生關(guān)系的生命歷史;另一種是一系列相關(guān)對(duì)象之間當(dāng)它們相互作用實(shí)現(xiàn)行為時(shí)的通信方式。孤立對(duì)象的視圖是狀態(tài)機(jī)—當(dāng)對(duì)象基于當(dāng)前狀態(tài)對(duì)事件產(chǎn)生反應(yīng),執(zhí)行作為反應(yīng)的一部分的動(dòng)作,并從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)時(shí)的視圖。狀態(tài)機(jī)模型用狀態(tài)圖來描述。相互作用對(duì)象的系統(tǒng)視圖是一種協(xié)作,一種與語境有關(guān)的對(duì)象視圖以及他們相互之間的鏈,通過數(shù)據(jù)鏈對(duì)象間存在著消息流。視圖將數(shù)據(jù)結(jié)構(gòu)、控制流和數(shù)據(jù)流在一個(gè)視圖中統(tǒng)一起來。協(xié)作和互操作用順序圖和協(xié)作圖來描述。對(duì)所有行為視圖起指導(dǎo)作用的是一組用例,每一個(gè)用例描述了一個(gè)用例參與者或系統(tǒng)外部用戶可見的一個(gè)功能。3)實(shí)現(xiàn)構(gòu)造UML模型既可用于邏輯分析又可用于物理實(shí)現(xiàn)。某些組件代表了實(shí)現(xiàn)。構(gòu)件是系統(tǒng)中物理上的可替換的部分,它按照一組接口來設(shè)計(jì)并實(shí)現(xiàn)。它可以方便地被一個(gè)具有同樣規(guī)格說明的構(gòu)件替換。節(jié)點(diǎn)是運(yùn)行時(shí)間計(jì)算資源,資源定義了一個(gè)位置。它包括構(gòu)件和對(duì)象。部署圖描述了在一個(gè)實(shí)際運(yùn)行的系統(tǒng)中節(jié)點(diǎn)上的資源配置和構(gòu)件的排列以及構(gòu)件包括的對(duì)象,并包括節(jié)點(diǎn)內(nèi)容的可能遷移。4)模型組織計(jì)算機(jī)能夠處理大型的單調(diào)的模型,但人力不行。對(duì)于一個(gè)大型系統(tǒng),建模信息必須被劃分成連貫的部分,以便工作小組能夠同時(shí)工作在不同部分上。即使是一個(gè)小系統(tǒng),人的理解能力也要求將整個(gè)模型的內(nèi)容組織成一個(gè)個(gè)適當(dāng)大小的包。包是UML模型通用的層次組織單元,它們可以用于存儲(chǔ)、訪問控制、配置管理以及構(gòu)造包含可重用的模型單元庫。包之間的依賴關(guān)系是對(duì)包的組成部分之間的依賴關(guān)系的歸納。系統(tǒng)整個(gè)構(gòu)架可以在包之間施加依賴關(guān)系。因此,包的內(nèi)容必須符合包的依賴關(guān)系和有關(guān)的構(gòu)架要求。5)擴(kuò)展機(jī)制UML具有一定的擴(kuò)展能力,能夠滿足大多數(shù)對(duì)UML擴(kuò)充的需求而不改變語言的基礎(chǔ)部分。版類是一種新的模型元素,與現(xiàn)有的模型元素具有相同的結(jié)構(gòu),但是加上了一些附加限制,具有新的解釋和圖標(biāo)。代碼生成器和其他的工具對(duì)它的處理過程也發(fā)生了變化。標(biāo)記值是一對(duì)任意的標(biāo)記值字符串,能夠被連接到任何一種模型元素上并代表任何信息,如項(xiàng)目管理信息、代碼生成指示信息和版類所需要的值。標(biāo)記值用字符串代表。約束是用某種特定語言(如程序設(shè)計(jì)語臺(tái))的文本字符串表達(dá)的條件專用語言或自然語一言。UML提供了一個(gè)表達(dá)約束的語臺(tái),名為OCL。與所有其他擴(kuò)展機(jī)制一樣,必須小心使用這些擴(kuò)展機(jī)制,因?yàn)橛锌赡苄纬梢恍﹦e人無法理解的方言。但這些機(jī)制可以避免語臺(tái)基礎(chǔ)發(fā)生根本性變化。2.1.3UML的內(nèi)容UML中的各種組件和概念之間沒有明顯的劃分界限,但為方便起見,我們用視圖來劃分這些概念和組件。在最上一層,視圖被劃分成三個(gè)視圖域:結(jié)構(gòu)分類、動(dòng)態(tài)行為和模型管理。結(jié)構(gòu)分類描述了系統(tǒng)中的結(jié)構(gòu)成員及其相互關(guān)系。類元包括類、用例、構(gòu)件和節(jié)點(diǎn)。類元為研究系統(tǒng)動(dòng)態(tài)行為奠定了基礎(chǔ)。類元視圖包括靜態(tài)視圖、用例視圖和實(shí)現(xiàn)視圖。動(dòng)態(tài)行為描述了系統(tǒng)隨時(shí)間變化的行為。行為用從靜態(tài)視圖中抽取的瞬間值的變化來描述。動(dòng)態(tài)行為視圖包括狀態(tài)機(jī)視圖、活動(dòng)視圖和交互視圖。模型管理說明了模型的分層組織結(jié)構(gòu)。包是模型的基本組織單元。特殊的包還包括模型和子系統(tǒng)。模型管理視圖跨越了其他視圖并根據(jù)系統(tǒng)開發(fā)和配置組織這些視圖。1)靜態(tài)視圖靜態(tài)視圖對(duì)應(yīng)用領(lǐng)域中的概念以及與系統(tǒng)實(shí)現(xiàn)有關(guān)的內(nèi)部概念建模。靜態(tài)視圖主要是由類及類間相互關(guān)系構(gòu)成,這些相互關(guān)系包括:關(guān)聯(lián)、泛化和各種依賴關(guān)系,如使用和實(shí)現(xiàn)關(guān)系。一個(gè)類是應(yīng)用領(lǐng)域或應(yīng)用解決方案中概念的描述。類圖是以類為中心來組織的,類圖中的其它元素或?qū)儆谀硞€(gè)類或與類相關(guān)聯(lián)。靜態(tài)視圖用類圖來實(shí)現(xiàn),因?yàn)樗灶悶橹行?,所以稱為類圖。在類圖中類用矩形框來表示,它的屬性和操作分別列在分格中。關(guān)系用類框之間的連線來表示,不同的關(guān)系用連線上和連線端頭處的修飾符來區(qū)別。2)用例視圖用例視圖(usecaseview)是被稱為參與者(Actor)的外部用戶所能觀察到的系統(tǒng)功能的模型圖?!美窍到y(tǒng)中的一個(gè)功能單元,可以被描述為參與者與系統(tǒng)之間的一次交互作用。用例模型的用途是列出系統(tǒng)中的用例和參與者,并顯示哪個(gè)參與者參與了哪個(gè)用例的執(zhí)行。用例也可以有不同的層次。用例可以用其他更簡單的用例進(jìn)行說明。在交互視圖中,用例作為交互圖中的一次協(xié)作來實(shí)現(xiàn)。3)交互視圖交互視圖描述了執(zhí)行系統(tǒng)功能的各個(gè)角色之間相互傳遞消息的順序關(guān)系。類元是對(duì)在系統(tǒng)內(nèi)交互關(guān)系中起特定作用的一個(gè)對(duì)象的描述,這使它區(qū)別于同類的其他對(duì)象。交互視圖顯示了跨越多個(gè)對(duì)象的系統(tǒng)控制流程。交互視圖可用兩種圖來表示:順序圖和協(xié)作圖,它們各有不同的側(cè)重點(diǎn)。順序圖表示了對(duì)象之間傳送消息的時(shí)間順序。順序圖可以用來進(jìn)行一個(gè)場(chǎng)景說明即一個(gè)事務(wù)的歷史過程。順序圖的一個(gè)用途是用來表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的觸發(fā)事件。協(xié)作圖對(duì)在一次交互中有意義的對(duì)象和對(duì)象間的鏈建模。協(xié)作圖的一個(gè)用途是表示一個(gè)類操作的實(shí)現(xiàn)。協(xié)作圖可以說明類操作中用到的參數(shù)和局部變量以及操作中的永久鏈。當(dāng)實(shí)現(xiàn)一個(gè)行為時(shí),消息編號(hào)對(duì)應(yīng)了程序中嵌套調(diào)用結(jié)構(gòu)和信號(hào)傳遞過程。順序圖和協(xié)作圖都可以表示各對(duì)象間的交互關(guān)系,但側(cè)重點(diǎn)不同。順序圖用消息的幾何排列關(guān)系來表達(dá)消息的時(shí)間順序,各角色之間的相關(guān)關(guān)系是隱含的。協(xié)作圖用各個(gè)角色的幾何排列圖形來表示角色之間的關(guān)系,并用消息來說明這些關(guān)系。4)狀態(tài)機(jī)視圖狀態(tài)機(jī)視圖是一個(gè)類對(duì)象所可能經(jīng)歷的所有歷程的模型圖。狀態(tài)機(jī)由對(duì)象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成。每個(gè)狀態(tài)對(duì)一個(gè)對(duì)象在其生命期中滿足某種條件的一個(gè)時(shí)間段建模。當(dāng)一個(gè)事件發(fā)生時(shí),它會(huì)觸發(fā)狀態(tài)間的轉(zhuǎn)換,導(dǎo)致對(duì)象從一種狀態(tài)轉(zhuǎn)化到另一新的狀態(tài)。與轉(zhuǎn)換相關(guān)的活動(dòng)執(zhí)行時(shí),轉(zhuǎn)換也同時(shí)發(fā)生。狀態(tài)機(jī)用狀態(tài)圖來表達(dá)。狀態(tài)圖可用于描述用戶接口、設(shè)備控制器和其他具有反饋的子系統(tǒng)。它還可用于描述在生命期中跨越多個(gè)不同性質(zhì)階段的被動(dòng)對(duì)象的行為,在每一階段該對(duì)象都有自己特殊的行為。5)活動(dòng)視圖活動(dòng)圖是狀態(tài)機(jī)的一個(gè)變體,用來描述執(zhí)行算法的工作流程中涉及的活動(dòng)?;顒?dòng)狀態(tài)代表了一個(gè)活動(dòng):一個(gè)工作流步驟或一個(gè)操作的執(zhí)行?;顒?dòng)圖描述了一組順序的或并發(fā)的活動(dòng)。活動(dòng)視圖用活動(dòng)圖來體現(xiàn)。這個(gè)例子說明了活動(dòng)圖的用途是對(duì)人類組織的現(xiàn)實(shí)世界中的工作流程建模。對(duì)事物建模是活動(dòng)圖的主要用途,但活動(dòng)圖也可對(duì)軟件系統(tǒng)中的活動(dòng)建模?;顒?dòng)圖有助于理解系統(tǒng)高層活動(dòng)的執(zhí)行行為,而不涉及建立協(xié)作圖所必須的消息傳送細(xì)節(jié)。用連接活動(dòng)和對(duì)象流狀態(tài)的關(guān)系流表示活動(dòng)所需的輸入輸出參數(shù)。6)物理視圖物理視圖對(duì)應(yīng)用自身的實(shí)現(xiàn)結(jié)構(gòu)建模,例如系統(tǒng)的構(gòu)件組織和建立在運(yùn)行節(jié)點(diǎn)上的配置。這類視圖提供了將系統(tǒng)中的類映射成物理構(gòu)件和節(jié)點(diǎn)的機(jī)制。物理視圖有兩種:實(shí)現(xiàn)視圖和部署視圖。實(shí)現(xiàn)視圖為系統(tǒng)的構(gòu)件建模型—構(gòu)件即構(gòu)造應(yīng)用的軟件單元—還包括各構(gòu)件之間的依賴關(guān)系,以便通過這些依賴關(guān)系來估計(jì)對(duì)系統(tǒng)構(gòu)件的修改給系統(tǒng)可能帶來的影響。實(shí)現(xiàn)視圖用構(gòu)件圖來表現(xiàn)。構(gòu)件圖表示了系統(tǒng)中的各種構(gòu)件。在個(gè)別系統(tǒng)的實(shí)際物理配置中,可能有某個(gè)構(gòu)件的多個(gè)備份。部署視圖描述位于節(jié)點(diǎn)實(shí)例上的運(yùn)行構(gòu)件實(shí)例的安排。節(jié)點(diǎn)是一組運(yùn)行資源,如計(jì)算機(jī)、設(shè)備或存儲(chǔ)器。這個(gè)視圖允許評(píng)估分配結(jié)果和資源分配。部署視圖用部署圖來表達(dá)。7)模型管理視圖模型管理視圖對(duì)模型自身組織建模。一系列由模型元素(如類、狀態(tài)機(jī)和用例)構(gòu)成的包組成了模型。一個(gè)包(package)可能包含其他的包,因此,整個(gè)模型實(shí)際上可看成一個(gè)根包,它間接包含了模型中的所有內(nèi)容。包是操作模型內(nèi)容、存取控制和配置控制的基本單元。每一個(gè)模型元素包含于包中或包含于其他模型元素中。模型是從某一觀點(diǎn)以一定的精確程度對(duì)系統(tǒng)所進(jìn)行的完整描述。從不同的視角出發(fā),對(duì)同一系統(tǒng)可能會(huì)建立多個(gè)模型,例如有系統(tǒng)分析模型和系統(tǒng)設(shè)計(jì)模型之分。模型是一種特殊的包。子系統(tǒng)是另一種特殊的包。它代表了系統(tǒng)的一個(gè)部分,它有清晰的接口,這個(gè)接口可作為一個(gè)單獨(dú)的構(gòu)件來實(shí)現(xiàn)。模型管理信息通常在類圖中表達(dá)。8)擴(kuò)展組件UML包含三種主要的擴(kuò)展組件:約束、版類和標(biāo)記值。約束是用某種形式化語言或自然語言表達(dá)的語義關(guān)系的文字說明。版類是由建模者設(shè)計(jì)的新的模型元素,但是這個(gè)模型元素的設(shè)計(jì)要建立在U砒已定義的模型元素基礎(chǔ)上。標(biāo)記值是附加到任何模型元素上的命名的信息塊。這些組件提供了擴(kuò)展UML模型元素語義的方法,同時(shí)不改變UML定義的元模型自身的語義。使用這些擴(kuò)展組件可以組建適用于某一具體應(yīng)用領(lǐng)域的UML用戶定制版本。2.2C/S結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用最簡單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用,由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)器程序。二者可分別稱為前臺(tái)程序與后臺(tái)程序。運(yùn)行數(shù)據(jù)庫服務(wù)器程序的機(jī)器,稱為應(yīng)用服務(wù)器,一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來的請(qǐng)求;客戶程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于服務(wù)器電腦,可稱為客戶電腦。當(dāng)需要對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果。在典型的C/S數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序獨(dú)立進(jìn)行的,并且通常把那些不同的(不管是已知還是未知的)前臺(tái)應(yīng)用所不能違反的規(guī)則,在服務(wù)器程序中集中實(shí)現(xiàn),例如訪問者的權(quán)限,編號(hào)不準(zhǔn)重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)這背后的過程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序可以變的非?!笆菪 ?,麻煩的事情,都交給了服務(wù)器和網(wǎng)絡(luò)。在C/S體系的下,數(shù)據(jù)庫真正變成了公共、專業(yè)化的倉庫,受到獨(dú)立的專門管理。在這個(gè)案例中,已經(jīng)確定的需求,就是建立一個(gè)集中、統(tǒng)一的數(shù)據(jù)庫,實(shí)現(xiàn)更新、查詢、導(dǎo)入數(shù)據(jù)和輸入報(bào)表。訪問者分布在不同的IP地址。每一處典型的同時(shí)訪問人數(shù),一般在10人以下。兩處都有機(jī)會(huì)更新數(shù)據(jù)庫中的數(shù)據(jù)。理想的情況下當(dāng)然是兩處的數(shù)據(jù)隨時(shí)保持一致,但在特別關(guān)鍵的信息可以隨時(shí)通過電話、傳真等方式直接交換的情況下,兩地的信息每隔一天交換更新一次,是可以接受的,這也就是目前的實(shí)際情況,從業(yè)務(wù)人員的立場(chǎng)上,尚沒有提出在這個(gè)周期上作出戲劇性的改變的要求。針對(duì)當(dāng)前的已經(jīng)明確的需求,作出如下討論:采用C/S架構(gòu),選擇適當(dāng)?shù)臄?shù)據(jù)庫平臺(tái),可以實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正“統(tǒng)一”,分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)去管理,邏輯上,兩地的操作者都直接訪問同一個(gè)數(shù)據(jù)庫。它的有效實(shí)現(xiàn),有這樣一些問題:如果需要建立“實(shí)時(shí)”的數(shù)據(jù)同步,就必須在兩地間建立實(shí)時(shí)的通訊連接,保持兩地的數(shù)據(jù)庫服務(wù)器在線運(yùn)行,這需要高昂的投資和復(fù)雜的技術(shù)支持,高的維護(hù)成本。對(duì)于本例的應(yīng)用要求和環(huán)境,采用基于網(wǎng)絡(luò)文件服務(wù)器開發(fā)非C/S結(jié)構(gòu)的應(yīng)用,也完全可以滿足,雖然C/S結(jié)構(gòu)下的多用戶應(yīng)用可以更好(比如更完善的用戶共享特性,用戶管理,以及更好地平衡服務(wù)器與客戶機(jī)之間的負(fù)荷,大幅度降低網(wǎng)絡(luò)傳輸?shù)呢?fù)荷等),但就用戶立場(chǎng)而言,采用C/S結(jié)構(gòu)方便了用戶對(duì)軟件的操作。2.3VC++與數(shù)據(jù)庫的連接1)ODBC(OpenDataBaseConnectivity)ODBC是客戶應(yīng)用程序訪問關(guān)系數(shù)據(jù)庫時(shí)提供的一個(gè)統(tǒng)一的接口,對(duì)于不同的數(shù)據(jù)庫,ODBC提供了一套統(tǒng)一的API,使用應(yīng)用程序可以應(yīng)用所提供的API來訪問任何提供了ODBC驅(qū)動(dòng)程序的數(shù)據(jù)庫,并且,ODBC已經(jīng)成為一種準(zhǔn),目前所有的關(guān)系數(shù)據(jù)庫都提供了ODBC驅(qū)動(dòng)程序,這使ODBC的應(yīng)用非常廣泛,基本上可用于所有的關(guān)系數(shù)據(jù)庫。但由于ODBC只能用于關(guān)系數(shù)據(jù)庫,使得利用ODBC很難訪問對(duì)象數(shù)據(jù)庫及其他非關(guān)系數(shù)據(jù)庫。由于ODBC是一種底層的訪問技術(shù),因此,ODBCAPI可以使客戶應(yīng)用程序能夠從底層設(shè)置和控制數(shù)據(jù)庫,完成一些高層數(shù)據(jù)庫技術(shù)無法完成的功能,但開發(fā)效率效低。2)MFCODBC(MicrosoftFoundationClassesODBC)直接使用ODBCAPI編寫應(yīng)用程序需要編制大量代碼,VisualC++提供了MFCODBC類,其中封裝了ODBCAPI,因此,使用MFC來創(chuàng)造ODBC的應(yīng)用程序非常簡便。3)DAO(DataAccessObject)DAO提供了一種通過程序代碼創(chuàng)建和操作數(shù)據(jù)庫的機(jī)制。多個(gè)DAO構(gòu)成一個(gè)體系結(jié)構(gòu),在這個(gè)結(jié)構(gòu)中,各個(gè)DAO對(duì)象協(xié)同工作。MFCDAO是微軟公司提供的用于訪問MicrosoftJet數(shù)據(jù)庫文件(*.mdb)的強(qiáng)有力的數(shù)據(jù)庫開發(fā)工具,它通過DAO的封裝,向程序提供了DAO豐富的操作數(shù)據(jù)庫手段。4)OLEDB(ObjectLinkandEmbeddingDataBase)OLEDB是VisualC++開發(fā)數(shù)據(jù)庫應(yīng)用中提供的新技術(shù),它基于COM接口。因此,OLEDB對(duì)所有的文件系統(tǒng)包括關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫都提供了統(tǒng)一的接口。這些特性使得OLEDB技術(shù)比傳統(tǒng)的數(shù)據(jù)庫訪問技術(shù)更加優(yōu)越。與ODBC技術(shù)相似,OLEDB屬于數(shù)據(jù)庫訪問技術(shù)中的底層接口。直接使用OLEDB來設(shè)計(jì)數(shù)據(jù)庫應(yīng)用程序需要編寫大量的代碼。VisualC++6.0中提供了ATL模板,用于設(shè)計(jì)OLEDB數(shù)據(jù)應(yīng)用程序和數(shù)據(jù)提供程序。5)ADO(ActiveXDataObject)ADO技術(shù)是基于OLEDB的訪問接口,它繼承了OLEDB技術(shù)的優(yōu)點(diǎn),并且,ADO對(duì)OLEDB的接口作了封裝,定義了ADO對(duì)象,使程序開發(fā)得到簡化。ADO技術(shù)屬于數(shù)據(jù)庫訪問的高層接口。2.4用VC++中的CSocket類實(shí)現(xiàn)網(wǎng)絡(luò)的通訊WinSock提供了對(duì)TCP(傳輸控制協(xié)議)的支持,通過TCP協(xié)議我們可以與指定IP地址的主機(jī)建立,同時(shí)利用建立的連接可以雙向的交換數(shù)據(jù)。利用CSocket操縱有連接數(shù)據(jù)交換很簡單,但是在有連接的通信中必需有一方扮演服務(wù)器的角色等待另一方(客戶方)的連接請(qǐng)求,所以服務(wù)器方需要建立一個(gè)監(jiān)聽套接口,然后在此套接口上等待連接。當(dāng)連接建立后會(huì)產(chǎn)生一個(gè)新的套接口用于通信。而客戶方在創(chuàng)建套接口后只需要簡單的調(diào)用連接函數(shù)就可以創(chuàng)建連接。對(duì)于有連接的通信不論是數(shù)據(jù)的發(fā)送還是發(fā)送與接收的順序都是有保證的。第三章系統(tǒng)分析3.1系統(tǒng)的初步調(diào)查在系統(tǒng)分析階段,我們的焦點(diǎn)是“做什么”,而不是“怎么做”:不是具體地解決問題,而是準(zhǔn)確地確定“為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須什么”。用戶了解他們所面對(duì)的問題,知道必須做什么,但是通常不能完整、準(zhǔn)確地表達(dá)出他們的要求,更不知道怎樣利用計(jì)算機(jī)來解決他們的問題;軟件開發(fā)人員知道怎樣使用軟件實(shí)現(xiàn)人們的要求,但是對(duì)特定用戶的具體要求并不完全清楚。因此在系統(tǒng)分析階段必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認(rèn)的系統(tǒng)邏輯模型。需求是技術(shù)無關(guān)(technologyindependent)的。在需求階段討論技術(shù)是沒有任何意義的。技術(shù)的實(shí)現(xiàn)細(xì)節(jié)是在后面的分析、設(shè)計(jì)階段需要考慮的事情。而在業(yè)務(wù)建模階段,不但要保證需求的技術(shù)無關(guān)性,還要保證你的需求不要深入細(xì)節(jié)。分析一個(gè)系統(tǒng),首先就要了解需要開發(fā)的系統(tǒng)是一個(gè)什么樣的系統(tǒng),用客戶(或是我們自己)需要一個(gè)什么樣的系統(tǒng)進(jìn)行說明,力求完整。并對(duì)系統(tǒng)的發(fā)展可擴(kuò)充性進(jìn)行描述。3.1.1淺談開發(fā)天氣信息管理系統(tǒng)的意義隨著經(jīng)濟(jì)的發(fā)展和社會(huì)的進(jìn)步,不同地方的人們交流越來越密切,各地的天氣情況越來越受到人們的普遍關(guān)注,例如民航飛行越來越多,密度越來越大。然而,飛機(jī)在著陸、起飛或在空中飛行,都受到氣象條件的制約,所以及時(shí)并準(zhǔn)確了解了解各地區(qū)天氣情況是很必要的。而氣象數(shù)據(jù)的信息化,計(jì)算機(jī)化是上述問題的唯一途徑。本系統(tǒng)恰是為了減輕工作人員負(fù)擔(dān),提高工作效率而研制開發(fā)的。3.1.2天氣信息管理系統(tǒng)實(shí)施的特點(diǎn)及注意事項(xiàng)由于天氣信息管理系統(tǒng)管理的是所有與天氣相關(guān)的數(shù)據(jù),信息量大,變化頻繁,內(nèi)部關(guān)聯(lián)性較弱,數(shù)據(jù)的采集、確認(rèn)、更新和檢查都比較困難。因此,實(shí)施工作尤為困難。為了最大限度的利用本系統(tǒng)進(jìn)行信息管理,需要特別注意以下4點(diǎn):(1)培訓(xùn)管理員。要想使天氣信息管理系統(tǒng)真正地發(fā)揮應(yīng)有的效用,必須通過培訓(xùn)轉(zhuǎn)變?nèi)藗兊乃季S方式和行為方式,學(xué)會(huì)通過系統(tǒng)來進(jìn)行科學(xué)的管理。(2)明確基礎(chǔ)上的實(shí)施目標(biāo)。要明確整個(gè)項(xiàng)目的實(shí)施計(jì)劃和目標(biāo),明確需要采集的數(shù)據(jù)及保留的歷史信息。(3)測(cè)試軟件功能。由于天氣信息管理系統(tǒng)需處理的信息關(guān)系非常復(fù)雜,而且要有服務(wù)器的構(gòu)架問題,所以在初期要進(jìn)行軟件功能的測(cè)試和網(wǎng)絡(luò)連接測(cè)試,以確保日后使用。(4)建立科學(xué)的程序性文件。天氣信息管理系統(tǒng)的特點(diǎn)是信息量大、變化頻繁、采集和確認(rèn)困難而且無內(nèi)聯(lián)關(guān)系。采用計(jì)算機(jī)系統(tǒng)來管理天氣信息要求數(shù)據(jù)的采集、更新能夠完整、準(zhǔn)確和及時(shí)。兩者之間的矛盾就要通過建立必要的科學(xué)程序性文件才能為系統(tǒng)的實(shí)施和正常運(yùn)行提供有效的保證。3.2系統(tǒng)詳細(xì)調(diào)查3.2.1系統(tǒng)的功能需求基于以上的開發(fā)目標(biāo),系統(tǒng)開發(fā)的范圍確定如下:本系統(tǒng)只涉及氣象信息的管理部分,不包括對(duì)數(shù)據(jù)如何進(jìn)行測(cè)量的內(nèi)容。本息同提供強(qiáng)大的查詢功能??蛇M(jìn)行不同類型查詢,提供多種索引;本系統(tǒng)提供記錄的添加,刪除、查詢和繪制曲線圖等功能。而且可以按月或者按年生成數(shù)據(jù)報(bào)表。同時(shí)應(yīng)實(shí)現(xiàn)服務(wù)器端和客戶端的網(wǎng)絡(luò)連接通信功能。3.3.2系統(tǒng)的運(yùn)行環(huán)境硬件環(huán)境:處理器1GHZ以上,推薦采用INTEL公司的Pentium41.8GHZ處理器;內(nèi)存在128M以上,推薦采用256MDDR內(nèi)存;支持TCP/IP以太網(wǎng)軟件環(huán)境:操作系統(tǒng):Windows98以上。數(shù)據(jù)庫系統(tǒng):Access2000輔助工具:VisalC++6.03.3數(shù)據(jù)流圖數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任何物理元素,只是描繪信息在系統(tǒng)中流動(dòng)和處理情況。因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解,所以是極好的通信工具。此外設(shè)計(jì)數(shù)據(jù)流圖紙需要考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實(shí)現(xiàn)這些功能。畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。分析員把他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來,供有關(guān)人員審查確認(rèn)。由于在數(shù)據(jù)流圖中通常僅僅使用四種基本符號(hào),而且不包括任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),因此,絕大多數(shù)用戶都可以理解和評(píng)價(jià)它。從數(shù)據(jù)流圖的基本目標(biāo)出發(fā),可以考慮在一張數(shù)據(jù)流圖中包括多少個(gè)元素合適的問題。一些調(diào)查表明,如果一張數(shù)據(jù)流圖包含的處理多于5~9個(gè),人們就難于領(lǐng)會(huì)它的含義了。因此數(shù)據(jù)流圖應(yīng)該分層,并且把功能及數(shù)據(jù)流圖細(xì)化后得到的處理超過9個(gè)時(shí),應(yīng)采用劃分圖的方法,也就是把每個(gè)主要功能都細(xì)化一張數(shù)據(jù)流分圖,而原有的功能級(jí)數(shù)據(jù)流圖用來描繪系統(tǒng)的整理邏輯概貌。首先,分析系統(tǒng)的總體情況,劃分系統(tǒng)邊界,識(shí)別系統(tǒng)的數(shù)據(jù)來源和去處,確定外部實(shí)體,得出系統(tǒng)的頂層數(shù)據(jù)流程圖;然后劃分出幾個(gè)主要的信息管理功能,并明確各功能之間的聯(lián)系,繪制出數(shù)據(jù)流程圖。數(shù)據(jù)流程圖的符號(hào)說明見圖3-1所示。外部實(shí)體處理數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)圖3-1數(shù)據(jù)流程圖的符號(hào)說明服務(wù)器端功能模塊數(shù)據(jù)流程圖,見圖3-2所示。客戶端功能模塊的數(shù)據(jù)流程圖,見圖3-3所示。P1P1服務(wù)器端界面操作員員P2導(dǎo)入數(shù)據(jù)模塊P3查詢模塊P4生成圖表模塊服務(wù)器端數(shù)據(jù)庫服務(wù)器端數(shù)據(jù)庫F1圖3-2服務(wù)器端數(shù)據(jù)流程圖操作員客戶端界面P5操作員客戶端界面P5P7添加數(shù)據(jù)P6導(dǎo)入數(shù)據(jù)P7添加數(shù)據(jù)P6導(dǎo)入數(shù)據(jù)P9生成圖表P8查詢數(shù)據(jù)客戶端數(shù)據(jù)庫客戶端數(shù)據(jù)庫F2圖3-2客戶端數(shù)據(jù)流程圖各模塊的主要功能 添加操作員信息將添加的操作員基本信息(包括照片)存入客戶端的數(shù)據(jù)庫中,要求照片以二進(jìn)制的形式存入數(shù)據(jù)庫。在添加數(shù)據(jù)信息對(duì)話框中,當(dāng)選擇操作員ID是,要求將從數(shù)據(jù)庫中讀出的二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為位圖,畫在在對(duì)話框上。查詢數(shù)據(jù)服務(wù)器端管理員可以根據(jù)不同的城市名和時(shí)間段來進(jìn)行分類查詢??蛻舳斯芾韱T只能查詢本地的數(shù)據(jù)信息。添加數(shù)據(jù)客戶端管理員添加數(shù)據(jù)到本地服務(wù)器的同時(shí),本系統(tǒng)自動(dòng)將數(shù)據(jù)添加到遠(yuǎn)程服務(wù)器端,便于以后的查詢分析。利用曲線圖顯示數(shù)據(jù)該功能是把數(shù)字顯示數(shù)據(jù)的方式轉(zhuǎn)換成以曲線圖顯示數(shù)據(jù)的方式。用戶可以根據(jù)不同的城市查看到不同時(shí)間段的溫度和濕度曲線圖。5.批量導(dǎo)入、導(dǎo)出數(shù)據(jù)可將查詢后的數(shù)據(jù)已批量形式導(dǎo)出為文本文件格式,再將該文件通過網(wǎng)絡(luò)傳送到服務(wù)器端,最后服務(wù)器端可再將此文本文件導(dǎo)入到服務(wù)器端數(shù)據(jù)庫,以實(shí)現(xiàn)批量數(shù)據(jù)的遠(yuǎn)程傳輸。6.將查詢后的數(shù)據(jù)生成RTF表格形式RTF格式就非常流行的字處理系統(tǒng)格式,許多優(yōu)秀的以數(shù)據(jù)為基礎(chǔ)的管理系統(tǒng)都可以將數(shù)據(jù)轉(zhuǎn)化成RTF表格形式,以方便以后排版和打印。本系統(tǒng)也可生成統(tǒng)計(jì)全年或單月的RTF表格。

第四章系統(tǒng)設(shè)計(jì)4.1軟件的總體結(jié)構(gòu)設(shè)計(jì)通常程序中的一個(gè)模塊完成一個(gè)適當(dāng)?shù)淖庸δ堋?yīng)該把模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的完整功能,每個(gè)下層模塊在調(diào)用更下層的模塊,從而完成程序的一個(gè)子功能,最下層的模塊完成最具體的功能。用例圖是UML中描述整體結(jié)構(gòu)圖的工具,一般用例的描述使用用例描述文字框架,描述包括:用例的名稱,使用者,前提條件,執(zhí)行結(jié)果,用例的主業(yè)務(wù)流,分支業(yè)務(wù)流,相關(guān)擴(kuò)展用例,特殊需要等信息,遵循一定的準(zhǔn)則進(jìn)行描述。本系統(tǒng)使用者分別是服務(wù)器端操作員,和客戶端操作員,各自完成不同模塊的功能。本系統(tǒng)的用例圖如圖4-1所示。導(dǎo)入數(shù)據(jù)編輯數(shù)據(jù)查詢數(shù)據(jù)數(shù)據(jù)曲線圖生成數(shù)據(jù)表導(dǎo)入數(shù)據(jù)查詢數(shù)據(jù)導(dǎo)入數(shù)據(jù)編輯數(shù)據(jù)查詢數(shù)據(jù)數(shù)據(jù)曲線圖生成數(shù)據(jù)表導(dǎo)入數(shù)據(jù)查詢數(shù)據(jù)數(shù)據(jù)曲線圖客戶端點(diǎn)服務(wù)器端天氣信息管理系統(tǒng)4.2數(shù)據(jù)庫設(shè)計(jì)4.2.1數(shù)據(jù)庫概念設(shè)計(jì)數(shù)據(jù)庫的建立首先需要選擇數(shù)據(jù)庫模型,在數(shù)據(jù)庫的發(fā)展歷史中,先后經(jīng)歷了網(wǎng)狀模型和層次模型關(guān)系模型的時(shí)代,目前正在向?qū)ο竽P桶l(fā)展。然而,當(dāng)今最為成熟并商業(yè)化的數(shù)據(jù)庫還是關(guān)系模型的數(shù)據(jù)庫。本章對(duì)數(shù)據(jù)庫模型進(jìn)行了介紹,最后對(duì)使用數(shù)據(jù)訪問對(duì)象進(jìn)行觀測(cè)數(shù)據(jù)庫的訪問進(jìn)行了描述。在數(shù)據(jù)庫系統(tǒng)開始設(shè)計(jì)的時(shí)候,應(yīng)該盡量考慮全面,尤其應(yīng)該仔細(xì)考慮用戶的各種需求,避免浪費(fèi)不必要的人力和物力。語義描述:概念設(shè)計(jì)階段與具體的DBMS(數(shù)據(jù)庫管理系統(tǒng))無關(guān),不考慮數(shù)據(jù)與操作之間的關(guān)系,僅從概念上明確地描述數(shù)據(jù)與數(shù)據(jù)之間的關(guān)系。即采用一定的形式來綜合的表示數(shù)據(jù)庫概念結(jié)構(gòu)。概念結(jié)構(gòu)獨(dú)立于數(shù)據(jù)庫邏輯結(jié)構(gòu),也獨(dú)立特定的DBMS,其主要特點(diǎn)是:能充分反映現(xiàn)實(shí)世界,包括實(shí)體之間的聯(lián)系,能滿足用戶對(duì)數(shù)據(jù)處理的要求,是現(xiàn)世界的一個(gè)真實(shí)模型。易于理解,從而可以和不熟悉計(jì)算機(jī)的用戶交換意見。用戶的積極參與是數(shù)據(jù)庫設(shè)計(jì)成功與否的關(guān)鍵。易于更動(dòng)。當(dāng)現(xiàn)實(shí)世界改變,容易修改和擴(kuò)充。因此概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),它比數(shù)據(jù)模型更獨(dú)立于機(jī)器,人而更加穩(wěn)定。氣現(xiàn)信息管理系統(tǒng)的概念設(shè)計(jì)描述如下:1)月天氣信息描述數(shù)據(jù)和年天氣信息描述數(shù)據(jù)之間具有從屬關(guān)系,多個(gè)月數(shù)據(jù)從屬一個(gè)年數(shù)據(jù)。2)日天氣信息描述數(shù)據(jù)和月天氣信息描述數(shù)據(jù)之間具有從屬關(guān)系,多個(gè)日數(shù)據(jù)從屬一個(gè)月數(shù)據(jù)。3)操作員信息和日天氣信息數(shù)據(jù)是選擇關(guān)系,一個(gè)操作員對(duì)應(yīng)多個(gè)日天氣信息數(shù)據(jù)。4.2.2實(shí)體—聯(lián)系圖在系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)中,先要對(duì)系統(tǒng)分析得到的數(shù)據(jù)字典中的數(shù)據(jù)存儲(chǔ)進(jìn)行分析,分析各數(shù)據(jù)存儲(chǔ)之間的關(guān)系,然后才能得出系統(tǒng)的關(guān)系模式。可以采用E-R圖的方法來進(jìn)行數(shù)據(jù)結(jié)構(gòu)分析。E-R設(shè)計(jì)方法是一種通過E-R圖來描述現(xiàn)實(shí)世界信息結(jié)構(gòu)的設(shè)計(jì)方法。E-R圖由實(shí)體、屬性、聯(lián)系三部分組成。E-R圖的符號(hào)說明如圖4-2所示。實(shí)體屬性實(shí)體間的關(guān)系圖4-2E-R圖符號(hào)說明在本系統(tǒng)的數(shù)據(jù)流程圖中,系統(tǒng)邊界已經(jīng)很清楚了,所以可直接根據(jù)它設(shè)計(jì)本系統(tǒng)的E-R圖,不必要先設(shè)計(jì)分的E-R圖了,再合并總的E-R圖了。所圖4-3所示。TimenameTimenametemperaturehIDtemperaturehIDageagehumidityhumidityoperatorEveryDaygathern1operatorEveryDaygatherweatherweatherwindpowerwindpowerphotopasswordphotopasswordwinddirectionwinddirectionrainfall rainfallOperator_IDOperator_ID 圖4-3系統(tǒng)E-R圖氣象觀測(cè)信息管理系統(tǒng)中所涉及到的主要實(shí)體集及其屬性如下:EveryDay(time,temperature,humidity,weather,windpower,winddirection,rainfall,operator_ID);Operator(operator_ID,password,name,age,photo);AVyear(year,AVtemperture,AVhumidity,Sumrainfall);AVmonth(year,month,AVtemperate,AVhumidity,Sumrainfall);E-R圖向關(guān)系模型的轉(zhuǎn)化要解決的問題是如何將實(shí)體和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼。一個(gè)好的數(shù)據(jù)庫產(chǎn)品不等于就有一個(gè)好的應(yīng)用系統(tǒng),如果不能設(shè)計(jì)一個(gè)合理的數(shù)據(jù)庫模型,不僅會(huì)增加客戶端和服務(wù)器程序的編程和維護(hù)的難度,而且將會(huì)影響系統(tǒng)實(shí)際運(yùn)行的性能。一般來講,在一個(gè)MIS系統(tǒng)分析、設(shè)計(jì)、測(cè)試和試運(yùn)行階段,因?yàn)閿?shù)據(jù)量較小,設(shè)計(jì)人員和測(cè)試人員往往只注意到功能的實(shí)現(xiàn),而很難注意到性能的薄弱之處,等到系統(tǒng)投入實(shí)際運(yùn)行一段時(shí)間后,才發(fā)現(xiàn)系統(tǒng)的性能在降低。數(shù)據(jù)庫設(shè)計(jì)是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的核心和基礎(chǔ),它要求對(duì)于指定的應(yīng)用環(huán)境,構(gòu)造出較優(yōu)的數(shù)據(jù)庫模式,建立起數(shù)據(jù)庫應(yīng)用系統(tǒng),并使系統(tǒng)能有效地存儲(chǔ)數(shù)據(jù),滿足用戶的各種應(yīng)用需求。所以歸納的具體的原則如下:1)進(jìn)行規(guī)范化設(shè)計(jì),盡可能的減少數(shù)據(jù)重復(fù)。合理的數(shù)據(jù)庫表的設(shè)計(jì)應(yīng)該是在滿足需求的前提下,使數(shù)據(jù)庫的重復(fù)量最小,就盡量按照關(guān)系數(shù)據(jù)庫系統(tǒng)理論方法去設(shè)計(jì)一個(gè)數(shù)據(jù)庫,減少數(shù)據(jù)的重復(fù)。2)結(jié)構(gòu)設(shè)計(jì)與操作設(shè)計(jì)想結(jié)合。在設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)時(shí),有時(shí)為了編程實(shí)現(xiàn)的簡捷和思路的清晰,往往故意增加一些多余的數(shù)據(jù)。這雖然有悖于傳統(tǒng)的關(guān)系數(shù)據(jù)庫理論,但是考慮到選擇機(jī)器型號(hào)和檔次等因素,如果增加的多余不會(huì)明顯增加存儲(chǔ)空間和降低處理效率,并且對(duì)編程實(shí)現(xiàn)有很大幫助,往往可以采用這種方法。3)數(shù)據(jù)結(jié)構(gòu)的相對(duì)穩(wěn)定性,可以作為新或者是舊系的傳統(tǒng)轉(zhuǎn)換依據(jù)。無論采用何種方法或手段去處理日常事物,都應(yīng)該能完成響應(yīng)的功能,決不會(huì)因?yàn)椴捎昧擞?jì)算機(jī)而丟失了必要功能,或徹底改變了原有的工作流程和模式。計(jì)算機(jī)系統(tǒng)的建立是在原系統(tǒng)充分調(diào)研的基礎(chǔ)上的,它既不能脫離原系統(tǒng)的大框架,也不是簡單的重復(fù)和替代。所以數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)應(yīng)保證數(shù)據(jù)的相對(duì)穩(wěn)定,這樣才能考慮在新的數(shù)據(jù)結(jié)構(gòu)下的業(yè)務(wù)處理方式。對(duì)于實(shí)體間的聯(lián)系我們分不同的情況討論:1)一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼。2)一個(gè)聯(lián)系轉(zhuǎn)化為一個(gè)關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系的屬性轉(zhuǎn)化為關(guān)系的屬性,該關(guān)系的碼則有三種情況:聯(lián)系為1:1,則每個(gè)實(shí)體的碼均是該關(guān)系的后選碼。聯(lián)系為1:n,則關(guān)系的碼為n端實(shí)體的碼。聯(lián)系為m:n,則關(guān)系的碼為諸實(shí)體碼的組合。一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。如果與某一端對(duì)應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。如果與n端對(duì)應(yīng)的關(guān)系模式合并,則在n端實(shí)體對(duì)應(yīng)模式中加入1端實(shí)體所對(duì)應(yīng)關(guān)系模式的碼,以及聯(lián)系本身的屬性。而關(guān)系的碼為n端實(shí)體的碼。一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系的碼為各實(shí)體碼的組合。4.2.3數(shù)據(jù)庫表設(shè)計(jì)一個(gè)好的數(shù)據(jù)庫產(chǎn)品不等于就有一個(gè)好的應(yīng)用系統(tǒng),如果不能設(shè)計(jì)一個(gè)合理的數(shù)據(jù)庫模型,不僅會(huì)增加客戶端和服務(wù)器程序的編程和維護(hù)的難度,而且將會(huì)影響系統(tǒng)實(shí)際運(yùn)行的性能。一般來講,在一個(gè)MIS系統(tǒng)分析、設(shè)計(jì)、測(cè)試和試運(yùn)行階段,因?yàn)閿?shù)據(jù)量較小,設(shè)計(jì)人員和測(cè)試人員往往只注意到功能的實(shí)現(xiàn),而很難注意到性能的薄弱之處,等到系統(tǒng)投入實(shí)際運(yùn)行一段時(shí)間后,才發(fā)現(xiàn)系統(tǒng)的性能在降低…數(shù)據(jù)庫設(shè)計(jì)是建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的核心和基礎(chǔ),它要求對(duì)于指定的應(yīng)用環(huán)境,構(gòu)造出較優(yōu)的數(shù)據(jù)庫模式,建立起數(shù)據(jù)庫應(yīng)用系統(tǒng),并使系統(tǒng)能有效地存儲(chǔ)數(shù)據(jù),滿足用戶的各種應(yīng)用需求。所以歸納的具體的原則如下:(1)進(jìn)行規(guī)范化設(shè)計(jì),盡可能的減少數(shù)據(jù)重復(fù)。合理的數(shù)據(jù)庫表的設(shè)計(jì)應(yīng)該是在滿足需求的前提下,使數(shù)據(jù)庫的重復(fù)量最小,就盡量按照關(guān)系數(shù)據(jù)庫系統(tǒng)理論方法去設(shè)計(jì)一個(gè)數(shù)據(jù)庫,減少數(shù)據(jù)的重復(fù)。(2)結(jié)構(gòu)設(shè)計(jì)與操作設(shè)計(jì)想結(jié)合。在設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)時(shí),有時(shí)為了編程實(shí)現(xiàn)的簡捷和思路的清晰,往往故意增加一些多余的數(shù)據(jù)。這雖然有悖于傳統(tǒng)的關(guān)系數(shù)據(jù)庫理論,但是考慮到選擇機(jī)器型號(hào)和檔次等因素,如果增加的多余不會(huì)明顯增加存儲(chǔ)空間和降低處理效率,并且對(duì)編程實(shí)現(xiàn)有很大幫助,往往可以采用這種方法。(3)數(shù)據(jù)結(jié)構(gòu)的相對(duì)穩(wěn)定性,可以作為新或者是舊系的傳統(tǒng)轉(zhuǎn)換依據(jù)。無論采用何種方法或手段去處理日常事物,都應(yīng)該能完成響應(yīng)的功能,決不會(huì)因?yàn)椴捎昧擞?jì)算機(jī)而丟失了必要功能,或徹底改變了原有的工作流程和模式。計(jì)算機(jī)系統(tǒng)的建立是在原系統(tǒng)充分調(diào)研的基礎(chǔ)上的,它既不能脫離原系統(tǒng)的大框架,也不是簡單的重復(fù)和替代。所以數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)應(yīng)保證數(shù)據(jù)的相對(duì)穩(wěn)定,這樣才能考慮在新的數(shù)據(jù)結(jié)構(gòu)下的業(yè)務(wù)處理方式。基于以上三條設(shè)計(jì)原則,本系統(tǒng)中關(guān)于數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)如表4-1至表4-4所示。表4-1年平均信息表字段名稱數(shù)據(jù)類型字段長度字段屬性是否為主鍵作用必填字段year字符串4是年份數(shù)據(jù)是AVtemperture整型4否年平均溫度否AVhumidity整型4否年平均濕度否Sumrainfall整型4否年平均降水量否表4-2月平均信息表字段名稱數(shù)據(jù)類型字段長度字段屬性是否為主鍵作用必填字段year整型4是年份數(shù)據(jù)是Month整型4是月份數(shù)據(jù)是AVtemperture整型4否月平均溫度否AVhumidity整型4否月平均濕度否Sumrainfall整型4否月平均降水量否表4-3操作員信息表字段名稱數(shù)據(jù)類型字段長度字段屬性是否為主鍵作用必填字段ID字符串10是操作員ID號(hào)是Password字符串10否密碼否Name字符串12否姓名否Age整型4否年齡否PhotoOLE對(duì)象1024否照片文件否表4-4基本信息表字段名稱數(shù)據(jù)類型字段長度字段屬性是否為主鍵作用必填字段Time字符串4是時(shí)間數(shù)據(jù)是Temperature整型4否溫度數(shù)據(jù)否Humidity整型4否濕度數(shù)據(jù)否Windpower字符串4否風(fēng)力數(shù)據(jù)否Winddirection字符串8否風(fēng)向數(shù)據(jù)否Rainfall整型4否降雨量數(shù)據(jù)否Operator-ID字符串10否操作員ID號(hào)否4.2.4數(shù)據(jù)庫的實(shí)現(xiàn)本系統(tǒng)采用Access作為數(shù)據(jù)庫引擎,其主要原因是考慮到現(xiàn)在的大多數(shù)辦公室應(yīng)用系統(tǒng)軟件均支持Access數(shù)據(jù)庫,所以只要應(yīng)用于格式符合的計(jì)算機(jī)系統(tǒng)上即可運(yùn)行,并且由于Access與VC皆是微軟公司開發(fā)出來的軟件,所以它們之間的兼容性非常好,容易配合使用。Access2000就是關(guān)系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯集各種信息以供查詢、存儲(chǔ)和檢索。Access的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Access允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲(chǔ)庫,可以使桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫。Access是一種關(guān)系數(shù)據(jù)庫工具,關(guān)系數(shù)據(jù)庫是已開發(fā)的最通用的數(shù)據(jù)庫之一。Microsoft公司開發(fā)的Access2000使運(yùn)行于Windows系列平臺(tái)之上關(guān)系數(shù)據(jù)庫管理系統(tǒng),通過各種數(shù)據(jù)庫對(duì)相對(duì)數(shù)據(jù)進(jìn)行控制和管理。不論創(chuàng)建的獨(dú)立桌面數(shù)據(jù)庫適用于個(gè)人、部門還是整個(gè)企業(yè),它都可以為管理和共享數(shù)據(jù)生成易于使用的數(shù)據(jù)庫。它不僅具有眾多傳統(tǒng)數(shù)據(jù)庫管理軟件具備的功能,同時(shí)還進(jìn)一步增強(qiáng)了與Internet的集成。Access2000就是關(guān)系數(shù)據(jù)庫開發(fā)工具,數(shù)據(jù)庫能匯集各種信息以供查詢、存儲(chǔ)和檢索。Access的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。數(shù)據(jù)表示圖提供了一種類似于Excel的電子表格,可以使數(shù)據(jù)庫一目了然。另外,Access允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫中的信息。Access也提供了數(shù)據(jù)存儲(chǔ)庫,可以使桌面數(shù)據(jù)庫文件把數(shù)據(jù)庫文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫。Access是一種關(guān)系數(shù)據(jù)庫工具,關(guān)系數(shù)據(jù)庫是已開發(fā)的最通用的數(shù)據(jù)庫之一。全新的數(shù)據(jù)庫窗口:MicrosoftAccess2000在數(shù)據(jù)庫窗口商大有改進(jìn),提高了新用戶的友好性,并增強(qiáng)與其它Office程序的共享性。數(shù)據(jù)庫窗口類似于Outlook的界面,由工具欄、功能組切換按鈕以及顯示頁面三部分組成??焖僭L問常用文件夾:MicrosoftAccess2000的“打開”和“保存”對(duì)話框經(jīng)過重新設(shè)計(jì),對(duì)話框右側(cè)新增一列常用文件夾。用戶在打開或保存數(shù)據(jù)庫文件時(shí),能夠快速訪問特定的目標(biāo)文件夾。在“打開”和“保存”對(duì)話框工具欄中也新增了一個(gè)與瀏覽器窗口功能相同的“后退”按鈕,單擊該按鈕可以快速的返回到上次訪問的文件夾或磁盤位置。數(shù)據(jù)庫轉(zhuǎn)換:在MicrosoftAccess2000中,用戶不但可以打開以前的數(shù)據(jù)庫,而且可以把以前版本的數(shù)據(jù)庫轉(zhuǎn)化為2000的版本,甚至可以把2000的版本保存為以前的版本,使不同的軟件用戶可以更方便的共享數(shù)據(jù)庫。名稱自動(dòng)改正:使用舊版本的用戶也會(huì)發(fā)現(xiàn),原來尊再的連接不再有效時(shí),更改表或字段名稱會(huì)出現(xiàn)錯(cuò)誤。“名稱自動(dòng)更正”功能自動(dòng)解決用戶重命名數(shù)據(jù)庫對(duì)象時(shí)產(chǎn)生的關(guān)聯(lián)影響,這些名稱更改被職能的傳給相關(guān)對(duì)象,用戶可以非常容易的處理這些對(duì)象。新的條件格式:Access用戶在創(chuàng)建窗體或報(bào)表過程中,有時(shí)需要數(shù)據(jù)所代表的值設(shè)置窗體或表中某字段的格式。Access2000中的條件格式允許用戶根據(jù)此數(shù)據(jù)庫中的數(shù)據(jù)來設(shè)置窗體或報(bào)表中的控件格式。字?jǐn)?shù)據(jù)表:在Access2000中利用了子數(shù)據(jù)表可以查看與當(dāng)前表相關(guān)的數(shù)據(jù),而不只是查看數(shù)據(jù)表的單個(gè)記錄源,自數(shù)據(jù)表允許用戶瀏覽數(shù)據(jù)表視圖中的分級(jí)數(shù)據(jù)。數(shù)據(jù)訪問頁:Access2000提供的數(shù)據(jù)訪問也允許用戶通過簡單,快捷的方法創(chuàng)建綁定數(shù)據(jù)的HTML格式的Web頁,將數(shù)據(jù)庫應(yīng)用程序擴(kuò)展到Internet網(wǎng),有助于更快更有效的共享數(shù)據(jù)庫中的數(shù)據(jù)。數(shù)據(jù)庫組成:Access數(shù)據(jù)庫是Windows以及WindowsNT平臺(tái)上常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),主要由表、查詢、窗體、報(bào)表、數(shù)據(jù)訪問頁、宏以及模塊中數(shù)據(jù)對(duì)象組成。不同數(shù)據(jù)庫對(duì)象在數(shù)據(jù)庫中起著不同的作用,靈活的使用一個(gè)數(shù)據(jù)庫對(duì)象可以是數(shù)據(jù)庫的功能更強(qiáng)大,管理更方便。綜上所述,Access作為關(guān)系數(shù)據(jù)庫開發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫的便利和關(guān)系數(shù)據(jù)庫的強(qiáng)大功能。4.3詳細(xì)設(shè)計(jì)客戶端使用的基本模塊包括:添加操作員模塊,添加數(shù)據(jù)模塊,導(dǎo)入數(shù)據(jù)模塊,查詢數(shù)據(jù)模塊,觀察數(shù)據(jù)曲線圖模塊,生成RTF報(bào)表模塊。服務(wù)器端使用的基本模塊包括:導(dǎo)入數(shù)據(jù)模塊,查詢數(shù)據(jù)模塊,觀察數(shù)據(jù)曲線圖模塊。UML中交互視圖描述了執(zhí)行系統(tǒng)功能的各個(gè)角色之間相互傳遞消息的順序關(guān)系。類元是對(duì)在系統(tǒng)內(nèi)交互關(guān)系中起特定作用的一個(gè)對(duì)象的描述,這使它區(qū)別于同類的其他對(duì)象。交互視圖顯示了跨越多個(gè)對(duì)象的系統(tǒng)控制流程。交互視圖可用兩種圖來表示:順序圖和協(xié)作圖,它們各有不同的側(cè)重點(diǎn)。順序圖和協(xié)作圖都可以表示各對(duì)象間的交互關(guān)系,但側(cè)重點(diǎn)不同。順序圖用消息的幾何排列關(guān)系來表達(dá)消息的時(shí)間順序,各角色之間的相關(guān)關(guān)系是隱含的。本系統(tǒng)采用順序圖來分析各個(gè)模塊。順序圖表示了對(duì)象之間傳送消息的時(shí)間順序。順序圖可以用來進(jìn)行一個(gè)場(chǎng)景說明即一個(gè)事務(wù)的歷史過程。順序圖的一個(gè)用途是用來表示用例中的行為順序。當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作或狀態(tài)機(jī)中引起轉(zhuǎn)換的觸發(fā)事件。下面對(duì)各主要模塊進(jìn)行順序圖設(shè)計(jì)。1.查詢數(shù)據(jù)模塊順序圖,如圖4-4所示。數(shù)據(jù)庫 登錄界面數(shù)據(jù)庫 登錄界面打開查詢對(duì)話框 篩選數(shù)據(jù)信息讀數(shù)據(jù)庫中信息 返回?cái)?shù)據(jù)信息退出系統(tǒng)圖4-4查詢數(shù)據(jù)模塊順序圖2.客戶端添加數(shù)據(jù)模塊順序圖,如圖4-5所示。登錄界面數(shù)據(jù)庫 登錄界面數(shù)據(jù)庫 Client操作員輸入操作員名及密碼不是已存在的操作員添加新操作員添加新操作員添加一天的數(shù)據(jù)添加數(shù)據(jù)錯(cuò)誤[添加數(shù)據(jù)正確]數(shù)據(jù)成功存入數(shù)據(jù)成功存入圖4-5客戶端添加數(shù)據(jù)模塊順序圖3.生成曲線圖模塊順序圖,如圖4-6所示。圖形處理數(shù)據(jù)庫 登錄界面圖形處理數(shù)據(jù)庫 登錄界面打開查詢對(duì)話框輸入查詢信息篩選出數(shù)據(jù)信息將信息存入數(shù)組中在視圖中繪出曲線圖形退出系統(tǒng)4-6曲線圖模塊順序圖4.?dāng)?shù)據(jù)生成RTF表格模塊。根據(jù)查詢條件,可將全年或單月的數(shù)據(jù)寫入RTF表格的文件中。不同格式的文件都有他自己的特定格式,所一本系統(tǒng)專門設(shè)計(jì)一個(gè)類,以實(shí)現(xiàn)特定的RTF格式的寫入。該類的描述如圖4-7所示。RTF報(bào)表類+WriteDefault_Head():void功能:寫RTF文件頭。+WriteDefault_Tail():void功能:寫RTF文件尾。+WriteSingleLine(char*pszLine,constint&AlignType):void功能:寫普通文本數(shù)據(jù)。參數(shù):pszLine:要寫入的字符數(shù)據(jù)。AlignType:文字的對(duì)齊方式。+WriteTableHead(constint&Col,int*pWidth):void功能:寫表頭數(shù)據(jù)。參數(shù):Col:表格的列數(shù)。pWidth:每一列的寬度組成該數(shù)組。+WriteContent(constint&countnt,CString*pStringList):void功能:寫表格內(nèi)容。參數(shù):countnt:表格的列數(shù)。pStringList:每一列的內(nèi)容。+WriteTableTail():void圖4-7RTF表格類圖5.源代碼見附錄。第五章系統(tǒng)設(shè)計(jì)5.1相關(guān)技術(shù)與開發(fā)環(huán)境的選擇5.1.1VC++6.0開發(fā)環(huán)境MircrosoftVisualC++6.0(簡稱VC++6.0),是微軟可視化編程套件VisualStudio98中的重要組成部分。這套功能強(qiáng)大的Windows應(yīng)用程序開發(fā)系統(tǒng)是由MicrosoftC/C++演化而來的。從MicrosoftC/C++8.0開始改稱為VisualC++,以至發(fā)展到今天的VisualC++6.0。由于同時(shí)微軟的產(chǎn)品,Visual平臺(tái)是當(dāng)前Windows應(yīng)用開發(fā)系統(tǒng)中與Windows平臺(tái)本身支持最徹底的開發(fā)平臺(tái)。VisualC++6.0包含了支持Windows95.WindowsNT4.0以及Windows98的Win32SDK文檔,即人們可以在VisualC++環(huán)境下使用WindowsSDK的SDK文檔提供的API來進(jìn)行Windows應(yīng)用程序的開發(fā)。VisualC++6.0采用的是32位編程方式,也就是說其生成的程序是在像Windows95WindowsNT4.0和Windows98等這樣的32位操作系統(tǒng)下運(yùn)行的。VC++6.0繼承了其以前版本的最主要的技術(shù)。它提供了一系列可視化編程的工具,如AppWizard和ClassWizard等。它們使Windows內(nèi)在的復(fù)雜的運(yùn)行機(jī)制,通過微軟基礎(chǔ)類庫MFC,使Windows編程更為簡單易學(xué)。下面對(duì)MFC作一介紹:如果你曾經(jīng)使用過傳統(tǒng)的windows編程方法開發(fā)應(yīng)用程序,你會(huì)深刻地體會(huì)到,即使是開發(fā)一個(gè)簡單的windows應(yīng)用程序也需要對(duì)windows的編程原理有很深刻的認(rèn)識(shí),同時(shí)也要手工編寫很多的代碼。因?yàn)槌绦虻某鲥e(cuò)率幾乎是隨著代碼長度的增加呈幾何級(jí)數(shù)增長的,這就使得調(diào)試程序變得非常困難。所以傳統(tǒng)的windows編程是需要極大的耐心和豐富的編程經(jīng)驗(yàn)的。近幾年來,面向?qū)ο蠹夹g(shù)無論是在理論還是實(shí)踐上都在飛速地發(fā)展。面向?qū)ο蠹夹g(shù)中最重要的就是“對(duì)象”的概念,它把現(xiàn)實(shí)世界中的氣球、自行車等客觀實(shí)體抽象成程序中的“對(duì)象”。這種“對(duì)象”具有一定的屬性和方法,這里的屬性指對(duì)象本身的各種特性參數(shù)。如氣球的體積,自行車的長度等,而方法是指對(duì)象本身所能執(zhí)行的功能,如氣球能飛,自行車能滾動(dòng)等。一個(gè)具體的對(duì)象可以有許多的屬性和方法,面向?qū)ο蠹夹g(shù)的重要特點(diǎn)就是對(duì)象的封裝性,對(duì)于外界而言,并不需要知道對(duì)象有哪些屬性,也不需要知道對(duì)象本身的方法是如何實(shí)現(xiàn)的,而只需要調(diào)用對(duì)象所提供的方法來完成特定的功能。從這里我們可以看出,當(dāng)把面向?qū)ο蠹夹g(shù)應(yīng)用到程序設(shè)計(jì)中時(shí),程序員只是在編寫對(duì)象方法時(shí)才需要關(guān)心對(duì)象本身的細(xì)節(jié)問題,大部分的時(shí)間是放在對(duì)對(duì)象的方法的調(diào)用上,組織這些對(duì)象進(jìn)行協(xié)同工作。MFC的英文全稱是MicrosoftFundationClasses,即微軟的基本類庫,MFC的本質(zhì)就是一個(gè)包含了許多微軟公司已經(jīng)定義好的對(duì)象的類庫,我們知道,雖然我們要編寫的程序在功能上是千差萬別的,但從本質(zhì)上來講,都可以化歸為用戶界面的設(shè)計(jì),對(duì)文件的操作,多媒體的使用,數(shù)據(jù)庫的訪問等等一些最主要的方面。這一點(diǎn)正是微軟提供MFC類庫最重要的原因,在這個(gè)類庫中包含了一百多個(gè)程序開發(fā)過程中最常用到的對(duì)象。在進(jìn)行程序設(shè)計(jì)的時(shí)候,如果類庫中的某個(gè)對(duì)象能完成所需要的功能,這時(shí)我們只要簡單地調(diào)用已有對(duì)象的方法就可以了。我們還可以利用面向?qū)ο蠹夹g(shù)中很重要的“繼承”方法從類庫中的已有對(duì)象派生出我們自己的對(duì)象,這時(shí)派生出來的對(duì)象除了具有類庫中的對(duì)象的特性和功能之外,還可以由我們自己根據(jù)需要加上所需的特性和方法,產(chǎn)生一個(gè)更專門的,功能更為強(qiáng)大的對(duì)象。當(dāng)然,你也可以在程序中創(chuàng)建全新的對(duì)象,并根據(jù)需要不斷完善對(duì)象的功能。正是由于MFC編程方法充分利用了面向?qū)ο蠹夹g(shù)的優(yōu)點(diǎn),它使得我們編程時(shí)極少需要關(guān)心對(duì)象方法的實(shí)現(xiàn)細(xì)節(jié),同時(shí)類庫中的各種對(duì)象的強(qiáng)大功能足以完成我們程序中的絕大部分所需功能,這使得應(yīng)用程序中程序員所需要編寫的代碼大為減少,有力地保證了程序的良好的可調(diào)試性。最后要指出的是MFC類庫在提供的對(duì)象的各種屬性和方法都是經(jīng)過謹(jǐn)慎的編寫和嚴(yán)格的測(cè)試,可靠性很高,這就保證了使用MFC類庫不會(huì)影響程序的可靠性和正確性。此外,VC++6.0還具有其它技術(shù)特點(diǎn):如通過ActiveX技術(shù)來支持Internet編程,支持ODBC數(shù)據(jù)庫編程等。VisualC++的最大特色就是提供對(duì)面向?qū)ο蠹夹g(shù)的支持,它利用類把大部分與用戶界面設(shè)計(jì)有關(guān)的WindowsAPI函數(shù)封裝起來,通過MFC(MicrosoftFoundationClass)類庫的方式提供給開發(fā)人員,大大提高了程序代碼的重用性。VisualC++貫穿了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,是一種面向?qū)ο蟮募砷_發(fā)軟件,它最突出的特性就是封裝性、繼承性和多態(tài)性。1)封裝性對(duì)象的封裝性是指將對(duì)象的屬性(數(shù)據(jù)內(nèi)容)和作用于這些屬性上的操作封裝在—起,對(duì)象的使用者只通過它提供的接口(類聲明)使用這個(gè)對(duì)象。對(duì)象的內(nèi)部是被保護(hù)起來的,它的使用是通過發(fā)送消息—即調(diào)用公有成員函數(shù)完成的。2)繼承性繼承性指的是一個(gè)新類可以從現(xiàn)有的類中派生出來,新類具有父類中所有的特性,直接繼承了父類的方法和數(shù)據(jù),新類的對(duì)象可以調(diào)用該類及父類的成員變量和成員函數(shù).3)多態(tài)性多態(tài)性就是當(dāng)不同對(duì)象收到相同的消息時(shí)產(chǎn)生不同的動(dòng)作。利用多態(tài)性,發(fā)送一般形式的消息,而將所有實(shí)現(xiàn)的細(xì)節(jié)留給接收消息的對(duì)象去解決。在計(jì)算機(jī)技術(shù)日益發(fā)展的今天,開發(fā)數(shù)據(jù)庫程序已經(jīng)成為計(jì)算機(jī)應(yīng)用的一個(gè)重要領(lǐng)域。如今,各種數(shù)據(jù)庫開發(fā)工具層出不窮,而VisualC++以其完美的界面、方便的操作、強(qiáng)大的功能在各種數(shù)據(jù)庫開發(fā)工具中獨(dú)樹一幟。作為微軟公司的重點(diǎn)產(chǎn)品,VisualC++具有其它數(shù)據(jù)庫開發(fā)工具所無法比擬的優(yōu)勢(shì)。微軟公司剛推行VisualC++時(shí)說過,只有你想不到的,沒有它做不到的。它易學(xué)易用,因此得到了廣大軟件開發(fā)人員及計(jì)算機(jī)愛好者的青睞。它是一種完全面向?qū)ο蠛涂梢暬_發(fā)工具。5.1.2前臺(tái)與后臺(tái)的數(shù)據(jù)綁定本系統(tǒng)采用Data控件建立數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。微軟的JET數(shù)據(jù)庫引擎提供了與數(shù)據(jù)庫打交道的途徑,我們是通過它以及VisualBasic來訪問數(shù)據(jù)庫并對(duì)其進(jìn)行各種操作。VisualBasic、Access以及其他微軟的軟件產(chǎn)品都是通過共用JET數(shù)據(jù)庫引擎,從而給用戶提供了豐富的數(shù)據(jù)類型。Data控件在數(shù)據(jù)庫中的信息與將信息顯示給用戶看的VisualBasic程序之間架起了一座橋梁。我們可以設(shè)置Data控件的各個(gè)屬性,告訴它要調(diào)用那個(gè)數(shù)據(jù)庫的哪個(gè)部分。為了減少代碼的編寫,在設(shè)計(jì)時(shí)事先都設(shè)置好了,主要設(shè)置的是:DatabaseName(要連接數(shù)據(jù)的名字)和RecordSource(記錄源:即數(shù)據(jù)庫中的某一張二維表)。5.2程序設(shè)計(jì)(相關(guān)代碼見附錄)1)客戶端添加數(shù)據(jù)模塊:1.功能客戶端管理員添加數(shù)據(jù)到本地服務(wù)器的同時(shí),同時(shí)系統(tǒng)自動(dòng)將數(shù)據(jù)添加到遠(yuǎn)程服務(wù)器端,便于以后的查詢分析。 2.設(shè)計(jì)方法 系統(tǒng)用ADO技術(shù)連接數(shù)據(jù)庫,將輸入的信息存入本地?cái)?shù)據(jù)庫中,并是用CSocket類實(shí)現(xiàn)與服務(wù)器的網(wǎng)絡(luò)連接,將信息以指定格式發(fā)送到數(shù)據(jù)庫中。3.模塊對(duì)應(yīng)的窗體如圖5-1所示。 圖5-1 2)查詢數(shù)據(jù)模塊:1.功能服務(wù)器端管理員可以根據(jù)不同的城市名和時(shí)間段來進(jìn)行分類查詢??蛻舳斯芾韱T只能查詢本地的數(shù)據(jù)信息。2.設(shè)計(jì)方法根據(jù)管理員選擇的查詢條件,用SQL語句對(duì)數(shù)據(jù)庫進(jìn)行篩選,最后在GridData數(shù)據(jù)表格控件中顯示查詢信息。3.模塊對(duì)應(yīng)的窗體如圖5-2所示。 圖5-23)生成曲線圖模塊1.功能該功能是把數(shù)字顯示數(shù)據(jù)的方式轉(zhuǎn)換成以曲線圖顯示數(shù)據(jù)的方式。用戶可以根據(jù)不同的城市查看到不同時(shí)間段的溫度和濕度曲線圖。繪制圖形后,可以在視圖中移動(dòng)鼠標(biāo)位置,當(dāng)鼠標(biāo)移到某一數(shù)據(jù)點(diǎn)上時(shí),系統(tǒng)自動(dòng)會(huì)在光標(biāo)旁邊彈出一文本框,顯示該點(diǎn)的具體信息,最大程度的方便用戶查詢。2.設(shè)計(jì)方法以時(shí)間為X軸,以溫度和濕度為Y軸,用GDI在視圖窗口中繪制曲線圖。當(dāng)在視圖中移動(dòng)鼠標(biāo)時(shí),實(shí)時(shí)遍歷時(shí)間數(shù)組,判斷鼠標(biāo)點(diǎn)的位置是否為圖形中數(shù)據(jù)點(diǎn)的位置,如果是:根據(jù)時(shí)間數(shù)據(jù)從溫度和濕度數(shù)組中找到該點(diǎn)的具體信息,最后以文本框的形式彈出,當(dāng)鼠標(biāo)指向另一個(gè)點(diǎn)時(shí),系統(tǒng)自動(dòng)關(guān)閉上一個(gè)文本框,并刪除該文本框句柄。3.模塊對(duì)應(yīng)的窗體如圖5-3所示。 圖5-34)數(shù)據(jù)生成RTF表格1.功能根據(jù)查詢條件,可將全年或單月的數(shù)據(jù)寫入RTF表格的文件中。2.設(shè)計(jì)方法不同格式的文件都有他自己的特定格式,所一本系統(tǒng)專門設(shè)計(jì)一個(gè)類,以實(shí)現(xiàn)特定的RTF格式的寫入。3.模塊對(duì)應(yīng)的窗體如圖5-4所示。 圖5-45)添加操作員信息1.功能添加操作員的基本信息存入數(shù)據(jù)庫中。2.設(shè)計(jì)方法該模塊主要難點(diǎn)是以二進(jìn)制為基礎(chǔ)的照片數(shù)據(jù)的讀取與寫入,系統(tǒng)以二進(jìn)制的形式將信息存入數(shù)據(jù)庫。在添加數(shù)據(jù)信息對(duì)話框中,當(dāng)選擇操作員ID是,要求將從數(shù)據(jù)庫中讀出的二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為位圖,畫在在對(duì)話框上。3.模塊對(duì)應(yīng)的窗體如圖5-5所示。 圖5-5第六章系統(tǒng)的測(cè)試與維護(hù)6.1系統(tǒng)測(cè)試6.1.1什么是軟件測(cè)試及其意義軟件測(cè)試就是在受控制的條件下對(duì)系統(tǒng)或應(yīng)用程序進(jìn)行操作并評(píng)價(jià)操作的結(jié)果。也就是說,如果用戶面對(duì)著應(yīng)用程序的A界面,在使用硬件B的時(shí)候做C操作,那么D結(jié)果應(yīng)該出現(xiàn)。所謂受控制的條件應(yīng)該包括正常條件和非正常條件。應(yīng)該故意地去促使錯(cuò)誤的發(fā)生,也就是事情在不該出現(xiàn)的時(shí)候出現(xiàn)或者在應(yīng)該出現(xiàn)的時(shí)候沒有出現(xiàn)。從本質(zhì)上說,軟件測(cè)試是“探測(cè)”。軟件測(cè)試的意義:在開發(fā)大型軟件系統(tǒng)的過程中,面對(duì)錯(cuò)綜復(fù)雜的問題,人們的主觀認(rèn)識(shí)不可能完全符合客觀事實(shí)。與工程密切相關(guān)的各類人員之間的通信和配合也不可能完美無缺,因此,在軟件生命周期的每個(gè)階段都不可避免地出現(xiàn)錯(cuò)誤。我們力求在每個(gè)階段結(jié)束之前通過嚴(yán)格的技術(shù)審查,盡可能早的發(fā)現(xiàn)并糾正這些錯(cuò)誤,但是經(jīng)驗(yàn)表明這樣的審查不可能糾正所有的錯(cuò)誤,此外在編碼過程中還不可避免地引入新的錯(cuò)誤。如果軟件投入生產(chǎn)性運(yùn)行之前,還沒有發(fā)現(xiàn)并糾正軟件中的大部分錯(cuò)誤,則這些錯(cuò)誤遲早會(huì)在生產(chǎn)中暴露出來,那時(shí)不僅改正這些錯(cuò)誤的代價(jià)過高,而且往往會(huì)造成很惡劣的后果。測(cè)試的目的就是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)錯(cuò)誤。目前,軟件測(cè)試仍然是保證軟件質(zhì)量的關(guān)鍵步驟。軟件測(cè)試在生命周期中分為兩個(gè)階段。單元測(cè)試和綜合測(cè)試。單元測(cè)試由編寫者自己完成,此時(shí)編寫者和測(cè)試者是同一個(gè)人。綜合測(cè)試是軟件生命周期的一個(gè)獨(dú)立的階段,通常有專門的測(cè)試人員完成這項(xiàng)工作。6.1.2軟件測(cè)試的方法及步驟(一)軟件測(cè)試的方法軟件測(cè)試有兩種方法:白盒法和黑盒法如果知道了產(chǎn)品應(yīng)該具有的功能,可以通過測(cè)試來檢測(cè)是否每個(gè)功能都能實(shí)現(xiàn),這種測(cè)試方法叫作黑盒測(cè)試法;如果知道產(chǎn)品的內(nèi)部工作過程,可以通過測(cè)試來檢驗(yàn)是否按照規(guī)格說明說的規(guī)定正常運(yùn)行,這個(gè)方法叫白盒測(cè)試法。對(duì)于軟件而言,黑盒測(cè)試法是把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。也就是說黑盒測(cè)試是在程序的接口進(jìn)行測(cè)試,它只檢查程序的功能是否按照規(guī)格說明說的說明正常運(yùn)行,程序是否能恰當(dāng)?shù)慕邮茌斎霐?shù)據(jù),產(chǎn)生正確的輸出信息,并且保持外部信息的完整性。黑盒測(cè)試又稱為功能測(cè)試。與黑盒測(cè)試法相反,白盒測(cè)試法是把程序看成是裝在一個(gè)透明的白盒子里。也就是完全了解程序的結(jié)構(gòu)和處理過程,這種方法按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否能按預(yù)定的要求正確工作,白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試。粗看起來,不論采用上述那種測(cè)試方法,只要對(duì)每一種可能的情況都進(jìn)行測(cè)試,就可以得到完全正確的程序。包含所有可能情況的測(cè)試成為窮盡測(cè)試,對(duì)于實(shí)際程序而言,窮盡測(cè)試通常是不可能做到的。使用黑盒測(cè)試法為了做到窮盡測(cè)試,至少對(duì)所有輸入數(shù)據(jù)的各種可能值的排列組合都進(jìn)行測(cè)試,但是,由此得到的應(yīng)該測(cè)試的情況,數(shù)字往往達(dá)到實(shí)際上根本無法測(cè)試的程度。實(shí)踐表明,用無效的輸入數(shù)據(jù)比有效的輸入數(shù)據(jù)進(jìn)行測(cè)試往往能發(fā)現(xiàn)更多的錯(cuò)誤。使用白盒測(cè)試法和使用黑盒測(cè)試法一樣也不可能做到窮盡測(cè)試。因?yàn)椴荒茏龅礁F盡測(cè)試,所以軟件測(cè)試不可能發(fā)現(xiàn)程序中的所有錯(cuò)誤。也就是所通過測(cè)試并不能證明程序是完全正確的。但是,我們的目的是要通過測(cè)試保證軟件愛你的可靠性,因此,必須仔細(xì)設(shè)計(jì)測(cè)試方案,力爭用盡可能少的測(cè)試發(fā)現(xiàn)盡可能多的錯(cuò)誤。(二)軟件測(cè)試的步驟當(dāng)設(shè)計(jì)工作完成以后,就應(yīng)該著手測(cè)試的準(zhǔn)備工作了,一般來講,由一位對(duì)整個(gè)系統(tǒng)設(shè)計(jì)熟悉的設(shè)計(jì)人員編寫測(cè)試大綱,明確測(cè)試的內(nèi)容和測(cè)試通過的準(zhǔn)則,設(shè)計(jì)完整合理的測(cè)試用例,以便系統(tǒng)實(shí)現(xiàn)后進(jìn)行全面測(cè)試。在實(shí)現(xiàn)組將所開發(fā)的程序經(jīng)驗(yàn)證后,提交測(cè)試組,由測(cè)試負(fù)責(zé)人組織測(cè)試,測(cè)試一般可按下列方式組織:(1)首先,測(cè)試人員要仔細(xì)閱讀有關(guān)資料,包括規(guī)格說明、設(shè)計(jì)文檔、使用說明書及在設(shè)計(jì)過程中形成的測(cè)試大綱、測(cè)試內(nèi)容及測(cè)試的通過準(zhǔn)則,全面熟悉系統(tǒng),編寫測(cè)試計(jì)劃,設(shè)計(jì)測(cè)試用例,作好測(cè)試前的準(zhǔn)備工作。(2)為了保證測(cè)試的質(zhì)量,將測(cè)試過程分成幾個(gè)階段,即:代碼審查、單元測(cè)試、集成測(cè)試和驗(yàn)收測(cè)試。(3)代碼會(huì)審是由一組人通過閱讀、討論和爭議對(duì)程序進(jìn)行靜態(tài)分析的過程。會(huì)審小組由組長,2~3名程序設(shè)計(jì)和測(cè)試人員及程序員組成。會(huì)審小組在充分閱讀待審程序文本、控制流程圖及有關(guān)要求、規(guī)范等文件基礎(chǔ)上,召開代碼會(huì)審會(huì),程序員逐句講解程序的邏輯,并展開熱烈的討論甚至爭議,以揭示錯(cuò)誤的關(guān)鍵所在。實(shí)踐表明,程序員在講解過程中能發(fā)現(xiàn)許多自己原來沒有發(fā)現(xiàn)的錯(cuò)誤,而討論和爭議則進(jìn)一步促使了問題的暴露。例如,對(duì)某個(gè)局部性小問題修改方法的討論,可能發(fā)現(xiàn)與之有牽連的甚至能涉及到模塊的功說明、模塊間接口和系統(tǒng)總結(jié)構(gòu)的大問題,導(dǎo)致對(duì)需求定義的重定義、重設(shè)計(jì)驗(yàn)證,大大改善了軟件的質(zhì)量。(4)單元測(cè)試:單元測(cè)試集中在檢查軟件設(shè)計(jì)的最小單位-模塊上,通過測(cè)試發(fā)現(xiàn)實(shí)現(xiàn)該模塊的實(shí)際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯(cuò)誤。由于模塊規(guī)模小、功能單一、邏輯簡單,測(cè)試人員有可能通過模塊說明書和源程序,清楚地了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),采用結(jié)構(gòu)測(cè)試(白盒法)的用例,盡可能達(dá)到徹底測(cè)試,然后輔之以功能測(cè)試(黑盒法)的用例,使之對(duì)任何合理和不合理的輸入都能鑒別和響應(yīng)。高可靠性的模塊是組成可靠系統(tǒng)的堅(jiān)實(shí)基礎(chǔ)。(5)集成測(cè)試:集成測(cè)試是將模塊按照設(shè)計(jì)要求組裝起來同時(shí)進(jìn)行測(cè)試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。如數(shù)據(jù)穿過接口時(shí)可能丟失;一個(gè)模塊與另一個(gè)模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個(gè)別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯(cuò)誤等。(6)驗(yàn)收測(cè)試:驗(yàn)收測(cè)試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測(cè)試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是驗(yàn)收測(cè)試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。經(jīng)過上述的測(cè)試過程對(duì)軟件進(jìn)行測(cè)試后,軟件基本滿足開發(fā)的要求,測(cè)試宣告結(jié)束,經(jīng)驗(yàn)收后,將軟件提交用戶。(三)在開發(fā)本系統(tǒng)時(shí),為了使系統(tǒng)能夠穩(wěn)定運(yùn)行,對(duì)本系統(tǒng)進(jìn)行了有針對(duì)性的全面測(cè)試,采用的方式是:1.菜單項(xiàng)測(cè)試:為了保證每一項(xiàng)下拉菜單能夠正確實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的功能,我把該企業(yè)有關(guān)的所有基礎(chǔ)數(shù)據(jù),基本上全部輸入到本系統(tǒng)中,并對(duì)每一個(gè)菜單項(xiàng)反復(fù)進(jìn)行了增加,刪除,修改等操作,從而保證了菜單級(jí)功能的正確實(shí)現(xiàn)。2.數(shù)據(jù)跟蹤:完成菜單項(xiàng)測(cè)試后,我又對(duì)系統(tǒng)內(nèi)的每一項(xiàng)數(shù)據(jù)進(jìn)行了跟蹤。3.綜合測(cè)試:在以上測(cè)試的基礎(chǔ)上對(duì)系統(tǒng)功能進(jìn)行了整體的測(cè)試,依次來檢驗(yàn)系統(tǒng)功能是否符合系統(tǒng)設(shè)計(jì)的要求。5.1.3功能測(cè)試軟件開發(fā)過程中,先對(duì)主要功能進(jìn)行測(cè)試。之后每完成一個(gè)小功能,都對(duì)其進(jìn)行測(cè)試,通過后對(duì)下一個(gè)小功能進(jìn)行測(cè)試。在測(cè)試過程中發(fā)現(xiàn)很多問題,如對(duì)數(shù)據(jù)庫操作時(shí)輸入類型不匹配,數(shù)據(jù)長度過長,有些字段不可為空等。還有定義的全局變量與局部變量沖突等等。都一一進(jìn)行了糾正。由于能力有限不能發(fā)現(xiàn)并糾正所有的漏洞和錯(cuò)誤之處。還有待改正。在開發(fā)人事管理信息系統(tǒng)的時(shí)候,為了使系統(tǒng)能夠穩(wěn)定運(yùn)行,對(duì)系統(tǒng)進(jìn)行了測(cè)試:1.查詢功能測(cè)試:為了保證系統(tǒng)的每一項(xiàng)功能都可能順利執(zhí)行,尤其是查詢功能的執(zhí)行,特別進(jìn)行各項(xiàng)查詢方式的不同索引確保各種查詢方式可查詢到正確記錄。2.數(shù)據(jù)曲線圖驗(yàn)證:因?yàn)閳D形生成后,因?yàn)辄c(diǎn)很多,并不容易進(jìn)行驗(yàn)正。應(yīng)當(dāng)將數(shù)據(jù)做成有一定規(guī)律的,比如等差或等比的,這樣可以清楚的看到圖形中的錯(cuò)誤。3.報(bào)表輸出測(cè)試:RTF報(bào)表是Word字處理系統(tǒng)的的一種格式,但不同板本的格式有著很大不同,要保證報(bào)表適應(yīng)于不同的版本,就必須進(jìn)行嚴(yán)格的測(cè)試。5.2系統(tǒng)的維護(hù)軟件維護(hù)是軟件生命周期的最后一個(gè)階段,它處于系統(tǒng)投入生產(chǎn)并運(yùn)行以后的時(shí)期中。因此不屬于系統(tǒng)開發(fā)過程。所謂維護(hù)就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。因?yàn)檐浖y(cè)試不可能暴露出一個(gè)大型軟件系統(tǒng)中所有潛藏的錯(cuò)誤,所以必然會(huì)有第一項(xiàng)維護(hù)活動(dòng):在試用期間,用戶必然會(huì)發(fā)現(xiàn)程序錯(cuò)誤,并且把他們遇到的問題報(bào)告給維護(hù)人員,我們把診斷和改正錯(cuò)誤的過程稱為改正性維護(hù)。適應(yīng)性維護(hù),也就是為了和變化了的環(huán)境是當(dāng)?shù)嘏浜隙M(jìn)行的修改軟件的活動(dòng),是既必要又經(jīng)常地維護(hù)活動(dòng)。

在實(shí)用軟件的過程中用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性的改進(jìn)意見。為了滿足這類要求,需要進(jìn)行完善性維護(hù)。這項(xiàng)維護(hù)活動(dòng)通常占軟件維護(hù)工作的大部分。當(dāng)為了改進(jìn)未來的可維護(hù)性或可靠性,或?yàn)榱私o未來的改進(jìn)奠定更好的基礎(chǔ)和修改軟件,做的維護(hù)通常稱為預(yù)防性維護(hù)。系統(tǒng)的維護(hù)主要包括四個(gè)方面:1)程序的維護(hù):指的是修改部分或全部程序,這種維護(hù)往往是在條件發(fā)生變化或原系統(tǒng)的效率低的情況下進(jìn)行的。2)數(shù)據(jù)文件的維護(hù):指的是按照用戶的要求對(duì)數(shù)據(jù)文件進(jìn)行不定期的修改。3)代碼的維護(hù):隨著系統(tǒng)的發(fā)展和變化,可能會(huì)出現(xiàn)舊的代碼不能適應(yīng)新的要求的問題,因此,有必要變更代碼

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論