結(jié)構(gòu)化系統(tǒng)分析83_第1頁
結(jié)構(gòu)化系統(tǒng)分析83_第2頁
結(jié)構(gòu)化系統(tǒng)分析83_第3頁
結(jié)構(gòu)化系統(tǒng)分析83_第4頁
結(jié)構(gòu)化系統(tǒng)分析83_第5頁
已閱讀5頁,還剩157頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第6章 結(jié)構(gòu)化系統(tǒng)分析 6.1 系統(tǒng)分析的任務(wù) 6.2 作業(yè)流程圖 6.3 數(shù)據(jù)流圖 6.4 數(shù)據(jù)字典 6.5 表達(dá)處理邏輯的工具 6.6 數(shù)據(jù)查詢應(yīng)用分析 6.7 新系統(tǒng)邏輯模型的提出 6.8 系統(tǒng)說明書 習(xí)題6 系統(tǒng)分析是應(yīng)用系統(tǒng)思想和方法,把復(fù)雜的對象分解成簡單的組成局部,找出這些局部的根本屬性和彼此間的關(guān)系。 本章介紹系統(tǒng)分析階段的任務(wù)、方法和工具。這一階段產(chǎn)生的系統(tǒng)說明書,既是后續(xù)開發(fā)工作的依據(jù),也是衡量一個(gè)信息系統(tǒng)優(yōu)劣的依據(jù)。6.1 系統(tǒng)分析的任務(wù) 系統(tǒng)分析階段的根本任務(wù)是:系統(tǒng)分析員與用戶一起充分討論用戶的要求,并把雙方的理解用系統(tǒng)說明書表達(dá)出來。系統(tǒng)說明書審核通過之后,將成為系

2、統(tǒng)設(shè)計(jì)的依據(jù)和將來驗(yàn)收系統(tǒng)的依據(jù)。 擬建的信息系統(tǒng)既要源于原系統(tǒng),又要高于原系統(tǒng)。所謂“高于原系統(tǒng),就是要比現(xiàn)行系統(tǒng)功能更強(qiáng),效率更高,使用更方便。但新系統(tǒng)不是無源之水,無本之木。“源就是現(xiàn)行信息系統(tǒng)。因此,系統(tǒng)分析員要在總體規(guī)劃的根底上與用戶密切配合,用系統(tǒng)的思想和方法,對企業(yè)的業(yè)務(wù)活動(dòng)進(jìn)行全面的調(diào)查分析,掌握詳細(xì)的工作流程;收集票據(jù)、賬單、報(bào)表等資料,分析現(xiàn)行系統(tǒng)的局限性和缺乏之處,找出制約現(xiàn)行系統(tǒng)的“瓶頸,確定新系統(tǒng)的邏輯功能;根據(jù)企業(yè)的條件,找出幾種可行的解決方案,分析比較這些方案的投資和可能的收益。 系統(tǒng)分析是研制信息系統(tǒng)最重要的階段,也是最困難的階段。 系統(tǒng)分析要答復(fù)新系統(tǒng)“做什么

3、這個(gè)關(guān)鍵性的問題。只有明確了問題,才有可能解決問題。否那么,方向不明,無的放矢,費(fèi)力不討好。實(shí)際工作中常常有這種情形:業(yè)務(wù)人員認(rèn)為信息系統(tǒng)的開發(fā)只是技術(shù)人員的事,而開發(fā)人員根據(jù)對用戶要求的淺薄理解就匆匆忙忙進(jìn)行系統(tǒng)設(shè)計(jì),編寫程序。系統(tǒng)交給用戶使用時(shí),用戶說“這不是我要的系統(tǒng)。對系統(tǒng)分析缺乏足夠的重視,是導(dǎo)致研制周期一再延長甚至以失敗告終的重要原因,也是系統(tǒng)分析難于進(jìn)行的主觀原因。 系統(tǒng)分析的困難主要來自三個(gè)方面:問題空間的理解,人與人之間的交流和環(huán)境的不斷變化。 由于系統(tǒng)分析員缺乏足夠的關(guān)于對象系統(tǒng)的業(yè)務(wù)知識,他在系統(tǒng)調(diào)查中往往感到無從下手,不知道該問用戶一些什么問題,或者被各種具體數(shù)字、大量

4、的資料、龐雜的業(yè)務(wù)流程搞得眼花繚亂。一個(gè)規(guī)模較大的系統(tǒng),反映各種業(yè)務(wù)情況的數(shù)據(jù)、報(bào)表、賬頁,業(yè)務(wù)人員手中各種正規(guī)的、非正規(guī)的手冊,技術(shù)資料等等,數(shù)量相當(dāng)大。各種業(yè)務(wù)之間的聯(lián)系繁雜。 不熟悉業(yè)務(wù)情況的系統(tǒng)分析員往往感到好似處在不見天日的大森林中迷失了方向,各種信息流程像一堆亂麻,不知從何下手去理出頭緒,更談不上如何分析制約現(xiàn)系統(tǒng)的“瓶頸了。 另一方面,用戶往往缺乏計(jì)算機(jī)方面的足夠知識,不了解計(jì)算機(jī)能做什么和不能做什么。許多用戶雖然精通自己的業(yè)務(wù),但往往不善于把業(yè)務(wù)過程明確地表達(dá)出來,不知道該給系統(tǒng)分析員介紹些什么。一些具體業(yè)務(wù)的處理,他認(rèn)為理所當(dāng)然就該這么做。尤其是某些決策問題,根據(jù)他的經(jīng)驗(yàn),憑

5、直覺就應(yīng)該這么做。在這種情況下,系統(tǒng)分析員很難從業(yè)務(wù)人員那里獲得充分有用的信息。 俗話說:“隔行如隔山。系統(tǒng)分析員與用戶的知識構(gòu)成不同,經(jīng)歷不同,使得雙方的交流十分困難。這一方面使系統(tǒng)調(diào)查容易出現(xiàn)遺漏和誤解,這些誤解和遺漏是研制系統(tǒng)的隱患,會(huì)使系統(tǒng)開發(fā)偏離正確方向。另一方面使編寫系統(tǒng)說明書變得十分困難。系統(tǒng)說明書是這一階段工作的結(jié)晶。審核通過之后,系統(tǒng)說明書既是系統(tǒng)設(shè)計(jì)的根底,也是最后驗(yàn)收系統(tǒng)的依據(jù)。它實(shí)際上是用戶與研制人員之間的技術(shù)合同。作為設(shè)計(jì)根底和驗(yàn)收依據(jù),系統(tǒng)說明書應(yīng)當(dāng)嚴(yán)謹(jǐn)準(zhǔn)確,無二義性,盡可能詳盡;作為技術(shù)人員與用戶之間的交流工具,它應(yīng)當(dāng)簡單明確,盡量不用技術(shù)上的專業(yè)術(shù)語。這些要求不

6、是容易到達(dá)的,但必須努力到達(dá)。 最使系統(tǒng)分析員困惑的是環(huán)境的變化。系統(tǒng)分析階段要通過調(diào)查分析,抽象出新系統(tǒng)的概念模型,鎖定系統(tǒng)邊界、功能、處理過程和信息結(jié)構(gòu),為系統(tǒng)設(shè)計(jì)奠定根底。但是,信息系統(tǒng)生存在不斷變化的環(huán)境中,環(huán)境對它不斷提出新的要求。只有適應(yīng)了這些要求,信息系統(tǒng)才能生存下去。在系統(tǒng)分析階段,要完全確定系統(tǒng)模式是很困難的,有時(shí)甚至是辦不到的。 在系統(tǒng)開發(fā)中,系統(tǒng)分析員起著十分重要的作用。系統(tǒng)分析這一重要而困難的任務(wù)主要由系統(tǒng)分析員承擔(dān)。他要與各類人員打交道,是用戶和技術(shù)人員之間的橋梁和“翻譯,為管理者提供控制開發(fā)的手段。系統(tǒng)分析員還必須考慮系統(tǒng)的硬件設(shè)備,數(shù)據(jù)輸入,系統(tǒng)平安等各個(gè)方面的問

7、題??傊?,系統(tǒng)分析員必須考慮系統(tǒng)的各種成分。 系統(tǒng)分析員的知識水平和工作能力決定了系統(tǒng)的成敗。一個(gè)稱職的系統(tǒng)分析員不但應(yīng)具備堅(jiān)實(shí)的信息系統(tǒng)知識,了解計(jì)算機(jī)技術(shù)的開展,而且還必須具備管理科學(xué)的知識。缺乏必要的管理科學(xué)知識,就沒有與各級管理人員打交道的“共同語言。很難設(shè)想,缺乏財(cái)務(wù)根底知識的人能設(shè)計(jì)出實(shí)用的財(cái)務(wù)系統(tǒng)。系統(tǒng)分析員應(yīng)有較強(qiáng)的系統(tǒng)觀點(diǎn),較好的邏輯分析能力,能夠從復(fù)雜的事物中抽象出系統(tǒng)模型。他還應(yīng)具備較好的口頭和書面表達(dá)能力,較強(qiáng)的組織能力,善于與人共事??傊?,系統(tǒng)分析員應(yīng)是具有現(xiàn)代科學(xué)知識的,具有改革思想和改革能力的專家。 為了克服這些困難,做好系統(tǒng)分析工作,需要系統(tǒng)分析員與用戶精誠合作

