結構化分析是面向數據流開展需求分析工作的一種有效方法。一般采用自頂向下,逐層分解的演義分析法來定義系統的需求,即先把分析對象抽象成一個系統,然后自頂向下的逐層分解,將復雜的系統分解成簡單的、能夠清楚地被理解和表達的若干個子系統。這樣就可以分別理解系統的每個細節、前后順序和相互關系,找出各部分之間的數據接口。在結構化分析方法所采用的工具有數據流程圖(DFD)、數據字典(DD)、結構化語言、判定樹、判定表等。
結構化分析的核心是數據流程圖,數據流程圖是以圖形的方式表達在問題中信息的變換和傳遞過程。它把系統看成是由數據流聯系的各種概念的組合,用分解及抽象手段來控制需求分析的復雜性,采用分層的數據流程圖來表示一個復雜的系統。
數據流圖:簡稱DFD,就是采用圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用於表示軟件模型的一種圖示方法。
基於計算機的信息處理系統由數據流和一系列的加工構成,這些加工將輸入數據流加工為輸出數據流
數據流圖描述數據流和加工
數據流圖用圖形符號表示數據流、加工、數據源及外部實體
數據流圖具有層次結構,支持問題分解、逐步求精的分析方法
它是數據驅動的數據流圖既可以表示基於計算機的系統,也可以表示軟件
數據流圖可以用來抽象地表示系統或軟件。它從信息傳遞和加工的角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程,同時可以按自頂向下、逐步分解的方法表示內容不斷增加的數據流和功能細節。因此,數據流圖既提供了功能建模的機制,也提供了信息流建模的機制,從而可以建立起系統或軟件的功能模型。
數據流圖的基本符號的意思:
1.矩形表示數據的外部實體;
2.圓角的矩形表示變換數據的處理邏輯;
3.少右面的邊矩形表示數據的存儲;
4.箭頭表示數據流。
數據流程圖中有以下幾種主要元素:
→:數據流。數據流是數據在系統內傳播的路徑,因此由一組成分固定的數據組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期、目的地等數據項組成。由於數據流是流動中的數據,所以必須有流向,除了與數據存儲之間的數據流不用命名外,數據流應該用名詞或名詞短語命名。
□:數據源(終點)。代表系統之外的實體,可以是人、物或其他軟件系統。
○:對數據的加工(處理)。加工是對數據進行處理的單元,它接收一定的數據輸入,對其進行處理,並產生輸出。
〓:數據存儲。表示信息的靜態存儲,可以代表文件、文件的一部分、數據庫的元素等。
-----------------------------------------------------------------------------------------------------
數據流程圖(DFD)是一種能全面地描述信息系統邏輯模型的主要工具,它可以用少數幾種符號綜合地反映出信息在系統中的流動、處理和存儲情況。數據流程圖是表示操作或數據的方向。
數據流圖有四種基本圖形符號:
- 箭頭:表示數據流;
- 圓或橢圓:表示加工;
- 雙杠:表示數據存儲;
- 方框:表示數據的源點或終點。
數據流程圖的基本成分
系統部件包括系統的外部實體、處理過程數據存儲和系統中的數據流四個組成部分如下圖所示:
1,外部實體
外部實體指系統以外又和系統有聯系的人或事物,它說明了數據的外部來源和去處,屬於系統的外部和系統的界面。外部實體支持系統數據輸入的實體稱為源點,支持系統數據輸出的實體稱為終點。 通常外部實體在數據流程圖中用正方形框表示,框中寫上外部實體名稱,為了區分不同的外部實體,可以在正方形的左上角用一個字符表示,同一外部實體可在一張數據流程圖中出現多次,這時在該外部實體符號的右下角畫上小斜線表示重復.
2,處理過程
處理指對數據邏輯處理,也就是數據變換,它用來改變數據值。而每一種處理又包括數據輸入、數據處理和數據輸出等部分。在數據流程圖中處理過程用帶圓角的長方形表示處理,長方形分三個部分,標識部分用來標識一個功能,功能描述部門是必不可少的,功能執行部門表示功能由誰來完成。
3,數據流
數據流是指處理功能的輸入或輸出。它用來表示一中間數據流值,但不能用來改變數據值。數據流是模擬系統數據在系統中傳遞過程的工具。在數據流程圖中用一個水平箭頭或垂直箭頭表示,箭頭指出數據的流動方向,箭線旁注明數據流名。
4,數據存儲
數據存儲表示數據保存的地方,它用來存儲數據。系統處理從數據存儲中提取數據,也將處理的數據返回數據存儲。與數據流不同的是數據存儲本身不產生任何操作,它僅僅響應存儲和訪問數據的要求。
在數據流程圖中數據存儲用右邊開口的長方條表示。在長方條內寫上數據存儲名字。為了區別和引用方便,左端加一小格,再標上一個標識,用字母D和數字組成.
流程圖的畫法
1,畫數據流程圖的基本原則:
①數據流程圖上所有圖形符號必須是前面所述的四種基本元素。
②數據流程圖的主圖必須含有前面所述的四種基本元素,缺一不可。
③數據流程圖上的數據流必須封閉在外部實體之間,外部實體可以是一個,也可以是多個。
④處理過程至少有一個輸入數據流和一個輸出數據流。
⑤任何一個數據流子圖必須與它的父圖上的一個處理過程對應,兩者的輸入數據流和輸出數據流必須一致,即所謂“平衡”。
⑥數據流程圖上的每個元素都必須有名字。
2,畫數據流程圖的基本步驟:
①把一個系統看成一個整體功能,明確信息的輸入和輸出。
②找到系統的外部實體。一旦找到外部實體,則系統與外部世界的界面就可以確定下來,系統的數據流的源點和終點也就找到了。
③找出外部實體的輸入數據流和輸出數據流。
④在圖的邊上畫出系統的外部實體。
⑤從外部實體的輸入流(源)出發,按照系統的邏輯需要,逐步畫出一系列邏輯處理過程,直至找到外部實體處理所需的輸出流,形成數據流的封閉。
⑥將系統內部數據處理又分別看做整體功能,其內部又有信息的處理、傳遞、存儲過程。
⑦如此一級一級地剖析,直到所有處理步驟都很具體為止。
3,畫數據流程圖的注意事項:
①關於層次的划分
逐層擴展數據流程圖,是對上一層圖中某些處理框加以分解。隨着處理的分解,功能越來越具體,數據存儲、數據流越來越多。究竟怎樣划分層次,划分到什么程度,沒有絕對標准,一般認為展開的層次與管理層次一致,也可以划分得更細,處理塊的分解要自然,注意功能完整性,一個處理框經過展開,一般以分解為4個至10個處理框為宜。
②檢查數據流程圖
對一個系統的理解,不可能一開始就完美無缺,開始分析一個系統時,盡管我們對問題的理解有不正確、不確切的地方,但還是應該根據我們的理解,用數據流程圖表達出來,進行核對,逐步修改,獲得較為完美的圖紙。
③提高數據流程圖的易理解性
數據流程圖是系統分析員調查業務過程,與用戶交換思想的工具。因此,數據流程圖應簡明易懂。這也有利於后面的設計,有利於對系統說明書進行維護。