




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第6章 結(jié)構(gòu)化設(shè)計基礎(chǔ),軟件設(shè)計過程 模塊化設(shè)計原理 模塊獨立性度量 軟件組成結(jié)構(gòu) 軟件體系結(jié)構(gòu),6.1 軟件設(shè)計過程,軟件設(shè)計階段的基本目標(biāo)是構(gòu)造系統(tǒng)“怎么做”的模型描述。 “設(shè)計先于編碼”,這是軟件工程“推遲實現(xiàn)”基本原則 軟件系統(tǒng)設(shè)計是把軟件需求“變換”為用于構(gòu)造軟件的藍(lán)圖。 “輸入”是需求分析各種模型元素 “輸出”是軟件設(shè)計模型和表示 軟件設(shè)計的目標(biāo)是對將要實現(xiàn)的軟件系統(tǒng)的體系結(jié)構(gòu)、系統(tǒng)的數(shù)據(jù)、系統(tǒng)模塊間的接口,以及所采用的算法給出詳盡的描述。,軟件設(shè)計三類活動,總體設(shè)計,也稱為概要設(shè)計,軟件結(jié)構(gòu)設(shè)計,或高層設(shè)計。 分析需求規(guī)格說明 模塊劃分,形成具有預(yù)定功能的模塊組成結(jié)構(gòu) 表示出模塊
2、間的控制關(guān)系 給出模塊之間的接口 軟件詳細(xì)設(shè)計,也稱為(模塊)過程設(shè)計,或低層設(shè)計。 設(shè)計模塊細(xì)節(jié) 確定模塊所需的算法和數(shù)據(jù)結(jié)構(gòu)等 測試和復(fù)審,軟件結(jié)構(gòu)設(shè)計步驟P53,設(shè)計供選擇的方案 選取合理的方案 推薦最佳方案 功能分解和設(shè)計軟件結(jié)構(gòu) 數(shù)據(jù)庫設(shè)計 制定軟件設(shè)計測試計劃 編制設(shè)計文檔 審查和復(fù)審,概要設(shè)計說明書,詳細(xì)設(shè)計說明書,6.2 軟件模塊化設(shè)計,模塊是一個獨立命名的,擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。 把一個大型軟件系統(tǒng)的全部功能,按照一定的原則合理地劃分為若干個模塊,每個模塊完成一個特定子功能,所有的這些模塊以某種結(jié)構(gòu)形式組成一個整體,這就是軟件的模塊化設(shè)計(Modular
3、Design)。 軟件模塊化設(shè)計可以簡化軟件的設(shè)計和實現(xiàn),提高軟件的可理解性和可測試性,并使軟件更容易得到維護(hù)。 分解、抽象、逐步求精、信息隱蔽和模塊獨立性,是軟件模塊化設(shè)計的指導(dǎo)思想。,分解,采用有效的分解,即“分而治之”,是能夠使問題得以很好解決的必不可少的措施。 一個軟件系統(tǒng)的各個模塊之間是相互關(guān)聯(lián)的,模塊劃分的數(shù)量越多,模塊間的聯(lián)系也越多。 模塊本身的復(fù)雜性和工作量雖然隨著模塊變小而減少,模塊的接口工作量卻隨著模塊數(shù)增加而增大。 軟件模塊化開發(fā)存在一個最小成本區(qū),把模塊數(shù)控制在一定的范圍內(nèi),可以得到最小的總開發(fā)工作量。,模塊數(shù)與開發(fā)工作量,抽象,分解必然需要抽象的支持。抽象是抓住主要問
4、題,隱藏細(xì)節(jié),這樣才能容易分解。 抽象具有不同的級別。 人類解決復(fù)雜問題的基本方法之一。只有抓住事物的本質(zhì),才能準(zhǔn)確分析和處理問題,找到合理的解決方案。 分析“借書”功能的抽象過程?,信息隱敝,信息隱蔽原則建議模塊應(yīng)該具有的特征是:每個模塊對其他所有模塊都隱蔽自己的設(shè)計決策。 信息隱蔽意味著通過一系列獨立的模塊可以得到有效的模塊化。 獨立的構(gòu)件或模塊之間的“接口”簡單而清晰。,逐步求精,逐步求精,或稱逐步細(xì)化,是一種自頂向下的設(shè)計策略。連續(xù)精化軟件的層次結(jié)構(gòu),逐步細(xì)化來實現(xiàn)軟件開發(fā),逐步功能分解的過程抽象,直至形成程序設(shè)計語句。 逐步求精是一個細(xì)化的過程。我們從在高抽象級上定義的功能陳述或數(shù)據(jù)
5、描述開始,然后在這些原始陳述上持續(xù)細(xì)化越來越多的細(xì)節(jié)。 抽象與精化是互補(bǔ)的概念,模塊的獨立性,模塊的獨立性(Module Independence)是模塊化、抽象、信息隱蔽等概念的直接結(jié)果,也是判斷模塊化結(jié)構(gòu)是否合理的標(biāo)準(zhǔn)。 模塊獨立性是指開發(fā)具有獨立功能而和其他模塊沒有過多關(guān)聯(lián)的模塊。 模塊獨立性兩大優(yōu)點: 獨立的模塊由于分解了功能,簡化了接口,使得軟件比較容易開發(fā); 獨立的模塊比較容易測試和維護(hù)。,5.3 模塊獨立性度量,模塊獨立性由兩個定性標(biāo)準(zhǔn)度量: 模塊自身的內(nèi)聚(Cohesion),也稱為塊內(nèi)聯(lián)系或模塊強(qiáng)度, 模塊之間的耦合(Coupling),也稱為塊間聯(lián)系。 模塊獨立性愈高,則塊
6、內(nèi)聯(lián)系越強(qiáng),塊間聯(lián)系越弱。,模塊內(nèi)聚性P58,內(nèi)聚性是從功能的角度對模塊內(nèi)部聚合能力的量度。 高內(nèi)聚是模塊獨立性追求的目標(biāo)。 分類: 偶然性內(nèi)聚:模塊內(nèi)的各個任務(wù)在功能上沒有實質(zhì)性聯(lián)系,純屬“偶然”因素組合了塊內(nèi)各個互不相關(guān)的任務(wù)。 邏輯性內(nèi)聚:模塊通常由若干個邏輯功能相似的任務(wù)組成,通過模塊外引入的一個開關(guān)量選擇其一執(zhí)行。這種內(nèi)聚增大了模塊間的耦合。 時間性內(nèi)聚:模塊內(nèi)的各個任務(wù)由相同的執(zhí)行時間聯(lián)系在一起。例如,初始化模塊。 過程性內(nèi)聚:模塊內(nèi)的各個任務(wù)必須按照某一特定次序執(zhí)行。 通信性內(nèi)聚:模塊內(nèi)部的各個任務(wù)靠公用數(shù)據(jù)聯(lián)系在一起,即都使用同一個輸入數(shù)據(jù),或者產(chǎn)生同一個輸出數(shù)據(jù)。 順序性內(nèi)聚
7、:模塊內(nèi)的各個任務(wù)是順序執(zhí)行的。通常,上一個任務(wù)的輸出是下一個任務(wù)的輸入。 功能性內(nèi)聚:模塊各個成分結(jié)合在一起,完成一個特定的功能。顯然,功能性模塊具有內(nèi)聚性最強(qiáng)、與其他模塊聯(lián)系少的特點。,內(nèi)聚性分類,模塊耦合性,耦合性是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。 耦合性的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,以及通過接口的數(shù)據(jù)類型和數(shù)目。 分類: 非直接耦合:同級模塊相互之間沒有信息傳遞,屬于非直接耦合。 數(shù)據(jù)耦合:調(diào)用下屬模塊時,如果交換的都是簡單變量,便構(gòu)成數(shù)據(jù)耦合。 特征耦合:調(diào)用下屬模塊時,如果交換的是數(shù)據(jù)結(jié)構(gòu),便構(gòu)成特征耦合。由于傳遞的是數(shù)據(jù)結(jié)構(gòu),不僅數(shù)據(jù)量增加,而且會使模塊的相關(guān)性增
8、加。 控制耦合:模塊間傳遞的信息不是一般的數(shù)據(jù),而是作為控制信息的開關(guān)值或標(biāo)志量。例如,邏輯性內(nèi)聚的模塊調(diào)用就是典型的控制耦合。 外部耦合:若允許一組模塊訪問同一個全局變量,可稱它們?yōu)橥獠狂詈稀?公共耦合:若允許一組模塊訪問同一個全局性的數(shù)據(jù)結(jié)構(gòu),則稱它們?yōu)楣柴詈?。全局性的?shù)據(jù)結(jié)構(gòu)可以是共享的通信區(qū)、公共的內(nèi)存區(qū)域、任何存儲介質(zhì)文件、物理設(shè)備等。 內(nèi)容耦合:若一個模塊可以直接調(diào)用另一個模塊中的數(shù)據(jù),或者直接轉(zhuǎn)移到另一個模塊中去,或者一個模塊有多個入口,則稱為內(nèi)容耦合。,耦合性分類,6.4 軟件組成結(jié)構(gòu),軟件組成結(jié)構(gòu)以層次表示程序的系統(tǒng)結(jié)構(gòu),即一種控制的層次體系,并不表示軟件的具體過程。 軟件
9、組成結(jié)構(gòu)表示了軟件元素(模塊)之間的關(guān)系。 軟件組成結(jié)構(gòu)可以用軟件結(jié)構(gòu)圖表示。,軟件結(jié)構(gòu)圖,軟件結(jié)構(gòu)(Structure Chart, 簡稱SC)是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個系統(tǒng)的功能實現(xiàn)。 軟件結(jié)構(gòu)以層次表示程序的系統(tǒng)結(jié)構(gòu),即一種控制的層次體系,并不表示軟件的具體過程。 軟件結(jié)構(gòu)一般用樹狀或網(wǎng)狀結(jié)構(gòu)的圖形來表示。 軟件結(jié)構(gòu)圖的主要元素有: 模塊:模塊用帶有名字的方框表示,名稱應(yīng)體現(xiàn)模塊的功能。 控制關(guān)系:控制關(guān)系用單向箭頭或直線表示模塊間的調(diào)用關(guān)系。 信息傳遞:用帶注釋的短箭頭表示模塊調(diào)用過程中傳遞的信息。 循環(huán)調(diào)用和選擇調(diào)用:在上部模塊底部加一個菱形符號表示選擇調(diào)用,在上部模塊的下
10、方家一個弧形箭頭,表示循環(huán)調(diào)用。,軟件結(jié)構(gòu)圖,軟件結(jié)構(gòu)圖的形態(tài)特征: 深度:指結(jié)構(gòu)圖控制的層次,也是模塊的層數(shù)。圖8-4中的結(jié)構(gòu)圖的深度為5。能粗略表示一個系統(tǒng)的大小和復(fù)雜程度,深度和程序長度之間存在著某種對應(yīng)關(guān)系。 寬度:指一層中最大的模塊個數(shù)。圖8-4中的結(jié)構(gòu)圖的寬度為8。一般來說,結(jié)構(gòu)的寬度越大,則系統(tǒng)就越復(fù)雜。 扇出:指一個模塊直接下屬模塊的個數(shù)。圖8-4中的結(jié)構(gòu)圖的模塊I的扇出為5。扇出過大,表示模塊過分復(fù)雜,需要控制和協(xié)調(diào)的下級模塊太多。扇出的上限一般為 59,平均一般為3或4。 扇入:指一個模塊直接上屬模塊的個數(shù)。圖8-4中的結(jié)構(gòu)圖的模塊T的扇入為4。扇入過大,意味著共享該模塊的
11、上級模塊數(shù)目多,這有一定的益處,但是決不能違背模塊的獨立性原則而片面追求高扇入。 畫結(jié)構(gòu)圖應(yīng)注意的事項: 模塊不能重名。 調(diào)用關(guān)系只能從上到下。,軟件結(jié)構(gòu)圖,模塊化設(shè)計的優(yōu)化P60,改進(jìn)軟件結(jié)構(gòu)提高模塊獨立性 在滿足模塊化要求的前提下盡量減少模塊數(shù)量,在滿足信息需求的前提下盡可能減少復(fù)雜的數(shù)據(jù)結(jié)構(gòu) 模塊規(guī)模應(yīng)適中 軟件結(jié)構(gòu)的深度、寬度、 扇入數(shù)和扇出數(shù)都要適當(dāng) 模塊的作用域應(yīng)該在控制域之內(nèi) 力求降低模塊接口的復(fù)雜程度,設(shè)計單入口、單出口的模塊,6.5 軟件系統(tǒng)結(jié)構(gòu)模型,軟件體系結(jié)構(gòu)是一種表達(dá),使軟件工程師能夠分析設(shè)計是否滿足需求、選擇合理的方案和降低風(fēng)險。 大型軟件系統(tǒng)總是被分解成一系列子系統(tǒng)
12、,由子系統(tǒng)提供一些相關(guān)的服務(wù)。 軟件體系結(jié)構(gòu)設(shè)計過程就是識別出這些子系統(tǒng),并建立子系統(tǒng)控制和通信的框架,最后給出軟件體系結(jié)構(gòu)的一個描述。 兩類結(jié)構(gòu)模型: 系統(tǒng)構(gòu)成模型 系統(tǒng)控制模型,系統(tǒng)構(gòu)成模型,以數(shù)據(jù)為中心的結(jié)構(gòu)模型 數(shù)據(jù)流結(jié)構(gòu)模型 客戶機(jī)/服務(wù)器結(jié)構(gòu)模型 抽象機(jī)結(jié)構(gòu)模型,以數(shù)據(jù)為中心的結(jié)構(gòu)模型,由一組子系統(tǒng)構(gòu)成,子系統(tǒng)交換信息,協(xié)調(diào)工作有兩種基本方法: 全部共享數(shù)據(jù)放在一個中央數(shù)據(jù)庫中,所有子系統(tǒng)都能從中存取數(shù)據(jù)。 每個子系統(tǒng)用各自的數(shù)據(jù)庫與其他子系統(tǒng)進(jìn)行數(shù)據(jù)交互,通過消息傳遞來實現(xiàn)。 共享數(shù)據(jù)模型的優(yōu)點是能夠高效地共享大量的數(shù)據(jù),生產(chǎn)數(shù)據(jù)的子系統(tǒng)不需要關(guān)心數(shù)據(jù)如何被其他子系統(tǒng)使用,可以集
13、中進(jìn)行如備份、保密性、訪問控制和錯誤恢復(fù)等活動; 缺點是子系統(tǒng)一定要與以數(shù)據(jù)為中心的體系結(jié)構(gòu)模型一致,系統(tǒng)變更或進(jìn)化比較困難,子系統(tǒng)的需求會不同,難以集成,以及很難將數(shù)據(jù)分布到多臺機(jī)器上。,數(shù)據(jù)流體系結(jié)構(gòu)模型,當(dāng)輸入數(shù)據(jù)經(jīng)過一系列的計算和操作構(gòu)件或模塊的變換形成輸出數(shù)據(jù)時,可以應(yīng)用數(shù)據(jù)流體系結(jié)構(gòu)。 管道和過濾器結(jié)構(gòu)通過一組由管道連接的過濾器來變換數(shù)據(jù),并向下傳遞。,客戶機(jī)/服務(wù)器結(jié)構(gòu)模型,客戶機(jī)/服務(wù)器結(jié)構(gòu)模型的主組要成部分是: 一組給其他子系統(tǒng)提供服務(wù)的單機(jī)服務(wù)器 一組向服務(wù)器請求服務(wù)的客戶機(jī) 一個連接客戶機(jī)和服務(wù)器的網(wǎng)絡(luò)(可選) 服務(wù)器模型能實現(xiàn)以數(shù)據(jù)為中心的體系結(jié)構(gòu)模型的系統(tǒng) 客戶機(jī)/服
14、務(wù)器模型的最大優(yōu)勢在于可以是一個分布式結(jié)構(gòu),抽象機(jī)模型,抽象機(jī)模型也稱為分層模型,是建立子系統(tǒng)的接口模型。它把子系統(tǒng)組織成一系列的層次,每一層提供一組服務(wù),每一層定義為一個抽象機(jī)。 例如:網(wǎng)絡(luò)協(xié)議OSI參考模型,小結(jié),設(shè)計的基本原理和概念包括模塊化、抽象、體系結(jié)構(gòu)、信息隱蔽、模塊獨立、逐步求精和重構(gòu)等,這些原理和概念描述了計算機(jī)軟件的屬性、所使用的設(shè)計方法和所使用的編程語言。 設(shè)計通常被描述為一個多步過程,其主要任務(wù)是從需求信息中綜合出數(shù)據(jù)的表示、程序結(jié)構(gòu)、接口特征和過程細(xì)節(jié)。 軟件體系結(jié)構(gòu)提供了待建系統(tǒng)的整體視圖,它描述軟件構(gòu)件或模塊的結(jié)構(gòu)和組織、構(gòu)件或模塊的性質(zhì)以及他們之間的連接。,本周作業(yè): 1、請在本學(xué)期竇萬峰的教材中第6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)備役介紹課件
- 健康飲食產(chǎn)業(yè)園項目運(yùn)營管理方案(范文模板)
- 城市污水管網(wǎng)建設(shè)工程初步設(shè)計(參考模板)
- 2025年交流調(diào)頻調(diào)壓牽引裝置項目建議書
- 五年級上冊音樂教案(全集)
- 現(xiàn)場施工事故應(yīng)急救援預(yù)案制度
- 2025年新型節(jié)能水泵、風(fēng)機(jī)和壓縮機(jī)項目建議書
- 2025年防沉劑項目發(fā)展計劃
- 2025年高純工藝系統(tǒng)設(shè)備分條機(jī)項目建議書
- 針對2025年工業(yè)污染源全面達(dá)標(biāo)排放計劃的實施方案的環(huán)境風(fēng)險評估與管理001
- 部編八下語文游記閱讀訓(xùn)練題語文八年級下冊能力訓(xùn)練(部編版)
- 保修管理控制程序
- GB/T 9117-2010帶頸承插焊鋼制管法蘭
- GB/T 12513-2006鑲玻璃構(gòu)件耐火試驗方法
- 人教版音樂三年級上冊教材介紹-課件
- 裝修改造工程施工總平面圖6
- 教師的職業(yè)生涯規(guī)劃與專業(yè)發(fā)展課件
- 生物安全自查表
- 廣州小升初-學(xué)籍表打印版
- 天津市-解除勞動合同證明書
- 公司一年完稅證明模板
評論
0/150
提交評論