8、。系統(tǒng)分析員應(yīng)牢固樹立用戶第一的思想,虛心向用戶學(xué)習(xí)。雖然“隔行如隔山,但“隔行不隔理,這個(gè)“理就是人們認(rèn)識事物的共同規(guī)律,就是系統(tǒng)的思想與方法,這是我們分析復(fù)雜事物的有力武器。系統(tǒng)論的思想方法強(qiáng)調(diào)系統(tǒng)的整體性、綜合性、層次性,強(qiáng)調(diào)系統(tǒng)元素之間的有機(jī)聯(lián)系。這也就是我們常說的要全面地看問題,認(rèn)識事物要由表及里、去偽存真,要從事物之間的聯(lián)系去認(rèn)識事物,而不要孤立地看待事物。 不管技術(shù)人員與用戶的業(yè)務(wù)有多大差距,人們認(rèn)識事物的方法都是相通的。如果說隔行如隔山,那末根據(jù)這個(gè)原理,就可以在這座“山中打一個(gè)“隧道,使兩邊相通。為此,還要有一定的技術(shù)和工具。這里說的工具是指一些合理的圖表。直觀的圖表可以幫助

9、系統(tǒng)分析員理順?biāo)悸罚脖阌谂c用戶交流。20世紀(jì)70年代以來,出現(xiàn)了多種這樣的工具,如:現(xiàn)場工作流程圖、作業(yè)流程圖、實(shí)體生命周期圖和數(shù)據(jù)流圖等。 數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具。結(jié)構(gòu)化系統(tǒng)分析采用介于形式語言和自然語言之間的描述方式,通過一套分層次的數(shù)據(jù)流圖,輔以數(shù)據(jù)字典、小說明等工具描述系統(tǒng)。 圖6.1是一個(gè)簡單的示意圖。圖中,上層數(shù)據(jù)流圖中的一個(gè)處理框被分解為一張下層的數(shù)據(jù)流圖。結(jié)構(gòu)化系統(tǒng)分析方法就是通過這種自頂向下,逐層分解的方法,利用分解和抽象這兩個(gè)根本手段控制系統(tǒng)的復(fù)雜性,把大問題分解成小問題,然后分別解決。分而治之,正是系統(tǒng)工程的思路。分解時(shí)分層進(jìn)行,先考慮問題最本質(zhì)的屬性,暫時(shí)

10、略去具體細(xì)節(jié),以后再逐層添加細(xì)節(jié),直到最詳細(xì)的內(nèi)容,這就是抽象。圖6.1 數(shù)據(jù)流圖 6.2 作 業(yè) 流 程 圖 我們以學(xué)校各單位申請訂購設(shè)備的過程為例,說明作業(yè)流程圖的有關(guān)概念和畫法。申請購置設(shè)備的單位先填寫“訂貨委托書,寫清品名、規(guī)格、數(shù)量等工程,送交采購組。采購組在“單價(jià)表中查找相應(yīng)的單價(jià),填入“訂貨委托書中,經(jīng)過組長、科長審核批準(zhǔn)后,根據(jù)“訂貨委托書填寫“訂貨單。訂貨單一式四聯(lián)。第一聯(lián)向供貨廠商訂貨; 第二聯(lián)送訂購單位,通知該單位訂貨情況;第三聯(lián)送驗(yàn)收組,到貨時(shí)驗(yàn)收用;第四聯(lián)采購組留存。這個(gè)過程用作業(yè)流程圖表示,如圖6.2所示,圖的左列是作業(yè)涉及的部門。圖6.2 作業(yè)流程圖 作業(yè)流程圖描

11、述的主體是票據(jù)(賬單)。這些票據(jù)的流動(dòng)路線與實(shí)際處理過程要一致。票據(jù)的生命周期表示出一筆業(yè)務(wù)的處理情況。繪制作業(yè)流程圖的過程也是系統(tǒng)分析員調(diào)查了解業(yè)務(wù)流程的過程。只要把所用符號與用戶講解清楚,用戶很容易理解,進(jìn)而指出圖中的錯(cuò)誤或缺乏,分析業(yè)務(wù)流程是否合理。因此,作業(yè)流程圖是系統(tǒng)分析員與用戶交流思想的一種工具。 繪制作業(yè)流程圖時(shí),應(yīng)注意以下幾點(diǎn): (1) 各種票據(jù)、賬單要統(tǒng)一編號。如果一種票據(jù)有幾聯(lián),也要標(biāo)明是第幾聯(lián)。 (2) 同時(shí)進(jìn)行的業(yè)務(wù)活動(dòng)要盡量畫得靠近一些。 (3) 圖中票據(jù)、賬單要有始有終。初始狀態(tài)的報(bào)表不一定是空白的,只是指在這一筆業(yè)務(wù)中還沒有處理的原始狀態(tài)。 (4) 作業(yè)流程要明確

12、,防止模糊不清的循環(huán)。 作業(yè)流程圖的缺乏之處是總體觀念不強(qiáng),具體的處理內(nèi)容表達(dá)得也不詳細(xì),很難表達(dá)決策。對于簡單的數(shù)據(jù)處理系統(tǒng),用作業(yè)流程圖可以分析得相當(dāng)透徹,但是用它很難表達(dá)復(fù)雜的系統(tǒng)。6.3 數(shù) 據(jù) 流 圖 數(shù)據(jù)流圖描述數(shù)據(jù)流動(dòng)、存儲、處理的邏輯關(guān)系,也稱為邏輯數(shù)據(jù)流圖(Logical Data Flow Diagram),一般用DFD表示。 6.3.1 數(shù)據(jù)流圖的根本成分 數(shù)據(jù)流圖用到四個(gè)根本符號,即外部實(shí)體、處理、數(shù)據(jù)流和數(shù)據(jù)存儲?,F(xiàn)分別介紹如下。 1. 外部實(shí)體 外部實(shí)體指系統(tǒng)以外與系統(tǒng)有聯(lián)系的人或事物。它是數(shù)據(jù)的外部來源和去處,例如顧客、職工、供貨單位等等。外部實(shí)體也可以是另外一個(gè)

13、信息系統(tǒng)。 我們用一個(gè)正方形,并在其左上角外邊另加一個(gè)直角來表示外部實(shí)體,在正方形內(nèi)寫上這個(gè)外部實(shí)體的名稱。為了區(qū)分不同的外部實(shí)體,可以在正方形的左上角上標(biāo)一個(gè)字符。在數(shù)據(jù)流圖中,為了減少線條的交叉,同一個(gè)外部實(shí)體可在一張數(shù)據(jù)流程中出現(xiàn)屢次,這時(shí)在該外部實(shí)體符號的右下角畫小斜線,表示重復(fù)。假設(shè)重復(fù)的外部實(shí)體有多個(gè),那么相同的外部實(shí)體畫數(shù)目相同的小斜線。外部實(shí)體的表示如圖6.3所示。圖6.3 外部實(shí)體 2. 處理加工 處理指對數(shù)據(jù)的邏輯加工,也就是對數(shù)據(jù)的變換功能。 在數(shù)據(jù)流圖中,用帶圓角的長方形表示處理,長方形分為三個(gè)局部,如圖6.4所示。 標(biāo)識局部用來區(qū)別一個(gè)功能,一般用字符串表示,如P、P

14、1.1等。圖6.4 處理 功能描述局部是必不可少的,它直接表達(dá)這個(gè)處理的邏輯功能,一般用一個(gè)動(dòng)詞加一個(gè)作賓語的名詞表示。要想恰如其分地表達(dá)一個(gè)處理的功能,有時(shí)需要下一番功夫。 功能執(zhí)行局部表示這個(gè)功能由誰來完成,可以是一個(gè)人,也可以是一個(gè)部門,還可以是某個(gè)計(jì)算機(jī)程序。 3. 數(shù)據(jù)流 數(shù)據(jù)流是指處理功能的輸入或輸出,用一個(gè)水平箭頭或垂直箭頭表示。箭頭指出數(shù)據(jù)的流動(dòng)方向。數(shù)據(jù)流可以是信件、票據(jù),也可以是 ,等等。 一般說來,對每個(gè)數(shù)據(jù)流要加以簡單的描述,使用戶和系統(tǒng)設(shè)計(jì)員能夠理解一個(gè)數(shù)據(jù)流的含義。對數(shù)據(jù)流的描述寫在箭頭的上方,一些含義十清楚確的數(shù)據(jù)流,也可以不加說明,如圖6.5所示。圖6.5 數(shù)據(jù)

