第十篇需求的描述方法傳統(tǒng)方法課件_第1頁
第十篇需求的描述方法傳統(tǒng)方法課件_第2頁
第十篇需求的描述方法傳統(tǒng)方法課件_第3頁
第十篇需求的描述方法傳統(tǒng)方法課件_第4頁
第十篇需求的描述方法傳統(tǒng)方法課件_第5頁
已閱讀5頁,還剩131頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第十章需求的描述方法第一部分傳統(tǒng)方法第十章需求的描述方法第一部分傳統(tǒng)方法用傳統(tǒng)的觀點和面向?qū)ο蟮挠^點看待活動數(shù)據(jù)流程圖詳細記錄DFD部件信息工程模型考慮網(wǎng)絡(luò)節(jié)點和通信工作流建模用傳統(tǒng)的觀點和面向?qū)ο蟮挠^點看待活動第9章描述了在使用傳統(tǒng)方法和面向?qū)ο蠓椒ǖ男畔⑾到y(tǒng)開發(fā)過程中與建立系統(tǒng)需求模型相關(guān)的兩個關(guān)鍵概念:事件和事物。而在這一章。我們的重點將轉(zhuǎn)向當(dāng)事件發(fā)生時系統(tǒng)會做什么,即活動和交互。第9章描述了在使用傳統(tǒng)方法和面向?qū)ο蠓椒ǖ男畔⑾到y(tǒng)開發(fā)過程10.1用傳統(tǒng)方法的觀點和面向?qū)ο蟮挠^點看待活動傳統(tǒng)方法和面向?qū)ο蠓椒ǖ膮^(qū)別在于當(dāng)一個事件發(fā)生時所發(fā)生的事情是不同的。有關(guān)系統(tǒng)需求的一個關(guān)鍵問題是:系統(tǒng)如何響應(yīng)事件。傳統(tǒng)方法區(qū)別于面向?qū)ο蠓椒ǖ牡胤皆谟谙到y(tǒng)的建模和實現(xiàn)方法的不同。傳統(tǒng)方法把系統(tǒng)看作一個過程的集合體,一些由人完成,另一些由計算機完成。計算機過程就象常規(guī)的計算機程序—有按順序執(zhí)行的指令。當(dāng)過程開始執(zhí)行時,它與數(shù)據(jù)進行交互、讀出數(shù)據(jù)、又把數(shù)據(jù)寫回數(shù)據(jù)文件中。過程或許也要與人進行交互,例如它有時要求用戶輸人一個值或者在計算機屏幕上顯示信息給用戶看。所以,系統(tǒng)的傳統(tǒng)方法包括過程、數(shù)據(jù)、輸人和輸出。在為系統(tǒng)對事件做出的反應(yīng)進行建模的過程中,傳統(tǒng)方法包括了強調(diào)組件的過程模型。10.1用傳統(tǒng)方法的觀點和面向?qū)ο蟮挠^點看待活動傳統(tǒng)方法和相比之下,面向?qū)ο?oo)方法把系統(tǒng)看成是一個相互影響的對象集。這些對象已在第9章中討論過。對象是有行為的(叫做方法)。這些方法可以使對象與其他對象或系統(tǒng)使用者進行交互。一個對象通過發(fā)送消息請求另一個對象做某事。就其本身而論,面向?qū)ο蠓椒ú淮嬖诔R?guī)的計算機過程和數(shù)據(jù)文件。對象執(zhí)行活動并記錄下數(shù)值。當(dāng)為系統(tǒng)響應(yīng)事件建模的時候,面向?qū)ο蠓椒ò@示對象的模型、模型的行為以及與對象的交互。圖10-1總結(jié)了傳統(tǒng)方法和面向?qū)ο筮@兩種方法的不同點。相比之下,面向?qū)ο?oo)方法把系統(tǒng)看成是一個相互影響的對傳繚方法系統(tǒng)是過程的集合過程與數(shù)據(jù)實體交互過程接受輸入并產(chǎn)生輸出

面向?qū)ο蠓椒ㄏ到y(tǒng)是交互對象的集合對象與人或其他對象交互對象發(fā)送與響應(yīng)消息傳繚方法面向?qū)ο蠓椒?0.2數(shù)據(jù)流程圖在信息系統(tǒng)開發(fā)中傳統(tǒng)方法把活動描述為由人或計算機執(zhí)行的過程。數(shù)據(jù)流程圖已被證明它是建立過程模型非常有價值的圖形化模型。當(dāng)然,還有其他的過程模型如在信息工程中使用的過程依賴圖和用于業(yè)務(wù)流程再造的工作流程圖,但數(shù)據(jù)流程圖是最常用的過程模型。10.2數(shù)據(jù)流程圖在信息系統(tǒng)開發(fā)中傳統(tǒng)方法把活動描述為由人外部實體:在系統(tǒng)邊界之外的個人或組織,它提供數(shù)據(jù)輸入或接受數(shù)據(jù)輸出。過程:在DFD中的一個符號,它代表從數(shù)據(jù)輸入轉(zhuǎn)換到數(shù)據(jù)輸出的算法或程序。數(shù)據(jù)流:在DFD中的箭頭,它表示在過程、數(shù)據(jù)存儲和外部實體之間的數(shù)據(jù)移動。數(shù)據(jù)存儲:保存數(shù)據(jù)的地方,以便將來由一個或多個過程來訪問這些數(shù)據(jù)。外部實體:在系統(tǒng)邊界之外的個人或組織,它提供數(shù)據(jù)輸入或接受數(shù)過程數(shù)據(jù)流一步步地執(zhí)行指令。將輸入換成輸出(由人、機器或這兩者完成這個工作)從一處到另一處的數(shù)據(jù)流向,如從輸入或輸出到一個過程的數(shù)據(jù)流系統(tǒng)之外的數(shù)據(jù)源或目的外部實體數(shù)據(jù)存儲存放數(shù)據(jù)的地方,這些數(shù)據(jù)在以后使用,通常與實體-聯(lián)系圖中的一個數(shù)據(jù)實體祖對應(yīng)實時連接當(dāng)過程執(zhí)行時,外部實體與過程之間來回通信(如信用卡驗證)過程數(shù)據(jù)流一步步地執(zhí)行指令。將輸入換成輸出從一處到另一處的數(shù)一個DFD演示處理“查找可用條目”1客戶查詢可用條目條目查詢可用條目細節(jié)目錄產(chǎn)品條目庫存條目一個DFD演示處理“查找可用條目”1客戶查詢可用條目條目查詢這個事件是客戶想檢查可用條目,觸發(fā)器是條目查詢,來源是客戶,響應(yīng)是可用條目細節(jié),響應(yīng)的目標(biāo)是客戶。所以,這個數(shù)據(jù)流程圖以一個圖形方式響應(yīng)一個事件來顯示系統(tǒng)活動。但是DFD的另一個信息沒有包含在事件表中。數(shù)據(jù)存儲包括條目可用性的信息。每一個數(shù)據(jù)存儲在實體一聯(lián)系圖(ERD)中代表一個數(shù)據(jù)實體。在DFD中的過程使用了在ERD中我們所提供的數(shù)據(jù)實體及其屬性信息。所以,數(shù)據(jù)流程圖將事件觸發(fā)的過程和在ERD中定義的數(shù)據(jù)實體相結(jié)合。下圖總結(jié)了DFD的組成部分、在事件表中描述的事件及在ERD中定義的數(shù)據(jù)實體這三者的一致性。這個事件是客戶想檢查可用條目,觸發(fā)器是條目查詢,來源是客戶,客戶查詢可用條目條目查詢可用條目細節(jié)目錄產(chǎn)品條目庫存條目外部實體、數(shù)據(jù)流、和過程來自于事件表中有關(guān)事件的信息數(shù)據(jù)存儲來自于實體一聯(lián)系圖來源觸發(fā)器動作目的地響應(yīng)客戶查詢可用條目條目查詢可用條目細節(jié)目錄產(chǎn)品條目庫存條目外部10.2.1數(shù)據(jù)流程圖和抽象水平抽象水平:能把系統(tǒng)分解成一個逐漸細化的分層集合的建模技術(shù)。有許多種類型的數(shù)據(jù)流程圖用于描述系統(tǒng)需求。剛才描述的例子是DFD的一部分,它顯示了響應(yīng)一個事件的過程。其他的數(shù)據(jù)流程圖用于顯示一個更高層(系統(tǒng)更概括的概念)或更低層(系統(tǒng)更詳細的概念)的處理。這些不同的系統(tǒng)概念(高層的和低層的)被認(rèn)為是抽象水平。數(shù)據(jù)流程圖的另一個非常有用的特性是能夠表現(xiàn)系統(tǒng)高層和低層概念。在一個DFD中高層次過程可以分解成若干獨立的、低層次的、詳細的DFD,詳細的DFD中的過程可以進一步分解成其他的圖形以便提供多層次或多水平的抽象。10.2.1數(shù)據(jù)流程圖和抽象水平10.2.2關(guān)聯(lián)圖

