管理信息系統(tǒng) 課件 第10章 系統(tǒng)設(shè)計_第1頁
管理信息系統(tǒng) 課件 第10章 系統(tǒng)設(shè)計_第2頁
管理信息系統(tǒng) 課件 第10章 系統(tǒng)設(shè)計_第3頁
管理信息系統(tǒng) 課件 第10章 系統(tǒng)設(shè)計_第4頁
管理信息系統(tǒng) 課件 第10章 系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

10.1系統(tǒng)設(shè)計原則

10.2結(jié)構(gòu)化系統(tǒng)設(shè)計

10.3面向?qū)ο蟮脑O(shè)計

10.4系統(tǒng)設(shè)計報告10.1系統(tǒng)設(shè)計原則1.?系統(tǒng)性原則系統(tǒng)作為一個整體而存在,因此在系統(tǒng)設(shè)計中要從整個系統(tǒng)的角度進(jìn)行考慮,注意保證系統(tǒng)的一致性和完整性。系統(tǒng)的代碼要統(tǒng)一,設(shè)計規(guī)范要標(biāo)準(zhǔn),傳遞語言要盡可能一致。2.?靈活性原則靈活性是指系統(tǒng)對外界環(huán)境變化的適應(yīng)能力。企業(yè)的信息系統(tǒng)必須具有相當(dāng)程度的靈活性才能支持企業(yè)在不斷變化的外界環(huán)境中取得競爭優(yōu)勢。3.?可靠性原則可靠性是指系統(tǒng)抵御外界干擾的能力及受外界干擾時的恢復(fù)能力。一個成功的MIS必須具有較高的可靠性才能保證系統(tǒng)質(zhì)量并得到用戶的信任。衡量系統(tǒng)可靠性的指標(biāo)有平均故障時間、平均維護(hù)時間、安全保密性、抗病毒、防火墻能力等。平均故障時間指平均的前后聯(lián)系發(fā)生故障的時間,反映了系統(tǒng)安全運行時間。平均維護(hù)時間指故障后平均每次所用的修復(fù)時間,反映了系統(tǒng)可維護(hù)性的好壞。4.?經(jīng)濟(jì)性原則經(jīng)濟(jì)性是指在滿足系統(tǒng)要求的前提下,不僅追求給用戶帶來一定的效益,還應(yīng)盡可能減少系統(tǒng)不必要的開銷。一方面在硬件的投資上不過分追求先進(jìn),另一方面系統(tǒng)應(yīng)盡可能簡單,避免不必要的復(fù)雜化,將設(shè)計更加簡潔,從而減少處理費用,提高系統(tǒng)效益,便于實現(xiàn)和管理。10.2結(jié)構(gòu)化系統(tǒng)設(shè)計10.2.1結(jié)構(gòu)化設(shè)計目標(biāo)系統(tǒng)設(shè)計必須保證從系統(tǒng)易變更性入手,設(shè)計出一個易于理解、容易維護(hù)的系統(tǒng)。為了使系統(tǒng)容易修改,首先要使其容易理解,必須注意以下幾個問題:(1)?把系統(tǒng)劃分成為一些部分,其中每一部分的功能簡單明確,內(nèi)容簡明易懂,易于修改,我們把這樣的部分稱為模塊。(2)?系統(tǒng)分成模塊的工作按層次進(jìn)行,首先,把整個系統(tǒng)看成一個模塊,按功能分解成若干個第一層的模塊,這些模塊互相配合,共同完成整個系統(tǒng)的功能;然后按功能再分解第一層的各個模塊,依次下去,直到每個模塊都十分簡單為止。(3)?每一個模塊應(yīng)盡可能獨立,即盡可能減少模塊的調(diào)用關(guān)系和數(shù)據(jù)交換關(guān)系。當(dāng)然,系統(tǒng)中模塊不可能與其他模塊沒有聯(lián)系,只是要求這種聯(lián)系盡可能少。(4)?模塊間的關(guān)系要闡明,這樣在修改的時候可以追蹤和控制。10.2.2結(jié)構(gòu)化設(shè)計內(nèi)容系統(tǒng)設(shè)計階段的任務(wù)是提出物理設(shè)計方案。該方案是這個階段工作成果的體現(xiàn),最終以系統(tǒng)設(shè)計說明書的形式提出,批準(zhǔn)后將成為系統(tǒng)實施階段的工作依據(jù)。系統(tǒng)設(shè)計的基本內(nèi)容大體可以分成兩個方面:(1)?把總?cè)蝿?wù)分解成許多基本的具體任務(wù),這些具體的任務(wù)合理地組織起來構(gòu)成總?cè)蝿?wù),稱為總體設(shè)計,又稱為概要設(shè)計。其基本任務(wù)包括:①將系統(tǒng)劃分為模塊;②決定每個模塊的功能;③決定模塊的調(diào)用關(guān)系;④決定模塊的界面,即模塊間信息的傳遞形式??傮w設(shè)計是系統(tǒng)開發(fā)過程中很關(guān)鍵的一步,系統(tǒng)的質(zhì)量及一些整體特性基本上是這一步?jīng)Q定的。系統(tǒng)越大,總體設(shè)計的影響越大。(2)?為各個具體任務(wù)選擇適當(dāng)?shù)募夹g(shù)手段和處理方法,這便是詳細(xì)設(shè)計,包括MIS系統(tǒng)流程設(shè)計、代碼設(shè)計、數(shù)據(jù)庫設(shè)計、輸出設(shè)計、輸入設(shè)計、處理過程設(shè)計等。10.2.3總體設(shè)計1.?劃分的依據(jù)一個合理的子系統(tǒng)或模塊劃分,應(yīng)該是內(nèi)部聯(lián)系強(qiáng),子系統(tǒng)或模塊間盡可能獨立,接口明確、簡單,盡量適應(yīng)用戶的組織體系,有適當(dāng)?shù)墓灿眯?。按照結(jié)構(gòu)化設(shè)計的思想,對模塊或子系統(tǒng)進(jìn)行劃分的依據(jù)通常有以下幾種:(1)?按邏輯劃分,把相類似的處理邏輯功能放在一個子系統(tǒng)或模塊里。例如,把“對所有業(yè)務(wù)輸入數(shù)據(jù)進(jìn)行編輯”的功能放在一個子系統(tǒng)或模塊里,不管是庫存還是財務(wù),只要有業(yè)務(wù)輸入數(shù)據(jù)都由這個子系統(tǒng)或模塊來校錯、編輯。(2)?按時間劃分,把要在同一時間段執(zhí)行的各種處理結(jié)合成一個子系統(tǒng)或模塊。(3)?按過程劃分,即按工作流程劃分。從控制流程的角度看,同一子系統(tǒng)或模塊的許多功能都應(yīng)該是相關(guān)的。(4)?按通信劃分,把相互需要較多通信的處理結(jié)合成一個子系統(tǒng)或模塊。這樣可減少子系統(tǒng)間或模塊間的通信,使接口變得簡單。(5)?按職能劃分,即按管理的功能劃分。例如,財務(wù)、物資、銷售子系統(tǒng),或輸入記賬憑證、計算機(jī)優(yōu)解子系統(tǒng)或模塊等。一般來說,按職能劃分子系統(tǒng),按邏輯劃分模塊的方式是比較合理和方便的。2.?總體功能結(jié)構(gòu)設(shè)計總體功能結(jié)構(gòu)設(shè)計是根據(jù)系統(tǒng)規(guī)劃中U/C矩陣明確了的各個子系統(tǒng)界限的劃分和各個子系統(tǒng)涵蓋的主要功能,結(jié)合系統(tǒng)分析報告的業(yè)務(wù)流程分析、數(shù)據(jù)流程分析的內(nèi)容,構(gòu)建系統(tǒng)總體功能結(jié)構(gòu),并進(jìn)行分層功能結(jié)構(gòu)設(shè)計,經(jīng)過層層分解,把一個復(fù)雜的系統(tǒng)分解為多個功能較為簡單、大小適當(dāng)、任務(wù)單一、相對獨立、易于實現(xiàn)的功能模塊。頂層功能較為綜合,底層功能更加具體,以系統(tǒng)總體功能結(jié)構(gòu)圖的方式反映系統(tǒng)的各項功能關(guān)系。根據(jù)系統(tǒng)分析階段產(chǎn)生的數(shù)據(jù)處理過程分析、數(shù)據(jù)字典等內(nèi)容,系統(tǒng)設(shè)計人員編寫系統(tǒng)的功能模塊說明。在總體功能結(jié)構(gòu)設(shè)計時,應(yīng)注意以下問題:(1)?在MIS總體功能結(jié)構(gòu)設(shè)計時,業(yè)務(wù)內(nèi)容或者處理邏輯功能相近的模塊應(yīng)盡可能劃分到同一個子系統(tǒng)或同一主功能模塊下,做到層次結(jié)構(gòu)分明、一目了然,同時應(yīng)盡量避免不同系統(tǒng)模塊的功能交叉。(2)?系統(tǒng)設(shè)計人員要將初步確定的系統(tǒng)總體功能結(jié)構(gòu)同系統(tǒng)實施人員進(jìn)行交流,充分考慮系統(tǒng)功能結(jié)構(gòu)實施的難易程度及可能存在的問題,做到功能結(jié)構(gòu)合理、操作可行、實施簡單方便。(3)?總體功能設(shè)計還要與用戶進(jìn)行溝通,給用戶講解系統(tǒng)的功能結(jié)構(gòu),聽取用戶對系統(tǒng)功能布局的意見,經(jīng)過幾輪的交流修改后,確定最終的系統(tǒng)總體功能結(jié)構(gòu)。(4)?模塊之間的相互關(guān)系則通過模塊結(jié)構(gòu)圖予以詳細(xì)說明,各模塊在這些關(guān)系的約束下,共同構(gòu)成了一個統(tǒng)一的信息系統(tǒng),完成系統(tǒng)的功能。圖10.1是某工資管理信息系統(tǒng)的功能結(jié)構(gòu)圖。3.?模塊結(jié)構(gòu)設(shè)計模塊是指獨立命名并且擁有明確定義的實體。系統(tǒng)中任何一個處理功能都可以看成是一個模塊。模塊結(jié)構(gòu)設(shè)計的主要目標(biāo)是在系統(tǒng)總體功能結(jié)構(gòu)的基礎(chǔ)上,將結(jié)構(gòu)化系統(tǒng)分析方法得到的數(shù)據(jù)流程圖轉(zhuǎn)化為系統(tǒng)的功能模塊結(jié)構(gòu),并明確各模塊之間的控制關(guān)系,即導(dǎo)出模塊結(jié)構(gòu)圖的過程。因此,結(jié)構(gòu)化系統(tǒng)設(shè)計采用模塊結(jié)構(gòu)圖來描述系統(tǒng)的模塊結(jié)構(gòu)和模塊之間的關(guān)系。結(jié)構(gòu)化方法的基本思想就是模塊化,即把系統(tǒng)功能自頂向下、由抽象到具體地劃分為多層次的獨立功能模塊,每個模塊完成一個特定的功能,一直分解到能簡單地用程序?qū)崿F(xiàn)為止。這些模塊以某種結(jié)構(gòu)形式組成一個整體,可以完成指定的功能。模塊劃分要兼顧組織實際情況,經(jīng)過對實際系統(tǒng)業(yè)務(wù)流程、管理功能、數(shù)據(jù)流程等方面的詳細(xì)了解和分析后,從整體上考慮新系統(tǒng)的功能。這種設(shè)計方法能夠使系統(tǒng)結(jié)構(gòu)更加清晰,提高了系統(tǒng)的可理解性和可用性。通過簡化軟件的設(shè)計和實施,有助于信息系統(tǒng)開發(fā)和組織管理,增強(qiáng)可維護(hù)性。1)?模塊結(jié)構(gòu)圖介紹模塊結(jié)構(gòu)圖又稱控制結(jié)構(gòu)圖、系統(tǒng)結(jié)構(gòu)圖,它用一組特殊的圖形符號按照一定的規(guī)則描述系統(tǒng)整體結(jié)構(gòu)。模塊結(jié)構(gòu)圖中的主要成分:模塊、調(diào)用、數(shù)據(jù)和控制信息,如圖10.2所示。調(diào)用是從一個模塊指向另一個模塊的,箭頭表示前一個模塊調(diào)用后一個模塊。模塊調(diào)用又有直接調(diào)用、通過條件判斷進(jìn)行判斷調(diào)用和上層模塊重復(fù)調(diào)用下層模塊的循環(huán)調(diào)用三種調(diào)用方式,如圖10.3所示。數(shù)據(jù)是反映事物某些特征的具體數(shù)據(jù)。當(dāng)一個模塊調(diào)用另一個模塊時,調(diào)用模塊可以把數(shù)據(jù)傳送到被調(diào)用模塊處供處理,而被調(diào)用模塊又可以將處理的結(jié)果數(shù)據(jù)送回到調(diào)用模塊;控制信息是為了指導(dǎo)程序下一步的執(zhí)行必須傳遞的某些信息,例如,數(shù)據(jù)輸入完成后給出的結(jié)束標(biāo)志,文件讀到末尾所產(chǎn)生的文件結(jié)束標(biāo)志等,如圖10.4所示。2)?模塊結(jié)構(gòu)設(shè)計過程MIS的數(shù)據(jù)流程圖一般有兩種典型結(jié)構(gòu):變換型結(jié)構(gòu)的數(shù)據(jù)流程圖和事務(wù)型結(jié)構(gòu)的數(shù)據(jù)流程圖。(1)?變換型結(jié)構(gòu)的數(shù)據(jù)流程圖。①找出變換型結(jié)構(gòu)數(shù)據(jù)流程圖中的變換中心,確定為主加工,如圖10.5所示。②設(shè)計頂層模塊和第一層模塊,如圖10.6所示。③設(shè)計中、下層模塊。該過程由頂向下遞歸進(jìn)行,直到系統(tǒng)的物理輸入端或物理輸出端為止。每設(shè)計出一個新模塊,應(yīng)給它起一個能反映模塊功能的名字。圖10.7為變換型結(jié)構(gòu)數(shù)據(jù)流程圖的應(yīng)用舉例。(2)?事務(wù)型結(jié)構(gòu)的數(shù)據(jù)流程圖。①?確定以事務(wù)為中心的結(jié)構(gòu),包括找出事務(wù)中心和事務(wù)來源。②?按功能劃分事務(wù),將具備相同功能的事務(wù)歸為同一類,建立事務(wù)模塊。③?為每個事務(wù)處理模塊建立全部的操作層模塊。其建立方法與變換型結(jié)構(gòu)的方法類似,但事務(wù)處理模塊可以共享某些操作模塊。④?若有必要,則為操作層模塊定義相應(yīng)的細(xì)節(jié)模塊,并盡可能使細(xì)節(jié)模塊被多個操作模塊共享。如圖10.8為事務(wù)型結(jié)構(gòu)數(shù)據(jù)流程圖的應(yīng)用舉例。3)?模塊間的聯(lián)系在一個管理信息系統(tǒng)中,系統(tǒng)的各組成部分之間總是存在著各種聯(lián)系的,將系統(tǒng)或子系統(tǒng)劃分成若干模塊,則一個模塊內(nèi)部的聯(lián)系就是塊內(nèi)聯(lián)系,而穿越模塊邊界的聯(lián)系就是塊間聯(lián)系。模塊化設(shè)計的一個基本思想是系統(tǒng)模塊結(jié)構(gòu)的獨立性,同時模塊的內(nèi)部功能應(yīng)緊密聯(lián)系,不要過于松散。由于模塊之間的互相聯(lián)系越多,模塊的獨立性就越少,因此引入了模塊耦合和內(nèi)聚的概念。衡量模塊的獨立性程度的指標(biāo)是模塊耦合和模塊內(nèi)聚,它們從不同的角度反映了模塊的獨立性。(1)?模塊耦合。模塊間的信息聯(lián)系稱為模塊耦合,用于表征模塊的外部特征,反映出模塊之間聯(lián)系的緊密程度。模塊耦合形式和獨立性如圖10.9所示。(2)?模塊內(nèi)聚。模塊內(nèi)部自身功能的內(nèi)在聯(lián)系稱為模塊內(nèi)聚,也稱為模塊內(nèi)部緊湊性,是用以衡量模塊內(nèi)部自身功能的內(nèi)在聯(lián)系是否緊密的指標(biāo)。模塊內(nèi)聚形式和獨立性如圖10.10所示。4)?模塊設(shè)計優(yōu)化的原則(1)?模塊的獨立性。模塊的獨立性包括內(nèi)聚和耦合兩個指標(biāo)。耦合度越低,相互影響越小,系統(tǒng)獨立性越強(qiáng),故應(yīng)盡量降低模塊間的耦合度;相反,內(nèi)聚性越高,系統(tǒng)獨立性越強(qiáng)。內(nèi)聚性的強(qiáng)弱將直接影響系統(tǒng)功能實現(xiàn)的復(fù)雜性,應(yīng)盡量提高模塊的內(nèi)聚性。根據(jù)“高內(nèi)聚、低耦合”原則來提高模塊的獨立性,可使其便于實現(xiàn)、修改和維護(hù)。(2)?模塊的大小。模塊的大小指的是實現(xiàn)模塊所需編寫程序的行數(shù)。過大的模塊常常使系統(tǒng)分解不充分,其內(nèi)部可能包含了若干部分的功能;過小的模塊有可能降低模塊的獨立性,造成系統(tǒng)接口的復(fù)雜。模塊的大小設(shè)計應(yīng)盡量減少設(shè)計復(fù)雜性,提高程序可讀性和可維護(hù)性。雖然模塊設(shè)計得不能過大也不能過小,但也不能生硬地劃分,設(shè)計的出發(fā)點還應(yīng)是保證功能劃分的合理性。(3)?扇入和扇出。在進(jìn)行系統(tǒng)模塊結(jié)構(gòu)的層次設(shè)計時,模塊的扇入系數(shù)和扇出系數(shù)要合理。扇出系數(shù)就是一個模塊調(diào)用其他模塊的個數(shù)。扇入系數(shù)就是直接調(diào)用該模塊的模塊個數(shù)。經(jīng)驗表明,一個設(shè)計好的系統(tǒng)應(yīng)有較高的扇出系數(shù)和較低的扇入系數(shù),平均扇入、扇出系數(shù)通常是3或4,一般不應(yīng)超過7,否則會引起出錯概率的增加。通常高層扇出系數(shù)較高,中層扇出系數(shù)較少,底層扇入系數(shù)較高。(4)?作用范圍和控制范圍。判斷的作用范圍是指受這個判斷影響的模塊,即操作執(zhí)行依賴于此判定的模塊。模塊的控制范圍是指模塊本身及其所有的下屬模塊。好的模塊設(shè)計應(yīng)滿足判定的作用范圍在模塊的控制范圍之內(nèi),判定所在的模塊在模塊層次結(jié)構(gòu)中的位置不能太高。10.2.4系統(tǒng)流程設(shè)計數(shù)據(jù)流程圖描述了系統(tǒng)從輸入到信息輸出的邏輯過程,模塊結(jié)構(gòu)圖從功能的角度描述了系統(tǒng)的應(yīng)用結(jié)構(gòu),但在系統(tǒng)實施時,還需要了解各個功能模塊之間的數(shù)據(jù)傳遞關(guān)系,因此需要對系統(tǒng)流程進(jìn)行設(shè)計。事實上,MIS中功能模塊數(shù)據(jù)傳遞大多是以數(shù)據(jù)庫表的形式進(jìn)行的,本節(jié)以數(shù)據(jù)流程圖和模塊結(jié)構(gòu)圖為基礎(chǔ),用系統(tǒng)流程圖的方式來描述模塊間的數(shù)據(jù)關(guān)系。系統(tǒng)流程圖的圖例元素如圖10.11所示。從數(shù)據(jù)流程圖到系統(tǒng)流程圖并非僅僅是符號的改換,還應(yīng)考慮哪些處理功能可以合并,或者可以進(jìn)一步分解,然后把有關(guān)的處理看成是系統(tǒng)流程圖中的一個處理功能。圖10.12是一個新系統(tǒng)的數(shù)據(jù)流程圖轉(zhuǎn)換為系統(tǒng)流程圖的示例。圖10.13是某企業(yè)工資管理子系統(tǒng)的系統(tǒng)流程圖。10.2.5代碼設(shè)計為了適應(yīng)計算機(jī)處理信息的特點,在管理信息系統(tǒng)中,對大量的實體信息都要進(jìn)行代碼設(shè)計,以便于檢索,如職工編號、物資編號、部門編號、產(chǎn)品編號、零部件及材料編號等,這一活動被稱為代碼設(shè)計。1.?代碼的作用代碼是人為確定的用以代表客觀事物(實體)名稱、屬性或狀態(tài)等的數(shù)字、字母等符號。代碼以簡短的符號形式代替了具體的文字說明,具有簡潔、形象、便于記憶、便于計算機(jī)識別和處理的特點。在MIS中代碼的作用有以下3個方面:(1)?唯一化。在現(xiàn)實世界中有很多事物,如果我們不加標(biāo)識是無法區(qū)分的,這時機(jī)器處理就十分困難。所以能否將原來不能確定的事物,唯一地加以標(biāo)識是編制代碼的首要任務(wù)。(2)?規(guī)范化。唯一化雖是代碼設(shè)計的首要任務(wù),但如果我們僅僅為了唯一化來編制代碼,那么編出的代碼可能是雜亂無章的,使人無法辨認(rèn),而且使用起來也不方便。(3)?系統(tǒng)化。系統(tǒng)所用代碼應(yīng)盡量標(biāo)準(zhǔn)化。在實際工作中,一般企業(yè)所用的大部分編碼都遵循國家標(biāo)準(zhǔn)或行業(yè)標(biāo)準(zhǔn)。2.?代碼的種類代碼的種類很多,根據(jù)代碼符號的表示形式可分成數(shù)字碼、字符碼和混合碼,根據(jù)代碼的組成和含義可以分成順序碼、區(qū)間碼、助記碼等。1)?順序碼順序碼又稱系列碼,是一種用連續(xù)數(shù)字代表編碼對象的碼。例如:用1代表廠長,2代表科長,3代表科員,4代表生產(chǎn)工人等。優(yōu)點:短而簡單,記錄的定位方法簡單,易于管理。缺點:代碼本身沒有給出對象的任何其他信息(沒有邏輯基礎(chǔ))。2)?區(qū)間碼區(qū)間碼把數(shù)據(jù)項分成若干組,每一區(qū)間代表一個組,碼中數(shù)字的值和位置都代表一定的意義。圖10.14為郵政編碼,這種編碼形式就屬于區(qū)間碼。3)?助記碼助憶碼是為了幫助記憶,用文字、數(shù)字或文字?jǐn)?shù)字結(jié)合進(jìn)行描述的代碼,其特點是可以通過聯(lián)想幫助記憶。3.?代碼設(shè)計的原則代碼設(shè)計必須遵循以下基本原則:(1)?唯一性和統(tǒng)一性。盡管編碼對象有不同的名稱、不同的描述,但編碼必須保證一個編碼對象僅被賦予一個代碼,一個代碼只反映一個編碼對象。(2)?適應(yīng)性和可擴(kuò)性。代碼結(jié)構(gòu)必須能適應(yīng)編碼對象不斷增加的需要,也就是說,必須為新的編碼對象留有足夠的備用碼,以適應(yīng)分類編碼對象的特征或?qū)傩砸约捌湎嗷リP(guān)系可能出現(xiàn)的變化。(3)?可識別性和含義性。代碼應(yīng)盡可能反映分類編碼對象的特點,以助于記憶,便于人們了解和使用,并減少機(jī)器處理時間。(4)?穩(wěn)定性和規(guī)范性。代碼不宜頻繁變動,編碼時應(yīng)考慮其變化的可能性,盡可能保持代碼系統(tǒng)的相對穩(wěn)定性。4.?代碼的設(shè)計步驟代碼設(shè)計可按下列步驟進(jìn)行:(1)?確定代碼對象。(2)?考查是否已有標(biāo)準(zhǔn)代碼。如果國家標(biāo)準(zhǔn)局、某個部門對某些事物已規(guī)定了標(biāo)準(zhǔn)代碼,那么應(yīng)遵循這些標(biāo)準(zhǔn)代碼。如果沒有標(biāo)準(zhǔn)代碼,那么在代碼設(shè)計時要參考國際標(biāo)準(zhǔn)化組織、其他國家、其他部門、其他單位的編碼標(biāo)準(zhǔn),設(shè)計出便于今后標(biāo)準(zhǔn)化的代碼。(3)?根據(jù)代碼的使用范圍、使用時間,根據(jù)實際情況選擇代碼的種類與類型。(4)?考慮檢錯功能。(5)?編寫代碼表。代碼編好后,要編制代碼表,做詳細(xì)說明,通知有關(guān)部門并組織學(xué)習(xí),以便正確使用。10.2.6數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是MIS系統(tǒng)設(shè)計的核心工作之一。從20世紀(jì)70年代以來,由于計算機(jī)硬件技術(shù)的進(jìn)步,數(shù)據(jù)庫技術(shù)得到迅速發(fā)展,MIS中的很多數(shù)據(jù)是以數(shù)據(jù)庫為組織形式來存儲的。數(shù)據(jù)庫設(shè)計是在用戶需求分析的基礎(chǔ)上,進(jìn)行數(shù)據(jù)庫的概念結(jié)構(gòu)、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)三部分內(nèi)容的設(shè)計工作。數(shù)據(jù)庫設(shè)計根據(jù)系統(tǒng)數(shù)據(jù)的加工處理過程、數(shù)據(jù)的分布和存儲形式、安全保密要求等方面,來決定數(shù)據(jù)的整體組織形式、數(shù)據(jù)庫表或文件的存放形式、數(shù)據(jù)庫表的物理結(jié)構(gòu)和相互關(guān)系等一系列的問題。數(shù)據(jù)庫設(shè)計的主要步驟如圖10.15所示。1.?數(shù)據(jù)庫設(shè)計的目標(biāo)數(shù)據(jù)庫設(shè)計是系統(tǒng)設(shè)計的關(guān)鍵環(huán)節(jié)之一,其設(shè)計目標(biāo)是在選定的數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ)上建立數(shù)據(jù)庫,是數(shù)據(jù)存儲的具體實現(xiàn),為數(shù)據(jù)處理過程實現(xiàn)提供數(shù)據(jù)的輸入和輸出的平臺。良好的數(shù)據(jù)庫設(shè)計應(yīng)體現(xiàn)在對系統(tǒng)各類數(shù)據(jù)的管理上,滿足組織管理工作的需求,操作簡單,維護(hù)方便。數(shù)據(jù)庫設(shè)計應(yīng)滿足下列要求:(1)?用戶的應(yīng)用需求。數(shù)據(jù)庫設(shè)計首先應(yīng)滿足用戶的各類信息要求和各種數(shù)據(jù)處理請求,其次要考慮所選用的數(shù)據(jù)庫管理系統(tǒng)性能是否滿足用戶的需求,最后考慮數(shù)據(jù)庫對系統(tǒng)經(jīng)濟(jì)效益的影響。(2)?良好的數(shù)據(jù)庫管理性能。數(shù)據(jù)庫設(shè)計除了滿足用戶的需求外,還應(yīng)保證系統(tǒng)數(shù)據(jù)的完整性、一致性、可靠性、共享性、最小冗余以及數(shù)據(jù)安全,同時還要有良好的數(shù)據(jù)維護(hù)功能。(3)?數(shù)據(jù)庫設(shè)計人員的要求。由于數(shù)據(jù)庫設(shè)計涉及MIS開發(fā)的各個環(huán)節(jié),因此,數(shù)據(jù)庫設(shè)計時要求有系統(tǒng)分析員、設(shè)計員、編程人員、數(shù)據(jù)庫理論專家、系統(tǒng)數(shù)據(jù)庫管理員等人員的共同參與。2.?數(shù)據(jù)庫設(shè)計的步驟數(shù)據(jù)庫設(shè)計過程具有一定的規(guī)律和標(biāo)準(zhǔn)。在設(shè)計過程中,通常采用“分階段法”,即“自頂向下,逐步求精”的設(shè)計原則。將數(shù)據(jù)庫設(shè)計過程分解為若干相互依存的階段,稱之為步驟。每一階段采用不同的技術(shù)、工具解決不同的問題,從而將一個大的問題局部化,減少局部問題對整體設(shè)計的影響及依賴,并利于多人合作。目前數(shù)據(jù)庫設(shè)計主要采用以邏輯數(shù)據(jù)庫設(shè)計和物理數(shù)據(jù)庫設(shè)計為核心的規(guī)范化設(shè)計方法,即將數(shù)據(jù)庫設(shè)計分為需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫物理設(shè)計、數(shù)據(jù)庫實施、數(shù)據(jù)庫運行和維護(hù)六個階段。(1)?需求分析階段。需求分析是對用戶提出的各種要求加以分析,對各種原始數(shù)據(jù)加以綜合、整理,是形成最終設(shè)計目標(biāo)的首要階段,也是整個數(shù)據(jù)庫設(shè)計過程中最困難的階段,是以后各階段任務(wù)的基礎(chǔ)。因此,對用戶的各種需求及數(shù)據(jù)能否作出準(zhǔn)確無誤、充分完備的分析,并在此基礎(chǔ)上形成最終目標(biāo),是整個數(shù)據(jù)庫設(shè)計成敗的關(guān)鍵。(2)?概念結(jié)構(gòu)設(shè)計階段。概念結(jié)構(gòu)設(shè)計是對用戶需求進(jìn)行進(jìn)一步抽象、歸納,并形成獨立于DBMS和有關(guān)軟、硬件的概念數(shù)據(jù)模型的設(shè)計過程,這是對現(xiàn)實世界中具體數(shù)據(jù)的首次抽象,完成從現(xiàn)實世界到信息世界的轉(zhuǎn)化過程。數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計和物理結(jié)構(gòu)設(shè)計,都是以概念結(jié)構(gòu)設(shè)計階段所形成的抽象結(jié)構(gòu)為基礎(chǔ)進(jìn)行的。因此,概念結(jié)構(gòu)設(shè)計是數(shù)據(jù)庫設(shè)計的一個重要環(huán)節(jié)。數(shù)據(jù)庫的概念結(jié)構(gòu)通常用E-R模型等來刻畫。(3)?邏輯結(jié)構(gòu)設(shè)計階段。邏輯結(jié)構(gòu)設(shè)計是將概念結(jié)構(gòu)轉(zhuǎn)化為某個DBMS所支持的數(shù)據(jù)模型,并進(jìn)行優(yōu)化的設(shè)計過程。由于邏輯結(jié)構(gòu)設(shè)計是一個基于具體DBMS的實現(xiàn)過程,所以選擇什么樣的數(shù)據(jù)模型尤為重要,其次是數(shù)據(jù)模型的優(yōu)化。數(shù)據(jù)模型有:層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷?,設(shè)計人員可選擇其中之一,并結(jié)合具體的DBMS實現(xiàn)。在邏輯結(jié)構(gòu)設(shè)計階段后期的優(yōu)化工作,已成為影響數(shù)據(jù)庫設(shè)計質(zhì)量的一項重要工作。(4)?數(shù)據(jù)庫物理設(shè)計階段。數(shù)據(jù)庫物理設(shè)計階段是將邏輯結(jié)構(gòu)設(shè)計階段所產(chǎn)生的邏輯數(shù)據(jù)模型,轉(zhuǎn)換為某種計算機(jī)系統(tǒng)所支持的數(shù)據(jù)庫物理結(jié)構(gòu)的實現(xiàn)過程。這里,數(shù)據(jù)庫在相關(guān)存儲設(shè)備上的存儲結(jié)構(gòu)和存取方法,稱為數(shù)據(jù)庫的物理結(jié)構(gòu)。完成物理結(jié)構(gòu)設(shè)計后,對該物理結(jié)構(gòu)做出相應(yīng)的性能評價,若評價結(jié)果符合原設(shè)計要求,則進(jìn)一步實現(xiàn)該物理結(jié)構(gòu);否則,對該物理結(jié)構(gòu)做出相應(yīng)的修改。屬于最初設(shè)計問題所導(dǎo)致的物理結(jié)構(gòu)的缺陷,必須返回到概念設(shè)計階段修改其概念數(shù)據(jù)模型或重新建立概念數(shù)據(jù)模型,如此反復(fù),直至評價結(jié)構(gòu)最終滿足原設(shè)計要求為止。(5)?數(shù)據(jù)庫實施階段。數(shù)據(jù)庫實施階段即數(shù)據(jù)庫調(diào)試、試運行階段。一旦數(shù)據(jù)庫物理結(jié)構(gòu)形成,就可以用已選定的DBMS來定義、描述相應(yīng)的數(shù)據(jù)庫結(jié)構(gòu),裝入數(shù)據(jù)庫數(shù)據(jù),以生成完整的數(shù)據(jù)庫,編制有關(guān)應(yīng)用程序,進(jìn)行聯(lián)機(jī)調(diào)試并轉(zhuǎn)入試運行,同時進(jìn)行時間、空間等性能分析。若不符合要求,則需調(diào)整物理結(jié)構(gòu)、修改應(yīng)用程序,直至高效、穩(wěn)定、正確地運行該數(shù)據(jù)庫系統(tǒng)為止。(6)?數(shù)據(jù)庫運行和維護(hù)階段。數(shù)據(jù)庫實施階段結(jié)束,標(biāo)志著數(shù)據(jù)庫系統(tǒng)投入正常運行工作的開始。隨著對數(shù)據(jù)庫設(shè)計的深刻了解和設(shè)計水平的不斷提高,人們已經(jīng)充分認(rèn)識到數(shù)據(jù)庫運行和維護(hù)工作與數(shù)據(jù)庫設(shè)計的緊密聯(lián)系。數(shù)據(jù)庫是一種動態(tài)和不斷完善的運行過程,運行和維護(hù)階段的開始,并不意味著設(shè)計過程的結(jié)束,哪怕只有微小的結(jié)構(gòu)改變,也可能會引起對物理結(jié)構(gòu)的調(diào)整、修改,甚至物理結(jié)構(gòu)的完全改變,因此數(shù)據(jù)庫運行和維護(hù)階段是保證數(shù)據(jù)庫日?;顒拥囊粋€重要階段。3.?概念結(jié)構(gòu)設(shè)計階段采用E-R方法進(jìn)行數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計,建立概念模型。E-R方法是設(shè)計概念模型時常用的方法。用設(shè)計好的E-R圖再附相應(yīng)的說明書可作為階段成果。1)?建立局部概念模型建立局部E-R圖的步驟如下:(1)?確定局部概念模型的范圍。(2)?定義實體。(3)?定義聯(lián)系。(4)?確定屬性。確定屬性的原則是:屬性是不可再分解的語義單位,實體與屬性間應(yīng)是1∶n的關(guān)聯(lián),隸屬不同實體型的屬性間無直接關(guān)聯(lián),不宜隸屬任一實體型的屬性應(yīng)作為聯(lián)系的屬性。(5)?逐一畫出所有的局部E-R圖,附以相應(yīng)的說明文件。2)?建立全局概念模型建立全局E-R圖的步驟如下:(1)?確定公共實體類型。檢查存在于多個局部E-R圖的公共實體類型。這里的公共實體類型是指同名的實體類型和具有相同鍵的實體類型。(2)?合并局部E-R圖。把局部E-R圖逐一合并到全局E-R圖中,對每個局部E-R圖,首先合并公共實體類型,其次合并那些有聯(lián)系的局部結(jié)構(gòu),最后加入其他獨立的局部結(jié)構(gòu)。(3)?消除不一致因素。局部E-R圖間存在的不一致又稱沖突,有命名沖突、屬性沖突、結(jié)構(gòu)沖突等。(4)?優(yōu)化全局E-R圖。對并得到的全局E-R圖進(jìn)行優(yōu)化。(5)?畫出全局E-R圖,附以相應(yīng)的說明文件。3)?概念模型的優(yōu)化與評審一個好的全局E-R圖除能反映用戶功能需求外,還應(yīng)滿足下列條件:實體類型個數(shù)盡可能少;實體類型所含屬性盡可能少;實體類型間聯(lián)系無冗余。優(yōu)化就是要達(dá)到這三個目的,即相關(guān)實體類型的合并、冗余屬性的消除、冗余聯(lián)系的消除。但要注意效率,根據(jù)具體情況可存在適當(dāng)冗余。全局E-R圖的優(yōu)化原則主要如下:(1)?實體類型的合并。這里的合并不是前面提到的“公共實體類型”的合并,而是相關(guān)實體類型的合并。在公共模型中,實體類型最終轉(zhuǎn)換成關(guān)系模式,涉及多個實體類型的信息要通過連接操作獲得。因而減少實體類型個數(shù),可減少連接的開銷,提高處理效率。一般可以把1∶1聯(lián)系的兩個類型合并。具有相同碼的實體類型常常從不同角度刻畫現(xiàn)實世界,如果經(jīng)常需要同時處理這些實體類型,那么也有必要把它們合并成一個實體類型,但這時可能產(chǎn)生大量空值。因此,要對存儲代價、查詢效率進(jìn)行權(quán)衡。(2)?冗余屬性的消除。通常在各個局部結(jié)構(gòu)中是不允許冗余屬性存在的。但在綜合成全局E-R模式后,可能產(chǎn)生全局范圍內(nèi)的冗余屬性。各局部結(jié)構(gòu)自身都無冗余,但綜合成一個全局E-R模式時,在校學(xué)生數(shù)即成為冗余屬性,應(yīng)予消除。一般同一碼的屬性出現(xiàn)在幾個實體模型中,或者一個屬性值可從其他屬性的值導(dǎo)出,此時應(yīng)把冗余的屬性從全局模式中去掉。冗余屬性消除與否,也取決于它對存儲空間、訪問效率和維護(hù)代價的影響。有時為了兼顧訪問效率,有意保留冗余屬性,這會造成存儲空間的浪費和維護(hù)代價的提高。如果人為地保留了一些冗余數(shù)據(jù),則應(yīng)把數(shù)據(jù)字典中數(shù)據(jù)關(guān)聯(lián)的說明作為完整性約束條件。(3)?冗余聯(lián)系的消除。在全局模式中可能存在有冗余的聯(lián)系,通常利用規(guī)范化理論中函數(shù)依賴的概念消除冗余聯(lián)系。4.?數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計在邏輯設(shè)計階段,將概念設(shè)計階段以概念數(shù)據(jù)模型表示的、與DBMS無關(guān)的數(shù)據(jù)模式,轉(zhuǎn)換成以DBMS的邏輯數(shù)據(jù)模型表示的邏輯模式,并對其進(jìn)行優(yōu)化。這些模式在功能、性能、完整性和一致性約束及數(shù)據(jù)庫可擴(kuò)充性等方面均應(yīng)滿足用戶提出的要求。1)?關(guān)系數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計過程(1)?從E-R圖導(dǎo)出初始關(guān)系模式。將E-R圖按規(guī)則轉(zhuǎn)換成關(guān)系模式。(2)?規(guī)范化處理。消除異常,改善完備性、一致性和存儲效率,一般達(dá)到第三范式要求即可。(3)?模式評價。模式評價的目的是檢查數(shù)據(jù)庫模式是否滿足用戶的要求,包括功能評價和性能評價。(4)?優(yōu)化模式。對于設(shè)計過程中疏漏的新增關(guān)系或?qū)傩?,性能不好的要采用合并、分解或選用其他結(jié)構(gòu)。(5)?形成邏輯結(jié)構(gòu)設(shè)計說明書。2)?E-R模型向關(guān)系數(shù)據(jù)模型的轉(zhuǎn)換關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。E-R圖則是由實體、實體的屬性和實體之間的聯(lián)系三個要素組成的。所以要將E-R圖轉(zhuǎn)換成關(guān)系模型,實際上就是要將實體、屬性和實體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。(1)?1∶1聯(lián)系的轉(zhuǎn)換方法。一個1∶1聯(lián)系可以轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。1∶1聯(lián)系的E-R圖如圖10.18所示。根據(jù)E-R圖,轉(zhuǎn)換后的關(guān)系模型如下:工廠(廠號,廠名,地點)廠長(姓名,職工號,年齡)(2)?1∶n聯(lián)系的轉(zhuǎn)換方法。在向關(guān)系模型轉(zhuǎn)換時,實體間的1∶n關(guān)系可以有兩種轉(zhuǎn)換方法:一種方法是將聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系,其關(guān)系的屬性由與該聯(lián)系相連的各實體集的鍵以及聯(lián)系本身的屬性組成,而該關(guān)系的鍵為n端實體集的鍵;另一種方法是在n端實體集中增加新屬性,新屬性由聯(lián)系對應(yīng)的1端實體集的鍵和聯(lián)系自身的屬性構(gòu)成,新增屬性后原關(guān)系的鍵不變。1∶n聯(lián)系的E-R圖如圖10.19所示。轉(zhuǎn)換后的關(guān)系模型如下:方案一:1∶n聯(lián)系形成的關(guān)系獨立存在。倉庫(倉庫號,地點,面積)商品(貨號,品名,價格)倉儲(倉庫號,貨號,數(shù)量)方案二:聯(lián)系形成的關(guān)系與n端對象合并。倉庫(倉庫號,地點,面積)商品(貨號,品名,價格,倉庫號,數(shù)量)(3)?m∶n聯(lián)系的轉(zhuǎn)換方法。在向關(guān)系模型轉(zhuǎn)換時,一個m∶n聯(lián)系轉(zhuǎn)換為一個關(guān)系。轉(zhuǎn)換方法為:與該聯(lián)系相連的各實體集的鍵以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,新關(guān)系的鍵為兩個相連實體鍵的組合。m∶n聯(lián)系的E-R圖如圖10.20所示。轉(zhuǎn)換后的關(guān)系模型如下:教師(職工號,姓名,職稱)課程(課程號,課程名,學(xué)時)授課(職工號,課程號,成績)5.?數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計物理結(jié)構(gòu)設(shè)計是根據(jù)數(shù)據(jù)庫管理系統(tǒng)的特征,確定數(shù)據(jù)庫的物理結(jié)構(gòu)即存儲結(jié)構(gòu)。對一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(存儲結(jié)構(gòu)與存取方法)的過程,就是數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計。1)?物理結(jié)構(gòu)設(shè)計的內(nèi)容物理結(jié)構(gòu)設(shè)計依賴于具體的DBMS系統(tǒng)。要著手物理數(shù)據(jù)庫設(shè)計,就必須充分了解所用DBMS的內(nèi)部特征,特別是文件組織方式、索引和它所支持的查詢處理技術(shù)。通常關(guān)系數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計的主要內(nèi)容有:為關(guān)系模式選擇存取方法,設(shè)計關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲結(jié)構(gòu)。2)?存儲結(jié)構(gòu)的選擇物理結(jié)構(gòu)設(shè)計的主要目標(biāo)之一就是以有效方式存儲數(shù)據(jù)。其主要設(shè)計內(nèi)容包括數(shù)據(jù)在物理設(shè)備上的存放結(jié)構(gòu)和存取方法的設(shè)計,以獲得數(shù)據(jù)庫的最佳存取和存儲效率。3)?性能評價一個數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計的好壞,可以通過時間、空間、維護(hù)開銷和各種用戶要求等方面來衡量。(1)?存取效率。高效的物理結(jié)構(gòu)設(shè)計能提高存取速度。(2)?存儲效率。高效的物理結(jié)構(gòu)設(shè)計能為系統(tǒng)節(jié)省存儲空間。(3)?其他性能。高效的物理結(jié)構(gòu)設(shè)計能降低維護(hù)成本和開銷。10.2.7輸出設(shè)計輸出設(shè)計的重要性顯而易見。MIS只有通過輸出才能為用戶服務(wù)。信息系統(tǒng)能否為用戶提供準(zhǔn)確、及時、適用的信息是評價信息系統(tǒng)優(yōu)劣的標(biāo)準(zhǔn)之一。因此,必須十分重視輸出設(shè)計,從系統(tǒng)開發(fā)的角度,輸出決定輸入,即輸入信息只有根據(jù)輸出要求才能確定。輸出設(shè)計包括以下幾方面的內(nèi)容:(1)?確定輸出內(nèi)容。用戶是輸出信息的主要使用者。因此,進(jìn)行輸出內(nèi)容的設(shè)計,首先要確定用戶在使用信息方面的要求,包括使用目的、輸出速度、頻率、數(shù)量、安全性要求等。根據(jù)用戶要求,設(shè)計輸出信息的內(nèi)容,包括信息形式(表格、圖形、文字),輸出項目及數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型、位數(shù)及取值范圍,數(shù)據(jù)的生成途徑,完整性及一致性的考慮等。(2)?選擇輸出設(shè)備與介質(zhì)。常用的輸出設(shè)備有顯示終端、打印機(jī)、磁帶機(jī)、磁盤及繪圖儀等輸出設(shè)備。輸出介質(zhì)有紙張、磁帶、磁盤、光盤、多媒體介質(zhì)等。這些設(shè)備和介質(zhì)各有特點,應(yīng)根據(jù)用戶對輸出信息的要求,結(jié)合現(xiàn)有設(shè)備和資金條件選擇。(3)?確定輸出格式。提供給人的信息都要進(jìn)行格式設(shè)計。輸出格式要滿足使用者的要求和習(xí)慣,達(dá)到格式清晰、美觀、易于閱讀和理解的要求。報表是最常用的一種輸出形式。報表的格式因用途不同而有所差異,但一般由三部分組成:表頭、表體和表尾。表頭部分主要是標(biāo)題。表體部分是整個表格的實體,用于反映表格的內(nèi)容。表尾是一些補(bǔ)充說明或腳注。10.2.8輸入設(shè)計要輸出高質(zhì)量的信息,首先就要輸入高質(zhì)量的信息。輸入設(shè)計的目標(biāo)是在保證輸入信息正確和滿足輸出需求的前提下,做到輸入簡便、迅速、經(jīng)濟(jì)。數(shù)據(jù)輸入的準(zhǔn)確性和簡潔性直接影響到系統(tǒng)使用時的效果和效率。因此,必須科學(xué)地進(jìn)行輸入設(shè)計,使之正確、及時、方便地收集及錄入信息。輸入設(shè)計的主要工作和基本步驟包括:確定輸入內(nèi)容、輸入格式、輸入方式,進(jìn)行輸入數(shù)據(jù)的校驗等。1.?輸入設(shè)計的原則輸入設(shè)計應(yīng)遵循以下基本原則:(1)?最小量原則。在保證滿足處理要求的前提下使輸入量最小。輸入量越小,出錯機(jī)會越少,花費時間越少,數(shù)據(jù)一致性越好。(2)?簡單性原則。輸入的準(zhǔn)備、輸入過程應(yīng)盡量容易,以減少錯誤的發(fā)生。(3)?早校驗原則。對輸入數(shù)據(jù)的校驗盡量接近原數(shù)據(jù)發(fā)生點,使錯誤能及時得到改正。(4)?少轉(zhuǎn)換原則。輸入數(shù)據(jù)盡量用其處理所需形式記錄,以免數(shù)據(jù)轉(zhuǎn)換介質(zhì)時發(fā)生錯誤。2.?輸入設(shè)計的內(nèi)容輸入設(shè)計包括以下幾方面的內(nèi)容:(1)?確定輸入的內(nèi)容。輸入內(nèi)容包括確定輸入數(shù)據(jù)項名稱、數(shù)據(jù)內(nèi)容、精度、數(shù)值范圍。(2)?確定數(shù)據(jù)的輸入方式。數(shù)據(jù)的輸入方式與數(shù)據(jù)發(fā)生地點、發(fā)生時間、處理的緊急程度有關(guān)。如果數(shù)據(jù)的發(fā)生地點遠(yuǎn)離計算機(jī)機(jī)房,發(fā)生時間是隨機(jī)的,并要求立即予以處理,則采用聯(lián)機(jī)終端輸入。對于數(shù)據(jù)發(fā)生后不需要立即處理的,可以采用脫機(jī)輸入。(3)?確定輸入數(shù)據(jù)的記錄格式。這是輸入設(shè)計的主要內(nèi)容之一。記錄格式是人機(jī)之間的銜接形式,因而十分重要,設(shè)計得好,容易控制工作流程,減少數(shù)據(jù)冗余,增加輸入的準(zhǔn)確性,并且容易進(jìn)行數(shù)據(jù)校驗。(4)?確定輸入數(shù)據(jù)的正確性校驗。這也是輸入設(shè)計的一項重要內(nèi)容。我們已經(jīng)強(qiáng)調(diào),輸入設(shè)計最重要的問題是保證輸入數(shù)據(jù)的正確性。對數(shù)據(jù)進(jìn)行必要的校驗,是保證輸入正確的重要環(huán)節(jié)。(5)?確定輸入設(shè)備。隨著信息技術(shù)的發(fā)展,輸入設(shè)備也在不斷更新。設(shè)備的選用應(yīng)考慮以下因素:輸入的數(shù)據(jù)量與頻度;數(shù)據(jù)的來源、形式、收集環(huán)境;輸入類型、格式的靈活程度;輸入速度和準(zhǔn)確性要求等。3.?輸入格式的設(shè)計數(shù)據(jù)輸入格式應(yīng)針對輸入設(shè)備的特點進(jìn)行設(shè)計。若選用鍵盤方式人機(jī)交互輸入數(shù)據(jù),則輸入格式的編排應(yīng)盡量做到計算機(jī)屏幕顯示格式與單據(jù)格式相一致。輸入數(shù)據(jù)一般可采用“填表式”的形式,由用戶逐項輸入,輸入完畢后確認(rèn)數(shù)據(jù)是否正確無誤。4.?輸入方式的設(shè)計數(shù)據(jù)輸入方式有外部輸入(鍵盤輸入、掃描儀輸入、磁盤導(dǎo)入等)和計算機(jī)輸入(網(wǎng)絡(luò)傳送數(shù)據(jù)等),輸入設(shè)備有鍵盤、鼠標(biāo)、掃描儀、光電閱讀器、光筆、磁盤、磁帶、網(wǎng)絡(luò)等。信息系統(tǒng)對數(shù)據(jù)的準(zhǔn)確性要求較高,應(yīng)選擇從條碼閱讀器、子系統(tǒng)或網(wǎng)絡(luò)終端直接傳送的方式,而少用人工輸入的方式,避免數(shù)據(jù)輸入錯誤所造成的損失。10.2.9處理過程設(shè)計總體設(shè)計將系統(tǒng)分解成許多模塊,并決定了每個模塊的外部特征:功能和界面。計算機(jī)處理過程的設(shè)計則要確定每個模塊的內(nèi)部特征,即內(nèi)部的執(zhí)行過程,包括局部的數(shù)據(jù)組織、控制流、每一步的具體加工要求及種種實施細(xì)節(jié)。通過這樣的設(shè)計,為編寫程序制訂一個周密的計劃。當(dāng)然,對于一些功能比較簡單的模塊,也可以直接編寫程序。處理過程設(shè)計的主要內(nèi)容如下:(1)?選擇或設(shè)計算法。算法設(shè)計涉及所開發(fā)項目的具體要求和每個模塊的具體功能。為每一模塊設(shè)計可靠的、高效的算法或處理流程是這一活動的目標(biāo)。(2)?精確地表達(dá)算法。對于算法需要給出適當(dāng)?shù)乃惴ū磉_(dá)形式,或者說應(yīng)該選擇某種表達(dá)工具來描述處理流程。目前常用的程序結(jié)構(gòu)流程的表達(dá)工具有程序流程圖、盒圖和PAD過程描述工具。1.?流程圖流程圖(Flowchart)又稱為程序框圖,是歷史最久、流行最廣的一種圖形表示方法。流程圖包括三種基本成分:(1)?加工步驟,用方框表示。(2)?邏輯條件,用菱形表示。(3)?控制流,用箭頭表示。使用圖10.21所示的幾種標(biāo)準(zhǔn)結(jié)構(gòu)反復(fù)嵌套而繪制的流程圖,稱為結(jié)構(gòu)化程序流程圖。2.?盒圖盒圖用方框圖代替?zhèn)鹘y(tǒng)的流程圖,是目前常用的程序流程設(shè)計工具。下面列出幾種基本控制結(jié)構(gòu)的圖形構(gòu)件。(1)?選擇型(if-then-else),如圖10.22所示。(2)?多分支選擇型(CASE型),如圖10.23所示。(3)?循環(huán)結(jié)構(gòu)(while循環(huán)型、until循環(huán)型),如圖10.24所示。3.?程序設(shè)計說明書程序設(shè)計說明書是用來給處理過程下定義的書面文件,它以每個處理過程為單位。程序設(shè)計說明書由系統(tǒng)設(shè)計員編寫,供程序員使用。程序員根據(jù)說明書指示內(nèi)容進(jìn)行程序設(shè)計。程序設(shè)計說明書主要包括以下內(nèi)容:(1)?程序名。(2)?所屬系統(tǒng)及子系統(tǒng)名。(3)?程序的功能。(4)?程序的輸入輸出數(shù)據(jù)關(guān)系圖。(5)?輸入文件和輸出文件的格式。(6)?程序處理說明(包括計算公式、決策表以及控制方法等)。10.3面向?qū)ο蟮脑O(shè)計10.3.1面向?qū)ο笤O(shè)計任務(wù)面向?qū)ο笙到y(tǒng)是由若干對象協(xié)作完成的,其中每個對象都封裝了其自身的數(shù)據(jù)和處理邏輯。系統(tǒng)分析員通過類來定義對象包含的數(shù)據(jù)和程序邏輯的結(jié)構(gòu),用一個類描述一個可執(zhí)行對象的結(jié)構(gòu),只有當(dāng)系統(tǒng)開始運行時,對象才能被創(chuàng)建,這個創(chuàng)建過程稱為類的實例化。面向?qū)ο笤O(shè)計的目標(biāo)是識別并確定所有的對象,并生成每個用例。除了識別類以外,另一個設(shè)計目標(biāo)是用足夠的細(xì)節(jié)來說明每一個類,使得程序員能理解這些對象是如何協(xié)同工作以生成用例的,并可以為每一個類編寫面向?qū)ο蟮拇a。與結(jié)構(gòu)化分析和設(shè)計方法不同的是,面向?qū)ο蠓椒◤南到y(tǒng)分析到設(shè)計是一個逐漸擴(kuò)總、不斷完善的過程,面向?qū)ο蟮姆治龊驮O(shè)計之間沒有明顯的分界線。在結(jié)構(gòu)化方法中,雖然系統(tǒng)設(shè)計也需要系統(tǒng)分析的結(jié)果作為輸入,但兩個階段所使用的術(shù)語、描述工具等存在很大的區(qū)別,這必然增加了系統(tǒng)分析和設(shè)計實現(xiàn)轉(zhuǎn)換和銜接的難度。在面向?qū)ο蟮拈_發(fā)方法中,系統(tǒng)分析的結(jié)果多數(shù)都可以直接映射成設(shè)計結(jié)果,并在設(shè)計過程中不斷擴(kuò)充和改進(jìn),從而進(jìn)一步加深對需求的理解。所以,面向?qū)ο蟮姆治雠c設(shè)計是一個反復(fù)迭代的過程。同時,基于面向?qū)ο蠓椒ㄔ诟拍詈捅硎痉椒ㄉ系囊恢滦?,可以很容易實現(xiàn)各個開發(fā)階段之間平滑過渡。面向?qū)ο蟮南到y(tǒng)設(shè)計一般可以分成兩個階段,即總體設(shè)計和詳細(xì)設(shè)計。(1)?總體設(shè)計??傮w設(shè)計階段的主要任務(wù)是設(shè)計一個簡單、清晰的系統(tǒng)體系結(jié)構(gòu),包括系統(tǒng)結(jié)構(gòu)設(shè)計、子系統(tǒng)設(shè)計、包的設(shè)計等內(nèi)容。(2)?詳細(xì)設(shè)計。詳細(xì)設(shè)計階段的主要任務(wù)是識別出系統(tǒng)運行過程所使用的類以及類之間的關(guān)系,并為所有的類給出盡可能詳細(xì)的定義和規(guī)范的說明,包括設(shè)計類圖的建立、界面設(shè)計、數(shù)據(jù)庫設(shè)計等。10.3.2系統(tǒng)架構(gòu)設(shè)計MIS架構(gòu)設(shè)計是總體設(shè)計階段的重要任務(wù)之一,它在系統(tǒng)開發(fā)中占有很重要的地位,架構(gòu)設(shè)計的好壞、合理性以及適用性將直接影響系統(tǒng)的應(yīng)用情況。1.?相關(guān)概念下面介紹幾個有關(guān)MIS架構(gòu)的概念。(1)?組件。組件實質(zhì)上就是對象,它是數(shù)據(jù)和方法的封裝。在不同的面向?qū)ο箝_發(fā)環(huán)境中,組件有不同的叫法,如在VB程序語言中叫控件。(2)?模塊。模塊是指一組能夠完成一定系統(tǒng)功能的程序語句,包括輸入和輸出、邏輯功能、內(nèi)部數(shù)據(jù)、運行程序四個部分,其中輸入和輸出、邏輯功能屬于外部屬性,而內(nèi)部數(shù)據(jù)、運行程序?qū)儆趦?nèi)部屬性。(3)?模式。把解決某一類問題的方法歸納、總結(jié)到一定的理論高度,這就是所謂的模式。因此模式實際上就是一種解決某一問題的方法理論。在UML中,模式用參數(shù)化協(xié)作來表示,但UML不能直接對模式的其他方面進(jìn)行建模。此外,架構(gòu)也是具有模式的,架構(gòu)模式提供了軟件系統(tǒng)基本的結(jié)構(gòu)組織方案,不僅包含了一些預(yù)定義的子系統(tǒng)及其任務(wù),還包括了用于組織之間關(guān)系的規(guī)則。(4)?架構(gòu)。架構(gòu)用來指導(dǎo)大型軟件系統(tǒng)的設(shè)計,是由一系列的相關(guān)抽象模式組成的。軟件架構(gòu)可以描述出整個系統(tǒng)的組成,即一些抽象組件。因此可以說軟件架構(gòu)是一個系統(tǒng)的草圖。2.?系統(tǒng)結(jié)構(gòu)設(shè)計MIS系統(tǒng)的軟件結(jié)構(gòu)一般有客戶機(jī)/服務(wù)器(Client/Server,C/S)體系結(jié)構(gòu)、三層體系結(jié)構(gòu)。(1)?客戶機(jī)/服務(wù)器(c/s)體系結(jié)構(gòu)。該結(jié)構(gòu)可實現(xiàn)分布在不同位置的程序之間的相互連接??蛻魴C(jī)作為服務(wù)請求器,用于實現(xiàn)數(shù)據(jù)處理、數(shù)據(jù)表示及用戶接口功能,它將用戶的要求提交給服務(wù)器程序,再將服務(wù)器程序返回的結(jié)果以特定的形式顯示給用戶。服務(wù)器作為服務(wù)供應(yīng)商,對數(shù)據(jù)進(jìn)行存儲和管理,它接收客戶機(jī)程序提出的服務(wù)請求,進(jìn)行相應(yīng)的處理,再將結(jié)果返回給客戶機(jī)程序,如圖10.25所示。(2)?三層體系結(jié)構(gòu)。該結(jié)構(gòu)是在客戶端與數(shù)據(jù)庫之間加入了一個中間層,也叫組件層。通常情況下,客戶端不直接與數(shù)據(jù)庫進(jìn)行交互。第一層用于客戶機(jī)與用戶的交互,是用戶直接操作的界面層,又稱表示層;第二層是進(jìn)行數(shù)據(jù)業(yè)務(wù)邏輯處理的業(yè)務(wù)邏輯層,又稱中間層、應(yīng)用服務(wù)器層;第三層為數(shù)據(jù)存儲層,由數(shù)據(jù)庫服務(wù)器負(fù)責(zé)存儲大量的數(shù)據(jù)信息和數(shù)據(jù)邏輯,如圖10.26所示。3.?子系統(tǒng)設(shè)計對一個業(yè)務(wù)比較多的系統(tǒng)來說,不可能把所有的業(yè)務(wù)實體和業(yè)務(wù)過程放在一個系統(tǒng)中,否則會導(dǎo)致系統(tǒng)過于復(fù)雜而難以使用,因此考慮把系統(tǒng)分解成若干個子系統(tǒng)。1)?子系統(tǒng)劃分子系統(tǒng)的劃分方法比較多,可以按照系統(tǒng)的部門劃分,將同一部門應(yīng)用的軟件歸為一個子系統(tǒng);也可以按照功能來劃分,將具有相似功能的模塊放在一個子系統(tǒng)中。此外,子系統(tǒng)的劃分也可以利用系統(tǒng)分析階段對用例分類的結(jié)果。子系統(tǒng)劃分完成后,還要確定子系統(tǒng)之間的關(guān)系,而且在確定子系統(tǒng)關(guān)系時,注意盡量使子系統(tǒng)之間的關(guān)系保持低耦合。2)?子系統(tǒng)接口設(shè)計一般而言,一個系統(tǒng)的各個子系統(tǒng)之間往往存在一定的依賴關(guān)系,它們在業(yè)務(wù)操作中相互關(guān)聯(lián)。對于這種子系統(tǒng)間的關(guān)聯(lián),在設(shè)計時需要定義接口。為了降低各子系統(tǒng)之間的耦合性,子系統(tǒng)之間的通信只允許通過接口來實現(xiàn)。定義的接口中包含了子系統(tǒng)間的通信形式和通過子系統(tǒng)邊界的消息。外部子系統(tǒng)只能通過接口間接使用子系統(tǒng)提供的服務(wù),而不能直接操作子系統(tǒng)的內(nèi)容。因此,只要子系統(tǒng)對外接口不改變,不管子系統(tǒng)內(nèi)部發(fā)生怎樣的變化,也不會對依賴于該子系統(tǒng)的其他子系統(tǒng)產(chǎn)生影響。在UML中,子系統(tǒng)及其關(guān)系可使用組件圖來表示,組件圖由組件及組件間的接口和依賴關(guān)系構(gòu)成,如圖10.27所示。子系統(tǒng)接口的內(nèi)容主要包括以下幾個方面:(1)?操作的名稱。(2)?操作的返回值及其類型。(3)?操作時使用的參數(shù)名及參數(shù)類型。(4)?操作主要做什么(給出處理的文字描述,包括關(guān)鍵的算法)。4.?包的設(shè)計在系統(tǒng)分析階段使用分析包對系統(tǒng)的邏輯結(jié)構(gòu)進(jìn)行了分解,進(jìn)入設(shè)計階段后還要繼續(xù)使用包的概念對子系統(tǒng)進(jìn)行組織設(shè)計。包圖是UML中一個高層次的圖,它使得設(shè)計人員可以將具有一定關(guān)聯(lián)性的類聯(lián)系起來。將系統(tǒng)中的類進(jìn)行分組或分包,可以使得模型元素在邏輯上更有秩序,也體現(xiàn)了系統(tǒng)結(jié)構(gòu)“高內(nèi)聚、低耦合”的原則。設(shè)計階段和分析階段的包的表示方法基本相同,同樣是使用一個制表方框來表示,包名一般放在制表方框的標(biāo)簽上,也可放在方框內(nèi)部。每個設(shè)計類要根據(jù)它們所屬的具體層次放在不同的包內(nèi)。在這個過程中,需要分析每個用例的設(shè)計類圖和交互圖,最終繪制出系統(tǒng)的包圖。在包與包之間,或者包中的類與類之間一般存在一定的依賴關(guān)系。這表示如果系統(tǒng)中的一個包(或類)發(fā)生了變化,那么另一個包(或類)也一定會發(fā)生變化。在UML圖中,依賴關(guān)系在包圖中一般用虛箭線來表示。其中箭頭指向被依賴的包,箭尾連接著有依賴性的包。圖10.28是企業(yè)管理信息系統(tǒng)按照功能劃分子系統(tǒng)的包圖。10.3.3設(shè)計類的建立在系統(tǒng)分析階段所構(gòu)造的分析模型稱為分析類圖,進(jìn)入設(shè)計階段后需要將其轉(zhuǎn)變?yōu)樵O(shè)計類圖。在UML中,雖然分析類與設(shè)計類的符號表示形式并沒有什么不同,但兩者在本質(zhì)上是有區(qū)別的。例如,設(shè)計模型和分析模型的目標(biāo)不同,分析模型描述的是用戶環(huán)境下的業(yè)務(wù)“系統(tǒng)”,而設(shè)計模型更多的是從系統(tǒng)、軟件角度出發(fā)來描述。針對設(shè)計類的眾多不同類型,UML提供了一種特殊符號,稱為構(gòu)造型,用來為不同的類型指定不同的構(gòu)造型,通常用“《》”表示。構(gòu)造型根據(jù)模型元素特定的類型進(jìn)行分類,并將類型的名稱放到“《》”中。在系統(tǒng)分析階段,分析類有實體類、控制類、邊界類三種類型,設(shè)計類同樣也包括這三種類型。采用如圖10.30所示的表示形式,這種表示方法更接近于軟件類。從分析類圖到設(shè)計類圖的轉(zhuǎn)化步驟如下:(1)?把分析類圖中的類和類之間的關(guān)系直接轉(zhuǎn)到設(shè)計類圖中。把系統(tǒng)分析中確定的各個分析類、類之間的關(guān)系以及類的一些屬性和方法直接轉(zhuǎn)到設(shè)計類圖當(dāng)中,從而構(gòu)建出初步的設(shè)計類圖,這些類中既包括了實體類,也包括了邊界類和控制類。(2)?補(bǔ)充設(shè)計類中的屬性及屬性類型。分析類圖中所表示的屬性都是分析類的最主要和最基本的屬性,并不全面,需要在設(shè)計過程中進(jìn)一步補(bǔ)充。與此同時,還要確定這些屬性所屬的類型。在面向?qū)ο蟮木幊陶Z言中既可以使用那些通用的屬性類型,包括日期型、布爾型、整數(shù)型等,也可以使用一些用戶定義的屬性類型。除此之外,還要定義每個屬性的可見性(公有的、私有的和保護(hù)的),在UML中分別表示為“+”“?-?”“#”。(3)?關(guān)聯(lián)關(guān)系設(shè)計。在設(shè)計類圖中需要為關(guān)聯(lián)類之間添加導(dǎo)航箭頭,表示源類和目的類之間所發(fā)送消息的方向。注意:兩個對象之間需要進(jìn)行協(xié)作時,則要建立關(guān)聯(lián)關(guān)系。如果協(xié)作只在一個方向進(jìn)行,則建立單向關(guān)聯(lián)。順序圖也描述了設(shè)計對象間的相互作用。研究順序圖的消息有助于發(fā)現(xiàn)類之間的關(guān)聯(lián)。也可以根據(jù)順序圖或協(xié)作圖確定關(guān)聯(lián)關(guān)系。(4)?添加邊界類與控制類之間的依賴關(guān)系。為了說明邊界類與控制類之間的依賴關(guān)系,還需畫出它們之間的依賴關(guān)系線。10.3.4面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計目前大多數(shù)DBMS數(shù)據(jù)庫都支持面向?qū)ο蟮脑O(shè)計方法。面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計的主要任務(wù)就是將對象模型映射成數(shù)據(jù)庫模式。相對于結(jié)構(gòu)化數(shù)據(jù)庫設(shè)計而言,面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計方法更具優(yōu)勢,因為它可以實現(xiàn)應(yīng)用系統(tǒng)對象到數(shù)據(jù)庫對象的直接映射,轉(zhuǎn)換得很自然、方便。同時,數(shù)據(jù)庫邏輯模型又可以直接模擬系統(tǒng)中各個實體對象的關(guān)系。面向?qū)ο蟮南到y(tǒng)分析階段建立的實體類圖,用于描述實體類及其之間的靜態(tài)關(guān)系,它不僅定義了系統(tǒng)中的實體類,以表示類之間的聯(lián)系(關(guān)聯(lián)、依賴、聚集等),還闡述了類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。由于系統(tǒng)數(shù)據(jù)庫中的每張表都有對應(yīng)的實體類,因此,在面向?qū)ο箝_發(fā)方法中通常采用實體類圖來描述數(shù)據(jù)庫結(jié)構(gòu),它不僅指明了系統(tǒng)數(shù)據(jù)庫中有哪些表和表的具體組成,還表明了各表之間的聯(lián)系。1.?對象在數(shù)據(jù)庫中的存放策略用關(guān)系數(shù)據(jù)庫存放對象的基本策略是:把由每個類直接定義并需要永久存儲的全部對象實例存放在一個數(shù)據(jù)庫表中。每個這樣的類對應(yīng)一個數(shù)據(jù)庫表,經(jīng)過規(guī)范化之后的類,其每個屬性對應(yīng)數(shù)據(jù)庫表的一個屬性(列),類的每個對象實例對應(yīng)數(shù)據(jù)庫表中的一個元組(行)。2.?確定關(guān)鍵字一個數(shù)據(jù)庫表的關(guān)鍵字是一組能夠唯一標(biāo)識該表的每個元組(行)的屬性。對類而言,關(guān)鍵字就是一組能唯一標(biāo)識該類的每個對象實例的屬性,用盡可能少的屬性(最好是只用一個屬性)作為關(guān)鍵字,給查詢和更新操作帶來了方便。采用對象標(biāo)識符OID(對象唯一的標(biāo)識符)作為相應(yīng)數(shù)據(jù)庫中所有表的主鍵,也是常用的手段。3.?類映射成表的策略實現(xiàn)類到數(shù)據(jù)庫的表的映射,既可以從分析類圖入手,也可以從設(shè)計類圖開始。因為分析類圖與關(guān)系模型更接近,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論