15、流 有時(shí)很難用簡單而適當(dāng)?shù)恼Z句來描述一個(gè)數(shù)據(jù)流。例如圖6.6(a)表示儲戶到儲蓄所去存取款時(shí),要將填寫好的存(取)單與存折交給營業(yè)員,營業(yè)員處理完這筆業(yè)務(wù)后,把存折交給儲戶。假設(shè)把“存取單與“存折這兩個(gè)平行且方向相同的數(shù)據(jù)流合并為“存取要求,那么可以減少一個(gè)數(shù)據(jù)流,數(shù)據(jù)流圖就更簡單好讀一些,如圖6.6(b)所示。至于“存取要求的具體內(nèi)容隨著數(shù)據(jù)流圖的展開,會(huì)更具體化。 圖6.6 數(shù)據(jù)流的簡化 4. 數(shù)據(jù)存儲 數(shù)據(jù)存儲表示數(shù)據(jù)保存的地方。這里的“地方并不是指保存數(shù)據(jù)的物理地點(diǎn)或物理介質(zhì),而是指數(shù)據(jù)存儲的邏輯描述。 在數(shù)據(jù)流圖中,數(shù)據(jù)存儲用右邊開口的長方條表示。在長方條內(nèi)寫上數(shù)據(jù)存儲的名字。名字也

16、要恰當(dāng),以便用戶理解。為了區(qū)別和引用方便,再加一個(gè)標(biāo)識,由字母和數(shù)字組成。為清楚起見,用豎線表示同一數(shù)據(jù)存儲在圖上不同地方的情況,如圖6.7所示。圖6.7 數(shù)據(jù)存儲 指向數(shù)據(jù)存儲的箭頭,表示送數(shù)據(jù)到數(shù)據(jù)存儲(存放、改寫等等)。從數(shù)據(jù)存儲發(fā)出的箭頭,表示從數(shù)據(jù)存儲讀取數(shù)據(jù)。如圖6.8所示。 圖6.8中,“商品編號_表示按這個(gè)數(shù)據(jù)項(xiàng)檢索,即“商品編號是關(guān)鍵字。 在一些介紹結(jié)構(gòu)化分析的書中,所用符號與本書有所不同,請讀者注意。例如,將圖6.6(b)繪成圖6.9的樣子。讀者不難明白各個(gè)符號的含義。圖6.8 數(shù)據(jù)的存儲與讀取圖6.9 數(shù)據(jù)流圖的另一種表示法 6.3.2 數(shù)據(jù)流圖的畫法 系統(tǒng)分析要分析出信

17、息流動(dòng)、處理、存儲的過程。數(shù)據(jù)流程分析有許多方法,如HIPO(Hierarchical Input-Process-Output)法和我們介紹的結(jié)構(gòu)化方法等。其根本思想都是一樣的,即先把一個(gè)系統(tǒng)看成一個(gè)整體功能,明確信息的輸入與輸出;系統(tǒng)為了實(shí)現(xiàn)這個(gè)功能,內(nèi)部必然有信息的處理、傳遞、存儲;這些處理又可以分別看作整體功能,其內(nèi)部又有信息的處理、傳遞、存儲;如此一級一級地剖析,直到有很具體的處理步驟。 下面我們以高等學(xué)校學(xué)籍管理系統(tǒng)為例說明畫數(shù)據(jù)流圖的方法。學(xué)籍管理是一項(xiàng)十分嚴(yán)肅而復(fù)雜的工作,它要記錄學(xué)生從入學(xué)到學(xué)生離校整個(gè)在校期間的情況。學(xué)生畢業(yè)時(shí)學(xué)校把學(xué)生的情況提供給用人單位。學(xué)校還要向上級主

18、管部門報(bào)告學(xué)生的學(xué)籍變動(dòng)情況。 首先,我們把整個(gè)系統(tǒng)看成一個(gè)功能。它的輸入是新生入學(xué)時(shí),從省、市招生辦公室轉(zhuǎn)來的新生名單和檔案,輸出是學(xué)生離校時(shí)給用人單位的畢業(yè)生檔案和定期給主管部門的統(tǒng)計(jì)報(bào)表,如圖6.10所示?!皩W(xué)籍表中記載學(xué)生的根本情況,學(xué)籍變動(dòng)情況,各學(xué)期各門課程的學(xué)習(xí)成績,在校期間的獎(jiǎng)懲記錄等。 圖6.10概括描述了系統(tǒng)的輪廓和范圍,標(biāo)出了最主要的外部實(shí)體和數(shù)據(jù)流。它還有一些外部實(shí)體、數(shù)據(jù)流沒有畫出來,它們將隨著數(shù)據(jù)流圖的展開逐漸被添加上。這樣做的好處是突出了主要矛盾,系統(tǒng)輪廓更清晰。 圖6.10是對系統(tǒng)進(jìn)行進(jìn)一步分析的出發(fā)點(diǎn)。學(xué)籍管理包括學(xué)生學(xué)習(xí)成績管理、學(xué)生獎(jiǎng)懲管理、學(xué)生異動(dòng)管理三

19、局部。由此,圖6.10可以展開如圖6.11所示。虛線框中是圖6.10中處理框的放大。圖6.10中的各個(gè)數(shù)據(jù)流都必須反映在圖6.11上。此外還有新增的數(shù)據(jù)流和外部實(shí)體。虛線框外新增的數(shù)據(jù)流,在進(jìn)入或流出虛線框時(shí)用“標(biāo)記。數(shù)據(jù)存儲“學(xué)籍表是圖6.10中原有的,可畫在虛線框外,或一半在內(nèi),一半在外。在圖6.11中,與學(xué)籍表有關(guān)的數(shù)據(jù)流更具體了。圖6.10 學(xué)籍管理系統(tǒng)頂層DFD圖6.11 學(xué)籍管理系統(tǒng)的第一層DFD 下面以“成績管理為例,較詳細(xì)地說明逐層分解的思路。 某?,F(xiàn)在實(shí)行校、系兩級管理學(xué)習(xí)成績。學(xué)校教學(xué)管理科、系教務(wù)員都登記學(xué)生成績。任課教師把學(xué)生成績單一式兩份分別送系教務(wù)員和學(xué)校教學(xué)管理科

20、。系教務(wù)員根據(jù)成績單登錄學(xué)籍表;學(xué)期結(jié)束時(shí),給學(xué)生發(fā)成績通知;根據(jù)學(xué)籍管理?xiàng)l例,確定每個(gè)學(xué)生升級、補(bǔ)考、留級、退學(xué)的情況。教學(xué)管理科根據(jù)收到的成績單登錄教管科存儲的學(xué)籍表,統(tǒng)計(jì)各年級各科成績分布報(bào)主管領(lǐng)導(dǎo)。補(bǔ)考成績也作類似處理。這樣P2框擴(kuò)展成圖6.12。 從圖6.12中可以看出某些不盡合理的地方。例如“學(xué)籍表結(jié)構(gòu)是一樣的,但是系里存一份,教學(xué)管理科也存一份,數(shù)據(jù)冗余,工作重復(fù)。但現(xiàn)實(shí)情況就是這樣,在調(diào)查階段應(yīng)如實(shí)反映。至于新系統(tǒng)應(yīng)怎么做,可在對現(xiàn)行系統(tǒng)分析的根底上,提出新系統(tǒng)邏輯模型時(shí)再考慮。圖6.12 “成績管理框的展開 圖6.12中的一些處理還需要進(jìn)一步展開,如P2.1框“分析期末成績包

21、括以下幾件事: (1) 把每個(gè)學(xué)生的各科成績登錄在所在班的“學(xué)習(xí)成績一覽表中; (2) 根據(jù)“學(xué)習(xí)成績一覽表,在學(xué)籍表中填寫各個(gè)學(xué)生的成績; (3) 根據(jù)“學(xué)習(xí)成績一覽表評學(xué)習(xí)成績優(yōu)秀獎(jiǎng); (4) 根據(jù)學(xué)習(xí)成績一覽表和以往留級情況(學(xué)籍表中有記載)決定學(xué)生升級、補(bǔ)考、留級、退學(xué); (5) 發(fā)成績通知單,通知補(bǔ)考時(shí)間。 這樣P2.1框展開如圖6.13所示。圖中的數(shù)據(jù)存儲D2:學(xué)習(xí)成績一覽表,只與P2.1有關(guān),不涉及其他處理框,因此必須畫在虛線框內(nèi)。 在圖6.13中,除P2.1.5框之外,其他各個(gè)處理都已十清楚確,不需要再分解。而P2.1.5確定異動(dòng)情況還比較復(fù)雜,需要進(jìn)一步分解。學(xué)期結(jié)束之后,根

