(软件工程复习核心重点)第五章详细设计-第三节:过程设计工具
文章目錄
- (1)程序流程圖
- A:符號
- B:優缺點
- (2)盒圖(N-S)
- A:符號
- B:優點(了解)
- (3)PAD圖
- A:符號
- B:優點
- (4)判定表
- A:組成
- B:優缺點
- (5)判定樹
- (6)過程設計語言(PDL)(了解)
描述程序處理過程的工具稱之為過程設計工具,可以分為圖形、表格和語言三類,具體有
- 程序流程圖
- 盒圖(N-S圖)
- PAD圖
- 判定表
- 判定樹
- 過程設計語言(PDL)
(1)程序流程圖
A:符號
程序流程圖又稱為程序框圖,是歷史最悠久,使用最廣泛的描述過程設計的方法,然而它也是用得最混亂的一種方法,涉及符號如下
- a:選擇
- b:注釋
- c:預先定義的處理
- d:多分支
- e:開始或停止
- f:準備
- g:循環上界限
- h:循環下界限
- i:虛線
- j:省略符
- k:并行方式
- l:處理
- m:輸入輸出
- n:連接
- o:換頁連接
- p:控制流
B:優缺點
優點
- 對控制流程的描繪很直觀,便于初學者掌握
缺點
- 程序流程圖本質上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不去考慮程序的全局結構
- 程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結構程序設計的精神,隨意轉移控制
- 程序流程圖不易表示數據結構
(2)盒圖(N-S)
A:符號
出于要有一種不允許違背結構程序設計精神的圖形工具的考慮,提出了盒圖,又稱為N-S圖。其基本符號如下
- a:順序結構
- b:IF_TEEN_ELSE型分支
- c:CASE型多分支
- d:循環結構
- e:調用子程序A
B:優點(了解)
- 功能域明確,可以從盒圖上一眼就看出來
- 不可能任意轉移控制
- 很容易確定局部和全程數據的作用域
- 很容易表現嵌套關系,也可以表示模塊的層次結構
(3)PAD圖
A:符號
PAD是問題分析圖(problem analysis is diagram)的英文縮寫,是使用二維樹形結構的圖來表示程序的控制流,這種圖翻譯為程序代碼比較容易。其基本符號如下
- a:順序
- b:選擇(IF C THEN P1 ELSE P2)
- c:CASE型多分支
- d:WHILE型循環(WHILE C DO P)
- e:UNTIL型循環(REPEAT P UNTIL C)
- f:語句符號
- g:定義
B:優點
-
使用表示結構化控制結構的PAD符號所設計出來的程序必然是結構化程序
-
PAD圖所描繪的程序結構十分清晰。圖中最左面的豎線是程序的主線,即第一層結構。隨著程序層次的增加,PAD圖逐漸向右延伸,每增加一個層次,圖形向右擴展一條豎線。PAD圖中豎線的總條數就是程序的層次數
-
用PAD圖表現程序邏輯,易讀、易懂、易記。PAD圖是二維樹形結構的圖形,程序從圖中最左豎線上端的結點開始執行 ,自上而下,從左向右順序執行,遍歷所有結點
-
容易將PAD圖轉換成高級語言源程序,這種轉換可用軟件工具自動完成,從而可省去人工編碼的工作,有利于提高軟件可靠性和軟件生產率
-
即可用于表示程序邏輯,也可用于描繪數據結構
-
PAD圖的符號支持自頂向下、逐步求精方法的使用。開始時設計者可以定義一個抽象的程序,隨著設計工作的深入而使用def符號逐步增加細節,直至完成詳細設計(如下圖所示,左圖表示初始的PAD圖,右圖表示使用def符號細化處理框P2)
(4)判定表
A:組成
當算法中包含多重嵌套的條件選擇時,判定表能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系。由以下部分組成
- 左上部列出所有條件
- 左下部是所有可能做的動作
- 右上部是表示各種條件組合的一個矩陣
- 右下部是和每種條件組合相對應的動作
例如:
假設某航空公司規定,乘客可以免費托運重量不超過30kg(條件1)的行李。當行李重量超過30kg時,對頭等艙(條件2)的國內乘客(條件3) 超重部分每公斤收費4元,對其他艙(條件2) 的國內乘客超重部分每公斤收費6元,對外國乘客(條件4) 超重部分每公斤收費比國內乘客多–倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半
在表的右上部分中T表示它左邊那個條件成立,F表示條件不成立,空白表示這個條件成立與否并不影響對動作的選擇。判定表右下部分中畫X表示做它左邊的那項動作,空白表示不做這項動作
[解析]只要行李重量不超過30kg, 不論這位乘客持有何種機票,是中國人還是外國人,是殘疾人還是正常人,一律免收行李費,這就是表右部第一列(規則1)表示的內容。當行李重量超過30kg時,根據乘客機票的等級、乘客國籍及是否殘疾人而使用不同算法計算行李費,這就是從規則2到規則9所表示的內容
B:優缺點
優點
- 判定表能夠簡潔而又無歧義地描述處理規則
- 判定表和布爾代數或卡諾圖結合起來使用,可以更加直觀、簡潔、清晰的描述規則
缺點
- 不能同時清晰地表示出問題的順序性和重復性
- 初次接觸這種工具的人理解它需要有一個學習過程
- 數據元素增多時,判定表的簡潔程度大幅下降
(5)判定樹
是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系
例如
(6)過程設計語言(PDL)(了解)
PDL也即偽代碼,是用正文形式表示數據和處理過程的設計工具。PDL具有嚴格的關鍵字外部語言,用于定義控制結構和數據結構。PDL表示實際操作和條件的內部語言通常又是靈活自由的,可以適用各種工程項目的需要
總結
以上是生活随笔為你收集整理的(软件工程复习核心重点)第五章详细设计-第三节:过程设计工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统之进程管理:8、进程互斥的软件实
- 下一篇: (二)在.net中如何使用Memcach