軟件工程(結構化生命周期方法之結構化分析方法)
結構化分析方法
結構化分析是面向數據流進行需求分析的方法。20世紀70年代末,經Yourdon E.、Conˉstantine L.、DeMarco T.等人提出和發展,至今已得到廣泛應用。結構化分析方法的一些重要概念也滲透在其他開發方法中。例如,結構化分析與設計技術(Structured Analysis and Design Technique,SADT)、面向對象技術(Object-Oreinted Technique,OOT)、IDEF方法等。
結構化分析方法適合于數據處理類型軟件的需求分析。由于利用圖形表達需求,顯得清晰、簡明,易于學習和掌握。具體來說,結構化分析方法就是用抽象模型的概念,按照軟件內部數據傳遞、變換的關系,自頂向下逐層分解,直到找到滿足功能要求的所有可實現的軟件為止。根據DeMarco的論述,結構化分析方法使用的工具有:數據流圖、數據詞典、結構化英語、判定表、判定樹。結構化分析方法有兩個明顯特點。
采用簡明易懂、直觀的描述方式
1.數據流圖
數據流圖也稱為Bubble Chart或data Flow Graph。是描述數據處理過程的工具。數據流圖從數據傳遞和加工的角度,以圖形的方式刻畫數據流從輸入到輸出的移動變換過程。
(1)數據流圖的主要圖形元素
從數據流圖中可知,數據流圖的基本圖形元素有4種。
數據流是沿箭頭方向傳送數據的通道,它們大多是在加工之間傳輸加工數據的命名通道,也有連接數據存儲文件和加工的沒有命名的數據通道。這些數據流雖然沒有命名,但因聯接著有名加工和有名文件,所以其含意也是清楚的。同一數據流圖上不能有同名的數據流。多個數據流可以指向同個加工,也可以從一個加工散發出許多數據流。
加工是以數據結構或數據內容作為加工對象的。加工的名字通常是一個動詞短語,簡明扼要地表明完成的是什么加工。
文件在數據流圖中起保存數據的作用,因而稱為數據存儲(Data Store)。它可以是數據庫文件或任何形式的數據組織。指向文件的數據流可理解為寫入文件或查詢文件,從文件中引出的數據流可理解為從文件讀取數據或得到查詢結果。
數據流圖中第4種元素是數據源點或匯點,它表示圖中要處理數據的輸入來源及處理結果要送往何處。由于它在圖中的出現僅僅是一個符號,并不需要以軟件的形式進行設計和實現,因而,它只是數據流圖的外圍環境中的實體,故稱外部實體。在實際問題中它可能是計算機外圍設備或是傳感裝置。
(2)數據流與加工之間的關系
在數據流圖中,如果有兩個以上的數據流指向一個加工,或是從一個加工中引出兩個以上的數據流,這些數據流之間往往存在一定的關系。
(3)分層的數據流圖
為了表達數據處理過程的數據加工情況,用一個數據流圖是不夠的。為表達稍為復雜的實際問題需要按照問題的層次結構進行逐步分解,并以分層的數據流圖反映這種結構關系。
先把整個數據處理過程暫且看成一個加工,它的輸入數據和輸出數據實際上反映了系統與外界環境的接口。這就是分層數據圖的頂層。但只此一圖并未表明數據的加工要求,需要進一步細化。如果這個數據處理包括3個子系統,就可以畫出表示這3個子系統1、2、3的加工及其相關的數據流。這是頂層下面的第一層數據流圖,記為DFD/L1。繼續分解這3個子系統,可得到第二層數據流圖DFD/L2.1、DFD/L2.2、及DFD/L2.3,它們分別是子系統。1、2和3的細化。僅以DF/2為例,其中的4個加工的編號均可聯系到其上層圖中的子系統2。這樣得到的多層數據流圖可十分清晰地表達整個數據加工系統的真實情況。對任何一層數據流圖來說,稱它的上層圖為父圖,在它下一層的圖則稱為子圖。
在多層數據流圖中,可以把頂層流圖、底層流圖和中間層流圖區分開。頂層流圖僅包含一個加工,它代表被開發系統。它的輸入流是該系統的輸入數據,輸出流是系統的輸出數據。頂層流圖的作用在于表明被開發系統的范圍,以及它和周圍環境的數據交換關系。底層流圖是指其加工不須再做分解的數據流圖,其加工稱為“原子加工”。中間層流圖則表示對其上層父圖的細化。它的每一加工可以繼續細化,形成子圖。中間層次的多少視系統的復雜程度而定。
(4)數據流圖畫法
畫數據流圖的基本步驟概括地說,就是自外向內,自頂向下,逐層細化,完善求精。具體步驟可按如下來做。
①先找系統的數據源點與匯點。它們是外部實體,由它們確定系統與外界的接口。②找出外部實體的輸出數據流與輸入數據流。③在圖的邊上畫出系統的外部實體。
、軓耐獠繉嶓w的輸出數據流(即系統的源點)出發,按照系統的邏輯需要,逐步畫出一系列邏輯加工,直到找到外部實體所需的輸入數據流(即系統的匯點),形成數據流的封閉。⑤按照下面所給的原則進行檢查和修改。
⑥按照上述步驟,再從各加工出發,畫出所需的子圖。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |