




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程修改1軟件工程軟件工程第8章面向過程的結構化設計軟件工程修改2 軟件設計是后續開發步驟及軟件維護工作的軟件設計是后續開發步驟及軟件維護工作的基礎。如果沒有設計,只能建立一個不穩定的基礎。如果沒有設計,只能建立一個不穩定的系統結構。系統結構。軟件工程修改3 軟件系統進行模塊設計時,可有不同的抽象層次。軟件系統進行模塊設計時,可有不同的抽象層次。 在最高的抽象層次上,使用問題所處環境的語言概在最高的抽象層次上,使用問題所處環境的語言概括的描述問題的解法;括的描述問題的解法; 在較低的抽象層次上,將提供更詳細的解決方案。在較低的抽象層次上,將提供更詳細的解決方案。8.1 軟件設計的基本概念和
2、原理軟件工程修改4 (1 1)過程抽象)過程抽象 過程抽象是指具有明確和有限功能的指令序列。過過程抽象是指具有明確和有限功能的指令序列。過程抽象的命名暗示了這些功能,但隱藏了具體的細節。程抽象的命名暗示了這些功能,但隱藏了具體的細節。 在軟件工程中,從系統定義到實現,在軟件工程中,從系統定義到實現,每進展一步每進展一步都可以看做是對軟件解決方法的抽象化過程的一次細都可以看做是對軟件解決方法的抽象化過程的一次細化。化。軟件工程修改5 (2 2)數據抽象)數據抽象 數據抽象是描述數據對象的冠名數據集合。數據抽象是描述數據對象的冠名數據集合。 在不同層次上描述數據對象的細節,定義與該數據在不同層次上
3、描述數據對象的細節,定義與該數據對象相關的操作。對象相關的操作。軟件工程修改6 體系結構是程序構件(模塊)的結構或組織、這些體系結構是程序構件(模塊)的結構或組織、這些構件交互的形式以及這些構件所用數據的結構。構件交互的形式以及這些構件所用數據的結構。n 結構圖:反結構圖:反映程序中模塊之間的層次調用關系和聯映程序中模塊之間的層次調用關系和聯系:它以特定的符號表示模塊、模塊間的調用關系和系:它以特定的符號表示模塊、模塊間的調用關系和模塊間信息的傳遞。模塊間信息的傳遞。軟件工程修改7 模塊:模塊用矩形框表示,并用模塊的名字標記它。模塊:模塊用矩形框表示,并用模塊的名字標記它。 模塊的調用關系和接
4、口:模塊之間用單向箭頭聯模塊的調用關系和接口:模塊之間用單向箭頭聯結,箭頭從調用模塊指向被調用模塊。結,箭頭從調用模塊指向被調用模塊。軟件工程修改8 模塊間的信息傳遞:當一個模塊調用另一個模塊時,模塊間的信息傳遞:當一個模塊調用另一個模塊時,調用模塊把數據或控制信息傳送給被調用模塊,以調用模塊把數據或控制信息傳送給被調用模塊,以使被調用模塊能夠運行。而被調用模塊在執行過程使被調用模塊能夠運行。而被調用模塊在執行過程中又把它產生的數據或控制信息回送給調用模塊中又把它產生的數據或控制信息回送給調用模塊軟件工程修改9軟件工程修改10 軟件被劃分為獨立命名的構件,稱之為模塊。這些軟件被劃分為獨立命名的
5、構件,稱之為模塊。這些模塊可以被組裝起來以滿足整個問題的需求。模塊可以被組裝起來以滿足整個問題的需求。經驗經驗1 1:工作量:工作量e(p1+p2)e(p1)+e(p2)e(p1+p2)e(p1)+e(p2)經驗經驗2 2:成本成本成本成本 / / 模塊模塊最小成本區最小成本區接口成本接口成本軟件總成本軟件總成本模塊數目模塊數目軟件工程修改11軟件工程修改12軟件工程修改13軟件工程修改14軟件工程修改158.2 軟件總體設計的任務和目標v在總體設計階段中應從系統開發的角度出發,將系統逐次分割成層次結構,系統被表達為一個結構清晰層次分明的模塊組合,每個模塊完成各自相對簡單的功能,并且他們之間都
6、保持一定的聯系,另外還定義這個系統與外部系統的接口。v這一階段要從需求分析轉化到設計模型 軟件工程修改168.2 軟件總體設計的任務和目標從分析模型轉化到設計模型的元素對應關系 分析模型元素分析模型元素轉化成設計模型轉化成設計模型的元素的元素狀態轉換圖、控制規格說明、處理規格說明過程設計數據流圖接口設計數據流圖體系結構設計實體聯系圖、數據對象描述、數據字典數據設計軟件工程修改178.3 軟件體系結構設計v根據數據變換的性質,我們可以把數據流圖分為變換型和事務型兩類,所以,結構化設計也被分為變換設計、事務設計以及兩者相結合的綜合設計。軟件工程修改188.3.1基本概念v面向數據流的設計方法,把信
7、息流映射成軟件體系結構,不同的信息流選用不同的映射方法,總體來說,有以下兩種類型的數據流:變換流 事務流 軟件工程修改198.3.1基本概念v變換流變換流體現的是數據從輸入到加工,再到輸出的一般步驟,數據首先需要輸入過程,由外部形式變換成內部形式,這種內部形式適合進行加工處理;然后經過變換中心,將輸入的數據加工成一種新的數據形態;接著再通過輸出通道變換成外部形式。當數據流圖具備這些特性時,這種信息流我們就稱為變換流。 軟件工程修改208.3.1基本概念v變換流軟件工程修改218.3.1基本概念v事務流 當輸入的信息流可以引發多個不同的事務活動流程,并且數據流圖中有一個事務調度中心,那么我們稱這
8、種信息流為事務流。軟件工程修改228.3.1基本概念v事務流 軟件工程修改238.3.1基本概念不同的信息流對應的分析方法是不同的,我們需要根據數據流圖中的流的類型分別進行變換分析或事務分析,從數據流圖到最終的軟件體系結構的分析設計過程如圖所示 軟件工程修改24軟件工程修改25軟件工程修改26軟件工程修改278.4 過程設計 在計算機技術發展的初期,由于計算機硬件條件的限制,導致對運算速度與存儲空間都有要求,這樣開發人員追求高效率,把程序的可理解性、可擴充性等因素被放到第二位。 隨著計算機應用規模也越來越大,應用和開發越來越普及,計算機硬件與通信技術得到了高速發展,程序設計不再是一兩個程序員可
9、以完成的任務。編寫程序不能再以片面追求高效率為第一要求,而要綜合考慮程序的可靠性、可擴充性、可重用性和可理解性等因素。正是這種發展刺激了程序設計方法與程序設計語言的發展。軟件工程修改288.4 過程設計v過程設計的目標除了要使開發出來的程序滿足功能、性能上的要求,同時也要滿足代碼簡潔明了易懂的要求。v過程設計的好壞決定了最終代碼的質量。隨著程序規模與復雜性的不斷增長,人們探索出新的程序設計方法。v專家證明了只用順序、選擇、循環這三種基本控制結構,即可實現任何單入口/單出口的程序。 以下介紹幾種結構設計的工具: 軟件工程修改298.4.1程序流程圖 程序流程圖是人們對解決問題的方法、思路或算法的
10、一種描述。它的優點在于:采用簡單規范的符號,畫法簡單;結構清晰,邏輯性強;便于描述,容易理解。軟件工程修改308.4.1程序流程圖流程圖采用以下的一些基本符號: 軟件工程修改318.4.1程序流程圖例如:使用程序流程圖判斷某個整數x是否為質數的算法 軟件工程修改328.4.1程序流程圖 傳統的程序流程圖是一種非結構化的程序算法設計工具,它有以下一些缺點:它無法對嵌套進行清晰地表達,尤其當嵌套比較復雜的時候;程序流程圖無法制止goto語句;程序流程圖會使程序員過早地考慮程序的控制流程,它不是逐步求精的好工具。 軟件工程修改338.4.2盒式圖n-s 傳統的程序流程圖是一種非結構化的程序算法設計工
11、具,它有以下一些缺點:它無法對嵌套進行清晰地表達,尤其當嵌套比較復雜的時候;程序流程圖無法制止goto語句;程序流程圖會使程序員過早地考慮程序的控制流程,它不是逐步求精的好工具。 軟件工程修改348.4.2盒式圖n-snassi和shneiderman提出的盒式圖n-s,它把整個程序寫在一個大框圖內,這個大框圖由若干個小的基本框圖構成,在盒式圖n-s中,有三種基本控制結構的n-s圖 軟件工程修改358.4.2盒式圖n-s下圖為判斷某個整數x是否為質數的算法設計圖: 軟件工程修改368.4.2盒式圖n-sn-s盒式圖實際上是程序流程圖去掉控制流線的變種,它有以下特點:功能表達明確;容易確定局部數
12、據和全局數據的作用域;容易表達模塊的層次與嵌套關系;容易培養程序員養成結構化分析問題和解決問題的習慣。n-s盒式圖的缺點在于,獲得結構嚴密的同時,犧牲了一定的靈活性,不便于進行算法的調整優化,如果問題較為復雜,作圖的難度會加大。軟件工程修改378.4.3pad圖問題分析圖pad(problem analysis diagram),由日本日立公司于1973年發明,它用二維樹形結構的圖表示程序的控制流,將這種圖轉換為程序代碼比較容易。以下是pad的基本符號。軟件工程修改388.4.3pad圖同樣是上面那個判定質數的例子 軟件工程修改398.4.3pad圖pad圖的優點在于:v用pad圖可以容易讀懂
13、程序所要表達的邏輯,pad圖是二維樹型結構的圖形,程序從圖中最左邊上端的結點開始執行,自上而下,從左到右順序執行;vpad是一種程序結構可見性好、結構唯一、易于編制、易于檢查和易于修改的詳細設計表現方法,用pad可以消除軟件開發過程中設計與制作的分離,也可消除制作過程中的主觀性;vpad圖所描述的程序結構十分清晰。圖中最左邊的豎線是程序的主線,即第一層控制結構,隨著程序層次的增加,pad圖逐漸向右延伸,每增加一個層次,圖形向右擴展一條豎線,pad圖中豎線的總條數就是程序的層次數;既可用于表示程序邏輯,也可用于描述數據結構。 軟件工程修改408.4.4pdl語言pdl(program desig
14、n language)也稱為偽碼,它是用正文形式表示數據和處理過程的設計工具。pdl具有嚴格的關鍵字外部語法,用于定義控制結構和數據結構;另一方面,pdl表示實際操作和條件的內部語法通常又是靈活自由的,以便可以適應各種工程項目的需要。因此,一般說來pdl是一種“混雜”語言,它使用一種語言(通常是某種自然語言)的詞匯,同時卻使用另一種語言(某種結構化的程序設計語言)的語法。 軟件工程修改418.4.4pdl語言pdl程序的構成 pdl程序的構成類型子類型數據說明declareas具體的數據結構:scalararraylistcharstructure子程序結構procedureinterface
15、returnend分程序結構beginend軟件工程修改428.4.4pdl語言pdl程序的構成 順序結構選擇型if thenelseend ifif thenelse if thenelseend ifwhile循環型loop while end loopuntil循環型loop until end loopcase型case of,default :end case軟件工程修改438.4.4pdl語言同樣是上面那個判定質數的例子,用pdl表示如下:procedure 判定質數declare x,n,j as 整型簡單變量從鍵盤讀入x將變量n賦值為x1/2將變量i賦值為2loop while
16、 i=n+1輸出:x是質數else輸出:x不是質數end ifend判定質數軟件工程修改448.4.4pdl語言pdl具有下述特點:它使用關鍵字的固定語法,為了使結構清晰和可讀性好,通常在所有可能嵌套使用的控制結構的頭和尾都有關鍵字,例如,ifend if、loopend loop等。它使用自然語言的自由語法,來描述具體的處理邏輯。它需要對數據進行說明。應該既包括簡單的數據結構(例如簡單變量和數組),又包括復雜的數據結構(例如,鏈表或層次的數據結構)。它需要對模塊定義和調用的技術進行說明。 軟件工程修改458.4.5判定表 判定表(decision table),是指一個表格,用于顯示條件和條
17、件導致動作的集合。判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。如果數據流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適。軟件工程修改468.4.5判定表 一張判定表通常由四部分組成,左上部列出的是所有的條件,左下部為所有可能的操作,右上部分表示各種條件組合的一個矩陣,右下部分是對應于每種條件組合應有的操作。 軟件工程修改478.4.5判定表 以學生的獎學金評定為例,說明判定表的應用。獎勵的目的在于鼓勵學生的品學兼優,此處理功能是要合理確定獎學金評定等級。決定受獎的條件為:成績優秀占70或50以上,成績為中或中以下占15或20以下,團結紀律為優或中。獎勵方案為一等獎、
18、二等獎、三等獎三種。因為受獎條件有些是相容的,相互組合的項較多。描述此學生獎勵政策的判定表如下表所示:軟件工程修改488.4.5判定表條件各門功課的成績等級比率優秀=70% 優秀=50%-中以下15% 中以下20% -綜合素質評分優 中 獎勵方案一等獎 二等獎 三等獎 軟件工程修改498.4.5判定表v判定表的優點:能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。v在一些數據處理問題當中,某些操作的實施依賴于多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執行不同的操作。判定表很適合于處理這類問題。 軟件工程修改508.4.6
19、判定樹 判定樹是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系。判定表雖然能清晰地表示復雜的條件組合與應做的動作之間的對應關系,但其含義卻不是一眼就能看出來的,初次接觸這種工具的人要理解它需要有一個簡短的學習過程。此外,當數據元素的值多于兩個時,判定表的簡潔程度也將下降。軟件工程修改518.4.6判定樹一個支持自行開發、購買決策的決策樹 軟件工程修改528.4.6判定樹 判定樹易于掌握和使用,它形式簡單,不需任何說明,一眼就可以看出其含義。從不足方面來看,判定樹雖然比判定表直觀,但簡潔性卻不如判定表,數據元素的同一個值往往要重復畫出多遍,而且越接近樹的葉端重復次數越多。此外還可以看出畫判定樹時分枝的次序可能對最終畫出的判定樹的簡潔程度有較大影響。軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環境整治租地合同協議
- 電工廠搬遷運輸合同協議
- 貓買賣合同協議書范本
- 電力耗材銷售合同協議
- 電力器材購買合同協議
- 皮草倉儲合同協議書范本
- 電腦維修服務合同協議
- 電商顧問雇傭合同協議
- 電力工程消防合同協議
- 2025年大流量羅茨鼓風機項目發展計劃
- 交通工程基礎習習題及參考答案
- 讀書知識競賽試題含答案
- 線路送出工程質量創優項目策劃書
- 企業全面戰略管理、年度經營計劃、預算管理、績效管理
- 100T汽車吊性能表
- SOP0420201潔凈空調系統清潔消毒預防性維護保養操作規程報告
- 試樣切取和加工制備作業指導書
- 中國民主同盟入盟申請表(樣表)
- 數學分析簡明教程答案尹小玲鄧東皋
- 壁球館施工方案
- 申請英國簽證在職證明中英文版(共2頁)
評論
0/150
提交評論