關(guān)聯(lián)圖是指描述系統(tǒng)高層結(jié)構(gòu)的DFD。所有的外部實體和進出系統(tǒng)的數(shù)據(jù)流都畫在一張圖中,并且整個系統(tǒng)被表示成一個過程。如圖顯示了一個簡單的大學(xué)課程注冊系統(tǒng)的關(guān)聯(lián)圖,這個圖與三個外部實體交互:學(xué)術(shù)部、學(xué)生和教員。學(xué)術(shù)部提供有關(guān)課程的信息,學(xué)生申請注冊,教員在注冊完成后得到班級列表。10.2.2關(guān)聯(lián)圖關(guān)聯(lián)圖是指描述系統(tǒng)高層結(jié)構(gòu)的DFD。所有學(xué)術(shù)部教員時間表數(shù)據(jù)班級列表課程注冊系統(tǒng)0注冊請求時間表學(xué)生圖10-5大學(xué)課程注冊系統(tǒng)的關(guān)聯(lián)圖學(xué)術(shù)部教員時間表數(shù)據(jù)班級列表課程注冊系統(tǒng)0注冊請求時間表學(xué)生關(guān)聯(lián)圖在表達系統(tǒng)邊界時很有用。系統(tǒng)的范圍是通過單過程和外部實體所表示的事物來定義的。提供和接收數(shù)據(jù)的外部實體在系統(tǒng)范圍以外,其他任何事情屬于系統(tǒng)的范圍。數(shù)據(jù)存儲不畫在關(guān)聯(lián)圖中是因為數(shù)據(jù)存儲本身被認(rèn)為是屬于系統(tǒng)內(nèi)部的。在系統(tǒng)計劃階段,我們將關(guān)聯(lián)圖當(dāng)做確定新系統(tǒng)范圍的工具使用。關(guān)聯(lián)圖在表達系統(tǒng)邊界時很有用。系統(tǒng)的范圍是通過單過程和外部實10.2.3DFD片段一個DFD片段是為事件清單(擴展為事件表)中的每個事件創(chuàng)建的。每個DFD片段是一個顯示系統(tǒng)如何響應(yīng)某個事件的獨立模型。分析員通常是一次創(chuàng)建一個DFD片段,這樣能將精力集中在系統(tǒng)的一個部分中。10.2.3DFD片段一個DFD片段是為事件清單(擴下圖顯示了課程注冊系統(tǒng)的三個DFD片段。每一個DFD片段在一個過程符號中代表對一個事件的所有響應(yīng)過程。但是這些片段展示廠在過程、外部實體和內(nèi)部數(shù)據(jù)存儲之間的交互細節(jié)。在DFD片段中的數(shù)據(jù)存儲代表ERD中的實體。每個DFD片段僅顯示要響應(yīng)該事件的那些數(shù)據(jù)存儲。下圖顯示了課程注冊系統(tǒng)的三個DFD片段。每一個D學(xué)術(shù)部計劃課程提供的課程1計劃安排數(shù)據(jù)課程注冊教員產(chǎn)生班級列表3班級列表學(xué)生提供的課程學(xué)術(shù)部計劃課程提供的課程1計劃安排數(shù)據(jù)學(xué)生注冊學(xué)生2學(xué)生提供的課程課程注冊注冊請求計劃安排圖10-7課程注冊系統(tǒng)的DFD片段學(xué)術(shù)部計劃課程提供的課程1計劃安排數(shù)據(jù)課程注冊教員產(chǎn)生班級列10.2.4事件劃分的系統(tǒng)模型DFD片段的完全集可以組合到一個叫做事件劃分的系統(tǒng)模型或0層圖中。0層圖通常在單個的DFD中顯示完整的系統(tǒng),它比關(guān)聯(lián)圖包含更多的細節(jié)。圖10-10顯示了四個相關(guān)的DFD以展示每一層是如何為上一層提供更進一步的信息的。最高層的DFD就是大學(xué)課程注冊系統(tǒng)的關(guān)聯(lián)圖。緊接在關(guān)聯(lián)圖下方的DFD是事件劃分系統(tǒng)模型(或0層圖)。注意0層圖實際上是關(guān)聯(lián)圖中對過程的分解,它也是圖10-7中的三個DFD片段的一個組合。在0層圖中的每一個過程表示處理一個事件。10.2.4事件劃分的系統(tǒng)模型教員學(xué)術(shù)部學(xué)生課程注冊系統(tǒng)班級列表課程安排數(shù)據(jù)注冊請求課程安排0關(guān)聯(lián)圖課程安排課程注冊注冊學(xué)生2班級列表注冊請求課程安排學(xué)生教員提供的課程學(xué)生產(chǎn)生班級列表3學(xué)術(shù)部1課程安排數(shù)據(jù)0層圖教員學(xué)術(shù)部學(xué)生課程注冊系統(tǒng)班級列表課程安排數(shù)據(jù)注冊請求課程安學(xué)術(shù)部課程安排提供的課程課程安排數(shù)據(jù)1學(xué)術(shù)部選擇日期和時間1.1分配教員1.2提供的課程分配教室1.3課程可用教員可用教室學(xué)術(shù)部DFD片斷1圖1學(xué)術(shù)部課程安排提供的課程課程安排數(shù)據(jù)1學(xué)術(shù)部選擇日期和時間1在圖10-10中的第三個DFD展示了對應(yīng)與0層圖中過程1的一個DFD片段。由于在0層圖中有三個過程,因此,應(yīng)該有三個獨立的DFD片段,每一個對應(yīng)于一個過程或事件。但在圖中只畫了一個DFD片段。在這個DFD的下面是過程1中的一個分解。創(chuàng)建一個DFD是用來描述系統(tǒng)如何分解為子系統(tǒng)。一旦子系統(tǒng)的DFD創(chuàng)建好,系統(tǒng)分析員就為每一個子系統(tǒng)畫一個獨立的事件劃分DFD。當(dāng)子系統(tǒng)定義好,DFD集合就一個個相互聯(lián)結(jié)起來。關(guān)聯(lián)圖分解為一個子系統(tǒng)DFD,而子系統(tǒng)DFD進一步分解為事件劃分的DFD集合。沒有單獨的0層圖。相反,每一個子系統(tǒng)有一個事件劃分的DFD。本質(zhì)上來說,一個事件劃分的DFD是一個子系統(tǒng)的0層圖。在圖10-10中的第三個DFD展示了對應(yīng)與0層圖中過程1的一10.2.5分解過程以查看一項活動更詳細的信息有時一些DFD片段包括許多處理,這些處理需要系統(tǒng)分析員做更詳細的研究。正像一個關(guān)聯(lián)圖可以分解為0層圖一樣,一個DFD片段也可以分解為子過程。在任何建模步驟中,進一步的分解都將幫助系統(tǒng)分析員了解更多的需求,同時產(chǎn)生需要的文檔。10.2.5分解過程以查看一項活動更詳細的信息第十篇需求的描述方法傳統(tǒng)方法課件第十篇需求的描述方法傳統(tǒng)方法課件圖2是DFD片段2“創(chuàng)建新訂單”較為詳細的分解圖的一個例子。把它命名為圖表2是由于它顯示過程2的內(nèi)部信息。子過程被編號為2.1、2.2、2.3、2.4。然而,編號方式不必要表示子處理的執(zhí)行順序。本圖把過程2分解為四個子過程:“記錄客戶信息”、’‘記錄訂單”、“處理訂單交易”,“產(chǎn)生確認(rèn)信息”。這些子過程被認(rèn)為是完整活動的四個主要步驟。這也是細化工作的一種辦法。另一個分析員可能得到不同的分析結(jié)果。圖2是DFD片段2“創(chuàng)建新訂單”較為詳細的分解圖的一個例子。第一步開始于客戶提供“新訂單‘’這個數(shù)據(jù)流的信息?!靶掠唵巍睌?shù)據(jù)流包含客戶和客戶想要訂購的所有項目信息。過程2.1在一個叫“客戶”的數(shù)據(jù)存儲中保存客戶信息(可創(chuàng)建新的客戶信息或根據(jù)要求更新已有客戶信息)。數(shù)據(jù)存儲代表ERD中的客戶數(shù)據(jù)實體。在數(shù)據(jù)存儲中的數(shù)據(jù)與客戶數(shù)據(jù)實體的屬性列表相對應(yīng)。如果客戶是一個已有的客戶,數(shù)據(jù)就已經(jīng)在數(shù)據(jù)存儲中,所以過程就把這些數(shù)據(jù)讀出。過程2.1就把有關(guān)訂單的其他信息—名叫“訂單細節(jié)”的數(shù)據(jù)流發(fā)送給過程2.2。第一步開始于客戶提供“新訂單‘’這個數(shù)據(jù)流的信息?!靶掠唵芜^程2.2使用“訂單細節(jié)”數(shù)據(jù)流并在“訂單”數(shù)據(jù)存儲中通過加入數(shù)據(jù)創(chuàng)建一個新的訂單記錄。然后,對應(yīng)于每一個訂單條目,在“產(chǎn)品項目”、“庫存項目”的數(shù)據(jù)存儲中查詢庫存和產(chǎn)品價格。如果當(dāng)前有足夠的庫存,就創(chuàng)建一個訂單條目記錄,同時庫存數(shù)據(jù)要修改。重復(fù)這些步驟直到所有的條目處理完畢。例如如果有三個項目被預(yù)定,則需要創(chuàng)建一個訂單記錄和三個訂單條目記錄。過程2.2使用“訂單細節(jié)”數(shù)據(jù)流并在“訂單”數(shù)據(jù)存儲中通過加過程2.2根據(jù)訂單(每一個條目的單價、時間、數(shù)量)累計總數(shù),同時發(fā)送‘’交易細節(jié)”的數(shù)據(jù)流到過程2.3以記錄交易?!敖灰准毠?jié)”包含訂單號、數(shù)量和信用卡信息。過程2.3需要一個與信用部門保持實時連接以取得客戶的信用卡的信用權(quán)限。這里用實時連接而不是數(shù)據(jù)流是因為在過程執(zhí)行的時候數(shù)據(jù)需要很快的來回流動。如果信用卡是可用的,就在數(shù)據(jù)存儲“訂單交易”中創(chuàng)建一條記錄,同時一條交易數(shù)據(jù)流直接傳到銀行。過程2.2根據(jù)訂單(每一個條目的單價、時間、數(shù)量)累計總數(shù),最后一個過程是處理給客戶的訂單確認(rèn)信息和發(fā)給運輸部門的訂單細節(jié)。根據(jù)訂單號過程2.4可以在訂單、客戶、每一個訂單條目(加上產(chǎn)品條目中的條目描述)中查詢數(shù)據(jù)和產(chǎn)生必要的輸出。最后一個過程是處理給客戶的訂單確認(rèn)信息和發(fā)給運輸部門的訂單細10.2.6評估DFD質(zhì)量高質(zhì)量的DFD是可讀的、內(nèi)部一致的以及能準(zhǔn)確表示系統(tǒng)需求的。表示的準(zhǔn)確性主要取決于是否咨詢了用戶或其他博識的系統(tǒng)相關(guān)者。通過在DFD結(jié)構(gòu)上應(yīng)用一些簡單的規(guī)則,一個項目小組可以保證DFD的可讀性和內(nèi)部一致性。分析員應(yīng)該在開發(fā)DFD時或在準(zhǔn)備好草圖后的某一部分質(zhì)量檢查過程中使用這些規(guī)則。

