结构化分析方法
目錄
1.概述
2.數據流圖
3.結構圖
4.一個例子
4.1.需求
4.2.數據流圖
4.3.結構圖?
?5.輔助工具
5.1.數據字典
5.2.加工說明
1.概述
結構化方法是世界上第一個軟件開發方法學,用來指導從需求分析、到設計開發各個階段該怎么樣做,采用什么樣的方法,產出什么樣的結果,從而保證整個軟件開發周期可控。
結構化方法分為:
- 結構化分析
- 結構化設計
其中結構化分析是最核心的,因為在結構化方法中,結構化分析的結果是十分貼近實現的,一旦分析的較好,設計實現是很容易的事情。
結構化分析核心思想是將一個大問題自頂向下逐層分解為一個個不可再分的小問題。
如何將一個大問題拆成一個個小問題?結構化方法中提出了一整套的標準流程來實現整個過程。這個流程就是:
數據流圖——>結構圖
先產出“數據流圖”,然后將“數據流圖”轉化為“結構圖”,結構圖是一種對軟件的結構進行清晰描述的圖,十分貼近代碼實現,一旦產出合理的結構圖后后序的設計實現都是水到渠成。結構圖就是結構化分析要產出的最終、最核心的內容。
當然整個過程中為了使得描述更加清晰可以選擇性加入“數據字典”、“加工說明”來輔助進行說明。
2.數據流圖
數據流圖,一種建模方式,在數據流圖的世界觀里,所有的計算系統都是信息的處理和轉換,總是有一些輸入經過計算系統,在系統內流轉后進行輸出。
數據流圖有兩套符號體系,DeMarco-Yourdon和Gane-Sarson:
?
外部實體:數據的產生者或消費者,可以是人、設備、另一個計算機系統等。
過程:數據的轉換器,如計算納稅金額、計算面積、顯示圖表等。
數據流:就是指向數據流轉方向的箭頭并且組織起數據結構。
數據存儲:存儲數據的介質,數據庫、磁盤等。
3.結構圖
結構圖是樹狀的,用來表示模塊而之間的依賴關系、信息傳遞。結構圖可以由數據流圖轉化而來,其更加貼近代碼實現,更加便于后續的構造活動,所以說數據流圖轉結構圖是結構化設計的關鍵。
結構圖的符號:
4.一個例子
4.1.需求
設計一個高考錄取統分子系統,該系統需要具備以下功能
-  計算標準分:根據考生原始分計算,得到標準分,存入考生分數文件。 
-  計算錄取線:根據標準分、招生計劃文件中的招生人數,計算錄取線,存入錄取線文件。 
4.2.數據流圖
首先甄別出各個實體:
外部實體:考生
過程:計算標準分、計算錄取線
數據存儲:標準分、錄取線、招生計劃文件
可以得出如下數據流圖:
4.3.結構圖?
結構圖可以從數據流圖轉化而來,轉化的過程很簡單,數據流圖已經描述好了輸入、處理過程、輸出,結構圖其實也分為三部分,輸入、處理、輸出。
于是先根據數據流圖歸納好輸入模塊、處理模塊、輸出模塊:
輸入:
- 原始分輸入
- 招生文件輸入
處理:
- 分數處理 - 計算標準分
- 計算錄取線
 
輸出:
- 存入考生分數
- 存入錄取線
各個模塊兒間的信息傳遞,在數據流圖中也可以知道,就是各結點間流轉的數據,于是可以做出結構圖:
頂層結點是整個系統,輸入向整個系統輸入數據,處理模塊處理數據,輸出模塊輸出、存儲數據。數據信息沿著調用線走。
?5.輔助工具
有時候單純用“數據流圖”、“結構圖”無法描述清楚,這時候可以用一些輔助的工具,進行描述。主要的輔助工具有:
- 數據字典
- 加工說明
5.1.數據字典
數據流圖中結點間流轉的數據如果組成比較復雜,可以通過數據字典來進一步描述。
數據字典中的邏輯操作符:
?示例:
銷售的商品=商品名+商品編號+價格
現金額=非負數
查詢要求=[商品編號|商品名]
5.2.加工說明
加工說明,即簡單描述加工節點需要做什么,說清楚就行,可以用純文字,表格,也可以用偽代碼的形式來展現,比如說:
if 后買數量>10
then 6折
else 9折
總結
 
                            
                        - 上一篇: 地图定位偏移以及坐标系转换(二)-不同坐
- 下一篇: 长芯微LCM240 电流检测放大器P2P
