結構化方法屬于自頂向下的開發方法,其基本思想是“自頂向下,逐步求精”,強調開發方法的結構合理性及所開發軟件的結構合理性。結構是指系統內系統內各個組成要素之間的相互聯系、相互作用的框架。
結構化開發方法提出了一組提高軟件結構合理性的概念與規則,如分解與抽象、模塊獨立、信息隱藏等。對應于軟件生命周期各個不同的階段,結構化方法包括結構化分析(SA)、結構化設計(SD)和結構化編程(SP)等方法。
其中,結構化設計是一種面向數據流的方法,在該方法中,模塊是實現功能的基本單元。它通常與結構化分析方法銜接起來進行,以數據流圖(DFD)為基礎得到軟件的模塊結構。
數據流圖
數據流圖(Data Flow Diagram,簡稱DFD),是進行結構化分析和設計的重要工具,是表達系統內部數據的流動并通過數據流描述系統功能的一種方法。
在DFD中,有四種基本組成元素,分別是:數據流、加工、數據存儲、外部實體(數據來源及數據終點)。這四種元素分別用四種基本符號表示。
→:數據流。數據流是具有名字和流向的數據。除了與數據存儲之間的數據流不用命名外,其他一般都應該命名,將名字標注在帶箭頭的線條旁邊。在數據流圖中應該體現所有可能的數據流,但不需要描繪出出現某個數據流的條件。
□:外部實體。外部實體是指位于被建模的系統/模塊之外的信息生產者或消費者,它們分別表示數據處理過程的數據來源和數據去向。用標有名字的方框表示。外部實體可以是人、物或其他軟件系統。
○:對數據的加工(或處理)。它接收一定的數據輸入,對其進行處理,并產生輸出。一個處理節點可以代表一系列程序、單個程序或者程序的一個模塊,可以稱之為一個功能單元。
〔:數據存儲。數據存儲是可訪問的數據信息,表示信息的靜態存儲??梢允俏募?、數據庫的信息等。
例如,對于以下的計算序列:
用數據流圖表示為:
可以看到,圖中的每個圓圈表示一個操作,箭頭表示數據的流向,即輸入輸出,同時還包含先后順序。具體來說,圖中的a、b、c、d、R1、R2屬于外部實體,+、-、*、/為處理節點,箭頭表示數據流方向。
在上圖中,執行 a+b 和 c-d 的順序是任意的,x*y 和 b+d 的順序也是任意的。它們沒有數據依賴性,即兩個步驟之間不存在一個步驟的輸出是另一個步驟的輸入。
在概念上,數據流圖是有向非循環的圖,包含節點和邊。其中,節點代表功能單元,處理輸入和產生輸出;有向邊是兩個節點間的有向箭頭,表示箭頭節點的輸入數據是箭尾節點的輸出,意味著只有上一個節點計算完成才能進行下一個節點計算。
從圖中可以看出,數據流圖表達了數據的生產者、數據的產生順序和數據的消費者,同時也可以看出數據流的并行情況、并發計算的時機和數據的生命周期。
數據流圖的作用
數據流圖從數據傳遞和處理的角度,利用圖形符號通過逐層細分描述系統內各個部件的功能和數據在它們之間傳遞的情況,來說明系統所需要完成的功能。主要有以下作用
物理與邏輯DFD
DFD可以是一個物理系統模型,也可以是邏輯系統模型,還可以是二者的混合。邏輯DFD與物理DFD最大的區別在于,邏輯DFD只描述了相關的組成元素,而物理DFD則會涉及具體的實現技術。
在系統分析中,邏輯DFD作為需求規格說明書的組成部分,用于建模系統的邏輯業務需求;在系統設計中,物理DFD作為系統構造和實現的技術性藍圖,用于建模系統實現的技術設計決策和人為設計決策。
數據流圖的分層
通常在實際應用中,為了表達數據處理過程中的數據加工情況,用一個DFD是不夠的。對于復雜的實際業務問題,在DFD中常常出現十幾個甚至更多的加工。為了使DFD看起來更清晰直觀,可以采用層次結構的DFD,按照系統的層次結構進行逐步分解。
一般,根據層級將數據流圖分為頂層數據流圖、中層數據流圖和底層數據流圖。除頂層數據流圖外,其他數據流圖按順序從0開始編號。
頂層數據流圖只包含一個處理節點,代表所要建模的整個系統;輸入數據和輸出數據為系統的輸入和輸出。通常用于表達系統范圍,以及與外部系統或環境的關系。
中層數據流圖是對頂層數據流圖中某個處理進行細化,而它本身的某個處理節點還可以進一步細化,形成下一級的數據流圖。中層數據流圖的多少,一般與系統的復雜度有關。
底層數據流圖是指處理節點不能再分解的數據流圖。其處理節點稱為“原子處理”或“原子加工”。
例如,某經銷商經銷系統的功能為:
(1) 向高級經銷商提交訂貨訂單;
(2) 接收下級經銷商退貨訂單;
(3) 接收電商系統的消費者訂單。
畫出該系統的頂層數據流圖為:
然后,可以的頂層數據流圖進一步細化,細化為多個下級數據流圖。在此舉例細化消費者訂單模塊數據流圖DFD/L0.1如下:
注意命名方式,頂層數據流圖下面的第一層為DFD/L0,如果該層有多個數據流圖,DFD/L0.1、DFD/L0.3、DFD/L0.3……,第一層的下一層為DFD/L1,以此類推。
我對加盟感興趣,馬上免費通話或留言!
(24小時內獲得企業的快速回復)
我們立即與您溝通
溫馨提示:
1.此次通話將不會產生任何費用, 請放心使用
7x24小時電話咨詢
130*1234567