復(fù)雜性最小化人們對復(fù)雜的信息處理是有局限性的。當(dāng)太多的信息同時出現(xiàn)時,人們把這種現(xiàn)象叫做信息超量。當(dāng)信息超量發(fā)生時,一個人很難理解呈現(xiàn)在面前的信息。避免信息超量的關(guān)鍵是把信息劃分為小的且相對獨立的子集,每一個子集有一定數(shù)量的可單獨考察和理解的信息。10.2.6評估DFD質(zhì)量DFD分層結(jié)構(gòu)是把信息劃分為小的且相對獨立的一大批子集例子,這樣可以單獨考察每一個DFD。讀者要了解某個過程更加詳細的信息可以跳轉(zhuǎn)到該過程的下一層,如果要知道一個DFD如何與其他DFD相關(guān)聯(lián)可以跳轉(zhuǎn)到上一層的DFD去考察。分析員要在任何一個DFD中避免信息超量可以遵循以下兩條DFD構(gòu)造規(guī)則:7±2接口最小化DFD分層結(jié)構(gòu)是把信息劃分為小的且相對獨立的一大批子集例子7±2規(guī)則(也稱為Miller數(shù))來源于心理學(xué)研究。心理學(xué)研究表明一個人可同時記住或操縱的信息“塊”的數(shù)量介于5到9之間。信息塊的數(shù)量太大就要引起信息超量。信息塊可以包括許多事情如名稱、在一個列表中的單詞、數(shù)字或一個圖片中的各部分。7±2規(guī)則:模型設(shè)計規(guī)則,它限制模型中組成元素個數(shù)或元素之間的連接數(shù)不能超過97±2規(guī)則在DFD中的應(yīng)用如下:單個DFD中不應(yīng)有超過7±2個過程單個DFD不應(yīng)超過7±2個數(shù)據(jù)流進出一個過程、數(shù)據(jù)存儲和數(shù)據(jù)元素7±2規(guī)則(也稱為Miller數(shù))來源于心理學(xué)研究。心理學(xué)接口最小化是與7±2規(guī)則直接相關(guān)的。接口是指一個問題或描述中的一部分與其他部分的連接。與信息塊一樣,一個人可同時記住或操縱的連接是有限的,所以連接數(shù)應(yīng)保證最小。DFD中的過程表示業(yè)務(wù)和處理邏輯塊,它們通過數(shù)據(jù)流與其他過程、實體和數(shù)據(jù)存儲相關(guān)聯(lián)。有大量接口(數(shù)據(jù)流)的單個過程會復(fù)雜到不能理解。這也許會作為7±2規(guī)則的違反行為直接在過程分解中顯現(xiàn)出來。分析員通常可以這樣來解決這個問題,即把這種過程分解為二個或更多的過程;以使分解后的過程接口更少。接口最小化:模型設(shè)計的原則,該原則通過使模型中各個元素之間的接口放或連接數(shù)最小化來達到簡單的目的。接口最小化是與7±2規(guī)則直接相關(guān)的。接口是指一個問題或描述過程成對或成組且在它們之間有大量的數(shù)據(jù)流是與接口最小化規(guī)則相沖突的另一個例子:通常這樣的條件預(yù)示著過程中的任務(wù)處理劃分都比較差。解決這個問題的辦法是重新分配處理任務(wù)以使在它們之間需要更少的接口。在過程之間對工作的最好劃分是保證最簡單。而保證最簡單的劃分需要過程之間使用最少的接口。過程成對或成組且在它們之間有大量的數(shù)據(jù)流是與接口最小化規(guī)則數(shù)據(jù)流一致性分析員通過查找DFD中各種類型的不一致性可以發(fā)現(xiàn)錯誤或忽略的東西以下是三個經(jīng)常發(fā)生且易辨別的一致性錯誤:一個過程和它的過程分解在數(shù)據(jù)流內(nèi)容中有差別有數(shù)據(jù)流出但沒有相應(yīng)的數(shù)據(jù)流入有數(shù)據(jù)流入但沒有相應(yīng)的數(shù)據(jù)流出過程分解以一種更詳細的形式展示了一個高層過程的內(nèi)部細節(jié):在大多數(shù)情況下,DFD層次中流入和流出過程的數(shù)據(jù)內(nèi)容應(yīng)與分解后的DFD中流入和流出所有過程的數(shù)據(jù)內(nèi)容一致,這種一致性叫做平衡,且高層的DFD與過程分解的DFD稱為“在平衡中”。平衡:進出過程的數(shù)據(jù)流與進出過程分解DFD的數(shù)據(jù)流在數(shù)據(jù)內(nèi)容上一致。數(shù)據(jù)流一致性分析員通過查找DFD中各種類型的不一致性可以如果由于在高層忽略了一些數(shù)據(jù)流而引起數(shù)據(jù)流程圖不平衡,則不平衡的DFD也是可接收的。例如一個大系統(tǒng)的0層圖通常省略錯誤處理的細節(jié),如當(dāng)訂購了一件商品但庫存量不夠或者該商品不再繼續(xù)生產(chǎn),在0層圖有一個過程叫“完成訂單”,在這種情況下就沒有任何相關(guān)的數(shù)據(jù)流,而在過程“完成訂單”的分解圖中系統(tǒng)分析員可以加上一個過程和一些數(shù)據(jù)流去處理這些下能繼續(xù)的項目。如果由于在高層忽略了一些數(shù)據(jù)流而引起數(shù)據(jù)流程圖不平衡,則不DFD不一致性還可以發(fā)生在單個過程或數(shù)據(jù)存儲的數(shù)據(jù)流入或流出之間。根據(jù)定義,過程將輸入數(shù)據(jù)轉(zhuǎn)換成輸出數(shù)據(jù)。在一個邏輯DFD中,數(shù)據(jù)不應(yīng)該沒有意義地傳給過程。以下的一致性規(guī)則來源于這些事實:流入過程的所有數(shù)據(jù)必須流出該過程或用于產(chǎn)生流出該過程的數(shù)據(jù)。流出過程的所有數(shù)據(jù)必須曾流入過該過程或是由流入該過程的數(shù)據(jù)產(chǎn)生。DFD不一致性還可以發(fā)生在單個過程或數(shù)據(jù)存儲的數(shù)據(jù)流入或流A,B,C,XX計算X過程詳述IfA>5ThenX=X*1.05ElseX=X*1.10Endif黑洞:帶有輸入數(shù)據(jù)的過程,但是數(shù)據(jù)的輸入并不用來產(chǎn)生數(shù)據(jù)輸出。A,B,C,XX計算X過程詳述黑洞:帶有輸入數(shù)據(jù)的過程,但是AA,B,Y計算Y過程詳述IfA>5ThenX=100ElseY=250Endif奇跡:一個帶有數(shù)據(jù)輸出的過程,這個輸出數(shù)據(jù)沒有任何產(chǎn)生來源。AA,B,Y計算Y過程詳述奇跡:一個帶有數(shù)據(jù)輸出的過程,這個注意:上述兩個一致性規(guī)則不僅僅用于過程,對數(shù)據(jù)存儲也有效。任何從數(shù)據(jù)存儲讀出來的數(shù)據(jù)元素必定在以前寫進去過。類似地,任何寫進數(shù)據(jù)存儲的數(shù)據(jù)元素必定在以后要讀出來??疾爝M出數(shù)據(jù)存儲的數(shù)據(jù)一致性會由于以下的事實而變得復(fù)雜:相同的數(shù)據(jù)元素也許能在完全不同的DFD上進出數(shù)據(jù)存儲。注意:上述兩個一致性規(guī)則不僅僅用于過程,對數(shù)據(jù)存儲也有效。10.3詳細記錄DFD部件在傳統(tǒng)的方法中,數(shù)據(jù)流程圖在一個圖上描述了所有的三種類型的內(nèi)部系統(tǒng)部件--過程、數(shù)據(jù)流和數(shù)據(jù)存儲,但仍需要更進一步描述細節(jié)。首先,需要詳細描述每一個最低層過程;其次,系統(tǒng)分析員需要根據(jù)數(shù)據(jù)流包含的數(shù)據(jù)元素來定義數(shù)據(jù)流。數(shù)據(jù)存儲也需要根據(jù)數(shù)據(jù)元素定義。最后,系統(tǒng)分析員也需要定義每一個數(shù)據(jù)元素。10.3詳細記錄DFD部件在傳統(tǒng)的方法中,數(shù)據(jù)流程圖在一個圖10.3.1過程描述在DFD中的每一個過程都必須正式地定義。定義過程有多個可選的方法,其中包括已經(jīng)討論過的過程分解。在過程分解中,一個高層的過程正式地由它分解出來的DFD定義,而這個低層的過程又可依次進一步分解成更低層的DFD。最終過程可以達到無需再由DFD定義的狀態(tài)。當(dāng)過程簡單到足以用另一個過程的描述方法把它描述清楚時,就達到了這個狀態(tài)。這些方法包括結(jié)構(gòu)化英語、決策表和決策樹。在這些方法中每一種過程都被描述成一個算法。最合適的方法應(yīng)該具有以下的特點:緊湊、可讀性好、無歧義。在大多數(shù)情況下,結(jié)構(gòu)化英語是最好的方法。10.3.1過程描述結(jié)構(gòu)化英語非常仔細地使用簡短語句描述過程。結(jié)構(gòu)化英語看起來像程序中的語句,但它用不著計算機的概念。在這里也要遵守結(jié)構(gòu)化編程的規(guī)則,并且為了清楚也要求縮進。例如圖10-19是一套選舉后投票處理的簡單指令。一些語句是非常簡單的指令,有一些則包含重復(fù)的指令,其他的一些則涉及執(zhí)行一套指令或其他指令。程序總是從最上面開始到最下面結(jié)束。所以,在這里應(yīng)應(yīng)用結(jié)構(gòu)化編程的規(guī)則。注意,雖然它沒必要是一個計算機程序(它可由一個人執(zhí)行)但它仍是一個邏輯模型。這是明確的,所以任何人只要順著這些指令都可以得到相同的結(jié)果。所以可以把他它看成一個算法。結(jié)構(gòu)化英語非常仔細地使用簡短語句描述過程。結(jié)構(gòu)化英語處理投票程序收集所有投票把所有投票放進一個棧把Yes計數(shù)器和No汁數(shù)器置為零對棧中的每一個投票進行循環(huán)處理if〔如果)是Yes,then(那么)給Yes計數(shù)數(shù)器加1Else(否則)給No計數(shù)器加1endif把投票放入己計數(shù)的棧End(結(jié)束)循環(huán)If(如果)Yes計數(shù)器的值比No計數(shù)器的值大then(那么)宣布Yes一方獲勝Else(否則)宣布NO一方獲勝Endif把已統(tǒng)計的投票棧存儲到一個安全的地方處理投票程序結(jié)束處理投票程序結(jié)構(gòu)化英語非常適合用來描述帶有一系列處理步驟和相對簡單控制邏輯(如一個簡單的循環(huán)語句或一個if-then-else語句)的過程。但結(jié)構(gòu)化英語不適合描述有下列特點的過程:復(fù)雜的決策邏輯連續(xù)的處理步驟很少(或沒有)當(dāng)需要考慮大量的變量和這些變量許多可能的組合時,這樣的決策邏輯就變得復(fù)雜起來。如果使用結(jié)構(gòu)化英語描述帶有復(fù)雜決策邏輯的過程時勢必會導(dǎo)致冗長且很難理解的描述。例如,描述相對較長且包含較多的控制語句(if,else,endif語句)。結(jié)構(gòu)化英語非常適合用來描述帶有一系列處理步驟和相對簡單控制決策表和決策樹可以比結(jié)構(gòu)化英語更簡捷地描述復(fù)雜決策邏輯。把決策邏輯描述為表或樹的形式比相應(yīng)的結(jié)構(gòu)化英語的可讀性要高。決策表更嚴(yán)密,但決策樹更易讀。有時,分析員在決定使用哪種方式最能準(zhǔn)確地描述過程之前都應(yīng)用這三種方法來描述該過程。決策表和決策樹可以比結(jié)構(gòu)化英語更簡捷地描述復(fù)雜決策邏輯10.3.2數(shù)據(jù)流定義數(shù)據(jù)流是數(shù)據(jù)元素的集合,所以數(shù)據(jù)流定義將列出所有的數(shù)據(jù)元素。例如,一個簡化了的“新訂單”數(shù)據(jù)流包含客戶名、信用卡號碼和商品種類數(shù)及每一類的數(shù)量。一些數(shù)據(jù)元素實際上是其他數(shù)據(jù)元素的結(jié)構(gòu),例如一個客戶名包含首名、中間首字母和姓。大部分的這些數(shù)據(jù)元素由系統(tǒng)保存,所以它們與ERD中的數(shù)據(jù)實體屬性一致。數(shù)據(jù)流定義:數(shù)據(jù)流內(nèi)容和內(nèi)部結(jié)構(gòu)的文本描述。10.3.2數(shù)據(jù)流定義10.3.3數(shù)據(jù)元素定義數(shù)據(jù)元素定義描述數(shù)據(jù)類型,如字符型、整型、浮點型和布爾型。每一個元素應(yīng)該清楚地表明它表示什么。有時這些描述非常特別。有時用訂單收到時的支付日期定義售出日期。或者,售出日期也可以是訂單發(fā)出的日期。有時在同一個公司不同的部門對同一個元素有不同的定義,所以對分析員來說,確切地說明元素的意義是很重要的。數(shù)據(jù)元素定義的其他部分根據(jù)數(shù)據(jù)類型的不同而不同。字符型通常要定義其長度。例如中間首字母可能最多只需要一個字符的大小,但是首名要多長才合適呢?數(shù)值通常要定義其最大和最小值作為其有效范圍。有時,某個元素允許一個特殊的值,例如有效碼。如果這個元素是一個代碼,則定義有效碼及其意義是非常重要的。例如,代碼A表示立即發(fā)運,代碼B表示存放一天,代碼c表示需要緊急確認(rèn)的發(fā)運。10.3.3數(shù)據(jù)元素定義10.3.4數(shù)據(jù)存儲定義由于在DFD中的數(shù)據(jù)存儲在ERD中表示數(shù)據(jù)實體,所以它無需特別的定義(除了給讀者一些有關(guān)ERD的提示)。如果數(shù)據(jù)存儲與ERD不相關(guān)聯(lián),則分析員可以用定義數(shù)據(jù)流的方法把數(shù)據(jù)存儲定義為一個元素集合(可能使用一個結(jié)構(gòu))。10.3.4數(shù)據(jù)存儲定義10.4信息工程模型信息工程方法在開發(fā)時主要側(cè)重于策略系統(tǒng)計劃和系統(tǒng)的數(shù)據(jù)需求上。信息工程(IE)在八十年代初由JamsMartin開發(fā)。在那時,ie與結(jié)構(gòu)化系統(tǒng)開發(fā)方法雖然有很多共同的特性但卻被認(rèn)為是相互竟?fàn)幍?。由于兩種方法都比較成熟,所以許多分析員開始尋求將兩者最好的特性結(jié)合。這一節(jié)給出了IE方法的一個概覽并描述一些IE系統(tǒng)模型,隨后描述如何將它用于本章前面的結(jié)構(gòu)化分析模型中。10.4信息工程模型信息工程方法在開發(fā)時主要側(cè)重于策略系統(tǒng)計10.4.1IE系統(tǒng)開發(fā)生命周期

