服務(wù)熱線:
用于移動車輛和工程機(jī)械系統(tǒng)的I/O模塊CR2032德國IFM:德國易福門IFM公司的座右銘是朝著既定的目標(biāo)不斷地發(fā)展,德國易福門IFM公司追求的不是技術(shù)可行性的發(fā)展,而是符合客戶利益的理性發(fā)展。德國易福門IFM公司在此基礎(chǔ)上用易福門的技術(shù)制定符合技術(shù)及經(jīng)濟(jì)利益的方案。德國易福門IFM公司電子在德國和美國的公司從事研發(fā)和生產(chǎn)。企業(yè)的行政和銷售管理位于德國魯爾區(qū)的艾森市,銷售分公司遍布重要的區(qū)域和國家。功能模塊獨(dú)立的概念是功能模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。抽象是指對事物、狀態(tài)或過程之間所存在的某些相似的方面集中和概括起來,而暫時(shí)忽略他們之間的差異,即考慮抽象事物的本質(zhì)特征而暫時(shí)不考慮他們的細(xì)節(jié)。信息隱蔽是指再設(shè)計(jì)功能模塊時(shí)使得一個(gè)功能模塊內(nèi)所包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的功能模塊來說是不能訪問的。信息隱蔽原則對于以后在軟件維護(hù)期間修改軟件時(shí)會帶來極大的好處,因?yàn)榇罅繑?shù)據(jù)和過程是軟件的其他部分所不能覺察的,因而再對某個(gè)功能模塊修改時(shí)就不大會影響到軟件的其他部分,所謂局部化是指把一些關(guān)系密切的軟件元素在物理位置上彼此靠近。功能模塊獨(dú)立性是通過制定具有單一功能并且和其他功能模塊沒有過多聯(lián)系的功能模塊來實(shí)現(xiàn)的。每個(gè)功能模塊只涉及該軟件要求的一個(gè)具體子功能,而且與軟件結(jié)構(gòu)的其他部分的接口是簡單的。功能模塊獨(dú)立性好的軟件接口簡單,易于編制,獨(dú)立的功能模塊也比較容易測試和維護(hù),限制了功能模塊之間由于聯(lián)系緊密而引起的修改副作用。獨(dú)立性是保證軟件質(zhì)量的重要因素。1.提高功能模塊獨(dú)立性在得到軟件結(jié)構(gòu)之后,就應(yīng)首先著眼于改善功能模塊的獨(dú)立性,考驗(yàn)是否應(yīng)該把一些功能模塊提取或合并,力求降低耦合提高內(nèi)聚。例如,多個(gè)功能模塊共有的一個(gè)子功能可以獨(dú)立成一個(gè)功能模塊,由這些功能模塊調(diào)用,有時(shí)可以通過分解或合并功能模塊以減少控制信息的傳遞及對全局?jǐn)?shù)據(jù)的引用,并且降低接口的復(fù)雜度。2.功能模塊規(guī)模適度經(jīng)驗(yàn)表明,當(dāng)功能模塊過大時(shí),功能模塊的可理解性就會迅速下降。但是對過大的功能模塊分解時(shí),也不應(yīng)降低功能模塊的獨(dú)立性。因?yàn)楫?dāng)對一個(gè)大的功能模塊分解時(shí),有可能增加功能模塊之間的依賴。3.深度、寬度、扇出和扇入要適當(dāng)如果深度過大則說明有的控制模塊可能簡單了。如果寬度過大則說明系統(tǒng)的控制過于集中。而扇出過大則意味著功能模塊過于復(fù)雜,需要控制和協(xié)調(diào)過多的下級模塊,這時(shí)應(yīng)適當(dāng)?shù)卦黾又虚g層次,扇出太小則可以把下級模塊進(jìn)一步分解成若干個(gè)子功能模塊,或者合并到上級功能模塊中去。一個(gè)功能模塊的扇入是表明有多少個(gè)上級功能模塊直接調(diào)用它,扇入越大則共享該模塊的上級模塊數(shù)目越多,這是有好處的。4.要使模塊的作用范圍保持在該模塊的控制范圍內(nèi)功能模塊的作用范圍是指受該功能模塊內(nèi)一個(gè)判定影響的所有功能模塊的集合。功能模塊的控制范圍是指這個(gè)功能模塊本身以及所有直接或間接從屬于它的功能模塊的集合。在一個(gè)設(shè)計(jì)得很好的系統(tǒng)中,所有受判定影響的功能模塊應(yīng)該都從屬于作出判定的那個(gè)功能模塊,好局限于做出判定的那個(gè)功能模塊本身及它的直接下級模塊。對于那些不滿足這一條件的軟件結(jié)構(gòu)修改的辦法是:將判定點(diǎn)上移或者將那些在作用范圍內(nèi)但是不在控制范圍內(nèi)的功能模塊移植到控制范圍內(nèi)。5.應(yīng)減少功能模塊的接口的復(fù)雜性和冗余度,并改善一致性功能模塊接口復(fù)雜是軟件發(fā)生錯(cuò)誤的一個(gè)主要原因。應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信息傳遞簡單并且和模塊的功能一致。6.設(shè)計(jì)成單入口、單出口的功能模塊,避免病態(tài)連接要防止內(nèi)容耦合性,如果功能模塊都是從頂部入口、從底部出口的話,這樣的軟件也更易于理解和易于維護(hù)。病態(tài)連接關(guān)系是指從中部進(jìn)入或訪問一個(gè)模塊。7.模塊的功能可預(yù)測如果一個(gè)功能模塊可以當(dāng)做一個(gè)黑箱,即只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個(gè)模塊的功能就是可以預(yù)測的。而那些具有內(nèi)部記憶的功能模塊則可能是不可預(yù)知的,因?yàn)樗赡苡涊d了某個(gè)內(nèi)部標(biāo)志并且利用這個(gè)標(biāo)志去選擇處理方案。由于這個(gè)標(biāo)志對上級功能模塊來說是看不見的,因而可能引起混亂。8.組裝軟件根據(jù)設(shè)計(jì)的約束和移植的需要組裝是指用來把軟件組合起來,以便把軟件放入特定的處理環(huán)境或送往其他的地方。有時(shí),設(shè)計(jì)約束要求一個(gè)程序要在內(nèi)存中覆蓋自己。如果有這種要求的話,原設(shè)計(jì)結(jié)構(gòu)就可能必須重新組織以便按照重復(fù)的次數(shù)、存取的頻率以及各次調(diào)用之間的間隔來把功能模塊組合起來。