2、抽象
抽象這個詞本身也比較抽象,(老師要小明用抽象和具體造一個句子,可是他不懂,就問媽媽,什么是抽象,什么是具體? 媽媽告訴他:抽象就是看不見摸不著的,具體就是看得見摸得著的。小明懂了,很快造好了一個句子,是這樣的:今天我很早起床,看見具體的媽媽在炒具體的菜,我打開窗戶,抽象的新鮮空氣呼地一下跑進(jìn)來,真舒服啊。)呵呵,事實(shí)上,抽象并不是這么簡單的意思,它是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié),比如說我們可以把把男人女人老人小孩的共同本質(zhì)特性抽出來之后形成一個概念"人",這個概念就是抽象的結(jié)果。在軟件工程中就是這樣,在每個階段中,抽象的層次逐步降低,在軟件結(jié)構(gòu)設(shè)計(jì)中的模塊分層也是由抽象到具體的分析和構(gòu)造出來的。比如上一層的模塊所進(jìn)行的加工是一個抽象的操作"銷售統(tǒng)計(jì)",分解到最后一層,就可能是具體"打印報(bào)表"的操作了。
3、信息隱蔽
信息隱蔽的意思就是指,在設(shè)計(jì)和確定模塊時(shí),使得一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。舉個例子吧,假設(shè)我是程序中的一個模塊,電話機(jī)是另一個模塊,我在使用電話機(jī)時(shí),對電話機(jī)的控制是通過幾個按鍵來確定的,輸入的數(shù)據(jù)是我的語音,輸出的數(shù)據(jù)是對方的語音,而這些輸入、輸出的數(shù)據(jù)變換以及控制在電話機(jī)內(nèi)部是怎么實(shí)現(xiàn)的我不需要知道,同時(shí)也不能加以直接控制,這樣,如果電話機(jī)壞了,修復(fù)或更換后對我的使用是沒有任何影響的。所以說,電話機(jī)這個模塊的信息隱蔽是十分完善的。在軟件設(shè)計(jì)中,模塊的劃分也要采取措施使它實(shí)現(xiàn)信息隱蔽。
4、模塊獨(dú)立性
模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。這個概念就是上面說的三個基本原理的直接產(chǎn)物,在概要設(shè)計(jì)過程中,就是要求設(shè)計(jì)出具有良好模塊獨(dú)立性的軟件結(jié)構(gòu)。
那么如何來衡量軟件的模塊獨(dú)立性呢?這里有兩個定性的度量標(biāo)準(zhǔn)。
(1)耦合性:就是指模塊之間的聯(lián)系緊密程度。模塊之間聯(lián)系越緊密,其耦合性越強(qiáng),獨(dú)立性就越差。
模塊的耦合性從低到高可分為以下幾種類型:(假設(shè)某人為一模塊)
無直接耦合 (比如陌生人之間的聯(lián)系)
數(shù)據(jù)耦合 (比如去售貨員與顧客之間的聯(lián)系)
標(biāo)記耦合 (比如兩個人下棋)
控制耦合 (領(lǐng)導(dǎo)和下屬之間的聯(lián)系)
公共耦合 (比如圖書館的所有借書者之間的聯(lián)系)
內(nèi)容耦合 (比如小兩口之間的聯(lián)系)
抽象這個詞本身也比較抽象,(老師要小明用抽象和具體造一個句子,可是他不懂,就問媽媽,什么是抽象,什么是具體? 媽媽告訴他:抽象就是看不見摸不著的,具體就是看得見摸得著的。小明懂了,很快造好了一個句子,是這樣的:今天我很早起床,看見具體的媽媽在炒具體的菜,我打開窗戶,抽象的新鮮空氣呼地一下跑進(jìn)來,真舒服啊。)呵呵,事實(shí)上,抽象并不是這么簡單的意思,它是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié),比如說我們可以把把男人女人老人小孩的共同本質(zhì)特性抽出來之后形成一個概念"人",這個概念就是抽象的結(jié)果。在軟件工程中就是這樣,在每個階段中,抽象的層次逐步降低,在軟件結(jié)構(gòu)設(shè)計(jì)中的模塊分層也是由抽象到具體的分析和構(gòu)造出來的。比如上一層的模塊所進(jìn)行的加工是一個抽象的操作"銷售統(tǒng)計(jì)",分解到最后一層,就可能是具體"打印報(bào)表"的操作了。
3、信息隱蔽
信息隱蔽的意思就是指,在設(shè)計(jì)和確定模塊時(shí),使得一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。舉個例子吧,假設(shè)我是程序中的一個模塊,電話機(jī)是另一個模塊,我在使用電話機(jī)時(shí),對電話機(jī)的控制是通過幾個按鍵來確定的,輸入的數(shù)據(jù)是我的語音,輸出的數(shù)據(jù)是對方的語音,而這些輸入、輸出的數(shù)據(jù)變換以及控制在電話機(jī)內(nèi)部是怎么實(shí)現(xiàn)的我不需要知道,同時(shí)也不能加以直接控制,這樣,如果電話機(jī)壞了,修復(fù)或更換后對我的使用是沒有任何影響的。所以說,電話機(jī)這個模塊的信息隱蔽是十分完善的。在軟件設(shè)計(jì)中,模塊的劃分也要采取措施使它實(shí)現(xiàn)信息隱蔽。
4、模塊獨(dú)立性
模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。這個概念就是上面說的三個基本原理的直接產(chǎn)物,在概要設(shè)計(jì)過程中,就是要求設(shè)計(jì)出具有良好模塊獨(dú)立性的軟件結(jié)構(gòu)。
那么如何來衡量軟件的模塊獨(dú)立性呢?這里有兩個定性的度量標(biāo)準(zhǔn)。
(1)耦合性:就是指模塊之間的聯(lián)系緊密程度。模塊之間聯(lián)系越緊密,其耦合性越強(qiáng),獨(dú)立性就越差。
模塊的耦合性從低到高可分為以下幾種類型:(假設(shè)某人為一模塊)
無直接耦合 (比如陌生人之間的聯(lián)系)
數(shù)據(jù)耦合 (比如去售貨員與顧客之間的聯(lián)系)
標(biāo)記耦合 (比如兩個人下棋)
控制耦合 (領(lǐng)導(dǎo)和下屬之間的聯(lián)系)
公共耦合 (比如圖書館的所有借書者之間的聯(lián)系)
內(nèi)容耦合 (比如小兩口之間的聯(lián)系)