IS策略計劃實體--聯(lián)系食型企業(yè)模型系統(tǒng)開發(fā)優(yōu)先考慮內(nèi)容過程模型原型過程分解模型過程依賴模型數(shù)據(jù)使用模型階段1系統(tǒng)規(guī)劃階段2業(yè)務(wù)領(lǐng)域分析階段4系統(tǒng)構(gòu)建階段3系統(tǒng)設(shè)計信息工程系統(tǒng)升發(fā)生命周期的各個階段10.4.1IE系統(tǒng)開發(fā)生命周期IS策略計劃過程模型原上圖顯示了IE系統(tǒng)開發(fā)生命周期(SDLC)的各個階段。IE系統(tǒng)開發(fā)生命周期的第一個階段集中往對全企業(yè)建模和創(chuàng)建協(xié)調(diào)的信息系統(tǒng)計劃。企業(yè)根據(jù)它的策略目標(biāo)、計劃、信息技術(shù)設(shè)施、存儲的數(shù)據(jù)需求和主要的功能區(qū)域建立模型。數(shù)據(jù)和功能模型中的交叉部分使用在IE系統(tǒng)開發(fā)生命期中第二階段的進一步分析確定明確的業(yè)務(wù)范圍上。上圖顯示了IE系統(tǒng)開發(fā)生命周期(SDLC)的各個階段。IE系在IE系統(tǒng)開發(fā)生命周期的第一階段出現(xiàn)的兩個關(guān)鍵特性是它把業(yè)務(wù)作為一個整體來關(guān)注并注重數(shù)據(jù)存儲。IE首先根據(jù)企業(yè)的策略、計劃、目標(biāo)、現(xiàn)狀和組織結(jié)構(gòu)描述企業(yè)和它的環(huán)境,然后才開始詳細說明信息技術(shù)設(shè)施和信息處理應(yīng)用的需求。集中考察數(shù)據(jù)存儲基于這樣的一個假設(shè):業(yè)務(wù)數(shù)據(jù)是一種有組織的資源,它不像業(yè)務(wù)過程那樣經(jīng)常變化。內(nèi)部和外部數(shù)據(jù)需求被假定用于引起處理需求和過程結(jié)構(gòu),但反之不成立。在IE系統(tǒng)開發(fā)生命周期的第一階段出現(xiàn)的兩個關(guān)鍵特性是它把業(yè)IE系統(tǒng)開發(fā)生命周期的第二步是描述在企業(yè)中的每一個業(yè)務(wù)范圍的處理需求。每一個業(yè)務(wù)范圍被分解為相關(guān)過程的一個層次。過程分解模型描述層次,過程依賴摸型描述過程之間的內(nèi)部關(guān)系,數(shù)據(jù)使用模型集描述過程和數(shù)據(jù)之間的關(guān)系。IE系統(tǒng)開發(fā)生命周期的第三步是開發(fā)業(yè)務(wù)過程的詳細設(shè)計。IE使用很多不同的技術(shù)和模型描述過程。這些方法強調(diào)用戶輸入過程設(shè)計和過程模型的正確性。開發(fā)人員開發(fā)圖形化過程模型,用戶檢查這些模型是否正確。IE系統(tǒng)開發(fā)生命周期的第二步是描述在企業(yè)中的每一個業(yè)務(wù)范圍IE系統(tǒng)開發(fā)生命周期的最后一步是系統(tǒng)構(gòu)建。IE法使用CASE工具和代碼生成器實現(xiàn)構(gòu)建階段。過程模型和在前一階段開發(fā)的原型用于自動生成系統(tǒng)部件。代碼生成器以CASE工具開發(fā)出來的數(shù)據(jù)和過程模型作為輸入,以產(chǎn)生的應(yīng)用程序和數(shù)據(jù)庫創(chuàng)建命令作為輸出。以前IE曾經(jīng)以過程性編程語言(如COBOL和C)和關(guān)系型數(shù)據(jù)庫管理系統(tǒng)作為目標(biāo),后來的IECASE工具和代碼生成器以面向?qū)ο蟓h(huán)境作為目標(biāo)。IE系統(tǒng)開發(fā)生命周期的最后一步是系統(tǒng)構(gòu)建。IE法使用CASE10.4.2lE和結(jié)構(gòu)化開發(fā)的比較IE和結(jié)構(gòu)化方法之間的重要差別是它們的范圍。IE設(shè)計用來說明企業(yè)級信息處理需求,它的第一步把企業(yè)作為一個整體并且根據(jù)組織結(jié)構(gòu)、目標(biāo)和策略來描述數(shù)據(jù)和信息處理。信息工程和結(jié)構(gòu)化方法的比較10.4.2lE和結(jié)構(gòu)化開發(fā)的比較

信息工程結(jié)構(gòu)化方法什么樣的系統(tǒng)規(guī)格最合適?全企業(yè)任意它與公司戰(zhàn)略計劃一致?是否技術(shù)和模型相互間結(jié)合緊密嗎?高度緊密中等緊密分析的重點是什么?數(shù)據(jù)過程其他的方法論的技術(shù)可以很容易否是結(jié)合進來嗎?

