結構化分析(SA)方法的基本思想是自定向下,逐層分解,把一個大問題分解成若干個小問題,每一個小問題再分解成若干個更小的問題。經過逐層分解,每個最低層的問題都是足夠簡單、容易解決的。
SA方法分析模型的核心是數據字典,圍繞這個核心,有三個層次的模型,分別是數據模型,功能模型和行為模型。在實際工作中,一般使用E-R圖表示數據模型,用DFD表示功能模型,用狀態轉換圖STD表示行為模型。
一.數據流圖
DFD是SA方法中重要的工具,是表達系統內部數據的流動并通過數據流描述系統功能的一種方法,DFD還可以被認為是一個系統模型,在信息開發系統中,如果采用結構化方法,則一般將DFD作為需求規格說明書的一個組成部分。
1.DFD的主要作用
DFD從數據傳遞和加工的角度,利用圖形符號通過逐層細分描述系統內各個部件的功能和數據在它們之間的傳遞情況,來說明系統所完成的功能。主要作用如下:
(1)DFD是理解和表達用戶需求的工具,是需求分析的手段。
(2)DFD概括描述了系統的內部邏輯過程,是需求分析結果的表達工具,也是系統設計的重要參與資料,是系統設計的起點。
DFD作為一個存檔的文字材料,是進一步修改和充實開發計劃的依據。
2.DFD的基本符號
在DFD中,通常會出現4種基本符合,分別是數據流,加工,數據存儲和外部實體。數據流是具有名字和流向的數據,在DFD中用標有名字的箭頭表示。加工是對數據流的變換,一般用圓圈表示。數據存儲是可訪問的存儲信息,一般用直線表示。外部實體是位于建模的系統之外的信息生產者或消費者,是不能被計算機處理的成分。
3.DFD的層次
SA的方法的思路是依賴于DFD進行自上而下的分析。DFD提供一種表現系統高層和底層概念的機制,也就是先繪制一張教高層次的DFD,然后在次基礎上,對其中的加工進行分解,分解成若干個獨立的、低層次的、詳細的DFD,而且可以這樣逐個分解下去,直到系統被清晰描述出來。
(1)頂層圖
底層圖是是描述系統最高層結構的DFD,它的特點是將整個待開發的系統表示為一個加工,將所有的外部實體和進出系統的數據流都畫在一張圖中。
(2)逐層分解。當完成了頂層圖的建模之后,就可以在這個基礎上進一步分解。可以根據謠要對0 層圖上的加工進行類似的再分解,稱之為1層圖,在 1 層圖中引入的新加工,其編號規則就是1.1、1.2、…,以及 2.1、2.2、…,依次類推,直到完成分析工作。
4.如何畫DFD
DFD的繪制是一個自定向下、由外到里的過程,通過以下步驟進行:
(1)畫系統的輸入和輸出:在圖的邊緣標出系統的輸入數據流和輸出數據流。這一步其實是決定研究的內容和系統的范圍。
(2)畫DFD的內部:將系統的輸入輸出用用一系列的處理連接起來。
(3)為每一個數據流命名:命名的好壞與DFD的可理解性密切相關,應避免使用空洞的名字。
(4)為加工命名:使用動賓短語為每個加工命名
畫好DFD之后,需要進行檢查和修改,檢查和修改的原則如下:
(1)DFD中的所有圖形符號只限于前4種基本圖形元素,圖上每個元素必須有名字。
(2)每個加工至少有一個輸入數據流和一個輸出數據流,而且要保持數據守恒。
(3)在DFD中,需按層給員工加工編號。編號表明該加工處于那一層,以及上下層之間的關旭。
(4)規定任何一個DFD子圖必須與它上一層的加工對應,兩者的輸入數據流和輸出數據流必須一致。
(5)在整套DFD中,每個數據存儲必須啊喲既有讀的數據流,又有寫的數據流。
(6)可以在DFD中加入物質流,幫助用戶理解DFD,但不可夾帶控制流。
二.狀態轉換圖
STD通過描述系統的狀態和引起系統狀態轉換的事件,來表示系統的行為。此外,STD還指出作為特定事件的執行結果將執行哪些動作。狀態是任何可以被觀察到的系統行為模式,每個狀態代表系統的一種行為模式。在STD中,用圓形框或橢圓框表示狀態,通常在框內標上狀態名。狀態規定了系統對事件的響應方式。系統對事件的響應可以是做一個(或一系列)動作,也可以是僅僅改變系統本身的狀態。STD描述了系統如何在各種狀態之間移動。
在 STD 中,從一個狀態到另一個狀態的轉換用箭頭線表示,箭頭表明轉換方向,箭頭線上標上事件名。必要時可在事件名后面加一個方括號,括號內寫上狀態轉換的條件。也就是說,僅當方括號內所列出的條件為真時,該事件的發生才引起箭頭所示的狀態轉換。
STD 既可以表示循環運行過程,也可以表示單程生命期。當描述循環運行過程時, 通常不關心循環是怎樣啟動的。
三.數據字典
數據字典是在DFD的基礎上,對DFD中出現的所有命名元素都加以定義,使得每個圖形元素的名字都有一個確切的解釋。DFD和數據字典等工具配合,就可以從圖形和文字兩個方面對系統的邏輯模型進行完整的描述。
1.數據字典的條目
數據字典一般有六類條目,分別是數據元素、數據結構、數據存儲、加工邏輯和外部實體。不同類型的條目有不同的屬性需要描述。
(1)數據元素。數據元素也稱為數據項,是數據的最小組成單位。
(2)數據結構。數據結構用于描述某些數據元素之間的關系,是一個遞歸的概念,一個數據結構可以包含若干個數據元素或者數據結構。
(3)數據流。數據流有一個或一組數據元素組成,對數據流的描述應包括數據流的名稱、編號,簡要說明,來源,去處、組成和流通量。
(4)數據存儲。數據存儲的條目主要描寫改數據存儲的結構,以及有關的數據流和查詢要求。
(5)加工邏輯。需要描述加工的編號、名稱、功能的簡要說明,有關輸入輸出數據流。
(6)外部實體。外部實體是數據的來源和去向,對外部實體的描述應該包括外部實體的名稱、編號,簡要說明。
2.數據字典的作用
在整個系統開發過程和系統運行與維護階段,數據字典是所有人員工作的依據,統一的標準。數據字典可以確保數據在系統中的完整性和一致性。數據字典具有以下作用:
(1)按各種需求列表。可以根據數據字典,把所有數據條目按一定的順序列出,保證系統設計時不會遺漏。
(2)相互參照,便于系統修改。
(3)由描述內容檢索名稱。在一個稍微復雜的系統中,系統分析師可能沒有把握斷定某個數據元素在數據字典中是否已經被定義,或者記不清其確切名字時,可以由內容查找其名稱。
(4)一致性檢驗和完整性檢驗。
3.數據字典的管理
為了保證數據的一致性,數據字典必須由專人(數據管理員)管理。數據管理員的職責就是維護和管理數據字典,保證數據字典內容的完整性和一致性。任何人,包括系統分析師、軟件設計師、程序員,如果要修改數據字典的內容,都必須通過數據管理員。 數據管理員還要負責把數據字典的最新版本及時通知有關人員。