22、據(jù)學(xué)習(xí)成績,學(xué)生的異動(dòng)有四種可能情況:升級、補(bǔ)考、留級、退學(xué)。所有考試、考查科目都及格的學(xué)生當(dāng)然升級,個(gè)別科目不及格的學(xué)生可以參加補(bǔ)考。根據(jù)該?,F(xiàn)行學(xué)籍的規(guī)定: 一學(xué)期有三門考試科目不及格,或者考試和考查科目共有四門不及格者,將沒有補(bǔ)考資格,直接留級;一學(xué)期有四門考試科目不及格,或者考試和考查科目共有五門不及格者,將直接退學(xué)而不能留級重讀。另外,連續(xù)留級兩次或在校學(xué)習(xí)期間累計(jì)留級兩次者,也應(yīng)退學(xué)。因此,確定學(xué)生異動(dòng)情況,先要統(tǒng)計(jì)學(xué)生本學(xué)期不及格的科目,涉及到留級的情況,還要查看過去的學(xué)生異動(dòng)情況,判定應(yīng)該是留級還是退學(xué)。這樣,P2.1.5框可展開如圖6.14所示。圖6.13 “分析期末成績框的

23、展開 圖6.14 “確定異動(dòng)情況框的展開 6.3.3 畫數(shù)據(jù)流圖的本卷須知 在系統(tǒng)分析中,數(shù)據(jù)流圖是系統(tǒng)分析員與用戶交流思想的工具。這種圖用的符號少,通俗易懂(實(shí)踐證明,只要對用戶稍作解釋,用戶就能看明白數(shù)據(jù)流圖)。同時(shí),這種圖層次性強(qiáng),適合對不同管理層次的業(yè)務(wù)人員進(jìn)行業(yè)務(wù)調(diào)查。在調(diào)查過程中,系統(tǒng)分析員隨手就可記錄有關(guān)情況,隨時(shí)可與業(yè)務(wù)人員討論,使圖中缺乏的地方得到補(bǔ)充,有出入的地方得到糾正。在草圖的根底上,系統(tǒng)分析員應(yīng)對圖的分解、布局作適當(dāng)調(diào)整,畫出正式圖,使之更清晰,可讀性更好。 1. 關(guān)于層次的劃分 從前面的例子中我們看到,系統(tǒng)分析中得到了一系列分層的數(shù)據(jù)流圖,最上層的數(shù)據(jù)流圖相當(dāng)概括地

24、反映出信息系統(tǒng)最主要的邏輯功能,最主要的外部實(shí)體和數(shù)據(jù)存儲。這張圖應(yīng)該使人一目了然,一看就知道這個(gè)系統(tǒng)的主要功能和與環(huán)境的主要聯(lián)系是什么。 逐層擴(kuò)展數(shù)據(jù)流圖,是對上一層圖(父圖)中的某些處理框加以分解。隨著處理的分解,系統(tǒng)的功能越來越具體,數(shù)據(jù)存儲、數(shù)據(jù)流越來越多。必須注意,下層圖(子圖)是上層圖中某個(gè)處理框的“放大。因此,但凡與這個(gè)處理框有關(guān)系的外部實(shí)體、數(shù)據(jù)流、數(shù)據(jù)存儲必須在下層圖中反映出來。低層圖上用虛線長方框表示所放大的處理框,屬于這個(gè)處理內(nèi)部用到的數(shù)據(jù)存儲畫在虛線框內(nèi),屬于其他框也要用到的數(shù)據(jù)存儲,那么畫在虛線框之外或跨在虛線框上。流入或流出虛線框的數(shù)據(jù)流,假設(shè)在上層圖中沒出現(xiàn),那么

25、在與虛線交叉處用“表示,見圖6.11和圖6.12。 逐層擴(kuò)展的目的,是把一個(gè)復(fù)雜的功能逐步分解為假設(shè)干較為簡單的功能。逐層擴(kuò)展不是肢解和蠶食,不應(yīng)使系統(tǒng)失去原來的面貌,而應(yīng)保持系統(tǒng)的完整性和一致性。究竟怎樣劃分層次,劃分到什么程度,沒有絕對的標(biāo)準(zhǔn),但一般認(rèn)為: (1) 展開的層次應(yīng)與管理層次一致,也可以劃分得更細(xì)。處理塊的分解要自然,注意功能的完整性。 (2) 一個(gè)處理框經(jīng)過展開,一般以分解為410個(gè)處理框?yàn)橐?。在前面的例子中,圖6.14只有兩個(gè)處理框,為減少數(shù)據(jù)流圖的層次,可以把這張圖直接并入圖6.13中,用P2.1.5.1和P2.1.5.2代替圖6.13中的P2.1.5,并重新編號為P2.

26、1.5和P2.1.6,如圖6.15所示。 (3) 最下層的處理過程用幾句話,或者用幾張判定表,或一張簡單的圖就能表達(dá)清楚。其工作量可由一個(gè)人承擔(dān),假設(shè)是計(jì)算機(jī)處理,一般不超過100個(gè)程序語句。圖6.15 調(diào)整后的“分析期末成績框的展開 2. 檢查數(shù)據(jù)流圖的正確性 對一個(gè)系統(tǒng)的理解,不可能一開始就完美無缺。開始分析一個(gè)系統(tǒng)時(shí),盡管我們對問題的理解有不正確、不確切的地方,但還是應(yīng)該根據(jù)我們的理解用數(shù)據(jù)流圖表達(dá)出來,然后進(jìn)行核對,逐步修改,獲得較為完美的圖紙。 通常可以從以下幾個(gè)方面檢查數(shù)據(jù)流圖的正確性: (1) 數(shù)據(jù)守恒,或稱為輸入數(shù)據(jù)與輸出數(shù)據(jù)匹配。數(shù)據(jù)不守恒有兩種情況:一種是某個(gè)處理過程用以產(chǎn)

27、生輸出的數(shù)據(jù),沒有輸入給這個(gè)處理過程,這肯定是遺漏了某些數(shù)據(jù)流;另一種是某些輸入在處理過程中沒被使用,這不一定是一個(gè)錯(cuò)誤,但值得再研究一下為什么會(huì)產(chǎn)生這種情況,是否可以簡化。 (2) 在一套數(shù)據(jù)流圖中的任何一個(gè)數(shù)據(jù)存儲,必定有流入的數(shù)據(jù)流和流出的數(shù)據(jù)流,即寫文件和讀文件,缺少任何一種都意味著遺漏某些處理。 畫數(shù)據(jù)流圖時(shí),應(yīng)注意處理框與數(shù)據(jù)存儲之間數(shù)據(jù)流的方向。一個(gè)處理過程要讀文件,數(shù)據(jù)流的箭頭應(yīng)指向處理框,假設(shè)是寫文件那么箭頭指向數(shù)據(jù)存儲。修改文件要先讀后寫,但本質(zhì)上是寫,箭頭也指向數(shù)據(jù)存儲。假設(shè)除修改之外,為了其他目的還要讀文件,此時(shí)箭頭畫成雙向的。 (3) 父圖中某一處理框的輸入、輸出數(shù)據(jù)

28、流必須出現(xiàn)在相應(yīng)的子圖中,否那么就會(huì)出現(xiàn)父圖與子圖的不平衡,而不平衡的分層使人無法理解。因此,特別應(yīng)注意檢查父圖與子圖的平衡,尤其是在對子圖進(jìn)行某些修改之后。父圖的某框擴(kuò)展時(shí),在子圖中用虛線框表示,有利于這種檢查。父圖與子圖的關(guān)系,類似于全國地圖與分省地圖的關(guān)系。在全國地圖上標(biāo)出主要的鐵路、河流。分省地圖那么更詳細(xì),除全國地圖上與該省相關(guān)的鐵路、河流之外,還有一些次要的鐵路、公路、河流等等。 (4) 任何一個(gè)數(shù)據(jù)流至少有一端是處理框。換言之,數(shù)據(jù)流不能從外部實(shí)體直接到數(shù)據(jù)存儲,不能從數(shù)據(jù)存儲直接到外部實(shí)體,也不能在外部實(shí)體之間或數(shù)據(jù)存儲之間流動(dòng)。初學(xué)者往往容易違反這一規(guī)定,常常在數(shù)據(jù)存儲與外部

29、實(shí)體之間畫數(shù)據(jù)流。其實(shí),記住數(shù)據(jù)流是指處理的輸入或輸出,就不會(huì)出現(xiàn)這類錯(cuò)誤了。 3. 提高數(shù)據(jù)流圖的易理解性 數(shù)據(jù)流圖是系統(tǒng)分析員調(diào)查業(yè)務(wù)過程時(shí)與用戶交換思想的工具,因此,數(shù)據(jù)流圖應(yīng)該簡明易懂。這也有利于后面的設(shè)計(jì),有利于對系統(tǒng)說明書進(jìn)行維護(hù)。可以從以下幾個(gè)方面提高數(shù)據(jù)流圖的易理解性。 1) 簡化處理間的聯(lián)系 結(jié)構(gòu)化分析的根本手段是“分解,其目的是控制復(fù)雜性。合理的分解是將一個(gè)復(fù)雜的問題分成相對獨(dú)立的幾個(gè)局部,每個(gè)局部可單獨(dú)理解。在數(shù)據(jù)流圖中,處理框間的數(shù)據(jù)流越少,各個(gè)處理就越獨(dú)立,所以我們應(yīng)盡量減少處理框間輸入輸出數(shù)據(jù)流的數(shù)目。 2) 均勻分解 如果在一張數(shù)據(jù)流程中,某些處理已是根本處理(不

30、用再分解的處理),而另一些卻還要進(jìn)一步分解三、四層,這樣的分解就不均勻。不均勻的分解不易被理解,因?yàn)槠渲心承┚植棵枋龅氖羌?xì)節(jié),而其他局部描述的是較高層的抽象。遇到這種情況,應(yīng)重新考慮分解,努力防止特別不均勻的分解。 3) 適當(dāng)?shù)拿?數(shù)據(jù)流圖中各種成分的命名與易解性有直接關(guān)系,所以應(yīng)注意命名適當(dāng)。 處理框的命名應(yīng)能準(zhǔn)確地表達(dá)其功能,理想的命名由一個(gè)具體的動(dòng)詞加一個(gè)具體的名詞(賓語)組成,在底層尤其應(yīng)該如此。例如:“計(jì)算總工作量、“開發(fā)票就比較準(zhǔn)確;“存儲和打印提貨單最好分成兩個(gè);“處理訂貨單、“處理輸入那么不太好,“處理是空洞的動(dòng)詞,沒有說明究竟做什么,“輸入也是不具體的賓語;“做雜事幾乎等于