相比之下,結(jié)構(gòu)化方法既不對應(yīng)用程序的范圍做假設(shè),也不對先于結(jié)構(gòu)化分析的計劃活動做假設(shè)。結(jié)構(gòu)化方法可以適應(yīng)于整個企業(yè)、企業(yè)內(nèi)相對較小的系統(tǒng)或介于兩者之間的任何系統(tǒng)。結(jié)構(gòu)化分析不需要明確企業(yè)級的計劃和描述活動。所以,它的模型不直接與企業(yè)的組織結(jié)構(gòu)、企業(yè)策略和目標(biāo)、現(xiàn)有的和計劃的信息技術(shù)設(shè)施等信息結(jié)合。相比之下,結(jié)構(gòu)化方法既不對應(yīng)用程序的范圍做假設(shè),也不對先于結(jié)兩種方法論的另一個重要差別是相應(yīng)的工具和技術(shù)如何緊密結(jié)合起來。IE的緊密集合表現(xiàn)在:前一階段的輸出是下一個階段的輸入。這種方法論是完整的且是全封閉的。所以,在IE內(nèi)引入其他技術(shù)或模型是非常困難的(且通常是不必要的)。相反,在結(jié)構(gòu)化方法中所有的技術(shù)或模型只是中等程度地結(jié)合在一起。在這此方法中是有許多間隙,因此從像IE之類的其他方法中引入技術(shù)或模型足可能的(且通常是理想的)。兩種方法論的另一個重要差別是相應(yīng)的工具和技術(shù)如何緊密結(jié)合起在IE的第一階段一個企業(yè)的ERD就開發(fā)出來了。這個模型提供了一些信息,這些信息在以后的建模和設(shè)計過程中將廣泛使用。結(jié)構(gòu)化分析也開發(fā)和使用ERD。盡管在結(jié)構(gòu)化方法中它的作用不如在IE方法中這么重要。因為兩種方法均使用ERD,所以我們就可能在結(jié)構(gòu)化方法中引入ERD的IE模型。在IE的第一階段一個企業(yè)的ERD就開發(fā)出來了。這個模型提供了10.4.3過程分解和依賴模型與結(jié)構(gòu)化分析相比,IE使用不同的方法去建立過程模型。IE過程模型顯示了三種類型的信息:過程分解為其他過程過程間的依賴關(guān)系內(nèi)部處理邏輯10.4.3過程分解和依賴模型分析員首先通過把業(yè)務(wù)領(lǐng)域分解成補充過程來進行業(yè)務(wù)范圍的模型化。下圖是RMO客戶支持系統(tǒng)的過程分解圖例子。圖中顯示系統(tǒng)(業(yè)務(wù)領(lǐng)域)被分解成幾個主要的子系統(tǒng)。訂單輸入子系統(tǒng)被進一步分解成能輪流分解的過程。在圖中,左上角有三點的過程表明該過程的進一步分解畫在另外的紙上。分析員首先通過把業(yè)務(wù)領(lǐng)域分解成補充過程來進行業(yè)務(wù)范圍的模型化第十篇需求的描述方法傳統(tǒng)方法課件過程依賴圖:用存儲實體描述過程順序和交互的一種模型。下圖是一個名為“創(chuàng)建新訂單”的過程依賴圖,這個圖對應(yīng)于圖10-15所示的過程分解圖“創(chuàng)建新訂單”。在圖中標(biāo)有“收到訂單”的大箭頭表示觸發(fā)第一個過程事件,連接過程的線和箭頭表示過程之間的依賴關(guān)系。過程“產(chǎn)品確認(rèn)”依賴于“處理訂單交易”,即表示直到“處理訂單交易’‘處理完畢“產(chǎn)品確認(rèn)”才可以開始。過程依賴圖:用存儲實體描述過程順序和交互的一種模型。第十篇需求的描述方法傳統(tǒng)方法課件依賴關(guān)系與數(shù)據(jù)流的差別是微妙的但也是重要的。過程依賴圖不直接展示過程之間的數(shù)據(jù)流。“產(chǎn)品確認(rèn)”依賴于“處理訂單交易”是因為確認(rèn)一個沒有完成的訂單(例如一個信用仍沒有通過驗證的訂單)是沒有意義的。即使一個過程產(chǎn)生數(shù)據(jù)另一個過程使用數(shù)據(jù),這種過程之間的數(shù)據(jù)流也不直接反映在過程依賴圖中。依賴關(guān)系與數(shù)據(jù)流的差別是微妙的但也是重要的。過程依賴圖不直接第十章需求的描述方法第一部分傳統(tǒng)方法第十章需求的描述方法第一部分傳統(tǒng)方法用傳統(tǒng)的觀點和面向?qū)ο蟮挠^點看待活動數(shù)據(jù)流程圖詳細記錄DFD部件信息工程模型考慮網(wǎng)絡(luò)節(jié)點和通信工作流建模用傳統(tǒng)的觀點和面向?qū)ο蟮挠^點看待活動第9章描述了在使用傳統(tǒng)方法和面向?qū)ο蠓椒ǖ男畔⑾到y(tǒng)開發(fā)過程中與建立系統(tǒng)需求模型相關(guān)的兩個關(guān)鍵概念:事件和事物。而在這一章。我們的重點將轉(zhuǎn)向當(dāng)事件發(fā)生時系統(tǒng)會做什么,即活動和交互。第9章描述了在使用傳統(tǒng)方法和面向?qū)ο蠓椒ǖ男畔⑾到y(tǒng)開發(fā)過程10.1用傳統(tǒng)方法的觀點和面向?qū)ο蟮挠^點看待活動傳統(tǒng)方法和面向?qū)ο蠓椒ǖ膮^(qū)別在于當(dāng)一個事件發(fā)生時所發(fā)生的事情是不同的。有關(guān)系統(tǒng)需求的一個關(guān)鍵問題是:系統(tǒng)如何響應(yīng)事件。傳統(tǒng)方法區(qū)別于面向?qū)ο蠓椒ǖ牡胤皆谟谙到y(tǒng)的建模和實現(xiàn)方法的不同。傳統(tǒng)方法把系統(tǒng)看作一個過程的集合體,一些由人完成,另一些由計算機完成。計算機過程就象常規(guī)的計算機程序—有按順序執(zhí)行的指令。當(dāng)過程開始執(zhí)行時,它與數(shù)據(jù)進行交互、讀出數(shù)據(jù)、又把數(shù)據(jù)寫回數(shù)據(jù)文件中。過程或許也要與人進行交互,例如它有時要求用戶輸人一個值或者在計算機屏幕上顯示信息給用戶看。所以,系統(tǒng)的傳統(tǒng)方法包括過程、數(shù)據(jù)、輸人和輸出。在為系統(tǒng)對事件做出的反應(yīng)進行建模的過程中,傳統(tǒng)方法包括了強調(diào)組件的過程模型。10.1用傳統(tǒng)方法的觀點和面向?qū)ο蟮挠^點看待活動傳統(tǒng)方法和相比之下,面向?qū)ο?oo)方法把系統(tǒng)看成是一個相互影響的對象集。這些對象已在第9章中討論過。對象是有行為的(叫做方法)。這些方法可以使對象與其他對象或系統(tǒng)使用者進行交互。一個對象通過發(fā)送消息請求另一個對象做某事。就其本身而論,面向?qū)ο蠓椒ú淮嬖诔R?guī)的計算機過程和數(shù)據(jù)文件。對象執(zhí)行活動并記錄下數(shù)值。當(dāng)為系統(tǒng)響應(yīng)事件建模的時候,面向?qū)ο蠓椒ò@示對象的模型、模型的行為以及與對象的交互。圖10-1總結(jié)了傳統(tǒng)方法和面向?qū)ο筮@兩種方法的不同點。相比之下,面向?qū)ο?oo)方法把系統(tǒng)看成是一個相互影響的對傳繚方法系統(tǒng)是過程的集合過程與數(shù)據(jù)實體交互過程接受輸入并產(chǎn)生輸出

