




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程軟件工程1 1軟件工程軟件工程第六章第六章 詳細設計詳細設計軟件工程軟件工程2 2詳細設計的任務詳細設計的任務 1 1為每個模塊確定采用的算法,選擇某種適為每個模塊確定采用的算法,選擇某種適當的工具表達算法的過程,寫出模塊的詳細當的工具表達算法的過程,寫出模塊的詳細過程性描述。過程性描述。2 2確定每一模塊使用的數據結構,為以后的確定每一模塊使用的數據結構,為以后的編寫程序做好充分的準備。編寫程序做好充分的準備。3 3確定模塊接口的細節,包括對系統外部的確定模塊接口的細節,包括對系統外部的接口和用戶界面,對系統內部其他模塊的接接口和用戶界面,對系統內部其他模塊的接口,以及模塊輸入數據、
2、輸出數據及局部數口,以及模塊輸入數據、輸出數據及局部數軟件工程軟件工程3 3據的全部細節。據的全部細節。4 4要為每一個模塊設計出一組測試用例,以要為每一個模塊設計出一組測試用例,以便在編碼階段對模塊代碼(即程序)進行預便在編碼階段對模塊代碼(即程序)進行預定的測試,模塊的測試用例是軟件測試計劃定的測試,模塊的測試用例是軟件測試計劃的重要組成部分,通常應包括輸入數據、期的重要組成部分,通常應包括輸入數據、期望輸出等內容。望輸出等內容。6.1結構程序設計結構程序設計結構程序設計的概念最早由結構程序設計的概念最早由E.W.DE.W.D ijkstraijkstra提出。提出。(1 1)196519
3、65年他在一次會議上指出:年他在一次會議上指出:“可以可以從高級語言中從高級語言中取消取消GO TOGO TO語句語句”,“程序的質程序的質量與程序中所包含的量與程序中所包含的GO TOGO TO語句的數量成反比語句的數量成反比”。(2 2)19661966年年BohmBohm和和JacopiniJacopini證明了,只用證明了,只用3 3軟件工程軟件工程4 4種基本的控制結構就能實現任何單入口單出種基本的控制結構就能實現任何單入口單出口的程序。這口的程序。這3 3種基本的控制結構是種基本的控制結構是“順序順序”、“選擇選擇”和和“循環循環”,它們的流程圖分別,它們的流程圖分別為圖為圖6.1
4、(a)6.1(a),6.1(b)6.1(b)和和6.1(c)6.1(c)。軟件工程軟件工程5 5n圖圖6.1 36.1 3種基本的控制結構種基本的控制結構軟件工程軟件工程6 6(3 3)19681968年年DijkstraDijkstra再次建議從一切高級語再次建議從一切高級語言中取消言中取消GO TOGO TO語句,只使用語句,只使用3 3種基本控制結種基本控制結構寫程序。他的建議引起了激烈爭論,經過構寫程序。他的建議引起了激烈爭論,經過討論人們認識到,不是簡單地去掉討論人們認識到,不是簡單地去掉GO TOGO TO語句語句的問題,而是要創立一種新的程序設計思想的問題,而是要創立一種新的程序
5、設計思想、方法和風格,以顯著地提高軟件生產率降、方法和風格,以顯著地提高軟件生產率降低軟件維護代價。低軟件維護代價。(4 4)19711971年年IBMIBM公司在紐約時報信息庫管理公司在紐約時報信息庫管理系統的設計中成功地使用了結構程序設計技系統的設計中成功地使用了結構程序設計技軟件工程軟件工程7 7術,隨后在美國宇航局空間實驗室飛行模擬術,隨后在美國宇航局空間實驗室飛行模擬系統的設計中,結構程序設計技術再次獲得系統的設計中,結構程序設計技術再次獲得圓滿成功。圓滿成功。(5 5)19721972年年IBMIBM公司的公司的MillsMills進一步提出,程序應該進一步提出,程序應該只有一個入
6、口和一個只有一個入口和一個出口出口,從而補充了結構程序設計的規則。,從而補充了結構程序設計的規則。軟件工程軟件工程8 8【結構化程序設計結構化程序設計】如果一個程序的代碼塊僅僅通過順序、選擇如果一個程序的代碼塊僅僅通過順序、選擇和循環這和循環這3 3種基本控制結構進行連接,并且每種基本控制結構進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。(個程序是結構化的。(經典定義經典定義)上述經典定義過于狹隘了,結構程序設計本上述經典定義過于狹隘了,結構程序設計本質上并不是無質上并不是無GO TOGO TO語句的編程方法,而是一語句的編程方法
7、,而是一種使程序代碼容易閱讀、容易理解的編程方種使程序代碼容易閱讀、容易理解的編程方法法。軟件工程軟件工程9 96.2人機界面設計人機界面設計人機界面設計是接口設計的一個重要的組成人機界面設計是接口設計的一個重要的組成部分。部分。對于交互式系統來說,人機界面設計對于交互式系統來說,人機界面設計和數據設計、體系結構設計及過程設計一樣和數據設計、體系結構設計及過程設計一樣重要重要。近年來,人機界面在系統中所占的比。近年來,人機界面在系統中所占的比例越來越大,在個別系統中人機界面的設計例越來越大,在個別系統中人機界面的設計工作量甚至占總設計量的一半以上。人機界工作量甚至占總設計量的一半以上。人機界面
8、的設計質量,直接影響用戶對軟件產品的面的設計質量,直接影響用戶對軟件產品的評價,從而影響軟件產品的競爭力和壽命,評價,從而影響軟件產品的競爭力和壽命,軟件工程軟件工程1010在設計人機界面的過程中,幾乎總會遇到下在設計人機界面的過程中,幾乎總會遇到下述述4 4個問題:個問題:系統響應時間系統響應時間、用戶幫助設施用戶幫助設施、出錯信息處理出錯信息處理和和命令交互命令交互。1.1. 系統響應時間系統響應時間系統響應時間是許多交互式系統用戶經常抱系統響應時間是許多交互式系統用戶經常抱怨的問題。一般說來,怨的問題。一般說來,系統響應時間指從用系統響應時間指從用戶完成某個控制動作戶完成某個控制動作(
9、(例如,按回車鍵或點例如,按回車鍵或點擊鼠標擊鼠標) ),到軟件給出預期的響應,到軟件給出預期的響應( (輸出信息輸出信息或做動作或做動作) )之間的這段時間之間的這段時間。軟件工程軟件工程11 11系統響應時間的特點:系統響應時間的特點:分別是分別是長度和易變性長度和易變性。(1 1)如果系統響應時間過長,用戶就會感)如果系統響應時間過長,用戶就會感到緊張和沮喪。但是,當用戶工作速度是由人到緊張和沮喪。但是,當用戶工作速度是由人機界面決定的時候,系統響應時間過短也不好機界面決定的時候,系統響應時間過短也不好,這會迫使用戶加快操作節奏,從而可能會犯,這會迫使用戶加快操作節奏,從而可能會犯錯誤。
10、錯誤。(2 2)易變性指系統響應時間相對于平均響應)易變性指系統響應時間相對于平均響應時間的偏差。時間的偏差。軟件工程軟件工程1212n在許多情況下,這是系統響應時間的更在許多情況下,這是系統響應時間的更重要的屬性。即使系統響應時間較長,響應重要的屬性。即使系統響應時間較長,響應時間易變性低也有助于用戶建立起穩定的工時間易變性低也有助于用戶建立起穩定的工作節奏。作節奏。2.2. 2.2.用戶幫助設施用戶幫助設施 幾乎交互式系統的每個用戶都需要幫助,幾乎交互式系統的每個用戶都需要幫助,當遇到復雜問題時甚至需要查看用戶手冊以當遇到復雜問題時甚至需要查看用戶手冊以尋找答案。大多數現代軟件都提供聯機幫
11、助尋找答案。大多數現代軟件都提供聯機幫助設施,這使得用戶無須離開用戶界面就能解設施,這使得用戶無須離開用戶界面就能解決自己的問題。決自己的問題。n軟件工程軟件工程1313常見的幫助設施可分為常見的幫助設施可分為集成的和附加集成的和附加的兩類的兩類。(1 1)集成的幫助設施從一開始就設計在軟件)集成的幫助設施從一開始就設計在軟件里面,通常,它對用戶工作內容是敏感的,里面,通常,它對用戶工作內容是敏感的,因此用戶可以從與剛剛完成的操作有關的主因此用戶可以從與剛剛完成的操作有關的主題中選擇一個請求幫助。題中選擇一個請求幫助。【特點特點】可以縮短用戶獲得幫助的時間,增可以縮短用戶獲得幫助的時間,增加界
12、面的友好性。加界面的友好性。軟件工程軟件工程1414(2 2)附加的幫助設施是在系統建成后再添)附加的幫助設施是在系統建成后再添加到軟件中的,在多數情況下它實際上是一加到軟件中的,在多數情況下它實際上是一種查詢能力有限的聯機用戶手冊,人們普種查詢能力有限的聯機用戶手冊,人們普遍認為,集成的幫助設施優于附加的幫助設遍認為,集成的幫助設施優于附加的幫助設施。施。軟件工程軟件工程15153.3.出錯信息處理出錯信息處理出錯信息和警告信息,是出現問題時交互式出錯信息和警告信息,是出現問題時交互式系統給出的系統給出的“壞消息壞消息”。(1 1)出錯信息設計得不好,將向用戶提供無)出錯信息設計得不好,將向
13、用戶提供無用的甚至誤導的信息,反而會加重用戶的挫用的甚至誤導的信息,反而會加重用戶的挫折感。折感。4.4.命令交互命令交互命令行曾經是用戶和系統軟件交互的最常用命令行曾經是用戶和系統軟件交互的最常用的方式并且也曾經廣泛應用于各種應用軟件的方式并且也曾經廣泛應用于各種應用軟件軟件工程軟件工程1616中。中。(1 1)現在,面向窗口的、點擊和拾取方式的)現在,面向窗口的、點擊和拾取方式的界面已經減少了用戶對命令行的依賴,但是界面已經減少了用戶對命令行的依賴,但是,許多高級用戶仍然偏愛面向命令行的交互,許多高級用戶仍然偏愛面向命令行的交互方式。在多數情況下,用戶既可以從菜單中方式。在多數情況下,用戶
14、既可以從菜單中選擇軟件功能,也可以通過鍵盤命令序列調選擇軟件功能,也可以通過鍵盤命令序列調用軟件功能。用軟件功能。軟件工程軟件工程1717軟件工程軟件工程1818(1 1)用戶界面設計是一個)用戶界面設計是一個迭代的過程迭代的過程,也就是說,也就是說,通常先創建設計模型,再用原型實現這個設計,通常先創建設計模型,再用原型實現這個設計模型,并由用戶試用和評估,然后根據用戶意見模型,并由用戶試用和評估,然后根據用戶意見進行修改。進行修改。(2 2)為了支持上述迭代過程,出現了各種用于界)為了支持上述迭代過程,出現了各種用于界面設計和原型開發的軟件工具。這些工具被稱為面設計和原型開發的軟件工具。這些
15、工具被稱為用戶界面工具箱或用戶界面開發系統,它們為簡用戶界面工具箱或用戶界面開發系統,它們為簡化窗口、菜單、設備交互、出錯信息、命令及交化窗口、菜單、設備交互、出錯信息、命令及交互環境的許多其他元素的創建,提供了各種例程互環境的許多其他元素的創建,提供了各種例程6.2.26.2.2設計過程設計過程軟件工程軟件工程1919或對象。這些工具所提供的功能,既可以用基于或對象。這些工具所提供的功能,既可以用基于語言的方式也可以用基于圖形的方式來實現。語言的方式也可以用基于圖形的方式來實現。(3 3)一旦建立起用戶界面的原型,就必須對它進)一旦建立起用戶界面的原型,就必須對它進行評估,以確定其是否滿足用
16、戶的需求。評估可行評估,以確定其是否滿足用戶的需求。評估可以是非正式的,例如,用戶即興發表一些反饋意以是非正式的,例如,用戶即興發表一些反饋意見;評估也可以十分正式,例如,運用統計學方見;評估也可以十分正式,例如,運用統計學方法評價全體終端用戶填寫的調查表。法評價全體終端用戶填寫的調查表。(4 4)用戶界面的評估周期如下所述:完成初步設)用戶界面的評估周期如下所述:完成初步設計之后就創建第一級原型;用戶試用并評估該原計之后就創建第一級原型;用戶試用并評估該原型,直接向設計者表述對界面的評價;型,直接向設計者表述對界面的評價;軟件工程軟件工程2020設計者根據用戶意見修改設計并實現下一級設計者根
17、據用戶意見修改設計并實現下一級原型。上述評估過程持續進行下去,直到用原型。上述評估過程持續進行下去,直到用戶感到滿意,不需要再修改界面設計時為。戶感到滿意,不需要再修改界面設計時為。6.2.3人機界面設計指南人機界面設計指南下面介紹下面介紹3 3類人機界面設計指南。類人機界面設計指南。 1.1.一般交互指南一般交互指南一般交互指南涉及一般交互指南涉及信息顯示、數據輸入和系信息顯示、數據輸入和系統整體控制統整體控制,因此,這類指南是全局性的,因此,這類指南是全局性的,忽略它們將承擔較大風險。忽略它們將承擔較大風險。(1)(1)保持一致性保持一致性。應該為人機界面中的菜單選。應該為人機界面中的菜單
18、選擇、命令輸入、數據顯示以及眾多的其他功擇、命令輸入、數據顯示以及眾多的其他功能,使用一致的格式。能,使用一致的格式。軟件工程軟件工程2121軟件工程軟件工程2222(2)(2)提供有意義的反饋提供有意義的反饋。應向用戶提供視覺的。應向用戶提供視覺的和聽覺的反饋,以保證在用戶和系統之間建和聽覺的反饋,以保證在用戶和系統之間建立雙向通信。立雙向通信。(3)(3)在執行有較大破壞性的動作之前要求用戶在執行有較大破壞性的動作之前要求用戶確認。確認。如果用戶要刪除一個文件,或覆蓋一如果用戶要刪除一個文件,或覆蓋一些重要信息,或終止一個程序的運行,應該些重要信息,或終止一個程序的運行,應該給出給出“您是
19、否確實要您是否確實要”的信息,以請求用的信息,以請求用戶確認他的命令。戶確認他的命令。軟件工程軟件工程2323(4)(4)允許取消絕大多數操作允許取消絕大多數操作。UNDOUNDO或或REVERSEREVERSE功能曾經使眾多終端用戶避免功能曾經使眾多終端用戶避免了大量時間浪費。每個交互式系統都應該能了大量時間浪費。每個交互式系統都應該能方便地取消已完成的操作。方便地取消已完成的操作。(5)減少在兩次操作之間必須記憶的信息量。不應該期望用戶能記住在下一步操作中需使用的一大串數字或標識符。應該盡量減少記憶量。軟件工程軟件工程2424(6)提高對話、移動和思考的效率。應該盡量減少用戶擊鍵的次數,設
20、計屏幕布局時應該考慮盡量減少鼠標移動的距離,應該盡量避免出現用戶問“這是什么意思?”的情況。(7)允許犯錯誤。系統應該能保護自己不受嚴重錯誤的破壞。(8)按功能對動作分類,并據此設計屏幕布局。下拉菜單的一個主要優點就是能按動作類型組織命令。實際上,設計者應該盡力提高命令和動作組織的“內聚性”軟件工程軟件工程2525(9)(9)提供對用戶工作內容敏感的幫助設施提供對用戶工作內容敏感的幫助設施(10)(10)用簡單動詞或動詞短語作為命令名。用簡單動詞或動詞短語作為命令名。過長的過長的命令名難于識別和記憶,也會占用過多的菜單空命令名難于識別和記憶,也會占用過多的菜單空間。間。2.2.信息顯示指南信息
21、顯示指南(1)(1)只顯示與當前工作內容有關的信息只顯示與當前工作內容有關的信息。用戶在獲。用戶在獲得有關系統的特定功能的信息時,不必看到與之得有關系統的特定功能的信息時,不必看到與之無關的數據、菜單和圖形。無關的數據、菜單和圖形。(2)(2)不要用數據淹沒用戶,應該用便于用戶迅速吸不要用數據淹沒用戶,應該用便于用戶迅速吸取信息的方式來表示數據。取信息的方式來表示數據。例如,可以用圖形或例如,可以用圖形或圖表來取代龐大的表格。圖表來取代龐大的表格。軟件工程軟件工程2626(3)(3)使用一致的標記、標準的縮寫和可預知的顏色使用一致的標記、標準的縮寫和可預知的顏色。顯示的含義應該非常明確,用戶無
22、須參照其他。顯示的含義應該非常明確,用戶無須參照其他信息源就能理解。信息源就能理解。(4)(4)允許用戶保持可視化的語境允許用戶保持可視化的語境。如果對所顯示的。如果對所顯示的圖形進行縮放,原始的圖像應該一直顯示著圖形進行縮放,原始的圖像應該一直顯示著( (以縮以縮小的形式放在顯示屏的一角小的形式放在顯示屏的一角) ),以使用戶知道當前,以使用戶知道當前看到的圖像部分在原圖中所處的相對位置。看到的圖像部分在原圖中所處的相對位置。(5)(5)產生有意義的出錯信息產生有意義的出錯信息(6)(6)使用大小寫、縮進和文本分組以幫助理解使用大小寫、縮進和文本分組以幫助理解。人。人機界面顯示的信息大部分是
23、文字。機界面顯示的信息大部分是文字。軟件工程軟件工程2727(7)(7)使用窗口分隔不同類型的信息使用窗口分隔不同類型的信息。利用窗。利用窗口用戶能夠方便地口用戶能夠方便地“保存保存”多種不同類型的多種不同類型的信息。信息。(8)(8)使用使用“模擬模擬”顯示方式表示信息,以使顯示方式表示信息,以使信息更容易被用戶提取信息更容易被用戶提取。(9)(9)高效率地使用顯示屏高效率地使用顯示屏。當使用多窗口時。當使用多窗口時,應該有足夠的空間使得每個窗口至少都能,應該有足夠的空間使得每個窗口至少都能顯示出一部分。顯示出一部分。軟件工程軟件工程28283 3數據輸入指南數據輸入指南(1 1)盡量減少用
24、戶的輸入動作。)盡量減少用戶的輸入動作。(2 2)保持信息顯示和數據輸入之間的一致)保持信息顯示和數據輸入之間的一致性。性。(3 3)允許用戶自定義輸入。)允許用戶自定義輸入。(4 4)交互應該是靈活的,并且可調整成用)交互應該是靈活的,并且可調整成用戶喜歡的輸入方式。戶喜歡的輸入方式。(5 5)使在當前動作語境中不適用的命令不)使在當前動作語境中不適用的命令不起作用。起作用。軟件工程軟件工程2929(6 6)讓用戶控制交互流。)讓用戶控制交互流。(7 7)對所有輸入動作都提供幫助。)對所有輸入動作都提供幫助。(8 8)消除冗余的輸入。)消除冗余的輸入。軟件工程軟件工程3030【過程設計工具】
25、描述程序處理過程的工具描述程序處理過程的工具稱為過程設計的工具,它們可以分為稱為過程設計的工具,它們可以分為圖形圖形、表格表格和和語言語言3 3類。類。【注注】它們的基本要求都是能提供對設計它們的基本要求都是能提供對設計的無歧義的描述,也就是應該能指明控制的無歧義的描述,也就是應該能指明控制流程、處理功能、數據組織以及其他方面流程、處理功能、數據組織以及其他方面的實現細節,從而在編碼階段能把對設計的實現細節,從而在編碼階段能把對設計的描述直接翻譯成程序代碼。的描述直接翻譯成程序代碼。6.36.3過程設計的過程設計的 工具工具軟件工程軟件工程31316.3.1程序流程圖程序流程圖程序流程圖又稱為
26、程序框圖,它是歷史最悠程序流程圖又稱為程序框圖,它是歷史最悠久、使用最廣泛的描述過程設計的方法,然久、使用最廣泛的描述過程設計的方法,然而它也是用得最混亂的一種方法。而它也是用得最混亂的一種方法。程序流程圖中使用的符號見教材程序流程圖中使用的符號見教材125125頁圖頁圖6.36.3【缺點缺點】(1)(1)程序流程圖本質上不是逐步求精的好工程序流程圖本質上不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流具,它誘使程序員過早地考慮程序的控制流軟件工程軟件工程3232程,而不去考慮程序的全局結構。程,而不去考慮程序的全局結構。 (2)(2)程序流程圖中用箭頭代表控制流,因此程序流程圖中用箭
27、頭代表控制流,因此程序員不受任何約束,可以完全不顧結構程程序員不受任何約束,可以完全不顧結構程序設計的精神,隨意轉移控制。序設計的精神,隨意轉移控制。(3)(3)程序流程圖不易表示數據結構。程序流程圖不易表示數據結構。軟件工程軟件工程3333出于要有一種不允許違背結構程序設計精神出于要有一種不允許違背結構程序設計精神的圖形工具的考慮,的圖形工具的考慮,NassiNassi和和ShneidermanShneiderman提出了盒圖,又稱為提出了盒圖,又稱為N-SN-S圖。圖。特點:特點:(1)(1)功能域功能域( (一個特定控制結構的作用域一個特定控制結構的作用域) )明確,可以從盒圖上一眼就看
28、出來。明確,可以從盒圖上一眼就看出來。(2)(2)不可能任意轉移控制。不可能任意轉移控制。(3)(3)很容易確定局部和全程數據的作用域。很容易確定局部和全程數據的作用域。6.3.26.3.2盒圖(盒圖(N-SN-S圖)圖)軟件工程軟件工程3434(4)(4)很容易表現嵌套關系,也可以表示模塊很容易表現嵌套關系,也可以表示模塊的層次結構。的層次結構。軟件工程軟件工程3535圖圖6.4盒圖的基本符號盒圖的基本符號軟件工程軟件工程3636PADPAD是問題分析圖是問題分析圖(problem analysis diagram)(problem analysis diagram)的英文縮寫的英文縮寫,自
29、,自19731973年由日本日立公司發明以后,已年由日本日立公司發明以后,已得到一定程度的推廣。它用二維樹形結構得到一定程度的推廣。它用二維樹形結構的圖來表示程序的控制流,將這種圖翻譯的圖來表示程序的控制流,將這種圖翻譯成程序代碼比較容易。圖成程序代碼比較容易。圖6.56.5給出給出PADPAD圖的圖的基本符號。基本符號。PADPAD圖圖軟件工程軟件工程3737圖圖6.5PAD圖的基本符號圖的基本符號PAD圖的優點圖的優點(1)(1)使用表示結構化控制結構的使用表示結構化控制結構的PADPAD符號所設符號所設計出來的程序必然是結構化程序。計出來的程序必然是結構化程序。(2)PAD(2)PAD圖
30、所描繪的程序結構十分清晰。圖所描繪的程序結構十分清晰。(3)(3)用用PADPAD圖表現程序邏輯,易讀、易懂、易圖表現程序邏輯,易讀、易懂、易記。記。(4)(4)容易將容易將PADPAD圖轉換成高級語言源程序,圖轉換成高級語言源程序,這種轉換可用軟件工具自動完成,從而可省這種轉換可用軟件工具自動完成,從而可省去人工編碼的工作,有利于提高軟件可靠性去人工編碼的工作,有利于提高軟件可靠性和軟件生產率。和軟件生產率。軟件工程軟件工程3838(5)(5)即可用于表示程序邏輯,也可用于描繪數即可用于表示程序邏輯,也可用于描繪數據結構。據結構。(6)PAD(6)PAD圖的符號支持圖的符號支持. .自頂向下
31、、逐步求精方自頂向下、逐步求精方法的使用。法的使用。軟件工程軟件工程39396.3.46.3.4判定表判定表當算法中包含當算法中包含多重嵌套的條件選擇多重嵌套的條件選擇時,用程時,用程序流程圖、盒圖、序流程圖、盒圖、PADPAD圖或后面即將介紹的過圖或后面即將介紹的過程設計語言程設計語言(PDL)(PDL)都不易清楚地描述。都不易清楚地描述。然而然而判定表卻能夠清晰地表示復雜的條件組判定表卻能夠清晰地表示復雜的條件組合與應做的動作之間的對應關系合與應做的動作之間的對應關系。軟件工程軟件工程4040【判定表的組成判定表的組成】一張判定表由一張判定表由4 4部分部分組成,組成,左上部左上部列出列出
32、所有所有條件條件,左下部左下部是所有可能做的是所有可能做的動作動作,右右上部上部是表示各種是表示各種條件組合的一個矩陣條件組合的一個矩陣,右下右下部部是和每種條件是和每種條件組合相對應的動作組合相對應的動作。判定表。判定表右半部的每一列實質上是一條規則,規定了右半部的每一列實質上是一條規則,規定了與特定的條件組合相對應的動作。與特定的條件組合相對應的動作。n軟件工程軟件工程4141【例子例子】假設某航空公司規定,乘客可以免費托運重量不過假設某航空公司規定,乘客可以免費托運重量不過30kg30kg的行李。當行李重量超過的行李。當行李重量超過30kg30kg時,對頭等艙的時,對頭等艙的國內乘客超重
33、部分每公斤收費國內乘客超重部分每公斤收費4 4元,對其他艙的國內元,對其他艙的國內乘客超重部分每公斤收費乘客超重部分每公斤收費6 6元,對外國乘客超重部分元,對外國乘客超重部分每公斤收費比國內乘客多一倍,對殘疾乘客超重部每公斤收費比國內乘客多一倍,對殘疾乘客超重部分每公斤收費比正常乘客少一半。用判定表可以清分每公斤收費比正常乘客少一半。用判定表可以清楚地表示與上述每種條件組合相對應的計算行李費楚地表示與上述每種條件組合相對應的計算行李費的算法,如表的算法,如表6.16.1所示。所示。軟件工程軟件工程4242軟件工程軟件工程43436.56.53 3判定樹判定樹【判定表的缺點判定表的缺點】(1
34、1)判定表雖然能清晰地表示復雜的條件組)判定表雖然能清晰地表示復雜的條件組合與應做的動作之間的對應關系,但其含義合與應做的動作之間的對應關系,但其含義卻不是一眼就能看出來的,初次接觸這種工卻不是一眼就能看出來的,初次接觸這種工具的人理解它需要有一個簡短的學習過程。具的人理解它需要有一個簡短的學習過程。(2 2)此外,當數據元素的值多于兩個時)此外,當數據元素的值多于兩個時( (例如,例如,6.3.46.3.4例子中假設對機票需細分為等例子中假設對機票需細分為等艙、二等艙和經濟艙等多種級別時艙、二等艙和經濟艙等多種級別時) ),判定表,判定表軟件工程軟件工程4444的簡潔程度會下降。的簡潔程度會
35、下降。【判定樹判定樹】判定樹是判定表的變種,也能清晰地表示復判定樹是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系雜的條件組合與應做的動作之間的對應關系【判定樹的優點判定樹的優點】(1 1)它的形式簡單到不需任何說明,一眼就)它的形式簡單到不需任何說明,一眼就可以看出其含義,因此易于掌握和使用。可以看出其含義,因此易于掌握和使用。(2 2)多年來判定樹一直受到人們的重視,是)多年來判定樹一直受到人們的重視,是一種比較常用的系統分析和設計的工具。一種比較常用的系統分析和設計的工具。軟件工程軟件工程4545軟件工程軟件工程4646用判定樹表示計算行李費的算法用判定樹表示計算行
36、李費的算法6.3.6過程設計語言過程設計語言過程設計語言過程設計語言(PDL)(PDL)也稱為也稱為偽碼偽碼,它是用正文,它是用正文形式表示數據和處理過程的設計工具。形式表示數據和處理過程的設計工具。PDLPDL具有嚴格的關具有嚴格的關鍵字外部語法鍵字外部語法,用于定義控,用于定義控制結構和數據結構;另一方面,制結構和數據結構;另一方面,PDL表示實表示實際操作和條件的內部語法通常又是靈活自由際操作和條件的內部語法通常又是靈活自由的,可以適應各種工程項目的需要。因此,的,可以適應各種工程項目的需要。因此,一般說來,一般說來,PDLPDL是一種是一種“混雜混雜”語言。語言。軟件工程軟件工程474
37、7軟件工程軟件工程4848【例例4 4】某物流公司運費計算標準如下:若省某物流公司運費計算標準如下:若省內運輸,快遞服務每千克內運輸,快遞服務每千克5 5元,平郵普通包裹元,平郵普通包裹資費每千克資費每千克3 3元;若省外運輸,重量不超過元;若省外運輸,重量不超過5 5千千克的快遞服務每千克克的快遞服務每千克1212元,超重部分按每千克元,超重部分按每千克5 5元計算,重量不超過元計算,重量不超過5 5千克的平郵普通包裹資千克的平郵普通包裹資費每千克費每千克8 8元,超重部分按每千克元,超重部分按每千克3 3元計算。請元計算。請用結構化語言(用結構化語言(PDLPDL)表示)表示軟件工程軟件工
38、程4949法描述此物流公司運費計算標準。法描述此物流公司運費計算標準。分析:例分析:例4 4中的運費根據省內省外運輸分為來中的運費根據省內省外運輸分為來那個鐘情況,每種情況又按照服務的速度有不那個鐘情況,每種情況又按照服務的速度有不同的計費標準,因此采用選擇結構的嵌套形式同的計費標準,因此采用選擇結構的嵌套形式描述比較簡單。描述比較簡單。結構化語言如下:結構化語言如下: if if 省內運輸省內運輸 if if 快件快件 運費運費=W=W* *5 5元元/ /千克千克 elseelse 運費運費=W=W* *3 3千元千元/ /千克千克 endifendifElseElse if if 快遞快
39、遞 if w=5kgif w=5kg 運費運費=w=w* *1212元元/ /千克千克 elseelse 運費運費=5=5* *1212元元/ /千克千克+ +(w-5)w-5)* *5 5元元/ /千克千克 endifendifElseElse if w=5kg if w=5kg 運費運費=w=w* *8 8元元/ /千克千克ElseElse運費運費=5=5* *8 8元元/ /千克千克+ +(w-5)w-5)* *3 3元元/ /千克千克EndifEndifEndifEndif軟件工程軟件工程50506.4面向數據結構的設計方法面向數據結構的設計方法計算機軟件本質上是計算機軟件本質上是信息
40、處理系統信息處理系統,因此,因此,可以根據軟件所處理的信息的特征來設計軟可以根據軟件所處理的信息的特征來設計軟件。件。在許多應用領域中信息都有清楚的層次結構在許多應用領域中信息都有清楚的層次結構,輸入數據、內部存儲的信息,輸入數據、內部存儲的信息( (數據庫或文件數據庫或文件) )以及輸出數據都可能有獨特的結構。以及輸出數據都可能有獨特的結構。數據結構數據結構既影響程序的結構又影響程序的處理過程既影響程序的結構又影響程序的處理過程,重,重復出現的數據通常由具有循環控制結構的程序復出現的數據通常由具有循環控制結構的程序軟件工程軟件工程5151來處理,選擇數據來處理,選擇數據( (即,可能出現也可
41、能不出即,可能出現也可能不出現的信息現的信息) )要用帶有分支控制結構的程序來處要用帶有分支控制結構的程序來處理理。面向數據結構的設計方法的最終目標是得出面向數據結構的設計方法的最終目標是得出對程序處理過程的描述。對程序處理過程的描述。n這種方法最適合于在詳細設計階段使用,這種方法最適合于在詳細設計階段使用,也就是說,在完成了軟件結構設計之后,可也就是說,在完成了軟件結構設計之后,可以使用面向數據結構的方法來設計每個模塊以使用面向數據結構的方法來設計每個模塊的處理過程。的處理過程。軟件工程軟件工程52526.4.16.4.1Jackson圖圖1.1.順序結構順序結構順序結構的數據由一個或多個數
42、據元素組成順序結構的數據由一個或多個數據元素組成,每個元素按確定次序出現一次。圖,每個元素按確定次序出現一次。圖6.86.8是表是表示順序結構的示順序結構的JacksonJackson圖的一個例子。圖的一個例子。2.2.選擇結構選擇結構選擇結構的數據包含兩個或多個數據元素,選擇結構的數據包含兩個或多個數據元素,每次使用這個數據時按一定條件從這些數據每次使用這個數據時按一定條件從這些數據元素中選擇一個。圖元素中選擇一個。圖6.96.9是表示是表示3 3個中選個中選1 1個結個結構的構的JacksonJackson圖。圖。軟件工程軟件工程5353圖圖6.8A由由B、C、D 3個元個元素順序組成素順
43、序組成軟件工程軟件工程5454圖圖6.9根據條件根據條件A是是B或或C或或D中的某一個中的某一個3.3.重復結構重復結構重復結構的數據,根據使用時的條件由一個重復結構的數據,根據使用時的條件由一個數據元素出現零次或多次構成是表示重復結數據元素出現零次或多次構成是表示重復結構的構的JacksonJackson圖。圖。軟件工程軟件工程5555圖圖6.10A由由B出現出現N次次(N0)組成組成JacksonJackson圖有下述優點:圖有下述優點:(1)(1)便于表示層次結構,而且是對結構進行自便于表示層次結構,而且是對結構進行自頂向下分解的有力工具;頂向下分解的有力工具;(2)(2)形象直觀可讀性
44、好;形象直觀可讀性好;(3)(3)既能表示數據結構也能表示程序結構。既能表示數據結構也能表示程序結構。軟件工程軟件工程5656軟件工程軟件工程57576.4.26.4.2改進的改進的JacksonJackson圖圖圖6.11改進的Jackson圖軟件工程軟件工程5858 6.4.3Jackson方法方法JacksonJackson結構程序設計方法基本上由下述結構程序設計方法基本上由下述5 5個步驟組成:個步驟組成:(1)(1)分析并確定分析并確定輸入數據和輸出數據輸入數據和輸出數據的邏的邏輯結構,并用輯結構,并用JacksonJackson圖描繪這些數據結圖描繪這些數據結構。構。(2)(2)找
45、出輸入數據結構和輸出數據結構中找出輸入數據結構和輸出數據結構中有有對應關系的數據單元對應關系的數據單元。(3)(3)用下述用下述3 3條規則從描繪數據結構的條規則從描繪數據結構的軟件工程軟件工程5959JacksonJackson圖導出描繪程序結構圖導出描繪程序結構JacksonJackson圖。圖。第一,為每對有對應關系的數據單元,按第一,為每對有對應關系的數據單元,按照它們在數據結構圖中的層次在程序構圖照它們在數據結構圖中的層次在程序構圖的相應層次畫一個處理框的相應層次畫一個處理框( (注意,如果這對注意,如果這對數據單元在輸入數據結構和輸出據結構中數據單元在輸入數據結構和輸出據結構中所處
46、的層次不同,則和它們對應的處理框所處的層次不同,則和它們對應的處理框在程序結構圖中所處的層次與它們之中在在程序結構圖中所處的層次與它們之中在數據結構圖中層次低的那個對應數據結構圖中層次低的那個對應) );軟件工程軟件工程6060第二,根據輸入數據結構中剩余的每個數第二,根據輸入數據結構中剩余的每個數據單元所處的層次,在程序結構圖的應層據單元所處的層次,在程序結構圖的應層次分別為它們畫上對應的處理框;次分別為它們畫上對應的處理框;第三,根據輸出數據結構中剩余的每個數第三,根據輸出數據結構中剩余的每個數據單元所處的層次,在程序結構圖的據單元所處的層次,在程序結構圖的應層次分別為它們畫上對應的處理框
47、。應層次分別為它們畫上對應的處理框。(4)(4)列出所有操作和條件列出所有操作和條件( (包括分支條件和包括分支條件和循環結束條件循環結束條件) ),并且把它們分配程序結,并且把它們分配程序結構圖的適當位置。構圖的適當位置。軟件工程軟件工程6161變換分析變換分析 (5)(5)用偽碼表示程序。用偽碼表示程序。【例子例子】一個正文文件由若干個記錄組成一個正文文件由若干個記錄組成,每個記錄是一個字符串。要求統計每個,每個記錄是一個字符串。要求統計每個記錄中空格字符的個數,以及文件中空格記錄中空格字符的個數,以及文件中空格字符的總個數。要求的輸出數據格式是,字符的總個數。要求的輸出數據格式是,每復制
48、一行輸入字符串之后,另起一行印每復制一行輸入字符串之后,另起一行印出這個字符串中的空格數,最后印出文件出這個字符串中的空格數,最后印出文件中空格的總個數。中空格的總個數。軟件工程軟件工程6262圖圖6.12表示輸入輸出數據結構的表示輸入輸出數據結構的Jackson圖圖軟件工程軟件工程6363確定了輸入輸出數據結構之后,第二步是確定了輸入輸出數據結構之后,第二步是分析確定在輸入數據結構和輸出數據結構分析確定在輸入數據結構和輸出數據結構中有對應關系的數據單元。中有對應關系的數據單元。【分析】(1 1)輸出數據總是通過對輸入數據的處理)輸出數據總是通過對輸入數據的處理而得到的,因此在輸入輸出數據結構
49、最高而得到的,因此在輸入輸出數據結構最高層次的兩個單元層次的兩個單元( (在這個例子中是在這個例子中是“正文文正文文件件”和和“輸出表格輸出表格”) )總是有對應關系的。總是有對應關系的。這一對單元將和程序結構圖中最頂層的方這一對單元將和程序結構圖中最頂層的方軟件工程軟件工程6464框框( (代表程序代表程序) )相對應,也就是說經過程序的相對應,也就是說經過程序的處理由正文文件得到輸出表格。處理由正文文件得到輸出表格。(2 2)每處理輸入數據中一個)每處理輸入數據中一個“字符串字符串”之之后,就可以得到輸出數據中一個后,就可以得到輸出數據中一個“串信息串信息”,它們都是重復出現的數據單元,而且出現,它們都是重復
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級下科學教學設計-磁鐵有磁性-教科版
- 2024秋五年級英語上冊 Unit 6 In a nature park Part B 第一課時教學設計 人教PEP
- Unit 6 Meet my family單元整體(教學設計)-2024-2025學年join in外研劍橋英語三年級上冊
- 9那一定會很好(教案)-2024-2025學年語文三年級上冊統編版
- 三年級信息技術上冊 第2課 初識電腦教學設計 閩教版
- 20精彩極了“和”糟糕透了(教學設計)-2024-2025學年統編版語文五年級上冊
- 物理壓強知識總結
- 一年級品德與社會下冊 我的身體教學設計 未來版
- 11《拆裝玩具》教學設計-2024-2025學年人教鄂教版(2024)科學一年級上冊
- Unit 8 Lesson 5 Grammar in Use教案 2024-2025學年仁愛科普版英語七年級下冊
- 健康醫療大數據分析合同
- 《SLT 377-2025水利水電工程錨噴支護技術規范》知識培訓
- 高血脂高血壓護理
- 2024-2025學年人教版(2024)七年級數學下冊第八章實數單元檢測(含答案)
- 膀胱癌部分切除護理查房
- 兒童心理健康與家庭教育關系
- 2025屆山東省臨沂市高三下學期一模考試英語試卷(含解析)
- 2025年河南水利與環境職業學院單招職業傾向性測試題庫學生專用
- 2025年人體捐獻協議
- 專題06+函數與導數領域中的典型壓軸小題全歸納與剖析課件
- 《專業咖啡制作技術》課件
評論
0/150
提交評論