




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程修改1軟件工程軟件工程第8章面向過程的結(jié)構化設計軟件工程修改2 軟件設計是后續(xù)開發(fā)步驟及軟件維護工作的軟件設計是后續(xù)開發(fā)步驟及軟件維護工作的基礎。如果沒有設計,只能建立一個不穩(wěn)定的基礎。如果沒有設計,只能建立一個不穩(wěn)定的系統(tǒng)結(jié)構。系統(tǒng)結(jié)構。軟件工程修改3 軟件系統(tǒng)進行模塊設計時,可有不同的抽象層次。軟件系統(tǒng)進行模塊設計時,可有不同的抽象層次。 在最高的抽象層次上,使用問題所處環(huán)境的語言概在最高的抽象層次上,使用問題所處環(huán)境的語言概括的描述問題的解法;括的描述問題的解法; 在較低的抽象層次上,將提供更詳細的解決方案。在較低的抽象層次上,將提供更詳細的解決方案。8.1 軟件設計的基本概念和
2、原理軟件工程修改4 (1 1)過程抽象)過程抽象 過程抽象是指具有明確和有限功能的指令序列。過過程抽象是指具有明確和有限功能的指令序列。過程抽象的命名暗示了這些功能,但隱藏了具體的細節(jié)。程抽象的命名暗示了這些功能,但隱藏了具體的細節(jié)。 在軟件工程中,從系統(tǒng)定義到實現(xiàn),在軟件工程中,從系統(tǒng)定義到實現(xiàn),每進展一步每進展一步都可以看做是對軟件解決方法的抽象化過程的一次細都可以看做是對軟件解決方法的抽象化過程的一次細化?;?。軟件工程修改5 (2 2)數(shù)據(jù)抽象)數(shù)據(jù)抽象 數(shù)據(jù)抽象是描述數(shù)據(jù)對象的冠名數(shù)據(jù)集合。數(shù)據(jù)抽象是描述數(shù)據(jù)對象的冠名數(shù)據(jù)集合。 在不同層次上描述數(shù)據(jù)對象的細節(jié),定義與該數(shù)據(jù)在不同層次上
3、描述數(shù)據(jù)對象的細節(jié),定義與該數(shù)據(jù)對象相關的操作。對象相關的操作。軟件工程修改6 體系結(jié)構是程序構件(模塊)的結(jié)構或組織、這些體系結(jié)構是程序構件(模塊)的結(jié)構或組織、這些構件交互的形式以及這些構件所用數(shù)據(jù)的結(jié)構。構件交互的形式以及這些構件所用數(shù)據(jù)的結(jié)構。n 結(jié)構圖:反結(jié)構圖:反映程序中模塊之間的層次調(diào)用關系和聯(lián)映程序中模塊之間的層次調(diào)用關系和聯(lián)系:它以特定的符號表示模塊、模塊間的調(diào)用關系和系:它以特定的符號表示模塊、模塊間的調(diào)用關系和模塊間信息的傳遞。模塊間信息的傳遞。軟件工程修改7 模塊:模塊用矩形框表示,并用模塊的名字標記它。模塊:模塊用矩形框表示,并用模塊的名字標記它。 模塊的調(diào)用關系和接
4、口:模塊之間用單向箭頭聯(lián)模塊的調(diào)用關系和接口:模塊之間用單向箭頭聯(lián)結(jié),箭頭從調(diào)用模塊指向被調(diào)用模塊。結(jié),箭頭從調(diào)用模塊指向被調(diào)用模塊。軟件工程修改8 模塊間的信息傳遞:當一個模塊調(diào)用另一個模塊時,模塊間的信息傳遞:當一個模塊調(diào)用另一個模塊時,調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以調(diào)用模塊把數(shù)據(jù)或控制信息傳送給被調(diào)用模塊,以使被調(diào)用模塊能夠運行。而被調(diào)用模塊在執(zhí)行過程使被調(diào)用模塊能夠運行。而被調(diào)用模塊在執(zhí)行過程中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊中又把它產(chǎn)生的數(shù)據(jù)或控制信息回送給調(diào)用模塊軟件工程修改9軟件工程修改10 軟件被劃分為獨立命名的構件,稱之為模塊。這些軟件被劃分為獨立命名的
5、構件,稱之為模塊。這些模塊可以被組裝起來以滿足整個問題的需求。模塊可以被組裝起來以滿足整個問題的需求。經(jīng)驗經(jīng)驗1 1:工作量:工作量e(p1+p2)e(p1)+e(p2)e(p1+p2)e(p1)+e(p2)經(jīng)驗經(jīng)驗2 2:成本成本成本成本 / / 模塊模塊最小成本區(qū)最小成本區(qū)接口成本接口成本軟件總成本軟件總成本模塊數(shù)目模塊數(shù)目軟件工程修改11軟件工程修改12軟件工程修改13軟件工程修改14軟件工程修改158.2 軟件總體設計的任務和目標v在總體設計階段中應從系統(tǒng)開發(fā)的角度出發(fā),將系統(tǒng)逐次分割成層次結(jié)構,系統(tǒng)被表達為一個結(jié)構清晰層次分明的模塊組合,每個模塊完成各自相對簡單的功能,并且他們之間都
6、保持一定的聯(lián)系,另外還定義這個系統(tǒng)與外部系統(tǒng)的接口。v這一階段要從需求分析轉(zhuǎn)化到設計模型 軟件工程修改168.2 軟件總體設計的任務和目標從分析模型轉(zhuǎn)化到設計模型的元素對應關系 分析模型元素分析模型元素轉(zhuǎn)化成設計模型轉(zhuǎn)化成設計模型的元素的元素狀態(tài)轉(zhuǎn)換圖、控制規(guī)格說明、處理規(guī)格說明過程設計數(shù)據(jù)流圖接口設計數(shù)據(jù)流圖體系結(jié)構設計實體聯(lián)系圖、數(shù)據(jù)對象描述、數(shù)據(jù)字典數(shù)據(jù)設計軟件工程修改178.3 軟件體系結(jié)構設計v根據(jù)數(shù)據(jù)變換的性質(zhì),我們可以把數(shù)據(jù)流圖分為變換型和事務型兩類,所以,結(jié)構化設計也被分為變換設計、事務設計以及兩者相結(jié)合的綜合設計。軟件工程修改188.3.1基本概念v面向數(shù)據(jù)流的設計方法,把信
7、息流映射成軟件體系結(jié)構,不同的信息流選用不同的映射方法,總體來說,有以下兩種類型的數(shù)據(jù)流:變換流 事務流 軟件工程修改198.3.1基本概念v變換流變換流體現(xiàn)的是數(shù)據(jù)從輸入到加工,再到輸出的一般步驟,數(shù)據(jù)首先需要輸入過程,由外部形式變換成內(nèi)部形式,這種內(nèi)部形式適合進行加工處理;然后經(jīng)過變換中心,將輸入的數(shù)據(jù)加工成一種新的數(shù)據(jù)形態(tài);接著再通過輸出通道變換成外部形式。當數(shù)據(jù)流圖具備這些特性時,這種信息流我們就稱為變換流。 軟件工程修改208.3.1基本概念v變換流軟件工程修改218.3.1基本概念v事務流 當輸入的信息流可以引發(fā)多個不同的事務活動流程,并且數(shù)據(jù)流圖中有一個事務調(diào)度中心,那么我們稱這
8、種信息流為事務流。軟件工程修改228.3.1基本概念v事務流 軟件工程修改238.3.1基本概念不同的信息流對應的分析方法是不同的,我們需要根據(jù)數(shù)據(jù)流圖中的流的類型分別進行變換分析或事務分析,從數(shù)據(jù)流圖到最終的軟件體系結(jié)構的分析設計過程如圖所示 軟件工程修改24軟件工程修改25軟件工程修改26軟件工程修改278.4 過程設計 在計算機技術發(fā)展的初期,由于計算機硬件條件的限制,導致對運算速度與存儲空間都有要求,這樣開發(fā)人員追求高效率,把程序的可理解性、可擴充性等因素被放到第二位。 隨著計算機應用規(guī)模也越來越大,應用和開發(fā)越來越普及,計算機硬件與通信技術得到了高速發(fā)展,程序設計不再是一兩個程序員可
9、以完成的任務。編寫程序不能再以片面追求高效率為第一要求,而要綜合考慮程序的可靠性、可擴充性、可重用性和可理解性等因素。正是這種發(fā)展刺激了程序設計方法與程序設計語言的發(fā)展。軟件工程修改288.4 過程設計v過程設計的目標除了要使開發(fā)出來的程序滿足功能、性能上的要求,同時也要滿足代碼簡潔明了易懂的要求。v過程設計的好壞決定了最終代碼的質(zhì)量。隨著程序規(guī)模與復雜性的不斷增長,人們探索出新的程序設計方法。v專家證明了只用順序、選擇、循環(huán)這三種基本控制結(jié)構,即可實現(xiàn)任何單入口/單出口的程序。 以下介紹幾種結(jié)構設計的工具: 軟件工程修改298.4.1程序流程圖 程序流程圖是人們對解決問題的方法、思路或算法的
10、一種描述。它的優(yōu)點在于:采用簡單規(guī)范的符號,畫法簡單;結(jié)構清晰,邏輯性強;便于描述,容易理解。軟件工程修改308.4.1程序流程圖流程圖采用以下的一些基本符號: 軟件工程修改318.4.1程序流程圖例如:使用程序流程圖判斷某個整數(shù)x是否為質(zhì)數(shù)的算法 軟件工程修改328.4.1程序流程圖 傳統(tǒng)的程序流程圖是一種非結(jié)構化的程序算法設計工具,它有以下一些缺點:它無法對嵌套進行清晰地表達,尤其當嵌套比較復雜的時候;程序流程圖無法制止goto語句;程序流程圖會使程序員過早地考慮程序的控制流程,它不是逐步求精的好工具。 軟件工程修改338.4.2盒式圖n-s 傳統(tǒng)的程序流程圖是一種非結(jié)構化的程序算法設計工
11、具,它有以下一些缺點:它無法對嵌套進行清晰地表達,尤其當嵌套比較復雜的時候;程序流程圖無法制止goto語句;程序流程圖會使程序員過早地考慮程序的控制流程,它不是逐步求精的好工具。 軟件工程修改348.4.2盒式圖n-snassi和shneiderman提出的盒式圖n-s,它把整個程序?qū)懺谝粋€大框圖內(nèi),這個大框圖由若干個小的基本框圖構成,在盒式圖n-s中,有三種基本控制結(jié)構的n-s圖 軟件工程修改358.4.2盒式圖n-s下圖為判斷某個整數(shù)x是否為質(zhì)數(shù)的算法設計圖: 軟件工程修改368.4.2盒式圖n-sn-s盒式圖實際上是程序流程圖去掉控制流線的變種,它有以下特點:功能表達明確;容易確定局部數(shù)
12、據(jù)和全局數(shù)據(jù)的作用域;容易表達模塊的層次與嵌套關系;容易培養(yǎng)程序員養(yǎng)成結(jié)構化分析問題和解決問題的習慣。n-s盒式圖的缺點在于,獲得結(jié)構嚴密的同時,犧牲了一定的靈活性,不便于進行算法的調(diào)整優(yōu)化,如果問題較為復雜,作圖的難度會加大。軟件工程修改378.4.3pad圖問題分析圖pad(problem analysis diagram),由日本日立公司于1973年發(fā)明,它用二維樹形結(jié)構的圖表示程序的控制流,將這種圖轉(zhuǎn)換為程序代碼比較容易。以下是pad的基本符號。軟件工程修改388.4.3pad圖同樣是上面那個判定質(zhì)數(shù)的例子 軟件工程修改398.4.3pad圖pad圖的優(yōu)點在于:v用pad圖可以容易讀懂
13、程序所要表達的邏輯,pad圖是二維樹型結(jié)構的圖形,程序從圖中最左邊上端的結(jié)點開始執(zhí)行,自上而下,從左到右順序執(zhí)行;vpad是一種程序結(jié)構可見性好、結(jié)構唯一、易于編制、易于檢查和易于修改的詳細設計表現(xiàn)方法,用pad可以消除軟件開發(fā)過程中設計與制作的分離,也可消除制作過程中的主觀性;vpad圖所描述的程序結(jié)構十分清晰。圖中最左邊的豎線是程序的主線,即第一層控制結(jié)構,隨著程序?qū)哟蔚脑黾?,pad圖逐漸向右延伸,每增加一個層次,圖形向右擴展一條豎線,pad圖中豎線的總條數(shù)就是程序的層次數(shù);既可用于表示程序邏輯,也可用于描述數(shù)據(jù)結(jié)構。 軟件工程修改408.4.4pdl語言pdl(program desig
14、n language)也稱為偽碼,它是用正文形式表示數(shù)據(jù)和處理過程的設計工具。pdl具有嚴格的關鍵字外部語法,用于定義控制結(jié)構和數(shù)據(jù)結(jié)構;另一方面,pdl表示實際操作和條件的內(nèi)部語法通常又是靈活自由的,以便可以適應各種工程項目的需要。因此,一般說來pdl是一種“混雜”語言,它使用一種語言(通常是某種自然語言)的詞匯,同時卻使用另一種語言(某種結(jié)構化的程序設計語言)的語法。 軟件工程修改418.4.4pdl語言pdl程序的構成 pdl程序的構成類型子類型數(shù)據(jù)說明declareas具體的數(shù)據(jù)結(jié)構:scalararraylistcharstructure子程序結(jié)構procedureinterface
15、returnend分程序結(jié)構beginend軟件工程修改428.4.4pdl語言pdl程序的構成 順序結(jié)構選擇型if thenelseend ifif thenelse if thenelseend ifwhile循環(huán)型loop while end loopuntil循環(huán)型loop until end loopcase型case of,default :end case軟件工程修改438.4.4pdl語言同樣是上面那個判定質(zhì)數(shù)的例子,用pdl表示如下:procedure 判定質(zhì)數(shù)declare x,n,j as 整型簡單變量從鍵盤讀入x將變量n賦值為x1/2將變量i賦值為2loop while
16、 i=n+1輸出:x是質(zhì)數(shù)else輸出:x不是質(zhì)數(shù)end ifend判定質(zhì)數(shù)軟件工程修改448.4.4pdl語言pdl具有下述特點:它使用關鍵字的固定語法,為了使結(jié)構清晰和可讀性好,通常在所有可能嵌套使用的控制結(jié)構的頭和尾都有關鍵字,例如,ifend if、loopend loop等。它使用自然語言的自由語法,來描述具體的處理邏輯。它需要對數(shù)據(jù)進行說明。應該既包括簡單的數(shù)據(jù)結(jié)構(例如簡單變量和數(shù)組),又包括復雜的數(shù)據(jù)結(jié)構(例如,鏈表或?qū)哟蔚臄?shù)據(jù)結(jié)構)。它需要對模塊定義和調(diào)用的技術進行說明。 軟件工程修改458.4.5判定表 判定表(decision table),是指一個表格,用于顯示條件和條
17、件導致動作的集合。判定表是分析和表達多邏輯條件下執(zhí)行不同操作的情況的工具。如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適。軟件工程修改468.4.5判定表 一張判定表通常由四部分組成,左上部列出的是所有的條件,左下部為所有可能的操作,右上部分表示各種條件組合的一個矩陣,右下部分是對應于每種條件組合應有的操作。 軟件工程修改478.4.5判定表 以學生的獎學金評定為例,說明判定表的應用。獎勵的目的在于鼓勵學生的品學兼優(yōu),此處理功能是要合理確定獎學金評定等級。決定受獎的條件為:成績優(yōu)秀占70或50以上,成績?yōu)橹谢蛑幸韵抡?5或20以下,團結(jié)紀律為優(yōu)或中。獎勵方案為一等獎、
18、二等獎、三等獎三種。因為受獎條件有些是相容的,相互組合的項較多。描述此學生獎勵政策的判定表如下表所示:軟件工程修改488.4.5判定表條件各門功課的成績等級比率優(yōu)秀=70% 優(yōu)秀=50%-中以下15% 中以下20% -綜合素質(zhì)評分優(yōu) 中 獎勵方案一等獎 二等獎 三等獎 軟件工程修改498.4.5判定表v判定表的優(yōu)點:能夠?qū)碗s的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。v在一些數(shù)據(jù)處理問題當中,某些操作的實施依賴于多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執(zhí)行不同的操作。判定表很適合于處理這類問題。 軟件工程修改508.4.6
19、判定樹 判定樹是判定表的變種,也能清晰地表示復雜的條件組合與應做的動作之間的對應關系。判定表雖然能清晰地表示復雜的條件組合與應做的動作之間的對應關系,但其含義卻不是一眼就能看出來的,初次接觸這種工具的人要理解它需要有一個簡短的學習過程。此外,當數(shù)據(jù)元素的值多于兩個時,判定表的簡潔程度也將下降。軟件工程修改518.4.6判定樹一個支持自行開發(fā)、購買決策的決策樹 軟件工程修改528.4.6判定樹 判定樹易于掌握和使用,它形式簡單,不需任何說明,一眼就可以看出其含義。從不足方面來看,判定樹雖然比判定表直觀,但簡潔性卻不如判定表,數(shù)據(jù)元素的同一個值往往要重復畫出多遍,而且越接近樹的葉端重復次數(shù)越多。此外還可以看出畫判定樹時分枝的次序可能對最終畫出的判定樹的簡潔程度有較大影響。軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務管理學科交叉試題及答案
- 2025年單杠伸縮晾衣架項目市場調(diào)查研究報告
- 2025年辦公室屏風五金件項目市場調(diào)查研究報告
- C++編程能力評估與提升方法試題及答案
- Msoffice能力提高試題及答案
- 2025年經(jīng)濟法重要法規(guī)解讀試題及答案
- 2025年保鮮美國甜豆項目市場調(diào)查研究報告
- C++編程錯誤解析與應對試題及答案
- 財務管理思維訓練試題及答案
- 計算機一級Photoshop考試在線資源試題及答案
- 月考試卷(1-2單元)(試題)-2024-2025學年人教版數(shù)學三年級上冊
- 國家開放大學《初級經(jīng)濟學》形考任務1-3參考答案
- 2024年安徽省蕪湖市經(jīng)濟技術開發(fā)區(qū)招聘筆試高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 國際貿(mào)易地理 全套課件
- 自治區(qū)面向社會公開招聘中小學教師 政治思想審查表
- 校園零星維修服務 投標方案(技術方案)
- 12J11衛(wèi)生、洗滌設施
- YYT 0660-2008 外科植入物用聚醚醚酮(PEEK)聚合物的標準規(guī)范
- 畜禽屠宰設備采購合同模板
- JT-T-913-2014危險貨物道路運輸企業(yè)安全生產(chǎn)責任制編寫要求
- 地質(zhì)災害排查臺賬表
評論
0/150
提交評論