31、沒有命名。難于為某個(gè)成分命名,往往是分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解。 同樣,數(shù)據(jù)流、數(shù)據(jù)存儲也應(yīng)適當(dāng)命名,盡量防止產(chǎn)生錯(cuò)覺,減少設(shè)計(jì)和編程等階段的錯(cuò)誤。 數(shù)據(jù)流圖也常常要作重新分解。例如畫到某一層時(shí)意識到上一層或上幾層所犯的錯(cuò)誤,這時(shí)就需要對它們重新分解。重新分解可以按下述方法進(jìn)行: (1) 把需要重新分解的某張圖的所有子圖連接成一張。(2) 把圖分成幾局部,使各局部之間的聯(lián)系最少。(3) 重新建立父圖,即把第(2)步所得的每一局部畫成一個(gè)處理框。(4) 重新畫子圖,只要把第(2)步所得的圖沿各局部邊界分開即可。(5) 為所有處理重新命名、編號。數(shù)據(jù)流圖例題解析 6.4 數(shù) 據(jù) 字 典 數(shù)據(jù)流

32、圖描述了系統(tǒng)的分解,即描述了系統(tǒng)由哪幾局部組成,各局部之間的聯(lián)系等等,但還沒有說明系統(tǒng)中各個(gè)成分是什么含義。例如,在我們前面的例子中,數(shù)據(jù)存儲“學(xué)籍表包括哪些內(nèi)容,數(shù)據(jù)流圖表達(dá)不夠具體、準(zhǔn)確。又如,處理框P2.1.6判定留級或退學(xué),但如何判定,圖上看不出來。只有當(dāng)數(shù)據(jù)流圖中出現(xiàn)的每一個(gè)成分都給出定義之后,才能完整、準(zhǔn)確地的描述一個(gè)系統(tǒng)。 為此,我們還需要用其他工具對數(shù)據(jù)流圖加以補(bǔ)充說明。數(shù)據(jù)字典就是這樣的工具之一。數(shù)據(jù)字典最初用于數(shù)據(jù)庫管理,它為數(shù)據(jù)庫用戶、數(shù)據(jù)庫管理員、系統(tǒng)分析員和程序員提供某些數(shù)據(jù)項(xiàng)的綜合信息。這種思想啟發(fā)了信息系統(tǒng)的開發(fā)人員,使他們想到將數(shù)據(jù)字典引入系統(tǒng)分析。圖6.16

33、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)元素的關(guān)系 系統(tǒng)分析中所使用的數(shù)據(jù)字典,主要用來描述數(shù)據(jù)流圖中的數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程和外部實(shí)體。數(shù)據(jù)字典把數(shù)據(jù)的最小組成單位看成是數(shù)據(jù)元素(根本數(shù)據(jù)項(xiàng)),假設(shè)干個(gè)數(shù)據(jù)元素可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)(組合數(shù)據(jù)項(xiàng))。數(shù)據(jù)結(jié)構(gòu)是一個(gè)遞歸概念,即數(shù)據(jù)結(jié)構(gòu)的成分也可以是數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過數(shù)據(jù)元素和數(shù)據(jù)結(jié)構(gòu)來描寫數(shù)據(jù)流、數(shù)據(jù)存儲的屬性。它們之間的關(guān)系如圖6.16所示,數(shù)據(jù)元素組成數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)組成數(shù)據(jù)流和數(shù)據(jù)存儲。 建立數(shù)據(jù)字典的工作量很大,相當(dāng)煩瑣,但這是一項(xiàng)必不可少的工作。數(shù)據(jù)字典在系統(tǒng)開發(fā)中具有十分重要的意義,不僅在系統(tǒng)分析階段,而且在整個(gè)研制過程中以及今后系統(tǒng)運(yùn)行中都要使用它

34、。 數(shù)據(jù)字典可以用人工方式建立。事先印好表格,填好后按一定順序排列,就是一本字典。也可以建立在計(jì)算機(jī)內(nèi),數(shù)據(jù)字典實(shí)際上是關(guān)于數(shù)據(jù)的數(shù)據(jù)庫,這樣在使用和維護(hù)時(shí)都比較方便。 6.4.1 數(shù)據(jù)字典的各類條目 數(shù)據(jù)字典中有六類條目:數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、外部實(shí)體和處理。不同類型的條目有不同的屬性需要描述,現(xiàn)分別說明如下。 1. 數(shù)據(jù)元素 數(shù)據(jù)元素是最小的數(shù)據(jù)組成單位,也就是不可再分的數(shù)據(jù)單位,如學(xué)號、姓名等。對于每個(gè)數(shù)據(jù)元素,需要描述以下屬性: (1) 名稱:數(shù)據(jù)元素的名稱要盡量反映該元素的含義,便于理解和記憶。 (2) 別名:一個(gè)數(shù)據(jù)元素,可能其名稱不止一個(gè)。假設(shè)有多個(gè)名稱,那么需加

35、以說明。 (3) 類型:說明取值是字符型還是數(shù)字型等。 (4) 取值范圍和取值的含義:指數(shù)據(jù)元素可能取什么值。 數(shù)據(jù)元素的取值可分為離散型和連續(xù)型兩類。如人的年齡是連續(xù)型的,取值范圍可定義為0150歲;按通常編排學(xué)號的方法,學(xué)號是離散的。再如“婚姻狀況取值范圍是“未婚、已婚、離異、喪偶,也是離散型。 一個(gè)數(shù)據(jù)元素是離散的,還是連續(xù)的,視具體需要而定。例如在一般情況下,我們用歲數(shù)表示一個(gè)人的年齡,是連續(xù)的。但有時(shí),我們只要用“幼年、少年、青年、壯年、老年表示,或者區(qū)分為成年、未成年即可。這時(shí),年齡便是離散型的。 (5) 長度:指出該數(shù)據(jù)元素由幾個(gè)數(shù)字或字母組成。如某校現(xiàn)在的學(xué)號由個(gè)數(shù)字組成,其長

36、度就是個(gè)字節(jié)。 除以上內(nèi)容外,數(shù)據(jù)元素的條目還包括對該元素的簡要說明,與它有關(guān)的數(shù)據(jù)結(jié)構(gòu)等等。表6.1是數(shù)據(jù)元素條目的一個(gè)例子。表6.1 數(shù)據(jù)元素條目 2. 數(shù)據(jù)結(jié)構(gòu)表6.2是數(shù)據(jù)結(jié)構(gòu)條目的一個(gè)例子。 表6.2 數(shù)據(jù)結(jié)構(gòu)條目 數(shù)據(jù)結(jié)構(gòu)的描述重點(diǎn),是數(shù)據(jù)之間的組合關(guān)系,即這個(gè)數(shù)據(jù)結(jié)構(gòu)包括的成分。一個(gè)數(shù)據(jù)結(jié)構(gòu)可以包括假設(shè)干個(gè)數(shù)據(jù)元素或(和)數(shù)據(jù)結(jié)構(gòu)。這些成分中有三種特殊情況: (1) 任選項(xiàng)。這是可以出現(xiàn),也可以省略的項(xiàng),用“ 表示,如例中的曾用名是任選項(xiàng),可以有,也可以沒有。 (2) 必選項(xiàng)。在兩個(gè)或多個(gè)數(shù)據(jù)項(xiàng)中,必須出現(xiàn)其中的一個(gè)稱為必選項(xiàng)。例如,任何一門課程不是必修課,就是選修課,二者必居其

