。ㄈ 結構化分析方法
結構化分析是面向數(shù)據(jù)流進行需求分析的方法。20世紀70年代末,經(jīng)Yourdon E.,Conˉstantine L.,DeMarco T.等人提出和發(fā)展,至今已得到廣泛應用。結構化分析方法的一些重要概念也滲透在其他開發(fā)方法中。例如,結構化分析與設計技術(Structured Analysis and Design Technique,SADT)、面向對象技術(Object-Oreinted Technique,OOT)、IDEF方法等。結構化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析。由于利用圖形表達需求,顯得清晰、簡明,易于學習和掌握。具體來說,結構化分析方法就是用抽象模型的概念,按照軟件內部數(shù)據(jù)傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現(xiàn)的軟件為止。根據(jù)DeMarco的論述,結構化分析方法使用的工具有:數(shù)據(jù)流圖、數(shù)據(jù)詞典、結構化英語、判定表、判定樹。結構化分析方法有兩個明顯特點:
。1)自頂向下逐層分解。采用簡明易懂、直觀的描述方式
1.數(shù)據(jù)流圖
數(shù)據(jù)流圖也稱為Bubble Chart或data Flow Graph。是描述數(shù)據(jù)處理過程的工具。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。
(1)數(shù)據(jù)流圖的主要圖形元素從數(shù)據(jù)流圖中可知,數(shù)據(jù)流圖的基本圖形元素有4種。數(shù)據(jù)流是沿箭頭方向傳送數(shù)據(jù)的通道,它們大多是在加工之間傳輸加工數(shù)據(jù)的命名通道,也有連接數(shù)據(jù)存儲文件和加工的沒有命名的數(shù)據(jù)通道。這些數(shù)據(jù)流雖然沒有命名,但因聯(lián)接著有名加工和有名文件,所以其含意也是清楚的。同一數(shù)據(jù)流圖上不能有同名的數(shù)據(jù)流。多個數(shù)據(jù)流可以指向同個加工,也可以從一個加工散發(fā)出許多數(shù)據(jù)流。加工是以數(shù)據(jù)結構或數(shù)據(jù)內容作為加工對象的。加工的名字通常是一個動詞短語,簡明扼要地表明完成的是什么加工。文件在數(shù)據(jù)流圖中起保存數(shù)據(jù)的作用,因而稱為數(shù)據(jù)存儲(Data Store)。它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。指向文件的數(shù)據(jù)流可理解為寫入文件或查詢文件,從文件中引出的數(shù)據(jù)流可理解為從文件讀取數(shù)據(jù)或得到查詢結果。數(shù)據(jù)流圖中第4種元素是數(shù)據(jù)源點或匯點,它表示圖中要處理數(shù)據(jù)的輸入來源及處理結果要送往何處。由于它在圖中的出現(xiàn)僅僅是一個符號,并不需要以軟件的形式進行設計和實現(xiàn),因而,它只是數(shù)據(jù)流圖的外圍環(huán)境中的實體,故稱外部實體。在實際問題中它可能是計算機外圍設備或是傳感裝置。
。2)數(shù)據(jù)流與加工之間的關系在數(shù)據(jù)流圖中,如果有兩個以上的數(shù)據(jù)流指向一個加工,或是從一個加工中引出兩個以上的數(shù)據(jù)流,這些數(shù)據(jù)流之間往往存在一定的關系。
(3)分層的數(shù)據(jù)流圖為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,用一個數(shù)據(jù)流圖是不夠的。為表達稍為復雜的實際問題需要按照問題的層次結構進行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結構關系。先把整個數(shù)據(jù)處理過程暫且看成一個加工,它的輸入數(shù)據(jù)和輸出數(shù)據(jù)實際上反映了系統(tǒng)與外界環(huán)境的接口。這就是分層數(shù)據(jù)圖的頂層。但只此一圖并未表明數(shù)據(jù)的加工要求,需要進一步細化。如果這個數(shù)據(jù)處理包括3個子系統(tǒng),就可以畫出表示這3個子系統(tǒng)1、2、3的加工及其相關的數(shù)據(jù)流。這是頂層下面的第一層數(shù)據(jù)流圖,記為DFD/L1。繼續(xù)分解這3個子系統(tǒng),可得到第二層數(shù)據(jù)流圖DFD/L2.1、DFD/L2.2、及DFD/L2.3,它們分別是子系統(tǒng)。1、2和3的細化。僅以DF/2為例,其中的4個加工的編號均可聯(lián)系到其上層圖中的子系統(tǒng)2。這樣得到的多層數(shù)據(jù)流圖可十分清晰地表達整個數(shù)據(jù)加工系統(tǒng)的真實情況。對任何一層數(shù)據(jù)流圖來說,稱它的上層圖為父圖,在它下一層的圖則稱為子圖。在多層數(shù)據(jù)流圖中,可以把頂層流圖、底層流圖和中間層流圖區(qū)分開。頂層流圖僅包含一個加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)的輸出數(shù)據(jù)。頂層流圖的作用在于表明被開發(fā)系統(tǒng)的范圍,以及它和周圍環(huán)境的數(shù)據(jù)交換關系。底層流圖是指其加工不須再做分解的數(shù)據(jù)流圖,其加工稱為“原子加工”。中間層流圖則表示對其上層父圖的細化。它的每一加工可以繼續(xù)細化,形成子圖。中間層次的多少視系統(tǒng)的復雜程度而定。
(4)數(shù)據(jù)流圖畫法畫數(shù)據(jù)流圖的基本步驟概括地說,就是自外向內,自頂向下,逐層細化,完善求精。具體步驟可按如下來做。
①先找系統(tǒng)的數(shù)據(jù)源點與匯點。它們是外部實體,由它們確定系統(tǒng)與外界的接口。
②找出外部實體的輸出數(shù)據(jù)流與輸入數(shù)據(jù)流。
、墼趫D的邊上畫出系統(tǒng)的外部實體。
④從外部實體的輸出數(shù)據(jù)流(即系統(tǒng)的源點)出發(fā),按照系統(tǒng)的邏輯需要,逐步畫出一系列邏輯加工,直到找到外部實體所需的輸入數(shù)據(jù)流(即系統(tǒng)的匯點),形成數(shù)據(jù)流的封閉。
⑤按照下面所給的原則進行檢查和修改。
、薨凑丈鲜霾襟E,再從各加工出發(fā),畫出所需的子圖。
(5)進行檢查和修改的原則
、贁(shù)據(jù)流圖上所有圖形符號只限于前述四種基本圖形元素。
、跀(shù)據(jù)流的主圖必須包括前述4種基本元素,缺一不可。
、蹟(shù)據(jù)流圖的主圖上的數(shù)據(jù)流必須封閉在外部實體之間,外部實體可以不只一個。
、苊總加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流。
⑤在數(shù)據(jù)流圖中,需按層給加工框編號。編號表明該加工處在哪一層,以及上下層的父圖與子圖的對應關系。
、奕魏我粋數(shù)據(jù)流子圖必須與它上一層的一個加工對應,兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。即父圖與子圖的平衡,它表明了在細化過程中輸入與輸出不能有丟失和添加。
、邎D上每個元素都必須有名字。表明數(shù)據(jù)流和數(shù)據(jù)文件是什么數(shù)據(jù),加工做什么事情。
、鄶(shù)據(jù)流圖中不可夾帶控制流。因為數(shù)據(jù)流圖是實際業(yè)務流程的客觀映象,說明系統(tǒng)“做什么”而不是要表明系統(tǒng)“如何做”,因此不是系統(tǒng)的執(zhí)行順序,不是程序流程圖。
、岢醍嫊r可以忽略瑣碎的細節(jié),以集中精力于主要數(shù)據(jù)流。在需求分析期間,有時會要求修改系統(tǒng)的某些方面。使用數(shù)據(jù)流圖可以很容易地把需要修改的區(qū)域分離出來。只要清楚地了解穿過要修改區(qū)域邊界的數(shù)據(jù)流,就可以為將來的修改做好充分的準備,而且在修改時能夠不打亂系統(tǒng)的其他部分。
希望與更多計算機等級考試的網(wǎng)友交流,請進入計算機等級考試論壇
更多信息請訪問:考試吧計算機等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |