![模塊和模塊化_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/7cc0fcc4-441f-4803-b508-8bfe254c1504/7cc0fcc4-441f-4803-b508-8bfe254c15041.gif)
![模塊和模塊化_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/7cc0fcc4-441f-4803-b508-8bfe254c1504/7cc0fcc4-441f-4803-b508-8bfe254c15042.gif)
![模塊和模塊化_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/7cc0fcc4-441f-4803-b508-8bfe254c1504/7cc0fcc4-441f-4803-b508-8bfe254c15043.gif)
![模塊和模塊化_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/7cc0fcc4-441f-4803-b508-8bfe254c1504/7cc0fcc4-441f-4803-b508-8bfe254c15044.gif)
![模塊和模塊化_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/7cc0fcc4-441f-4803-b508-8bfe254c1504/7cc0fcc4-441f-4803-b508-8bfe254c15045.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、概要設(shè)計的表示形式 正文加工系統(tǒng)的層次圖帶編號的層次圖( HIPO ) IPO圖的一個例子軟件的模塊結(jié)構(gòu)圖:F描述一個軟件系統(tǒng)由哪些模塊組成,以及模塊之間的調(diào)用關(guān)系F結(jié)構(gòu)圖的基本成分有:模塊、調(diào)用和數(shù)據(jù)F模塊是指具有一定功能并可以用模塊名調(diào)模塊是指具有一定功能并可以用模塊名調(diào)用的一組程序語句,如函數(shù)、子程序等,用的一組程序語句,如函數(shù)、子程序等,它們是組成程序的基本單元它們是組成程序的基本單元F一個模塊具有其外部特征和內(nèi)部特征一個模塊具有其外部特征和內(nèi)部特征外部特征包括:模塊的接口外部特征包括:模塊的接口( (模塊名、輸入模塊名、輸入/ /輸輸出參數(shù)、返回值等出參數(shù)、返回值等) )和模塊的功能
2、和模塊的功能內(nèi)部特征包括:模塊的內(nèi)部數(shù)據(jù)和完成其功能內(nèi)部特征包括:模塊的內(nèi)部數(shù)據(jù)和完成其功能的程序代碼的程序代碼 在結(jié)構(gòu)圖中,模塊用矩形框表示,每個模塊都有一個應(yīng)能適當(dāng)反映該模塊功能的名字F調(diào)用(call):用從一個模塊指向另一個模塊的箭頭來表示,其含義是前者調(diào)用了后者為了方便,有時常用直線替代箭頭,此時,表示位于上方的模塊調(diào)用位于下方的模塊F數(shù)據(jù)(data):模塊調(diào)用時需傳遞的參數(shù)可通過在調(diào)用箭頭旁附加一個小箭頭和數(shù)據(jù)名來表示,其中小箭頭的方向是數(shù)據(jù)的傳輸方向 SCSC圖的模塊調(diào)用圖的模塊調(diào)用簡單調(diào)用簡單調(diào)用B(a)X,YZACZB(b)1AC2入出X,YZZ 選擇調(diào)用ABCDv注意:圖中必
3、須畫出數(shù)據(jù)流 循環(huán)調(diào)用ABCv注意:圖中必須畫出數(shù)據(jù)流結(jié)構(gòu)圖的幾個概念F深度:程序結(jié)構(gòu)圖中控制的層數(shù),例如圖中所示的結(jié)構(gòu)圖的深度是5F寬度:程序結(jié)構(gòu)圖中同一層次上模塊總數(shù)的最大值,例如圖中所示的結(jié)構(gòu)圖的寬度為7F扇出(fan out):該模塊直接調(diào)用的模塊數(shù)目。例如,例如圖中模塊M的扇出是4,模塊A的是2,模塊B的扇出是1F扇入(fan in):能直接調(diào)用該模塊的模塊數(shù)目。例如圖中模塊G的扇入是1,模塊I的扇入是2,模塊R的扇入是4 F深度和寬度在一定程度上反映了程序的規(guī)模和復(fù)雜程度相對而言,如果程序結(jié)構(gòu)圖的深度和寬度較大,則說明程序的規(guī)模和復(fù)雜程度都較大。模塊的扇入扇出會影響結(jié)構(gòu)圖的深度和寬
4、度,例如減少模塊的扇出,可能導(dǎo)致寬度變小而深度增加F一個模塊的扇出過大通常意味著該模塊比較復(fù)雜,然而扇出太少,可能導(dǎo)致深度的增加一般情況,一個模塊的扇出以39為宜F一個模塊的扇入表示有多少模塊可直接調(diào)用它,它反映了該模塊的復(fù)用(reuse)程度,因此模塊的扇入越大越好模塊和模塊化F模塊化:當(dāng)系統(tǒng)的每項功能恰好由一個輸入輸出都明確定義的組件完成的時候,我們稱這個系統(tǒng)模塊化。F模塊表示能夠用計算機(jī)程序代碼實現(xiàn)的,相對獨立的單一數(shù)據(jù)處理功能,所以模塊有時也叫功能模塊。F進(jìn)一步明確模塊是擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。設(shè)計方法的選擇F應(yīng)該允許不同的設(shè)計者使用他們喜歡的技巧,只要他們的文檔能讓
5、其他設(shè)計者明白就可以了。F設(shè)計方法的選擇又是取決于設(shè)計者的偏好,而更多的時候取決于系統(tǒng)要求的結(jié)構(gòu)或數(shù)據(jù)。軟件設(shè)計中涉及的問題F抽象(抽象(abstractabstract)與細(xì)化)與細(xì)化(refinement)(refinement)抽象:分層次考慮和處理問題抽象:分層次考慮和處理問題( (數(shù)據(jù)和過程數(shù)據(jù)和過程) )細(xì)化:從高到低的逐步分解過程細(xì)化:從高到低的逐步分解過程F信息隱藏信息隱藏對其它模塊隱藏模塊內(nèi)部的數(shù)據(jù)和過程對其它模塊隱藏模塊內(nèi)部的數(shù)據(jù)和過程抽象F抽象是對具體對象(問題)進(jìn)行概括,抽出這一類對象的公共性質(zhì)并加以描述的過程。先注意問題的本質(zhì)及描述,其次是實現(xiàn)過程或細(xì)節(jié)。數(shù)據(jù)抽象:描
6、述某類對象的屬性或狀態(tài)(對象相互區(qū)別的物理量)。代碼抽象:描述某類對象的共有的行為特征或具有的功能。抽象的實現(xiàn):通過類的聲明。模塊化設(shè)計的好處F信息隱藏信息隱藏F從不同角度了解系統(tǒng)從不同角度了解系統(tǒng)F將難以解決的問題獨立出來;抽象層次將難以解決的問題獨立出來;抽象層次通過逐層分析來了解問題通過逐層分析來了解問題F允許不同的模塊采用不同的設(shè)計方法允許不同的模塊采用不同的設(shè)計方法模塊化設(shè)計F把大型軟件按照規(guī)定的原則劃分成一個個把大型軟件按照規(guī)定的原則劃分成一個個較小的、相對獨立但又相互關(guān)聯(lián)的模塊較小的、相對獨立但又相互關(guān)聯(lián)的模塊F重要指導(dǎo)思想:重要指導(dǎo)思想:分解分解模塊獨立性模塊獨立性分解(Dec
7、omposition)F模塊化是為了使一個復(fù)雜的大型程序能被人的智力所管理F設(shè)函數(shù)c(x)定義問題x的復(fù)雜程度,函數(shù)E(X)確定解決問題x需要的工作量(時間)。對于兩個問題P1 和P2,如果)()(21PCPC)()(21PEPE顯然模塊化的依據(jù)F人類解決一般問題時一個有趣的規(guī)律: C (P1+P2)C (P1)+C (P2) E (P1+P2)E (P1)+E (P2) F結(jié)論:各個擊破把復(fù)雜的問題分解成容易解決的小問題,原來的問題也就容易解決了問題提出F如果無限的分割軟件,最后為了開發(fā)軟件而需要的工作量也就小得可以忽略了。?模塊數(shù)與開發(fā)工作量的關(guān)系模塊數(shù)接口成本最小成本區(qū)M軟件開發(fā)工作量總
8、成本模塊成本模塊劃分的基本原則F概括了把軟件劃分為模塊時要遵守的準(zhǔn)則,也是判斷模塊構(gòu)造是不是合理的標(biāo)準(zhǔn)。F但是到目前為止,沒有統(tǒng)一的標(biāo)準(zhǔn)判斷一個系統(tǒng)化分成幾個模塊是最優(yōu)的。模塊劃分的四項基本原則1.模塊獨立性強(qiáng) 塊內(nèi)聯(lián)系強(qiáng) 塊間聯(lián)系弱2.高內(nèi)聚模塊內(nèi)部各成分之間3.低耦合一個模塊與其它模塊之間4.公共(共享)模塊多個模塊公用模塊獨立性F問什么模塊的獨立性很重要?有效模塊化的軟件容易開發(fā)出來獨立的模塊比較容易測試和維護(hù)F人的獨立性強(qiáng)如何?F人沒有獨立性,什么都依賴別人如何?內(nèi)聚F內(nèi)聚是模塊功能強(qiáng)度(一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度)的度量。一個模塊內(nèi)部各個元素之間的聯(lián)系越緊密,則它的內(nèi)聚性
9、就越高,相對地,它與其他模塊之間的耦合就會減低,而模塊獨立性就越強(qiáng)。 內(nèi)聚與耦合F內(nèi)聚和耦合是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中各模塊的內(nèi)聚程度越高,模塊間的耦合程度就越低。但這也不是絕對的。軟件概要設(shè)計的目標(biāo)是力求增加模塊的內(nèi)聚,盡量減少模塊間的耦合,但增加內(nèi)聚比減少耦合更重要,應(yīng)當(dāng)把更多的注意力集中到提高模塊的內(nèi)聚程度上來。內(nèi)聚 弱 強(qiáng)低內(nèi)聚中內(nèi)聚高內(nèi)聚 低內(nèi)聚F.偶然性內(nèi)聚模塊內(nèi)各部分沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散。 F.邏輯性內(nèi)聚 這種模塊把幾種相關(guān)的功能組合在一起,每次調(diào)用時,由傳送給模塊的判定參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。這種模塊是單入口的多功能模塊。類似的有錯誤處理模塊。它
10、接受出錯信號,對不同類型的錯誤打印出不同的出錯信息。低內(nèi)聚F.時間性內(nèi)聚時間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個功能執(zhí)行與時間有關(guān),通常要求所有功能必須在同一時間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。中內(nèi)聚F.過程性內(nèi)聚如果一個模塊內(nèi)的處理是相關(guān)的,而且必須以特定次序執(zhí)行,則稱這個模塊為過程內(nèi)聚模塊。 F.通訊性內(nèi)聚如果一個模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù),則稱之為通信內(nèi)聚模塊。高內(nèi)聚F.順序性內(nèi)聚如果一個模塊內(nèi)的處理元素和同一個功能密切相關(guān),而且這些處理必須順序執(zhí)行(通常一個處理元素的輸出數(shù)據(jù)作為下一個處理元素的輸入數(shù)據(jù))F.功能性內(nèi)聚一個模
11、塊中各個部分都是某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。 七種內(nèi)聚的優(yōu)劣評分F功能內(nèi)聚 10分F順序內(nèi)聚 9分F通信內(nèi)聚 7分F過程內(nèi)聚 5分F時間內(nèi)聚 3分F邏輯內(nèi)聚 1分F偶然內(nèi)聚 0分高內(nèi)聚低內(nèi)聚邏輯模塊 判斷調(diào)用模塊讀一個記錄寫一個記錄被調(diào)用模塊常見內(nèi)聚類型常見內(nèi)聚類型耦 合F對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合強(qiáng)弱取決于模塊間接口的復(fù)雜程度、調(diào)用模塊的方式以及哪些信息通過接口。F在軟件設(shè)計中應(yīng)該追求盡可能松散耦合的系統(tǒng)耦合的七種類型(低高)F非直接耦合:如果兩個模塊之間沒有直
12、接關(guān)系,它們之間的聯(lián)系完全是通過主要模塊的控制和調(diào)用來實現(xiàn)的,這就是非直接耦合。F數(shù)據(jù)耦合:如果一個模塊訪問另一個模塊時,彼此之間是通過數(shù)據(jù)參數(shù)(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。F標(biāo)記耦合 :如果一組模塊通過參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。事實上,這組模塊共享了這個記錄,它是某一類數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。這要求這些模塊都必須清楚該紀(jì)錄的結(jié)構(gòu),并按結(jié)構(gòu)要求對此記錄進(jìn)行操作。 耦合的七種類型(續(xù))F控制耦合 :如果一個模塊通過傳遞開關(guān)、標(biāo)志、名字等控制信息,明顯的控制選擇另一模塊的功能,就是控制耦合。 F外部耦合 :一組模塊都訪問同
13、一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。 F公共耦合 :若一組模塊都訪問同一個公共數(shù)據(jù)環(huán)境,則它們之間的耦合稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。弱耦合數(shù)據(jù)耦合非直接耦合模塊模塊2模塊模塊1模塊模塊4模塊模塊3特征耦合(參數(shù)表傳遞數(shù)據(jù)結(jié)構(gòu))公共耦合公共耦合公共耦合會引起下列問題:1、 所有公共耦合模塊都于某一個公共數(shù)據(jù) 環(huán)境內(nèi)部各項的物理安排有關(guān),若修改某個數(shù)據(jù)的大小,將會影響到所有的模塊。2、無法控制各個模塊對公共數(shù)據(jù)的存取,嚴(yán)重影響軟件模塊的可靠性和適應(yīng)性。3、公共數(shù)據(jù)名的使用,明顯降低了程
14、序的可讀性。內(nèi)容耦合F如果出現(xiàn)下列情況之一,兩個模塊間就發(fā)生了內(nèi)容耦合:一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù)一個模塊不通過正常入口而轉(zhuǎn)到另一個模塊的內(nèi)部兩個模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編程序中)一個模塊有多個入口(這意味著一個模塊有幾種功能)(a)進(jìn)入另一模塊內(nèi)部 (b)模塊代碼重疊(c)多入口模塊ABABEnty1enty2F內(nèi)容耦合 0分F公共耦合 1分F外部耦合 3分F控制耦合 5分F特征耦合 7分F數(shù)據(jù)耦合 9分F非直接耦合 10分高耦合低耦合七種耦合的優(yōu)劣評分關(guān)于耦合的設(shè)計原則F盡量使用數(shù)據(jù)(特征)耦合F少用控制耦合F限制公共環(huán)境耦合的范圍F完全不用內(nèi)容耦合建立公共(共享)模塊建立公共(共享)模塊 建立公共模塊的目的是減少冗建立公共模塊的目的是減少冗余,減少不必要的重復(fù)工作,劃出余,減少不必要的重復(fù)工作,劃出某項功能成為一個能被幾個模塊共某項功能成為一個能被幾個模塊共同利用的模塊。也就模塊
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB37-T 4595-2023 地表水浮游藍(lán)藻監(jiān)測技術(shù)規(guī)范
- 離職申請書腳本
- 移民建房申請書
- 小學(xué)音樂教研組工作計劃15篇
- 疫病防治法在辦公環(huán)境中的實施與案例
- 2024-2025學(xué)年高中數(shù)學(xué)第三章概率3.1.2概率的意義練習(xí)含解析新人教A版必修3
- 2024-2025學(xué)年四年級語文上冊第六單元20誠實與信任教案1蘇教版
- 教師宿舍的申請書
- 加蓋樓層申請書
- 疾病自我管理病患教育的核心內(nèi)容
- 2025年“春訓(xùn)”學(xué)習(xí)心得體會例文(3篇)
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- 春節(jié)節(jié)后復(fù)工全員安全意識提升及安全知識培訓(xùn)
- 道路運輸企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核試題庫(含參考答案)
- 貴州省貴陽市2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:Chapter 5 Recursion
- 青島版五四制五下數(shù)學(xué)課程綱要
- 稻盛和夫的哲學(xué)與阿米巴
- 冷庫驗證方案
- 行政事業(yè)單位會計實操
- 中國燃?xì)饨ㄔO(shè)工程竣工驗收暫行規(guī)定
評論
0/150
提交評論