面向?qū)ο蠓椒ㄏ到y(tǒng)是交互對象的集合對象與人或其他對象交互對象發(fā)送與響應(yīng)消息傳繚方法面向?qū)ο蠓椒?0.2數(shù)據(jù)流程圖在信息系統(tǒng)開發(fā)中傳統(tǒng)方法把活動描述為由人或計算機執(zhí)行的過程。數(shù)據(jù)流程圖已被證明它是建立過程模型非常有價值的圖形化模型。當(dāng)然,還有其他的過程模型如在信息工程中使用的過程依賴圖和用于業(yè)務(wù)流程再造的工作流程圖,但數(shù)據(jù)流程圖是最常用的過程模型。10.2數(shù)據(jù)流程圖在信息系統(tǒng)開發(fā)中傳統(tǒng)方法把活動描述為由人外部實體:在系統(tǒng)邊界之外的個人或組織,它提供數(shù)據(jù)輸入或接受數(shù)據(jù)輸出。過程:在DFD中的一個符號,它代表從數(shù)據(jù)輸入轉(zhuǎn)換到數(shù)據(jù)輸出的算法或程序。數(shù)據(jù)流:在DFD中的箭頭,它表示在過程、數(shù)據(jù)存儲和外部實體之間的數(shù)據(jù)移動。數(shù)據(jù)存儲:保存數(shù)據(jù)的地方,以便將來由一個或多個過程來訪問這些數(shù)據(jù)。外部實體:在系統(tǒng)邊界之外的個人或組織,它提供數(shù)據(jù)輸入或接受數(shù)過程數(shù)據(jù)流一步步地執(zhí)行指令。將輸入換成輸出(由人、機器或這兩者完成這個工作)從一處到另一處的數(shù)據(jù)流向,如從輸入或輸出到一個過程的數(shù)據(jù)流系統(tǒng)之外的數(shù)據(jù)源或目的外部實體數(shù)據(jù)存儲存放數(shù)據(jù)的地方,這些數(shù)據(jù)在以后使用,通常與實體-聯(lián)系圖中的一個數(shù)據(jù)實體祖對應(yīng)實時連接當(dāng)過程執(zhí)行時,外部實體與過程之間來回通信(如信用卡驗證)過程數(shù)據(jù)流一步步地執(zhí)行指令。將輸入換成輸出從一處到另一處的數(shù)一個DFD演示處理“查找可用條目”1客戶查詢可用條目條目查詢可用條目細節(jié)目錄產(chǎn)品條目庫存條目一個DFD演示處理“查找可用條目”1客戶查詢可用條目條目查詢這個事件是客戶想檢查可用條目,觸發(fā)器是條目查詢,來源是客戶,響應(yīng)是可用條目細節(jié),響應(yīng)的目標(biāo)是客戶。所以,這個數(shù)據(jù)流程圖以一個圖形方式響應(yīng)一個事件來顯示系統(tǒng)活動。但是DFD的另一個信息沒有包含在事件表中。數(shù)據(jù)存儲包括條目可用性的信息。每一個數(shù)據(jù)存儲在實體一聯(lián)系圖(ERD)中代表一個數(shù)據(jù)實體。在DFD中的過程使用了在ERD中我們所提供的數(shù)據(jù)實體及其屬性信息。所以,數(shù)據(jù)流程圖將事件觸發(fā)的過程和在ERD中定義的數(shù)據(jù)實體相結(jié)合。下圖總結(jié)了DFD的組成部分、在事件表中描述的事件及在ERD中定義的數(shù)據(jù)實體這三者的一致性。這個事件是客戶想檢查可用條目,觸發(fā)器是條目查詢,來源是客戶,客戶查詢可用條目條目查詢可用條目細節(jié)目錄產(chǎn)品條目庫存條目外部實體、數(shù)據(jù)流、和過程來自于事件表中有關(guān)事件的信息數(shù)據(jù)存儲來自于實體一聯(lián)系圖來源觸發(fā)器動作目的地響應(yīng)客戶查詢可用條目條目查詢可用條目細節(jié)目錄產(chǎn)品條目庫存條目外部10.2.1數(shù)據(jù)流程圖和抽象水平抽象水平:能把系統(tǒng)分解成一個逐漸細化的分層集合的建模技術(shù)。有許多種類型的數(shù)據(jù)流程圖用于描述系統(tǒng)需求。剛才描述的例子是DFD的一部分,它顯示了響應(yīng)一個事件的過程。其他的數(shù)據(jù)流程圖用于顯示一個更高層(系統(tǒng)更概括的概念)或更低層(系統(tǒng)更詳細的概念)的處理。這些不同的系統(tǒng)概念(高層的和低層的)被認(rèn)為是抽象水平。數(shù)據(jù)流程圖的另一個非常有用的特性是能夠表現(xiàn)系統(tǒng)高層和低層概念。在一個DFD中高層次過程可以分解成若干獨立的、低層次的、詳細的DFD,詳細的DFD中的過程可以進一步分解成其他的圖形以便提供多層次或多水平的抽象。10.2.1數(shù)據(jù)流程圖和抽象水平10.2.2關(guān)聯(lián)圖

關(guān)聯(lián)圖是指描述系統(tǒng)高層結(jié)構(gòu)的DFD。所有的外部實體和進出系統(tǒng)的數(shù)據(jù)流都畫在一張圖中,并且整個系統(tǒng)被表示成一個過程。如圖顯示了一個簡單的大學(xué)課程注冊系統(tǒng)的關(guān)聯(lián)圖,這個圖與三個外部實體交互:學(xué)術(shù)部、學(xué)生和教員。學(xué)術(shù)部提供有關(guān)課程的信息,學(xué)生申請注冊,教員在注冊完成后得到班級列表。10.2.2關(guān)聯(lián)圖關(guān)聯(lián)圖是指描述系統(tǒng)高層結(jié)構(gòu)的DFD。所有學(xué)術(shù)部教員時間表數(shù)據(jù)班級列表課程注冊系統(tǒng)0注冊請求時間表學(xué)生圖10-5大學(xué)課程注冊系統(tǒng)的關(guān)聯(lián)圖學(xué)術(shù)部教員時間表數(shù)據(jù)班級列表課程注冊系統(tǒng)0注冊請求時間表學(xué)生關(guān)聯(lián)圖在表達系統(tǒng)邊界時很有用。系統(tǒng)的范圍是通過單過程和外部實體所表示的事物來定義的。提供和接收數(shù)據(jù)的外部實體在系統(tǒng)范圍以外,其他任何事情屬于系統(tǒng)的范圍。數(shù)據(jù)存儲不畫在關(guān)聯(lián)圖中是因為數(shù)據(jù)存儲本身被認(rèn)為是屬于系統(tǒng)內(nèi)部的。在系統(tǒng)計劃階段,我們將關(guān)聯(lián)圖當(dāng)做確定新系統(tǒng)范圍的工具使用。關(guān)聯(lián)圖在表達系統(tǒng)邊界時很有用。系統(tǒng)的范圍是通過單過程和外部實10.2.3DFD片段一個DFD片段是為事件清單(擴展為事件表)中的每個事件創(chuàng)建的。每個DFD片段是一個顯示系統(tǒng)如何響應(yīng)某個事件的獨立模型。分析員通常是一次創(chuàng)建一個DFD片段,這樣能將精力集中在系統(tǒng)的一個部分中。10.2.3DFD片段一個DFD片段是為事件清單(擴下圖顯示了課程注冊系統(tǒng)的三個DFD片段。每一個DFD片段在一個過程符號中代表對一個事件的所有響應(yīng)過程。但是這些片段展示廠在過程、外部實體和內(nèi)部數(shù)據(jù)存儲之間的交互細節(jié)。在DFD片段中的數(shù)據(jù)存儲代表ERD中的實體。每個DFD片段僅顯示要響應(yīng)該事件的那些數(shù)據(jù)存儲。下圖顯示了課程注冊系統(tǒng)的三個DFD片段。每一個D學(xué)術(shù)部計劃課程提供的課程1計劃安排數(shù)據(jù)課程注冊教員產(chǎn)生班級列表3班級列表學(xué)生提供的課程學(xué)術(shù)部計劃課程提供的課程1計劃安排數(shù)據(jù)學(xué)生注冊學(xué)生2學(xué)生提供的課程課程注冊注冊請求計劃安排圖10-7課程注冊系統(tǒng)的DFD片段學(xué)術(shù)部計劃課程提供的課程1計劃安排數(shù)據(jù)課程注冊教員產(chǎn)生班級列10.2.4事件劃分的系統(tǒng)模型DFD片段的完全集可以組合到一個叫做事件劃分的系統(tǒng)模型或0層圖中。0層圖通常在單個的DFD中顯示完整的系統(tǒng),它比關(guān)聯(lián)圖包含更多的細節(jié)。圖10-10顯示了四個相關(guān)的DFD以展示每一層是如何為上一層提供更進一步的信息的。最高層的DFD就是大學(xué)課程注冊系統(tǒng)的關(guān)聯(lián)圖。緊接在關(guān)聯(lián)圖下方的DFD是事件劃分系統(tǒng)模型(或0層圖)。注意0層圖實際上是關(guān)聯(lián)圖中對過程的分解,它也是圖10-7中的三個DFD片段的一個組合。在0層圖中的每一個過程表示處理一個事件。10.2.4事件劃分的系統(tǒng)模型教員學(xué)術(shù)部學(xué)生課程注冊系統(tǒng)班級列表課程安排數(shù)據(jù)注冊請求課程安排0關(guān)聯(lián)圖課程安排課程注冊注冊學(xué)生2班級列表注冊請求課程安排學(xué)生教員提供的課程學(xué)生產(chǎn)生班級列表3學(xué)術(shù)部1課程安排數(shù)據(jù)0層圖教員學(xué)術(shù)部學(xué)生課程注冊系統(tǒng)班級列表課程安排數(shù)據(jù)注冊請求課程安學(xué)術(shù)部課程安排提供的課程課程安排數(shù)據(jù)1學(xué)術(shù)部選擇日期和時間1.1分配教員1.2提供的課程分配教室1.3課程可用教員可用教室學(xué)術(shù)部DFD片斷1圖1學(xué)術(shù)部課程安排提供的課程課程安排數(shù)據(jù)1學(xué)術(shù)部選擇日期和時間1在圖10-10中的第三個DFD展示了對應(yīng)與0層圖中過程1的一個DFD片段。由于在0層圖中有三個過程,因此,應(yīng)該有三個獨立的DFD片段,每一個對應(yīng)于一個過程或事件。但在圖中只畫了一個DFD片段。在這個DFD的下面是過程1中的一個分解。創(chuàng)建一個DFD是用來描述系統(tǒng)如何分解為子系統(tǒng)。一旦子系統(tǒng)的DFD創(chuàng)建好,系統(tǒng)分析員就為每一個子系統(tǒng)畫一個獨立的事件劃分DFD。當(dāng)子系統(tǒng)定義好,DFD集合就一個個相互聯(lián)結(jié)起來。關(guān)聯(lián)圖分解為一個子系統(tǒng)DFD,而子系統(tǒng)DFD進一步分解為事件劃分的DFD集合。沒有單獨的0層圖。相反,每一個子系統(tǒng)有一個事件劃分的DFD。本質(zhì)上來說,一個事件劃分的DFD是一個子系統(tǒng)的0層圖。在圖10-10中的第三個DFD展示了對應(yīng)與0層圖中過程1的一10.2.5分解過程以查看一項活動更詳細的信息有時一些DFD片段包括許多處理,這些處理需要系統(tǒng)分析員做更詳細的研究。正像一個關(guān)聯(lián)圖可以分解為0層圖一樣,一個DFD片段也可以分解為子過程。在任何建模步驟中,進一步的分解都將幫助系統(tǒng)分析員了解更多的需求,同時產(chǎn)生需要的文檔。10.2.5分解過程以查看一項活動更詳細的信息第十篇需求的描述方法傳統(tǒng)方法課件第十篇需求的描述方法傳統(tǒng)方法課件圖2是DFD片段2“創(chuàng)建新訂單”較為詳細的分解圖的一個例子。把它命名為圖表2是由于它顯示過程2的內(nèi)部信息。子過程被編號為2.1、2.2、2.3、2.4。然而,編號方式不必要表示子處理的執(zhí)行順序。本圖把過程2分解為四個子過程:“記錄客戶信息”、’‘記錄訂單”、“處理訂單交易”,“產(chǎn)生確認(rèn)信息”。這些子過程被認(rèn)為是完整活動的四個主要步驟。這也是細化工作的一種辦法。另一個分析員可能得到不同的分析結(jié)果。圖2是DFD片段2“創(chuàng)建新訂單”較為詳細的分解圖的一個例子。第一步開始于客戶提供“新訂單‘’這個數(shù)據(jù)流的信息。“新訂單”數(shù)據(jù)流包含客戶和客戶想要訂購的所有項目信息。過程2.1在一個叫“客戶”的數(shù)據(jù)存儲中保存客戶信息(可創(chuàng)建新的客戶信息或根據(jù)要求更新已有客戶信息)。數(shù)據(jù)存儲代表ERD中的客戶數(shù)據(jù)實體。在數(shù)據(jù)存儲中的數(shù)據(jù)與客戶數(shù)據(jù)實體的屬性列表相對應(yīng)。如果客戶是一個已有的客戶,數(shù)據(jù)就已經(jīng)在數(shù)據(jù)存儲中,所以過程就把這些數(shù)據(jù)讀出。過程2.1就把有關(guān)訂單的其他信息—名叫“訂單細節(jié)”的數(shù)據(jù)流發(fā)送給過程2.2。第一步開始于客戶提供“新訂單‘’這個數(shù)據(jù)流的信息?!靶掠唵芜^程2.2使用“訂單細節(jié)”數(shù)據(jù)流并在“訂單”數(shù)據(jù)存儲中通過加入數(shù)據(jù)創(chuàng)建一個新的訂單記錄。然后,對應(yīng)于每一個訂單條目,在“產(chǎn)品項目”、“庫存項目”的數(shù)據(jù)存儲中查詢庫存和產(chǎn)品價格。如果當(dāng)前有足夠的庫存,就創(chuàng)建一個訂單條目記錄,同時庫存數(shù)據(jù)要修改。重復(fù)這些步驟直到所有的條目處理完畢。例如如果有三個項目被預(yù)定,則需要創(chuàng)建一個訂單記錄和三個訂單條目記錄。過程2.2使用“訂單細節(jié)”數(shù)據(jù)流并在“訂單”數(shù)據(jù)存儲中通過加過程2.2根據(jù)訂單(每一個條目的單價、時間、數(shù)量)累計總數(shù),同時發(fā)送‘’交易細節(jié)”的數(shù)據(jù)流到過程2.3以記錄交易?!敖灰准毠?jié)”包含訂單號、數(shù)量和信用卡信息。過程2.3需要一個與信用部門保持實時連接以取得客戶的信用卡的信用權(quán)限。這里用實時連接而不是數(shù)據(jù)流是因為在過程執(zhí)行的時候數(shù)據(jù)需要很快的來回流動。如果信用卡是可用的,就在數(shù)據(jù)存儲“訂單交易”中創(chuàng)建一條記錄,同時一條交易數(shù)據(jù)流直接傳到銀行。過程2.2根據(jù)訂單(每一個條目的單價、時間、數(shù)量)累計總數(shù),最后一個過程是處理給客戶的訂單確認(rèn)信息和發(fā)給運輸部門的訂單細節(jié)。根據(jù)訂單號過程2.4可以在訂單、客戶、每一個訂單條目(加上產(chǎn)品條目中的條目描述)中查詢數(shù)據(jù)和產(chǎn)生必要的輸出。最后一個過程是處理給客戶的訂單確認(rèn)信息和發(fā)給運輸部門的訂單細10.2.6評估DFD質(zhì)量高質(zhì)量的DFD是可讀的、內(nèi)部一致的以及能準(zhǔn)確表示系統(tǒng)需求的。表示的準(zhǔn)確性主要取決于是否咨詢了用戶或其他博識的系統(tǒng)相關(guān)者。通過在DFD結(jié)構(gòu)上應(yīng)用一些簡單的規(guī)則,一個項目小組可以保證DFD的可讀性和內(nèi)部一致性。分析員應(yīng)該在開發(fā)DFD時或在準(zhǔn)備好草圖后的某一部分質(zhì)量檢查過程中使用這些規(guī)則。

