手機(jī)號(hào)碼:17717084632
地 址:上海靜安區(qū)共和新路4718弄宏慧新匯園10號(hào)樓B203
德國(guó)EPRO模塊的簡(jiǎn)單介紹
功能模塊化的根據(jù)是,如果一個(gè)問(wèn)題有多個(gè)問(wèn)題組合而成,那么這個(gè)組合問(wèn)題的復(fù)雜程度將大于分別考慮這個(gè)問(wèn)題時(shí)的復(fù)雜程度之和。這個(gè)結(jié)論使得人們樂(lè)于利用功能模塊化方法將復(fù)雜的問(wèn)題分解成許多容易解決的局部問(wèn)題功能模塊化方法并不等于無(wú)限制地分割軟件,因?yàn)殡S著功能模塊的增多,雖然開發(fā)單個(gè)功能模塊的工作量減少了,但是設(shè)計(jì)功能模塊間接口所需的工作量也將增加,而且會(huì)出現(xiàn)意想不到的軟件缺陷。因此,只有選擇合適的功能模塊數(shù)目才會(huì)使整個(gè)系統(tǒng)的開發(fā)成本zui小。功能模塊獨(dú)立的概念是功能模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。抽象是指對(duì)事物、狀態(tài)或過(guò)程之間所存在的某些相似的方面集中和概括起來(lái),而暫時(shí)忽略他們之間的差異,即考慮抽象事物的本質(zhì)特征而暫時(shí)不考慮他們的細(xì)節(jié)。信息隱蔽是指再設(shè)計(jì)功能模塊時(shí)使得一個(gè)功能模塊內(nèi)所包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的功能模塊來(lái)說(shuō)是不能訪問(wèn)的。信息隱蔽原則對(duì)于以后在軟件維護(hù)期間修改軟件時(shí)會(huì)帶來(lái)極大的好處,因?yàn)榇罅繑?shù)據(jù)和過(guò)程是軟件的其他部分所不能覺(jué)察的,因而再對(duì)某個(gè)功能模塊修改時(shí)就不大會(huì)影響到軟件的其他部分,所謂局部化是指把一些關(guān)系密切的軟件元素在物理位置上彼此靠近。功能模塊獨(dú)立性是通過(guò)制定具有單一功能并且和其他功能模塊沒(méi)有過(guò)多的功能模塊來(lái)實(shí)現(xiàn)的。每個(gè)功能模塊只涉及該軟件要求的一個(gè)具體子功能
德國(guó)EPRO模塊的簡(jiǎn)單介紹
而且與軟件結(jié)構(gòu)的其他部分的接口是簡(jiǎn)單的。比如,五四絡(luò)科網(wǎng)所運(yùn)用到的功能模塊在一定程度上就克服了傳統(tǒng)建站的弊端,可以從根本上建立一個(gè)*獨(dú)立的,具體表現(xiàn)在:五四絡(luò)科建站所生成的數(shù)據(jù)庫(kù)是獨(dú)立的,也就意味著可以移植到其他服務(wù)器平臺(tái)上,從而解決生成的不能遷移的難題;五四絡(luò)科建站平臺(tái)可以讓生成的互不干涉,相互獨(dú)立,進(jìn)而提高了系統(tǒng)的安全性;有建站需求的客戶往往趨向于個(gè)性化,可以在五四絡(luò)科建站的基礎(chǔ)上進(jìn)行二次開發(fā);在管理上也是獨(dú)立的,管理員可以給開通獨(dú)立的FTP權(quán)限,在管理時(shí)不會(huì)影響到其他,遷移出去也很方便。功能模塊獨(dú)立性好的軟件接口簡(jiǎn)單,易于編制,獨(dú)立的功能模塊也比較容易測(cè)試和維護(hù),限制了功能模塊之間由于緊密而引起的修改副作用。獨(dú)立性是保證軟件質(zhì)量的重要因素。功能模塊獨(dú)立性是由內(nèi)聚性和耦合性兩個(gè)定性指標(biāo)來(lái)度量的。內(nèi)聚性是度量一個(gè)功能模塊內(nèi)功能強(qiáng)度的一個(gè)相對(duì)指標(biāo)。耦合性則用來(lái)度量功能模塊之間的相互的程度。耦合是軟件結(jié)構(gòu)中各功能模塊之間相互連接的一種度量,耦合強(qiáng)弱取決于功能模塊間接口的復(fù)雜程度、進(jìn)入或訪問(wèn)一個(gè)功能模塊的點(diǎn)以及通過(guò)接口的數(shù)據(jù)。耦合有以下幾種,他們之間的耦合度由高到低排列:
德國(guó)EPRO模塊的簡(jiǎn)單介紹
☆內(nèi)容耦合。如一個(gè)功能模塊直接訪問(wèn)另一個(gè)功能模塊的內(nèi)容,則這兩個(gè)功能模塊稱為內(nèi)容耦合。
☆公共耦合。如一組功能模塊都訪問(wèn)統(tǒng)一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱之為公共耦合。
☆外部耦合。如一組功能模塊都訪問(wèn)統(tǒng)一全局?jǐn)?shù)據(jù)項(xiàng),則稱之為外部耦合。
☆控制耦合。如一功能模塊明顯地把開關(guān)量、名字等信息送入另一功能模塊,控制另一功能模塊的功能,則為控制耦合。
☆標(biāo)記耦合。如一組功能模塊共享了某個(gè)記錄,而不是簡(jiǎn)單變量,即這些功能模塊都需某一數(shù)據(jù)的子結(jié)構(gòu)時(shí),就需要按該記錄的結(jié)構(gòu)進(jìn)行操作,并通過(guò)參數(shù)表來(lái)傳遞記錄信息,這樣的耦合稱之為標(biāo)記耦合。
☆數(shù)據(jù)耦合。如一個(gè)功能模塊訪問(wèn)另一個(gè)功能模塊,被訪問(wèn)的功能模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)功能模塊為數(shù)據(jù)耦合。
☆非直接耦合。若兩個(gè)功能模塊沒(méi)有直接關(guān)系,他們之間的*是通過(guò)主程序的控制和調(diào)用來(lái)實(shí)現(xiàn)的,便稱這兩個(gè)功能模塊為非直接耦合
上面只是對(duì)耦合機(jī)制進(jìn)行了一個(gè)分類。原則上講,功能模塊化設(shè)計(jì)總是希望功能模塊之間的耦合表現(xiàn)為非直接耦合方式。但是,由于問(wèn)題所固有的復(fù)雜性和空間方面的考慮,有時(shí)則要根據(jù)實(shí)際情況,全面權(quán)衡,選用其它類
內(nèi)聚是從功能角度來(lái)度量功能模塊內(nèi)的,一個(gè)好的內(nèi)聚功能模塊應(yīng)當(dāng)恰好做一件事。它描述的是功能模塊內(nèi)的功能。
內(nèi)聚有如下的種類,其內(nèi)聚度由弱到強(qiáng)排列:
☆偶然內(nèi)聚。一功能模塊中的代碼無(wú)法定義其不同功能的調(diào)用。但它使該功能模塊能執(zhí)行不同的功能,這種功能模塊稱為巧合強(qiáng)度功能模塊。
☆邏輯內(nèi)聚。這種功能模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),有傳送給功能模塊參數(shù)來(lái)確定該功能模塊應(yīng)完成那一種功能。
☆時(shí)間內(nèi)聚。這種功能模塊順序完成一類相關(guān)功能,比如初始化功能模塊,它順序?yàn)樽兞恐贸踔怠?/span>
☆過(guò)程內(nèi)聚。如果一個(gè)功能模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行則稱為過(guò)程內(nèi)聚。
☆通信內(nèi)聚。這種功能模塊除了具有過(guò)程內(nèi)聚的特點(diǎn)外,還有另外一種關(guān)系,則它的所有功能都通過(guò)使用公共數(shù)據(jù)而發(fā)生關(guān)系。
☆順序內(nèi)聚。如果一個(gè)功能模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,通常一個(gè)處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù),則稱為順序內(nèi)聚。
☆功能內(nèi)聚。如果一個(gè)功能模塊包括并僅包括未完成某一具體