37、一。必選項(xiàng)的表示方法,是將侯選的多個(gè)數(shù)據(jù)項(xiàng)用“ 括起來。 (3) 重復(fù)項(xiàng)??梢詫掖纬霈F(xiàn)的數(shù)據(jù)項(xiàng)。例如一張訂單可訂多種零件, 每種零件有品名、規(guī)格、數(shù)量,這些屬性用“零件細(xì)節(jié)表示。在訂單中,“零件細(xì)節(jié)可重復(fù)屢次,表示成:零件細(xì)節(jié)*。前面例子中的“本人簡歷也是這種情況。 3. 數(shù)據(jù)流 數(shù)據(jù)流在數(shù)據(jù)字典中描述以下屬性: (1) 數(shù)據(jù)流的來源。數(shù)據(jù)流可以來自某個(gè)外部實(shí)體、數(shù)據(jù)存儲或某個(gè)處理。 (2) 數(shù)據(jù)流的去處。某些數(shù)據(jù)流的去處可能不止一個(gè),如前面圖6.12中“期末成績單這個(gè)數(shù)據(jù)流,流到了P2.1和P2.2兩個(gè)處理中,這兩個(gè)去處都要說明。 (3) 數(shù)據(jù)流的組成。指數(shù)據(jù)流所包含的數(shù)據(jù)結(jié)構(gòu)。一個(gè)數(shù)據(jù)流可

38、包含一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。假設(shè)只含一個(gè)數(shù)據(jù)結(jié)構(gòu),那么要注意名稱的統(tǒng)一,以免產(chǎn)生二義性。 (4) 數(shù)據(jù)流的流通量。指單位時(shí)間(每日、每小時(shí)等)里的傳輸次數(shù)??梢怨烙?jì)最高、平均、最低流量各是多少。 (5) 頂峰時(shí)的流通量。 表6.3是數(shù)據(jù)流條目的一個(gè)例子。 4. 數(shù)據(jù)存儲 數(shù)據(jù)存儲的條目,主要描寫該數(shù)據(jù)存儲的結(jié)構(gòu)及有關(guān)的數(shù)據(jù)流和查詢要求。 例如,數(shù)據(jù)存儲D2:“學(xué)習(xí)成績一覽表的條目,見表6.4:表6.3 數(shù)據(jù)流條目 表6.4 數(shù)據(jù)存儲條目 有些數(shù)據(jù)存儲的結(jié)構(gòu)可能很復(fù)雜,如“學(xué)籍表,它包括學(xué)生的根本情況、學(xué)生動(dòng)態(tài)、獎(jiǎng)懲記錄、學(xué)習(xí)成績、畢業(yè)論文成績等,其中每一項(xiàng)又是數(shù)據(jù)結(jié)構(gòu)。這些數(shù)據(jù)結(jié)構(gòu)有各自的條目分別

39、加以說明,因此在“學(xué)籍表的條目中只需列出這些數(shù)據(jù)結(jié)構(gòu),而不要列出這些數(shù)據(jù)結(jié)構(gòu)的內(nèi)部構(gòu)成。數(shù)據(jù)流圖是分層的,下層圖是上層圖的具體化。同一個(gè)數(shù)據(jù)存儲可能在不同層次的圖中出現(xiàn)。描述這樣的數(shù)據(jù)存儲,應(yīng)列出最低層圖中的數(shù)據(jù)流。 5. 處理過程 對于數(shù)據(jù)流圖中的處理框,需要在數(shù)據(jù)字典中有描述它的編號、名稱、功能的簡要說明,有關(guān)的輸入、輸出。對于其功能的描述,要使人能有一個(gè)較明確的概念,知道這一框的主要功能。功能的詳細(xì)描述,還要用“小說明進(jìn)一步描述。表6.5是P2.1.4“填寫成績單的這一過程的條目。表6.5 處理過程條目 6. 外部實(shí)體 外部實(shí)體是數(shù)據(jù)的來源和去向。因此,在數(shù)據(jù)字典中對于外部實(shí)體的條目,主

40、要要說明它產(chǎn)生的數(shù)據(jù)流和傳給它的數(shù)據(jù)流,以及該外部實(shí)體的數(shù)量。外部實(shí)體的數(shù)量,尤其是關(guān)系密切的主要外部實(shí)體的數(shù)量,對于估計(jì)本系統(tǒng)的業(yè)務(wù)量有參考作用。表6.6是描述“學(xué)生這個(gè)外部實(shí)體的條目。“學(xué)生這個(gè)外部實(shí)體與學(xué)籍管理系統(tǒng)有很多聯(lián)系,如入學(xué)時(shí)要填寫各種登記表,假設(shè)要休學(xué)、復(fù)學(xué)要提出申請等等。在我們的例子中,未畫出整個(gè)系統(tǒng)的數(shù)據(jù)流圖,因此條目的數(shù)據(jù)流比較少。 表6.6 外部實(shí)體條目 6.4.2 數(shù)據(jù)字典的使用與管理 數(shù)據(jù)字典實(shí)際上是“關(guān)于系統(tǒng)數(shù)據(jù)的數(shù)據(jù)庫。在整個(gè)系統(tǒng)開發(fā)過程以及系統(tǒng)運(yùn)行后的維護(hù)階段,數(shù)據(jù)字典是必不可少的工具。數(shù)據(jù)字典是所有人員工作的依據(jù)、統(tǒng)一的標(biāo)準(zhǔn)。它可以確保數(shù)據(jù)在系統(tǒng)中的完整性和

41、一致性。具體講,數(shù)據(jù)字典有以下作用。 1. 按各種要求提供列表 可以根據(jù)數(shù)據(jù)字典,把所有數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯及外部實(shí)體,按一定的順序全部列出,保證系統(tǒng)設(shè)計(jì)時(shí)不會(huì)遺漏。 如果系統(tǒng)分析員要對某個(gè)數(shù)據(jù)存儲的結(jié)構(gòu)進(jìn)行深入分析,需要了解有關(guān)的細(xì)節(jié),或要了解數(shù)據(jù)結(jié)構(gòu)的組成乃至每個(gè)數(shù)據(jù)元素的屬性,數(shù)據(jù)字典也可提供相應(yīng)的內(nèi)容。 2. 相互參照,便于系統(tǒng)修改 根據(jù)初步的數(shù)據(jù)流圖,建立相應(yīng)的數(shù)據(jù)字典。在系統(tǒng)分析過程中,常會(huì)發(fā)現(xiàn)原來的數(shù)據(jù)流程及各種數(shù)據(jù)定義中的錯(cuò)誤或遺漏,需要修改或補(bǔ)充。有了數(shù)據(jù)字典,這種修改就變得容易多了。 例如,在某個(gè)庫存管理系統(tǒng)中,“商品庫存這個(gè)數(shù)據(jù)存儲的結(jié)構(gòu)是:代碼

42、、品名、規(guī)格、當(dāng)前庫存量。一般地講,考慮能否滿足用戶訂貨,有這些數(shù)據(jù)項(xiàng)就夠了。但如果要求庫存數(shù)量不能少于某個(gè)“平安庫存量,那么這些數(shù)據(jù)項(xiàng)還不夠。這時(shí),在這個(gè)結(jié)構(gòu)中就要增加“平安庫存量這個(gè)數(shù)據(jù)項(xiàng)。這一改動(dòng)可能影響其他工程,例如“確定顧客訂貨的處理邏輯。以前,只要“當(dāng)前庫存量大于或等于顧客訂貨量時(shí),就認(rèn)為可以滿足用戶訂貨; 現(xiàn)在那么只有“當(dāng)前庫存量減顧客訂貨量之差大于或等于平安庫存量時(shí)才能滿足顧客訂貨。有了數(shù)據(jù)字典,這個(gè)修改就容易了。因?yàn)樵谠摂?shù)據(jù)存儲的條目中,記錄了有關(guān)的數(shù)據(jù)流,由此可以找到因數(shù)據(jù)存儲的改動(dòng)而可能影響的處理邏輯,不至于遺漏而造成不一致。 3. 由描述內(nèi)容檢索名稱 在一個(gè)稍微復(fù)雜的系

43、統(tǒng)中,系統(tǒng)分析員可能沒有把握斷定某個(gè)數(shù)據(jù)項(xiàng)在數(shù)據(jù)字典中是否已經(jīng)定義,或者記不清楚其確切名字,這時(shí),可以由內(nèi)容查找其名稱,就像根據(jù)書的內(nèi)容詢問圖書的名字一樣。4. 一致性檢驗(yàn)和完整性檢驗(yàn)根據(jù)各類條目的規(guī)定格式,可以檢驗(yàn)以下一些問題:(1) 是否存在沒有指明來源或去向的數(shù)據(jù)流;(2) 是否存在沒有指明數(shù)據(jù)存儲或所屬數(shù)據(jù)流的數(shù)據(jù)元素;(3) 處理邏輯與輸入的數(shù)據(jù)元素是否匹配;(4) 是否存在沒有輸入或輸出的數(shù)據(jù)存儲。對于數(shù)據(jù)字典的使用可以有兩種方式:人工方式和計(jì)算機(jī)方式。 人工方式是把各類條目按前面介紹的描述格式寫在卡片上或?qū)懺诩埳?,并分類,建立一覽表。計(jì)算機(jī)方式是在人工方式根底上,將表格整理存入計(jì)

