功能模塊化的根據(jù)是,如果一個問題有多個問題組合而成,那么這個組合問題的復(fù)雜程度將大于分別考慮這個問題時的復(fù)雜程度之和。這個結(jié)論使得人們樂于利用功能模塊化方法將復(fù)雜的問題分解成許多容易解決的局部問題。功能模塊化方法并不等于無限制地分割軟件,因為隨著功能模塊的增多,雖然開發(fā)單個功能模塊的工作量減少了,但是設(shè)計功能模塊間接口所需的工作量也將增加,而且會出現(xiàn)意想不到的軟件缺陷。因此,只有選擇合適的功能模塊數(shù)目才會使整個系統(tǒng)的開發(fā)成本最小。
模塊獨立性編輯 播報
功能模塊獨立的概念是功能模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。
抽象是指對事物、狀態(tài)或過程之間所存在的某些相似的方面集中和概括起來,而暫時忽略他們之間的差異,即考慮抽象事物的本質(zhì)特征而暫時不考慮他們的細(xì)節(jié)。信息隱蔽是指再設(shè)計功能模塊時使得一個功能模塊內(nèi)所包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的功能模塊來說是不能訪問的。信息隱蔽原則對于以后在軟件維護(hù)期間修改軟件時會帶來極大的好處,因為大量數(shù)據(jù)和過程是軟件的其他部分所不能覺察的,因而再對某個功能模塊修改時就不大會影響到軟件的其他部分,所謂局部化是指把一些關(guān)系密切的軟件元素在物理位置上彼此靠近。
功能模塊獨立性是通過制定具有單一功能并且和其他功能模塊沒有過多聯(lián)系的功能模塊來實現(xiàn)的。每個功能模塊只涉及該軟件要求的一個具體子功能,而且與軟件結(jié)構(gòu)的其他部分的接口是簡單的。