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

下載本文檔

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

文檔簡介

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

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

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

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

IS策略計(jì)劃實(shí)體--聯(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è)計(jì)信息工程系統(tǒng)升發(fā)生命周期的各個(gè)階段10.4.1IE系統(tǒng)開發(fā)生命周期IS策略計(jì)劃過程模型原上圖顯示了IE系統(tǒng)開發(fā)生命周期(SDLC)的各個(gè)階段。IE系統(tǒng)開發(fā)生命周期的第一個(gè)階段集中往對全企業(yè)建模和創(chuàng)建協(xié)調(diào)的信息系統(tǒng)計(jì)劃。企業(yè)根據(jù)它的策略目標(biāo)、計(jì)劃、信息技術(shù)設(shè)施、存儲(chǔ)的數(shù)據(jù)需求和主要的功能區(qū)域建立模型。數(shù)據(jù)和功能模型中的交叉部分使用在IE系統(tǒng)開發(fā)生命期中第二階段的進(jìn)一步分析確定明確的業(yè)務(wù)范圍上。上圖顯示了IE系統(tǒng)開發(fā)生命周期(SDLC)的各個(gè)階段。IE系在IE系統(tǒng)開發(fā)生命周期的第一階段出現(xiàn)的兩個(gè)關(guān)鍵特性是它把業(yè)務(wù)作為一個(gè)整體來關(guān)注并注重?cái)?shù)據(jù)存儲(chǔ)。IE首先根據(jù)企業(yè)的策略、計(jì)劃、目標(biāo)、現(xiàn)狀和組織結(jié)構(gòu)描述企業(yè)和它的環(huán)境,然后才開始詳細(xì)說明信息技術(shù)設(shè)施和信息處理應(yīng)用的需求。集中考察數(shù)據(jù)存儲(chǔ)基于這樣的一個(gè)假設(shè):業(yè)務(wù)數(shù)據(jù)是一種有組織的資源,它不像業(yè)務(wù)過程那樣經(jīng)常變化。內(nèi)部和外部數(shù)據(jù)需求被假定用于引起處理需求和過程結(jié)構(gòu),但反之不成立。在IE系統(tǒng)開發(fā)生命周期的第一階段出現(xiàn)的兩個(gè)關(guān)鍵特性是它把業(yè)IE系統(tǒng)開發(fā)生命周期的第二步是描述在企業(yè)中的每一個(gè)業(yè)務(wù)范圍的處理需求。每一個(gè)業(yè)務(wù)范圍被分解為相關(guān)過程的一個(gè)層次。過程分解模型描述層次,過程依賴摸型描述過程之間的內(nèi)部關(guān)系,數(shù)據(jù)使用模型集描述過程和數(shù)據(jù)之間的關(guān)系。IE系統(tǒng)開發(fā)生命周期的第三步是開發(fā)業(yè)務(wù)過程的詳細(xì)設(shè)計(jì)。IE使用很多不同的技術(shù)和模型描述過程。這些方法強(qiáng)調(diào)用戶輸入過程設(shè)計(jì)和過程模型的正確性。開發(fā)人員開發(fā)圖形化過程模型,用戶檢查這些模型是否正確。IE系統(tǒng)開發(fā)生命周期的第二步是描述在企業(yè)中的每一個(gè)業(yè)務(wù)范圍IE系統(tǒng)開發(fā)生命周期的最后一步是系統(tǒng)構(gòu)建。IE法使用CASE工具和代碼生成器實(shí)現(xiàn)構(gòu)建階段。過程模型和在前一階段開發(fā)的原型用于自動(dòng)生成系統(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è)計(jì)用來說明企業(yè)級信息處理需求,它的第一步把企業(yè)作為一個(gè)整體并且根據(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)略計(jì)劃一致?是否技術(shù)和模型相互間結(jié)合緊密嗎?高度緊密中等緊密分析的重點(diǎn)是什么?數(shù)據(jù)過程其他的方法論的技術(shù)可以很容易否是結(jié)合進(jìn)來嗎?

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

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

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

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

IS策略計(jì)劃實(shí)體--聯(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è)計(jì)信息工程系統(tǒng)升發(fā)生命周期的各個(gè)階段10.4.1IE系統(tǒng)開發(fā)生命周期IS策略計(jì)劃過程模型原上圖顯示了IE系統(tǒng)開發(fā)生命周期(

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論