版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件設(shè)計(jì)的基本原理模塊模塊化獨(dú)立性抽象信息隱藏模塊一般把用一個(gè)名字就可調(diào)用的一段程序稱為“模塊”。模塊在程序中是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募希蛘呤菃为?dú)命名和編址的元素,如高級語言中的過程、函數(shù)、子程序等等。模塊是可組合、分解和更新的單元。模塊具有四個(gè)基本屬性:接口:指模塊的輸入與輸出。功能:即指該模塊要完成的任務(wù)。邏輯:即描述模塊為了完成任務(wù),模塊內(nèi)部怎么做。狀態(tài):即使用該模塊時(shí)的環(huán)境和條件。
模塊化模塊化就是把整個(gè)系統(tǒng)劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,將多個(gè)模塊組織起來實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。模塊化設(shè)計(jì)方法強(qiáng)調(diào)的是清楚地定義每個(gè)模塊的功能和它的輸入/輸出參數(shù),而模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏在各自的模塊之中,與其它模塊之間的關(guān)系可以是調(diào)用關(guān)系,因此,模塊化程序易于調(diào)試和修改。模塊規(guī)模越小,模塊的開發(fā)成本越少。反之,模塊之間的接口變得越復(fù)雜,模塊的集成成本越高。
模塊化設(shè)計(jì)的目的模塊化產(chǎn)品設(shè)計(jì)的目的是以少變應(yīng)多變,以盡可能少的投入生產(chǎn)盡可能多的產(chǎn)品,以最為經(jīng)濟(jì)的方法滿足各種要求。由于模塊具有不同的組合可以配置生成多樣化的滿足用戶需求的產(chǎn)品的特點(diǎn),同時(shí)模塊又具有標(biāo)準(zhǔn)的幾何連接接口和一致的輸入輸出接口,如果模塊的劃分和接口定義符合企業(yè)批量化生產(chǎn)中采購、物流、生產(chǎn)和服務(wù)的實(shí)際情況,這就意味著按照模塊化模式配置出來的產(chǎn)品是符合批量化生產(chǎn)的實(shí)際情況的,從而使定制化生產(chǎn)和批量化生產(chǎn)這對矛盾得到解決。模塊化設(shè)計(jì)的作用模塊化設(shè)計(jì)是綠色設(shè)計(jì)方法之一,它已經(jīng)從理念轉(zhuǎn)變?yōu)檩^成熟的設(shè)計(jì)方法。將綠色設(shè)計(jì)思想與模塊化設(shè)計(jì)方法結(jié)合起來,可以同時(shí)滿足產(chǎn)品的功能屬性和環(huán)境屬性:1.一方面可以縮短產(chǎn)品研發(fā)與制造周期,增加產(chǎn)品系列,提高產(chǎn)品質(zhì)量,快速應(yīng)對市場變化;2.另一方面,可以減少或消除對環(huán)境的不利影響,方便重用、升級、維修和產(chǎn)品廢棄后的拆卸、回收和處理。
抽象抽象是認(rèn)識(shí)復(fù)雜現(xiàn)象過程中使用的思維工具,即抽出事物本質(zhì)的共同性而暫不考慮它的細(xì)節(jié),不考慮其他因素。抽象的概念被廣泛應(yīng)用于就算計(jì)軟件領(lǐng)域,在學(xué)中更是如此。軟件工程過程中的每一步都可以看作是對軟件解決方法的抽象層次的一次細(xì)化。
信息隱蔽信息隱蔽是指,每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對于其他模塊來說是隱蔽的。也就是說,模塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其他不需要這些信息的模塊使用。通常有效的模塊化可以通過定義一組相互獨(dú)立的模塊來實(shí)現(xiàn),這些模塊相互間的通信僅僅使用對于實(shí)現(xiàn)軟件功能來說是必要的信息。通過抽象,可以確定組成軟件的過程(或信息)實(shí)體,而通過信息隱蔽,則可定義和實(shí)施對模塊的過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。模塊獨(dú)立性
耦合:指模塊間相互關(guān)聯(lián)的程度
內(nèi)聚:衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度
耦合性是程序結(jié)構(gòu)中各個(gè)模塊之間相互關(guān)聯(lián)的度量。它取決于各個(gè)模塊之間接口的復(fù)雜程度、調(diào)用模塊的方式以及哪些信息通過接口。一般模塊之間可能的連接方式有七種,構(gòu)成耦合性的七種類型:(1)非直接耦合
(2)數(shù)據(jù)耦合
(3)標(biāo)記耦合
(4)控制耦合
(5)外部耦合
(6)公共耦合
(7)內(nèi)容耦合
1 .非直接耦合(NondirectCoupling)
如果兩個(gè)模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實(shí)現(xiàn)的,這就是非直接耦合。這種耦合的模塊獨(dú)立性最強(qiáng)。2.數(shù)據(jù)耦合(DataCoupling)
如果一個(gè)模塊訪問另一個(gè)模塊時(shí),彼此之間是通過簡單數(shù)據(jù)參數(shù)
(不是控制參數(shù)、公共數(shù)據(jù)結(jié)構(gòu)或外部變量)來交換輸入、輸出信息的,則稱這種耦合為數(shù)據(jù)耦合。3.標(biāo)記耦合(StampCoupling)
如果一組模塊通過參數(shù)表傳遞記錄信息,就是標(biāo)記耦合。這個(gè)記錄是某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu),而不是簡單變量。4.控制耦合(ControlCoupling)如果一個(gè)模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,明顯地控制選擇另一模塊的功能,就是控制耦合。5.外部耦合(ExternalCoupling)
一組模塊都訪問同一全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。外部耦合引起的問題類似于公共耦合
6.公共耦合(CommonCoupling)
若一組模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。公共耦合的復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而顯著增加。若只是兩模塊間有公共數(shù)據(jù)環(huán)境,則公共耦合有兩種情況:松散公共耦合和緊密公共耦合。若一個(gè)模塊只是往公共數(shù)據(jù)環(huán)境里傳送數(shù)據(jù),而另一個(gè)模塊只是從公共數(shù)據(jù)環(huán)境中取數(shù)據(jù),則這種公共耦合叫做松散公共耦合。若兩個(gè)模塊都從公共數(shù)據(jù)環(huán)境中取數(shù)據(jù),又都向公共數(shù)據(jù)環(huán)境里送數(shù)據(jù),則這種公共耦合叫做緊密公共耦合。只有在模塊之間共享的數(shù)據(jù)很多,且通過參數(shù)表傳遞不方便時(shí),才使用公共耦合。
這種耦合會(huì)引起下列問題:
1)所有公共耦合模塊都與某一個(gè)公共數(shù)據(jù)環(huán)境內(nèi)部各項(xiàng)的物理安排有關(guān),若修改某個(gè)數(shù)據(jù)的大小,將會(huì)影響到所有的模塊。
2)無法控制各個(gè)模塊對公共數(shù)據(jù)的存取,嚴(yán)重影響軟件模塊的可靠性和適應(yīng)性。
3)公共數(shù)據(jù)名的使用,明顯降低了程序的可讀性
7.內(nèi)容耦合(ContentCoupling)
如果發(fā)生下列情形,兩個(gè)模塊之間就發(fā)生了內(nèi)容耦合
(1)一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);
(2)一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;
(3)兩個(gè)模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言中);
(4)一個(gè)模塊有多個(gè)入口。在內(nèi)容耦合的情形,所訪問模塊的任何變更,或者用不同的編譯器對它再編譯,都會(huì)造成程序出錯(cuò)。好在大多數(shù)高級程序設(shè)計(jì)語言已經(jīng)設(shè)計(jì)成不允許出現(xiàn)內(nèi)容耦合。它一般出現(xiàn)在匯編語言程序中。這種耦合是模塊獨(dú)立性最弱的耦合。
高低弱強(qiáng)模塊耦合性模塊獨(dú)立性內(nèi)容耦合公共耦合外部耦合控制耦合標(biāo)記耦合數(shù)據(jù)耦合非直接耦合模塊內(nèi)聚功能內(nèi)聚信息內(nèi)聚通信內(nèi)聚過程內(nèi)聚時(shí)間內(nèi)聚邏輯內(nèi)聚巧合內(nèi)聚功能內(nèi)聚(FunctionalCohesion)
一個(gè)模塊中各個(gè)部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分都是為了完成一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。則稱該模塊為功能內(nèi)聚模塊。功能內(nèi)聚模塊的優(yōu)點(diǎn)是它們?nèi)菀仔薷暮途S護(hù),因?yàn)樗鼈兊墓δ苁敲鞔_的,模塊間的耦合是簡單的。但是,如果把一個(gè)功能分成兩個(gè)模塊來解決,就會(huì)導(dǎo)致模塊之間的很強(qiáng)的耦合,而且它們不易單獨(dú)理解和實(shí)現(xiàn)。功能內(nèi)聚模塊的內(nèi)聚程度最高。在把一個(gè)系統(tǒng)分解成模塊的過程中,應(yīng)當(dāng)盡可能使模塊達(dá)到功能內(nèi)聚這一級,便于主程序的調(diào)用和控制。信息內(nèi)聚(InformationalCohesion)
這種模塊完成多個(gè)功能,各個(gè)功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一項(xiàng)功能有一個(gè)唯一的入口點(diǎn)。這個(gè)模塊將根據(jù)不同的要求,確定該執(zhí)行哪一個(gè)功能。由于這個(gè)模塊的所有功能都是基于同一個(gè)數(shù)據(jù)結(jié)構(gòu)(符號(hào)表),因此,它是一個(gè)信息內(nèi)聚的模塊。信息內(nèi)聚模塊可以看成是多個(gè)功能內(nèi)聚模塊的組合,并且達(dá)到信息的隱蔽。即把某個(gè)數(shù)據(jù)結(jié)構(gòu)、資源或設(shè)備隱蔽在一個(gè)模塊內(nèi),不為別的模塊所知曉。這類模塊的優(yōu)點(diǎn)是,當(dāng)把程序某些方面細(xì)節(jié)隱藏在一個(gè)模塊中時(shí),各個(gè)模塊的獨(dú)立性就增加了。
通信內(nèi)聚(CommunicationCohesion)
如果一個(gè)模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù),則稱之為通信內(nèi)聚模塊。通常,通信內(nèi)聚模塊是通過數(shù)據(jù)流圖來定義的。通信內(nèi)聚模塊的內(nèi)聚程度比過程內(nèi)聚模塊的內(nèi)聚程度要高,因?yàn)樵谕ㄐ艃?nèi)聚模塊中包括了許多獨(dú)立的功能。但是,由于模塊中各功能部分使用了相同的輸入/輸出緩沖區(qū),因而降低了整個(gè)系統(tǒng)的效率。
過程內(nèi)聚(ProceduralCohesion)
使用流程圖做為工具設(shè)計(jì)程序時(shí),把流程圖中的某一部分劃出組成模塊,就得到過程內(nèi)聚模塊。例如,把流程圖中的循環(huán)部分、判定部分、計(jì)算部分分成三個(gè)模塊,這三個(gè)模塊都是過程內(nèi)聚模塊。這類模塊的內(nèi)聚程度比時(shí)間內(nèi)聚模塊的內(nèi)聚程度更強(qiáng)一些。另外,因?yàn)檫^程內(nèi)聚模塊僅包括完整功能的一部分,所以它的內(nèi)聚程度仍然比較低,模塊間的耦合程度還比較高。
時(shí)間內(nèi)聚(ClassicalCohesion)
時(shí)間內(nèi)聚又稱為經(jīng)典內(nèi)聚。這種模塊大多為多功能模塊,但模塊的各個(gè)功能的執(zhí)行與時(shí)間有關(guān),通常要求所有功能必須在同一時(shí)間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。時(shí)間內(nèi)聚模塊比邏輯內(nèi)聚模塊的內(nèi)聚程度又稍高一些。因?yàn)闀r(shí)間內(nèi)聚模塊中所有各部分都要在同一時(shí)間段內(nèi)執(zhí)行,而且在一般情形下,各部分可以以任意的順序執(zhí)行,所以它的內(nèi)部邏輯更簡單,存在的開關(guān)(或判定)轉(zhuǎn)移更少。邏輯內(nèi)聚(LogicalCohesion)
這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的判定參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。邏輯內(nèi)聚模塊比巧合內(nèi)聚模塊的內(nèi)聚程度要高。因?yàn)樗砻髁烁鞑糠种g在功能上的相關(guān)關(guān)系。但是它所執(zhí)行的不是一種功能,而是執(zhí)行若干功能中的一種,因此它不易修改。另外,當(dāng)調(diào)用時(shí)需要進(jìn)行控制參數(shù)的傳遞,這就增加了模塊間的耦合程度。而將未用的部分也調(diào)入內(nèi)存,這就降低了系統(tǒng)的效率。
巧合內(nèi)聚(CoincidentalCohesion)
巧合內(nèi)聚又稱為偶然內(nèi)聚。當(dāng)模塊內(nèi)各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)系也很松散,則稱這種模塊為巧合內(nèi)聚模塊,它
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版進(jìn)戶門市場調(diào)研與數(shù)據(jù)分析合同
- 2025版鋼材電商交易平臺(tái)加盟合作協(xié)議3篇
- 2025版礦產(chǎn)承包項(xiàng)目地質(zhì)勘查與承包作業(yè)合同3篇
- 2024年高速鐵路建筑工程保險(xiǎn)費(fèi)用合同
- 2024年高性能計(jì)算設(shè)備購銷合同
- 2025年度美容院線上線下融合發(fā)展合作協(xié)議3篇
- 2024年生育規(guī)劃與養(yǎng)育協(xié)議
- 2024年城市更新項(xiàng)目用地征用及拆遷補(bǔ)償協(xié)議書3篇
- 二零二五年廣告宣傳物料制作合同變更條款提醒3篇
- 課題申報(bào)書:大語言模型教育應(yīng)用研究
- 醫(yī)院門窗工程施工方案與施工方法
- 短視頻實(shí)習(xí)運(yùn)營助理
- 2024年中化石油福建有限公司招聘筆試參考題庫含答案解析
- 對加快推進(jìn)新型工業(yè)化的認(rèn)識(shí)及思考
- 移植后淋巴細(xì)胞增殖性疾病
- 風(fēng)光儲(chǔ)儲(chǔ)能項(xiàng)目PCS艙、電池艙吊裝方案
- 中醫(yī)跟師總結(jié)論文3000字(通用3篇)
- 《軍隊(duì)征集和招錄人員政治考核規(guī)定》
- 住宅小區(qū)視頻監(jiān)控清單及報(bào)價(jià)2020
- 電動(dòng)三輪車監(jiān)理細(xì)則
- 《鋁及鋁合金厚板殘余應(yīng)力測試方法 切縫翹曲法》
評論
0/150
提交評論