44、算機(jī)。一些大、中型計(jì)算機(jī)有專門的自動(dòng)化數(shù)據(jù)字典軟件包對數(shù)據(jù)進(jìn)行管理,查詢、修改都十分方便。但在開發(fā)初期,對于規(guī)模不太大的系統(tǒng),手工方式更方便實(shí)惠。 為了保證數(shù)據(jù)的一致性,數(shù)據(jù)字典必須由專人(數(shù)據(jù)管理員)管理。其職責(zé)就是維護(hù)和管理數(shù)據(jù)字典,保證數(shù)據(jù)字典內(nèi)容的完整一致。任何人(包括系統(tǒng)分析員、系統(tǒng)設(shè)計(jì)員、程序員)修改數(shù)據(jù)字典的內(nèi)容,都必須通過數(shù)據(jù)管理員。數(shù)據(jù)管理員要把數(shù)據(jù)字典的最新版本及時(shí)通知有關(guān)人員。6.5 表達(dá)處理邏輯的工具 結(jié)構(gòu)化系統(tǒng)分析的根本思想,是將一個(gè)復(fù)雜的系統(tǒng)逐層分解成許多足夠簡單的根本處理(功能單元)。數(shù)據(jù)流圖是系統(tǒng)分析的主要工具,它著重表達(dá)系統(tǒng)的邏輯功能及各個(gè)局部之間的聯(lián)系。數(shù)據(jù)

45、字典補(bǔ)充說明系統(tǒng)所涉及的數(shù)據(jù),是數(shù)據(jù)屬性的清單。數(shù)據(jù)字典中包括了對各個(gè)處理功能的一般描述,但這種描述是高度概括的。在數(shù)據(jù)字典中不可能也不應(yīng)該過多地描述各個(gè)處理功能的細(xì)節(jié)。這些細(xì)節(jié)需要另一種工具小說明(或稱為根本說明)來完成。 我們知道,數(shù)據(jù)流圖是分層的。上層的數(shù)據(jù)流圖表達(dá)系統(tǒng)的主要邏輯功能,然后向下逐層展開,表達(dá)的功能越來越具體,直到最低層的數(shù)據(jù)流圖將系統(tǒng)的全部邏輯功能詳細(xì)地表達(dá)出來。因此,系統(tǒng)的最小功能單元就是最低層數(shù)據(jù)流圖的每個(gè)處理,也稱為根本處理(功能單元)。只要對所有根本處理的邏輯功能描述清楚,整個(gè)系統(tǒng)的功能也就說明清楚了。 對根本處理的說明稱為“小說明或“根本說明。根本說明應(yīng)準(zhǔn)確地描

46、述一個(gè)根本處理“做什么,包括處理的激發(fā)條件、加工邏輯、優(yōu)先級、執(zhí)行頻率、出錯(cuò)處理等等。其中最根本的是加工邏輯。加工邏輯是指用戶對這個(gè)處理的邏輯要求,即輸出數(shù)據(jù)流與輸入數(shù)據(jù)流之間的邏輯關(guān)系。 應(yīng)該特別注意的是,系統(tǒng)分析階段的任務(wù)是理解和表達(dá)用戶的要求,而不是考慮系統(tǒng)怎么做,怎樣實(shí)現(xiàn),所以對一個(gè)處理所做的說明,是明確根據(jù)用戶的要求,這個(gè)處理應(yīng)該“做什么,而不是用編程語言來具體描述加工處理的過程,如用什么工作單元、如何控制執(zhí)行等等,這些是系統(tǒng)設(shè)計(jì)和編程階段的任務(wù)。如果現(xiàn)階段這么做,一方面限制了設(shè)計(jì)人員的自由,另一方面也不便于與用戶交流,因?yàn)橛脩舨欢媚愕拿枋觥?編寫根本說明應(yīng)注意以下幾條規(guī)那么: (

47、1) 數(shù)據(jù)流圖中的每一個(gè)根本處理,都必須有一個(gè)根本說明; (2) 根本說明描述了一個(gè)根本處理對數(shù)據(jù)流的轉(zhuǎn)換路徑,即指出這個(gè)功能單元的輸入數(shù)據(jù)流、輸出數(shù)據(jù)流以及根本處理的處理步驟; (3) 根本說明描述了一個(gè)功能單元的轉(zhuǎn)換策略,而不包含執(zhí)行這項(xiàng)策略的方法; (4) 應(yīng)該把冗余度控制在最低程度; (5) 用一組標(biāo)準(zhǔn)的方法書寫根本說明,既要簡單明確,又要具有較高的可讀性。 理想的根本說明既要容易被軟件人員和用戶理解,又要嚴(yán)格、精確。目前人們正研究具有這種特點(diǎn)的形式語言,但還沒有理想的結(jié)果。結(jié)構(gòu)化方法在精確性和可理解性之間考慮了折中的方案,用結(jié)構(gòu)化語言、判定樹和判定表三種半形式化的方式編寫根本說明。下

48、面分別介紹這三種工具。 6.5.1 結(jié)構(gòu)化語言 結(jié)構(gòu)化語言是受結(jié)構(gòu)化程序設(shè)計(jì)思想啟發(fā)而擴(kuò)展出來的。結(jié)構(gòu)化程序設(shè)計(jì)只允許三種根本結(jié)構(gòu)。結(jié)構(gòu)化語言也只允許三種根本語句,即簡單的祈使句、判斷語句及循環(huán)語句。與程序設(shè)計(jì)語言的差異在于結(jié)構(gòu)化語言沒有嚴(yán)格的語法規(guī)定,與自然語言的不同在于它只有極其有限的詞匯和語句。結(jié)構(gòu)化語言使用三類詞匯:祈使句中的動(dòng)詞、數(shù)據(jù)字典中定義的名詞以及某些邏輯表達(dá)式中的保存字。 1. 祈使語句 祈使語句指出要做什么事情,包括一個(gè)動(dòng)詞和一個(gè)賓語。動(dòng)詞指出要執(zhí)行的功能,賓語表示動(dòng)作的對象。例如:計(jì)算工資、發(fā)補(bǔ)考通知。 使用祈使語句,應(yīng)注意以下幾點(diǎn): (1) 力求精煉,不應(yīng)太長。 (2)

49、 不使用形容詞和副詞。 (3) 動(dòng)詞要能明確表達(dá)執(zhí)行的動(dòng)作,不用“做、“處理這類意義不具體的動(dòng)詞。意義相同的動(dòng)詞,只確定使用其中之一。 (4) 名詞必須在數(shù)據(jù)字典中有定義。 2. 判斷語句 判斷語句類似結(jié)構(gòu)化程序設(shè)計(jì)中的判斷結(jié)構(gòu)。其一般形式是: 如果 條件 那么 動(dòng)作A 否那么 (條件不成立) 動(dòng)作B 判斷語句中的“如果、“否那么要成對出現(xiàn),以防止多重判斷嵌套時(shí)產(chǎn)生二義性,另外,書寫時(shí)每層要對齊,以便閱讀。 例如,某公司給購貨在5萬元以上的顧客以不同的折扣。如果這樣的顧客最近三個(gè)月無欠款,那么折扣率為15%,雖然有欠款但與公司已經(jīng)有10年以上的貿(mào)易關(guān)系,那么折扣率為10%,否那么折扣率為5%。

50、公司的折扣政策用判斷語句表達(dá)如下: 如果 購貨額在5萬元以上 那么 如果 最近三個(gè)月無欠款 那么 折扣率為15% 否那么 如果 與公司交易10年以上 那么 折扣率為10% 否那么 折扣率為5% 否那么 無折扣 3. 循環(huán)語句 循環(huán)語句是指在某種條件下,重復(fù)執(zhí)行相同的動(dòng)作,直到這個(gè)條件不成立為止。例如圖6.13中的處理P2.1.3“評獎(jiǎng)學(xué)金,要計(jì)算同年級同專業(yè)每個(gè)學(xué)生一學(xué)期的總成績,可用循環(huán)語句寫成: 對每一個(gè)學(xué)生 計(jì)算總成績 6.5.2 判定樹(decision tree) 假設(shè)一個(gè)動(dòng)作的執(zhí)行不只是依賴一個(gè)條件,而是與多個(gè)條件有關(guān),那么這項(xiàng)策略的表達(dá)就比較復(fù)雜。如果用前面介紹的判斷語句,就會(huì)有

51、多重嵌套。層次一多,可讀性就下降。用判定樹來表示,可以更直觀一些。前面提到某公司關(guān)于折扣率的規(guī)定就涉及三個(gè)條件:購貨額、最近三個(gè)月有無欠款、貿(mào)易時(shí)間是否超過十年。這個(gè)政策用判定樹可表示如下: 由于這個(gè)例子比較簡單,因此與前面用判定語句表達(dá)的方法相比,判定樹的優(yōu)點(diǎn)不太明顯。但讀者不難相象,如果將有關(guān)折扣的規(guī)定作些改變,例如將購貨額(A)分幾個(gè)等級:A5萬元、3萬元A5萬元、1萬元A3萬元、A1萬元。交易時(shí)間也類似分為假設(shè)干等級,根據(jù)不同的等級給予不同的折扣率。在這種情況下,用判斷語句表達(dá)的話,可讀性將大為下降。但用判定樹表達(dá)時(shí),樹的高度還是三層,只是相應(yīng)的結(jié)點(diǎn)多分幾個(gè)叉,其直觀性沒有降低多少。對

