(软件工程复习核心重点)第四章总体设计-第二节:设计原理
文章目錄
- 一:模塊化
- (1)模塊
- (2)模塊化
- (3)優(yōu)點(diǎn)或作用
- 二:抽象(了解)
- 三:逐步求精
- (1)定義
- (2)MIller法則:注意力集中在(7 ±\pm± 2)
- 四:信息隱藏和局部化(了解)
- 五:模塊獨(dú)立
- (1)定義
- (2)重要性
- (3)模塊耦合及其分類
- A:定義
- B:分類
- C:設(shè)計(jì)原則
- (4)模塊內(nèi)聚及其分類
- A:定義
- B:分類
- 軟件設(shè)計(jì)目標(biāo)
一:模塊化
(1)模塊
模塊:模塊是由邊界元素限定的相鄰程序元素的序列,而且有一個(gè)總體標(biāo)識(shí)符代表它。模塊是構(gòu)成程序的基本構(gòu)件。過(guò)程、函數(shù)、子程序和宏等,都可作為模塊。面向?qū)ο蠓椒▽W(xué)中的對(duì)象是模塊,對(duì)象內(nèi)的方法也是模塊
(2)模塊化
模塊化:模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。模塊化是為了使一個(gè)復(fù)雜的大型程序能被人的智力所管理,是軟件應(yīng)該具備的唯一屬性
(3)優(yōu)點(diǎn)或作用
- 使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解
- 使軟件容易測(cè)試和調(diào)試,有助于提高軟件的可靠性
- 提高軟件的可修改性
- 有助于軟件開(kāi)發(fā)工程的組織管理
二:抽象(了解)
抽象:抽出事物的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)
三:逐步求精
(1)定義
逐步求精:逐步求精是軟件工程技術(shù)的基礎(chǔ),為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮
(2)MIller法則:注意力集中在(7 ±\pm± 2)
這是對(duì)人類能力的研究得到的結(jié)果:一個(gè)人能力的極限也只能把注意力集中在7±2個(gè)信息塊。這就像人彈跳的極限,人忍受肌餓的極限一樣,是不可改變的客觀因素。它很大程度上限制人的思維能力。這個(gè)法則被成為:Miller法則我更喜歡這樣來(lái)描述這個(gè)法則:一個(gè)人的注意力的極限是集中注意力在7±2個(gè)事物上。我們知道,相比安靜的環(huán)境,在吵鬧的環(huán)境中,我們比較難以集中注意力,所以我這里使用“事物”來(lái)代替“信息塊”,因?yàn)槲也幌氚殉臭[聲成為信息。另外還有一種定義是:一個(gè)人在任何時(shí)候只能把注意力集中在(7±2)個(gè)知識(shí)塊上。這說(shuō)明了一個(gè)普通人(特異人士除外)能同時(shí)學(xué)習(xí)的能力是有限的,所以這個(gè)法則對(duì)于我們?nèi)绾畏峙涔ぷ骱蛯W(xué)習(xí)的精力,也提供了很好的指導(dǎo)和參考
四:信息隱藏和局部化(了解)
信息隱藏:指一個(gè)模塊內(nèi)包含的信息對(duì)于不需要這些信息的模塊來(lái)說(shuō)是不能訪問(wèn)的,主要是指模塊的實(shí)現(xiàn)細(xì)節(jié)
局部化:指把一些關(guān)系密切的軟件元素物理地放得彼此接近,有助于實(shí)現(xiàn)信息隱藏
- 在模塊中使用局部數(shù)據(jù)元素是一個(gè)典型的例子
五:模塊獨(dú)立
(1)定義
模塊獨(dú)立:開(kāi)發(fā)具有獨(dú)立功能而且和其他模塊之間沒(méi)有過(guò)多的相互作用的模塊,就可以做到模塊獨(dú)立。使得每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能,并且和其他模塊之間的關(guān)系很簡(jiǎn)單。模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。其質(zhì)量標(biāo)準(zhǔn)是耦合和內(nèi)聚
(2)重要性
- 具有獨(dú)立的模塊的軟件比較容易開(kāi)發(fā)出來(lái)
- 獨(dú)立的模塊比較容易測(cè)試和維護(hù)
(3)模塊耦合及其分類
A:定義
耦合:是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊間互連程序的度量。耦合強(qiáng)度取決于模塊接口的復(fù)雜程度、通過(guò)接口的數(shù)據(jù)等。耦合度越高,模塊獨(dú)立性越弱
B:分類
耦合度從低到高
- 完全獨(dú)立
- 數(shù)據(jù)耦合
- 特征耦合
- 控制耦合
- 外部耦合
- 公共耦合
- 內(nèi)容耦合
完全獨(dú)立:如果兩個(gè)模塊中的每一個(gè)都能獨(dú)立地工作而不需要另一個(gè)模塊的存在,則稱它們彼此完全獨(dú)立,耦合程度最低。但是,在一個(gè)軟件系統(tǒng)中不可能所有模塊之間都沒(méi)有任何連接
數(shù)據(jù)耦合: 如果兩個(gè)模塊彼此間通過(guò)參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),則稱它們是數(shù)據(jù)耦合。數(shù)據(jù)耦合是低耦合,系統(tǒng)中至少必須存在這種耦合
特征耦合: 如果整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中一部分?jǐn)?shù)據(jù)元素,則稱它們是特征耦合。在這種情況下,被調(diào)用的模塊可以使用的數(shù)據(jù)多于它確實(shí)需要的數(shù)據(jù),這將導(dǎo)致對(duì)數(shù)據(jù)的訪問(wèn)失去控制,從而給計(jì)算機(jī)犯罪提供了機(jī)會(huì)
控制耦合: 如果兩個(gè)模塊彼此間通過(guò)參數(shù)交換信息,并且傳遞的信息中包含控制信息(這種控制信息可以以數(shù)據(jù)的形式出現(xiàn)),則稱它們是控制耦合。控制耦合是中等程度的耦合,它增加了系統(tǒng)的復(fù)雜程度。控制耦合往往是多余的,可用數(shù)據(jù)耦合代替它
外部耦合: 一組模塊都訪問(wèn)同一全局簡(jiǎn)單變量,而且不通過(guò)參數(shù)表傳遞該全局變量的信息,則稱之為外部耦合。外部耦合和公共耦合很像,區(qū)別就是一個(gè)是簡(jiǎn)單變量,一個(gè)是復(fù)雜數(shù)據(jù)結(jié)構(gòu)
公共耦合: 如果兩個(gè)或多個(gè)模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用,則稱它們是公共環(huán)境耦合。公共環(huán)境耦合的復(fù)雜程度隨耦合的模塊個(gè)數(shù)增加而增加
內(nèi)容耦合: 內(nèi)容耦合是最高程度的耦合,一個(gè)模塊直接訪問(wèn)另一模塊的內(nèi)容,則稱這兩個(gè)模塊為內(nèi)容耦合。
C:設(shè)計(jì)原則
- 力求做到低耦合
- 盡量使用數(shù)據(jù)耦合
- 少用控制耦合和特征耦合
- 限制公共耦合的范圍
- 完全不用內(nèi)容耦合
(4)模塊內(nèi)聚及其分類
A:定義
內(nèi)聚:是用來(lái)度量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。內(nèi)聚度越高,緊密程度越高
B:分類
內(nèi)聚度從低到高。其中1-3屬于低內(nèi)聚;4-5屬于中內(nèi)聚;6-7屬于高內(nèi)聚
偶然內(nèi)聚: 如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很松散的,就叫做偶然內(nèi)聚。有時(shí)在寫(xiě)完一個(gè)程序之后,發(fā)現(xiàn)一組語(yǔ)句在兩處或多處出現(xiàn),于是把這些語(yǔ)句作為一個(gè)模塊以節(jié)省內(nèi)存,這樣就出現(xiàn)了偶然內(nèi)聚的模塊
邏輯內(nèi)聚: 如果一個(gè)模塊完成的任務(wù)在邏輯上屬于相同或相似的一類, 則成為邏輯內(nèi)聚
時(shí)間內(nèi)聚: 如果一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行,就叫時(shí)間內(nèi)聚。時(shí)間關(guān)系在一定程度上反映了程序的某些實(shí)質(zhì),所以時(shí)間內(nèi)聚比邏輯內(nèi)聚好一些
過(guò)程內(nèi)聚: 如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過(guò)程內(nèi)聚。使用程序流程圖作為工具設(shè)計(jì)軟件時(shí),往往得到的是過(guò)程內(nèi)聚的模塊。
通信內(nèi)聚: 如果模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù),則稱為通信內(nèi)聚
順序內(nèi)聚: 如果一個(gè)模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,則稱為順序內(nèi)聚。根據(jù)數(shù)據(jù)流圖劃分模塊時(shí),通常得到順序內(nèi)聚的模塊
功能內(nèi)聚: 如果模塊內(nèi)所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能,則稱為功能內(nèi)聚。功能內(nèi)聚是最高程度的內(nèi)聚。
軟件設(shè)計(jì)目標(biāo)
高內(nèi)聚、低耦合
總結(jié)
以上是生活随笔為你收集整理的(软件工程复习核心重点)第四章总体设计-第二节:设计原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HTML中的meta(转载)
- 下一篇: 关于运行SWT程序遇到的一个错误的总结