復(fù)雜性最小化人們對復(fù)雜的信息處理是有局限性的。當(dāng)太多的信息同時出現(xiàn)時,人們把這種現(xiàn)象叫做信息超量。當(dāng)信息超量發(fā)生時,一個人很難理解呈現(xiàn)在面前的信息。避免信息超量的關(guān)鍵是把信息劃分為小的且相對獨立的子集,每一個子集有一定數(shù)量的可單獨考察和理解的信息。10.2.6評估DFD質(zhì)量DFD分層結(jié)構(gòu)是把信息劃分為小的且相對獨立的一大批子集例子,這樣可以單獨考察每一個DFD。讀者要了解某個過程更加詳細的信息可以跳轉(zhuǎn)到該過程的下一層,如果要知道一個DFD如何與其他DFD相關(guān)聯(lián)可以跳轉(zhuǎn)到上一層的DFD去考察。分析員要在任何一個DFD中避免信息超量可以遵循以下兩條DFD構(gòu)造規(guī)則:7±2接口最小化DFD分層結(jié)構(gòu)是把信息劃分為小的且相對獨立的一大批子集例子7±2規(guī)則(也稱為Miller數(shù))來源于心理學(xué)研究。心理學(xué)研究表明一個人可同時記住或操縱的信息“塊”的數(shù)量介于5到9之間。信息塊的數(shù)量太大就要引起信息超量。信息塊可以包括許多事情如名稱、在一個列表中的單詞、數(shù)字或一個圖片中的各部分。7±2規(guī)則:模型設(shè)計規(guī)則,它限制模型中組成元素個數(shù)或元素之間的連接數(shù)不能超過97±2規(guī)則在DFD中的應(yīng)用如下:單個DFD中不應(yīng)有超過7±2個過程單個DFD不應(yīng)超過7±2個數(shù)據(jù)流進出一個過程、數(shù)據(jù)存儲和數(shù)據(jù)元素7±2規(guī)則(也稱為Miller數(shù))來源于心理學(xué)研究。心理學(xué)接口最小化是與7±2規(guī)則直接相關(guān)的。接口是指一個問題或描述中的一部分與其他部分的連接。與信息塊一樣,一個人可同時記住或操縱的連接是有限的,所以連接數(shù)應(yīng)保證最小。DFD中的過程表示業(yè)務(wù)和處理邏輯塊,它們通過數(shù)據(jù)流與其他過程、實體和數(shù)據(jù)存儲相關(guān)聯(lián)。有大量接口(數(shù)據(jù)流)的單個過程會復(fù)雜到不能理解。這也許會作為7±2規(guī)則的違反行為直接在過程分解中顯現(xiàn)出來。分析員通常可以這樣來解決這個問題,即把這種過程分解為二個或更多的過程;以使分解后的過程接口更少。接口最小化:模型設(shè)計的原則,該原則通過使模型中各個元素之間的接口放或連接數(shù)最小化來達到簡單的目的。接口最小化是與7±2規(guī)則直接相關(guān)的。接口是指一個問題或描述過程成對或成組且在它們之間有大量的數(shù)據(jù)流是與接口最小化規(guī)則相沖突的另一個例子:通常這樣的條件預(yù)示著過程中的任務(wù)處理劃分都比較差。解決這個問題的辦法是重新分配處理任務(wù)以使在它們之間需要更少的接口。在過程之間對工作的最好劃分是保證最簡單。而保證最簡單的劃分需要過程之間使用最少的接口。過程成對或成組且在它們之間有大量的數(shù)據(jù)流是與接口最小化規(guī)則數(shù)據(jù)流一致性分析員通過查找DFD中各種類型的不一致性可以發(fā)現(xiàn)錯誤或忽略的東西以下是三個經(jīng)常發(fā)生且易辨別的一致性錯誤:一個過程和它的過程分解在數(shù)據(jù)流內(nèi)容中有差別有數(shù)據(jù)流出但沒有相應(yīng)的數(shù)據(jù)流入有數(shù)據(jù)流入但沒有相應(yīng)的數(shù)據(jù)流出過程分解以一種更詳細的形式展示了一個高層過程的內(nèi)部細節(jié):在大多數(shù)情況下,DFD層次中流入和流出過程的數(shù)據(jù)內(nèi)容應(yīng)與分解后的DFD中流入和流出所有過程的數(shù)據(jù)內(nèi)容一致,這種一致性叫做平衡,且高層的DFD與過程分解的DFD稱為“在平衡中”。平衡:進出過程的數(shù)據(jù)流與進出過程分解DFD的數(shù)據(jù)流在數(shù)據(jù)內(nèi)容上一致。數(shù)據(jù)流一致性分析員通過查找DFD中各種類型的不一致性可以如果由于在高層忽略了一些數(shù)據(jù)流而引起數(shù)據(jù)流程圖不平衡,則不平衡的DFD也是可接收的。例如一個大系統(tǒng)的0層圖通常省略錯誤處理的細節(jié),如當(dāng)訂購了一件商品但庫存量不夠或者該商品不再繼續(xù)生產(chǎn),在0層圖有一個過程叫“完成訂單”,在這種情況下就沒有任何相關(guān)的數(shù)據(jù)流,而在過程“完成訂單”的分解圖中系統(tǒng)分析員可以加上一個過程和一些數(shù)據(jù)流去處理這些下能繼續(xù)的項目。如果由于在高層忽略了一些數(shù)據(jù)流而引起數(shù)據(jù)流程圖不平衡,則不DFD不一致性還可以發(fā)生在單個過程或數(shù)據(jù)存儲的數(shù)據(jù)流入或流出之間。根據(jù)定義,過程將輸入數(shù)據(jù)轉(zhuǎn)換成輸出數(shù)據(jù)。在一個邏輯DFD中,數(shù)據(jù)不應(yīng)該沒有意義地傳給過程。以下的一致性規(guī)則來源于這些事實:流入過程的所有數(shù)據(jù)必須流出該過程或用于產(chǎn)生流出該過程的數(shù)據(jù)。流出過程的所有數(shù)據(jù)必須曾流入過該過程或是由流入該過程的數(shù)據(jù)產(chǎn)生。DFD不一致性還可以發(fā)生在單個過程或數(shù)據(jù)存儲的數(shù)據(jù)流入或流A,B,C,XX計算X過程詳述IfA>5ThenX=X*1.05ElseX=X*1.10Endif黑洞:帶有輸入數(shù)據(jù)的過程,但是數(shù)據(jù)的輸入并不用來產(chǎn)生數(shù)據(jù)輸出。A,B,C,XX計算X過程詳述黑洞:帶有輸入數(shù)據(jù)的過程,但是AA,B,Y計算Y過程詳述IfA>5ThenX=100ElseY=250Endif奇跡:一個帶有數(shù)據(jù)輸出的過程,這個輸出數(shù)據(jù)沒有任何產(chǎn)生來源。AA,B,Y計算Y過程詳述奇跡:一個帶有數(shù)據(jù)輸出的過程,這個注意:上述兩個一致性規(guī)則不僅僅用于過程,對數(shù)據(jù)存儲也有效。任何從數(shù)據(jù)存儲讀出來的數(shù)據(jù)元素必定在以前寫進去過。類似地,任何寫進數(shù)據(jù)存儲的數(shù)據(jù)元素必定在以后要讀出來??疾爝M出數(shù)據(jù)存儲的數(shù)據(jù)一致性會由于以下的事實而變得復(fù)雜:相同的數(shù)據(jù)元素也許能在完全不同的DFD上進出數(shù)據(jù)存儲。注意:上述兩個一致性規(guī)則不僅僅用于過程,對數(shù)據(jù)存儲也有效。10.3詳細記錄DFD部件在傳統(tǒng)的方法中,數(shù)據(jù)流程圖在一個圖上描述了所有的三種類型的內(nèi)部系統(tǒng)部件--過程、數(shù)據(jù)流和數(shù)據(jù)存儲,但仍需要更進一步描述細節(jié)。首先,需要詳細描述每一個最低層過程;其次,系統(tǒng)分析員需要根據(jù)數(shù)據(jù)流包含的數(shù)據(jù)元素來定義數(shù)據(jù)流。數(shù)據(jù)存儲也需要根據(jù)數(shù)據(jù)元素定義。最后,系統(tǒng)分析員也需要定義每一個數(shù)據(jù)元素。10.3詳細記錄DFD部件在傳統(tǒng)的方法中,數(shù)據(jù)流程圖在一個圖10.3.1過程描述在DFD中的每一個過程都必須正式地定義。定義過程有多個可選的方法,其中包括已經(jīng)討論過的過程分解。在過程分解中,一個高層的過程正式地由它分解出來的DFD定義,而這個低層的過程又可依次進一步分解成更低層的DFD。最終過程可以達到無需再由DFD定義的狀態(tài)。當(dāng)過程簡單到足以用另一個過程的描述方法把它描述清楚時,就達到了這個狀態(tài)。這些方法包括結(jié)構(gòu)化英語、決策表和決策樹。在這些方法中每一種過程都被描述成一個算法。最合適的方法應(yīng)該具有以下的特點:緊湊、可讀性好、無歧義。在大多數(shù)情況下,結(jié)構(gòu)化英語是最好的方法。10.3.1過程描述結(jié)構(gòu)化英語非常仔細地使用簡短語句描述過程。結(jié)構(gòu)化英語看起來像程序中的語句,但它用不著計算機的概念。在這里也要遵守結(jié)構(gòu)化編程的規(guī)則,并且為了清楚也要求縮進。例如圖10-19是一套選舉后投票處理的簡單指令。一些語句是非常簡單的指令,有一些則包含重復(fù)的指令,其他的一些則涉及執(zhí)行一套指令或其他指令。程序總是從最上面開始到最下面結(jié)束。所以,在這里應(yīng)應(yīng)用結(jié)構(gòu)化編程的規(guī)則。注意,雖然它沒必要是一個計算機程序(它可由一個人執(zhí)行)但它仍是一個邏輯模型。這是明確的,所以任何人只要順著這些指令都可以得到相同的結(jié)果。所以可以把他它看成一個算法。結(jié)構(gòu)化英語非常仔細地使用簡短語句描述過程。結(jié)構(gòu)化英語處理投票程序收集所有投票把所有投票放進一個棧把Yes計數(shù)器和No汁數(shù)器置為零對棧中的每一個投票進行循環(huán)處理if〔如果)是Yes,then(那么)給Yes計數(shù)數(shù)器加1Else(否則)給No計數(shù)器加1endif把投票放入己計數(shù)的棧End(結(jié)束)循環(huán)If(如果)Yes計數(shù)器的值比No計數(shù)器的值大then(那么)宣布Yes一方獲勝Else(否則)宣布NO一方獲勝Endif把已統(tǒng)計的投票棧存儲到一個安全的地方處理投票程序結(jié)束處理投票程序結(jié)構(gòu)化英語非常適合用來描述帶有一系列處理步驟和相對簡單控制邏輯(如一個簡單的循環(huán)語句或一個if-then-else語句)的過程。但結(jié)構(gòu)化英語不適合描述有下列特點的過程:復(fù)雜的決策邏輯連續(xù)的處理步驟很少(或沒有)當(dāng)需要考慮大量的變量和這些變量許多可能的組合時,這樣的決策邏輯就變得復(fù)雜起來。如果使用結(jié)構(gòu)化英語描述帶有復(fù)雜決策邏輯的過程時勢必會導(dǎo)致冗長且很難理解的描述。例如,描述相對較長且包含較多的控制語句(if,else,endif語句)。結(jié)構(gòu)化英語非常適合用來描述帶有一系列處理步驟和相對簡單控制決策表和決策樹可以比結(jié)構(gòu)化英語更簡捷地描述復(fù)雜決策邏輯。把決策邏輯描述為表或樹的形式比相應(yīng)的結(jié)構(gòu)化英語的可讀性要高。決策表更嚴(yán)密,但決策樹更易讀。有時,分析員在決定使用哪種方式最能準(zhǔn)確地描述過程之前都應(yīng)用這三種方法來描述該過程。決策表和決策樹可以比結(jié)構(gòu)化英語更簡捷地描述復(fù)雜決策邏輯10.3.2數(shù)據(jù)流定義數(shù)據(jù)流是數(shù)據(jù)元素的集合,所以數(shù)據(jù)流定義將列出所有的數(shù)據(jù)元素。例如,一個簡化了的“新訂單”數(shù)據(jù)流包含客戶名、信用卡號碼和商品種類數(shù)及每一類的數(shù)量。一些數(shù)據(jù)元素實際上是其他數(shù)據(jù)元素的結(jié)構(gòu),例如一個客戶名包含首名、中間首字母和姓。大部分的這些數(shù)據(jù)元素由系統(tǒng)保存,所以它們與ERD中的數(shù)據(jù)實體屬性一致。數(shù)據(jù)流定義:數(shù)據(jù)流內(nèi)容和內(nèi)部結(jié)構(gòu)的文本描述。10.3.2數(shù)據(jù)流定義10.3.3數(shù)據(jù)元素定義數(shù)據(jù)元素定義描述數(shù)據(jù)類型,如字符型、整型、浮點型和布爾型。每一個元素應(yīng)該清楚地表明它表示什么。有時這些描述非常特別。有時用訂單收到時的支付日期定義售出日期?;蛘撸鄢鋈掌谝部梢允怯唵伟l(fā)出的日期。有時在同一個公司不同的部門對同一個元素有不同的定義,所以對分析員來說,確切地說明元素的意義是很重要的。數(shù)據(jù)元素定義的其他部分根據(jù)數(shù)據(jù)類型的不同而不同。字符型通常要定義其長度。例如中間首字母可能最多只需要一個字符的大小,但是首名要多長才合適呢?數(shù)值通常要定義其最大和最小值作為其有效范圍。有時,某個元素允許一個特殊的值,例如有效碼。如果這個元素是一個代碼,則定義有效碼及其意義是非常重要的。例如,代碼A表示立即發(fā)運,代碼B表示存放一天,代碼c表示需要緊急確認(rèn)的發(fā)運。10.3.3數(shù)據(jù)元素定義10.3.4數(shù)據(jù)存儲定義由于在DFD中的數(shù)據(jù)存儲在ERD中表示數(shù)據(jù)實體,所以它無需特別的定義(除了給讀者一些有關(guān)ERD的提示)。如果數(shù)據(jù)存儲與ERD不相關(guān)聯(lián),則分析員可以用定義數(shù)據(jù)流的方法把數(shù)據(jù)存儲定義為一個元素集合(可能使用一個結(jié)構(gòu))。10.3.4數(shù)據(jù)存儲定義10.4信息工程模型信息工程方法在開發(fā)時主要側(cè)重于策略系統(tǒng)計劃和系統(tǒng)的數(shù)據(jù)需求上。信息工程(IE)在八十年代初由JamsMartin開發(fā)。在那時,ie與結(jié)構(gòu)化系統(tǒng)開發(fā)方法雖然有很多共同的特性但卻被認(rèn)為是相互竟?fàn)幍摹S捎趦煞N方法都比較成熟,所以許多分析員開始尋求將兩者最好的特性結(jié)合。這一節(jié)給出了IE方法的一個概覽并描述一些IE系統(tǒng)模型,隨后描述如何將它用于本章前面的結(jié)構(gòu)化分析模型中。10.4信息工程模型信息工程方法在開發(fā)時主要側(cè)重于策略系統(tǒng)計10.4.1IE系統(tǒng)開發(fā)生命周期

IS策略計劃實體--聯(lián)系食型企業(yè)模型系統(tǒng)開發(fā)優(yōu)先考慮內(nèi)容過程模型原型過程分解模型過程依賴模型數(shù)據(jù)使用模型階段1系統(tǒng)規(guī)劃階段2業(yè)務(wù)領(lǐng)域分析階段4系統(tǒng)構(gòu)建階段3系統(tǒng)設(shè)計信息工程系統(tǒng)升發(fā)生命周期的各個階段10.4.1IE系統(tǒng)開發(fā)生命周期IS策略計劃過程模型原上圖顯示了IE系統(tǒng)開發(fā)生命周期(

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論