52、于這類問題往往用判定樹表示,如果需要的話,可根據(jù)判定樹寫出相應(yīng)的判斷語句。 6.5.3 判定表(decision table) 一些條件較多,在每個(gè)條件下取值也較多的判定問題,可以用判定表表示。其優(yōu)點(diǎn)是能把各種組合情況一個(gè)不漏地表示出來,有時(shí)還能幫助發(fā)現(xiàn)遺漏和矛盾的情況。我們通過下面這個(gè)例子說明判定表的應(yīng)用與有關(guān)問題。 某廠對一局部職工重新分配工作。分配原那么是: (1) 年齡不滿20歲,文化程度是小學(xué)者脫產(chǎn)學(xué)習(xí),文化程度是中學(xué)者當(dāng)電工; (2) 年齡滿20歲但缺乏50歲,文化程度是小學(xué)或中學(xué)者,男性當(dāng)鉗工,女性當(dāng)車工;文化程度是大學(xué)者當(dāng)技術(shù)員; (3) 年齡滿50歲及50歲以上,文化程度是小

53、學(xué)或中學(xué)者當(dāng)材料員,文化程度是大學(xué)者當(dāng)技術(shù)員。 分析這個(gè)原那么,實(shí)際上它考慮了三個(gè)因素:性別、年齡、文化程度。它們的取值范圍分別是: 性別:男,女 年齡:青年(小于20歲),中年(滿20歲而缺乏50歲),老年(滿50歲及以上) 文化程度:小學(xué),中學(xué),大學(xué) 這三個(gè)條件,根據(jù)它們的取值范圍,可以組合成23318種情況。 這個(gè)原那么共提供六種不同的工作:脫產(chǎn)學(xué)習(xí)、當(dāng)電工、當(dāng)鉗工、當(dāng)車工、當(dāng)技術(shù)員、當(dāng)材料員,我們稱它們是六種行動(dòng)。不同的條件組合,采取不同的行動(dòng)。 把條件說明,條件可能的組合,可能采取的行動(dòng)列在一張表上,得到有條件組合的判定表,如表6.7所示。 表6.7 判定表的結(jié)構(gòu) 123456789

54、101112131415161718C1:性別男男男男男男男男男女女女女女女女女女C2:年齡青青青中中中老老老青青青中中中老老老C3:文化程度小中大小中大小中大小中大小中大小中大A1:脫產(chǎn)學(xué)習(xí)A2:當(dāng)電工A3:當(dāng)鉗工A4:當(dāng)車工A5:當(dāng)技術(shù)員A6:當(dāng)材料員 表的左上部是條件說明(C1C3),左下部是行動(dòng)說明(A1A6),右上部是條件的組合,右下部是與條件組合相對應(yīng)的行動(dòng)。例如,根據(jù)分配原那么,第1列:男性,年齡不滿20歲,小學(xué)文化程度,應(yīng)脫產(chǎn)學(xué)習(xí),在第1列A1的位置記“。同樣,第2列表示男性,青年,中學(xué)文化程度,根據(jù)分配原那么應(yīng)該當(dāng)電工,在第2列,A2行位置記“,依此類推,最后得到表6.8。

55、表6.8 判定表 123456789101112131415161718C1:性別男男男男男男男男男女女女女女女女女女C2:年齡青青青中中中老老老青青青中中中老老老C3:文化程度小中大小中大小中大小中大小中大小中大A1:脫產(chǎn)學(xué)習(xí)A2:當(dāng)電工A3:當(dāng)鉗工A4:當(dāng)車工A5:當(dāng)技術(shù)員A6:當(dāng)材料員 這是一張完整的判定表。表中列出了三個(gè)條件所有可能的組合情況。因此不會(huì)有遺漏。這張表可以簡化?;喌姆椒ㄊ呛喜?。合并的原那么是在相同的行動(dòng)下,檢查它所對應(yīng)的各列條件組合中是否存在無需判斷的條件。例如第1列與第10列,對應(yīng)的行動(dòng)相同,都是A1:脫產(chǎn)學(xué)習(xí),對應(yīng)的年齡取值相同,對應(yīng)的文化程度取值也相同,僅性別取值

56、不同:第1列取值“男,第10列取值“女。 換句話說,只要年齡取值“青,文化程度取值“小學(xué),那么不管性別是男是女,都分配同樣的工作A1:脫產(chǎn)學(xué)習(xí)。同理,第2列與第11列、第3列與第12列、第6列與第15列、第9列與第18列、第7列與第16例、第8列與第17列都可以分別合并,由此得到表6.9。表6.9 判定表的合并 1,102,113,12456,157,168,179,181314C1:性別/男男/女女C2:年齡青青青中中中老老老中中C3:文化程度小中大小中大小中大小中A1:脫產(chǎn)學(xué)習(xí)A2:當(dāng)電工A3:當(dāng)鉗工A4:當(dāng)車工A5:當(dāng)技術(shù)員A6:當(dāng)材料員 表6.9還可以合并??疾椤癆5:當(dāng)技術(shù)員對應(yīng)的3

57、列,條件“C1:性別取值相同(均不管性別),“C3:文化程度取值都是“大學(xué),而條件“C2:年齡取值分別為:青年、中年、老年。這正是條件C2取值的整個(gè)范圍。換言之,采取這一行動(dòng),可以不考慮“年齡這個(gè)條件。這3列合并后得到表6.10。表6.10 簡化的判定表 123456789C1:性別/男男/女女C2:年齡青青/中中老老中中C3:文化程度小中大小中小中小中A1:脫產(chǎn)學(xué)習(xí)A2:當(dāng)電工A3:當(dāng)鉗工A4:當(dāng)車工A5:當(dāng)技術(shù)員A6:當(dāng)材料員 由此,歸納出判定表合并的原那么:取相同行動(dòng)的列,假設(shè)有某個(gè)條件Ci在此n列的取值正好是該條件取值的全集,而其他條件在此列都取相同的值,那么此列可以合并。 按此原那么

58、考查表6.10,不可能再合并。這個(gè)決策問題的判定表的化簡也到此為止。 用判定表來描述決策問題,通常經(jīng)過以下幾個(gè)步驟:(1) 分析決策問題涉及的條件;(2) 分析每個(gè)條件取值的集合;(3) 列出條件的各種可能組合;(4) 分析決策問題涉及的可能的行動(dòng);(5) 做出有條件組合的判定表;(6) 決定各種條件組合的行動(dòng);(7) 按合并規(guī)那么化簡判定表。 正確恰當(dāng)?shù)胤治鰲l件及其取值的集合是很關(guān)鍵的一步。所謂正確,就是取值的劃分不重復(fù)、不遺漏。所謂“恰當(dāng),即在正確的前提下要簡單。從前面的例子看到,判定表的列數(shù)是各條件取值數(shù)目的乘積,即判定表的列數(shù)隨條件的取值數(shù)成指數(shù)型上升。 例如,某校關(guān)于學(xué)生升留級的規(guī)定

59、:“一學(xué)期有三門考試課程不及格者,直接留級;一學(xué)期考試和考查四門課程不及格者,不予補(bǔ)考,直接留級。 這里實(shí)際上涉及三種可能的行動(dòng):直接留級、補(bǔ)考和升級。全部課程及格者升級,不及格課程過多直接留級,有不及格課程但未到達(dá)直接留級者補(bǔ)考。條件涉及兩個(gè)方面:考試不及格的門數(shù)、考查不及格的門數(shù)。假設(shè)直接以這兩個(gè)“門數(shù)為條件,那么前者有四種情況:全部及格,一門不及格、兩門不及格、三門或三門以上不及格;后者有五種情況:全部及格、一門不及格、兩門不及格、三門不及格、四門或四門以上不及格。這樣兩個(gè)條件可以組合成4520種情況。 因此,列出的決策表在化簡以前就有20列。但假設(shè)根據(jù)問題的要求,適中選取判定的條件,那

60、么可以更簡單一些。例如,第一個(gè)條件(C1)按考試科目不及格門數(shù)是否到達(dá)三門分兩種情況,第二個(gè)條件(C2)按不及格門數(shù)(包括考試、考查)分為三種情況:0,13門、四門或四門以上,列表說明如表6.11所示。 這樣,共有236種組合,列出的判定表如表6.12所示。表6.11 條件分析 條件取值含義C1:考試科目01不及格門數(shù)3不及格門數(shù)3C2:全部科目012全部及格0不及格門數(shù)4不及格門數(shù)4表6.12 升留級判定表123456C1:考試科目000111C2:全部科目012012直接留級補(bǔ)考升級 用判定表來表達(dá)一個(gè)復(fù)雜的問題,優(yōu)點(diǎn)之一是不會(huì)遺漏某些可能的情況。從前面的例子中可以看出,只要各個(gè)條件的各種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論