產(chǎn)品分類品牌分類
-
減速電機(jī) 安川電機(jī) 施耐德電機(jī) 發(fā)那科電機(jī) 伺服電機(jī) 交換機(jī) 直線電機(jī) 直流調(diào)速電動(dòng)機(jī) 電磁調(diào)速電動(dòng)機(jī) 電磁減速電動(dòng)機(jī) 調(diào)速電動(dòng)機(jī) 恒速電動(dòng)機(jī) 低速電動(dòng)機(jī) 高速電動(dòng)機(jī) 驅(qū)動(dòng)用電動(dòng)機(jī) 推斥電動(dòng)機(jī) 感應(yīng)電動(dòng)機(jī) 同步電動(dòng)機(jī) 三相電動(dòng)機(jī) 單相電動(dòng)機(jī) 交流電動(dòng)機(jī) 直流電動(dòng)機(jī)
產(chǎn)品簡(jiǎn)介
詳細(xì)介紹
西門子調(diào)速器功能模塊是指數(shù)據(jù)說明、可執(zhí)行語(yǔ)句等程序元素的集合,它是指單獨(dú)命名的可通過名字來訪問的過程、函數(shù)、子程序或宏調(diào)用。功能模塊化是將程序劃分成若干個(gè)功能模塊,每個(gè)功能模塊完成了一個(gè)子功能,再把這些功能模塊總起來組成一個(gè)整體。以滿足所要求的整個(gè)系統(tǒng)的功能。
西門子調(diào)速器模塊獨(dú)立性編輯
功能模塊獨(dú)立的概念是功能模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。
抽象是指對(duì)事物、狀態(tài)或過程之間所存在的某些相似的方面集中和概括起來,而暫時(shí)忽略他們之間的差異,即考慮抽象事物的本質(zhì)特征而暫時(shí)不考慮他們的細(xì)節(jié)。信息隱蔽是指再設(shè)計(jì)功能模塊時(shí)使得一個(gè)功能模塊內(nèi)所包含的信息(過程或數(shù)據(jù)),對(duì)于不需要這些信息的功能模塊來說是不能訪問的。信息隱蔽原則對(duì)于以后在軟件維護(hù)期間修改軟件時(shí)會(huì)帶來極大的好處,因?yàn)榇罅繑?shù)據(jù)和過程是軟件的其他部分所不能覺察的,因而再對(duì)某個(gè)功能模塊修改時(shí)就不大會(huì)影響到軟件的其他部分,所謂局部化是指把一些關(guān)系密切的軟件元素在物理位置上彼此靠近。
功能模塊獨(dú)立性是通過制定具有單一功能并且和其他功能模塊沒有過多聯(lián)系的功能模塊來實(shí)現(xiàn)的。每個(gè)功能模塊只涉及該軟件要求的一個(gè)具體子功能,而且與軟件結(jié)構(gòu)的其他部分的接口是簡(jiǎn)單的。
功能模塊獨(dú)立性好的軟件接口簡(jiǎn)單,易于編制,獨(dú)立的功能模塊也比較容易測(cè)試和維護(hù),限制了功能模塊之間由于聯(lián)系緊密而引起的修改副作用。獨(dú)立性是保證軟件質(zhì)量的重要因素。
獨(dú)立性度量編輯
功能模塊獨(dú)立性是由內(nèi)聚性和耦合性兩個(gè)定性指標(biāo)來度量的。內(nèi)聚性是度量一個(gè)功能模塊內(nèi)功能強(qiáng)度的一個(gè)相對(duì)指標(biāo)。耦合性則用來度量功能模塊之間的相互聯(lián)系的程度。
耦合
耦合是軟件結(jié)構(gòu)中各功能模塊之間相互連接的一種度量,耦合強(qiáng)弱取決于功能模塊間接口的復(fù)雜程度、進(jìn)入或訪問一個(gè)功能模塊的點(diǎn)以及通過接口的數(shù)據(jù)。
耦合有以下幾種,他們之間的耦合度由高到低排列:
☆內(nèi)容耦合。如一個(gè)功能模塊直接訪問另一個(gè)功能模塊的內(nèi)容,則這兩個(gè)功能模塊稱為內(nèi)容耦合。
☆公共耦合。如一組功能模塊都訪問統(tǒng)一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱之為公共耦合。
☆外部耦合。如一組功能模塊都訪問統(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)行操作,并通過參數(shù)表來傳遞記錄信息,這樣的耦合稱之為標(biāo)記耦合。
☆數(shù)據(jù)耦合。如一個(gè)功能模塊訪問另一個(gè)功能模塊,被訪問的功能模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)功能模塊為數(shù)據(jù)耦合。
☆非直接耦合。若兩個(gè)功能模塊沒有直接關(guān)系,他們之間的聯(lián)系*是通過主程序的控制和調(diào)用來實(shí)現(xiàn)的,便稱這兩個(gè)功能模塊為非直接耦合,獨(dú)立性*。
上面只是對(duì)耦合機(jī)制進(jìn)行了一個(gè)分類。原則上講,功能模塊化設(shè)計(jì)總是希望功能模塊之間的耦合表現(xiàn)為非直接耦合方式。但是,由于問題所固有的復(fù)雜性和空間方面的考慮,有時(shí)則要根據(jù)實(shí)際情況,全面權(quán)衡,選用其它類型的耦合。 [1]
內(nèi)聚
內(nèi)聚是從功能角度來度量功能模塊內(nèi)的聯(lián)系,一個(gè)好的內(nèi)聚功能模塊應(yīng)當(dāng)恰好做一件事。它描述的是功能模塊內(nèi)的功能聯(lián)系。
內(nèi)聚有如下的種類,其內(nèi)聚度由弱到強(qiáng)排列:
☆偶然內(nèi)聚。一功能模塊中的代碼無法定義其不同功能的調(diào)用。但它使該功能模塊能執(zhí)行不同的功能,這種功能模塊稱為巧合強(qiáng)度功能模塊。
☆邏輯內(nèi)聚。這種功能模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),有傳送給功能模塊參數(shù)來確定該功能模塊應(yīng)完成那一種功能。
☆時(shí)間內(nèi)聚。這種功能模塊順序完成一類相關(guān)功能,比如初始化功能模塊,它順序?yàn)樽兞恐贸踔怠?br />☆過程內(nèi)聚。如果一個(gè)功能模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行則稱為過程內(nèi)聚。
☆通信內(nèi)聚。這種功能模塊除了具有過程內(nèi)聚的特點(diǎn)外,還有另外一種關(guān)系,則它的所有功能都通過使用公共數(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è)功能模塊包括并僅包括未完成某一具體任務(wù)所必需的所有成分,或者說功能模塊中所有成分結(jié)合起來是為了完成一個(gè)具體的任務(wù),此功能模塊稱為功能強(qiáng)度模塊。
軟件功能模塊指標(biāo)編輯
系統(tǒng)中的各功能模塊在納入時(shí)間、激活機(jī)制和控制方式等方面可以不相同。
1)納入時(shí)間
納入時(shí)間是指一個(gè)功能模塊被歸并到軟件的源語(yǔ)言描述之中的時(shí)間。比如宏功能模塊是由編譯器把它作為程序的一部分直接插入到引用位置上去的。而普通的子程序則是通過產(chǎn)生目標(biāo)代碼與連接代碼而納入到軟件中的。
2)激活機(jī)制
功能模塊的激活機(jī)制通常有兩種:一個(gè)是通過引用來調(diào)用功能模塊,另一個(gè)是通過中斷來調(diào)用一個(gè)功能模塊。在實(shí)時(shí)系統(tǒng)中,通常使用后者。比如,使用一個(gè)外部時(shí)間來引起處理過程的中斷,然后使控制轉(zhuǎn)到另一個(gè)功能模塊。
3)控制方式
一般功能模塊具有單一入口和單一出口,并作為程序的一部分順序地執(zhí)行,有時(shí),也需要更為復(fù)雜的控制方式,如可重入功能模塊。這種功能模塊不以任何方式修改它自己或它所訪問的局部地址,從而這樣的功能模塊就可以同時(shí)被幾個(gè)任務(wù)使用。
4)結(jié)構(gòu)分類
在軟件結(jié)構(gòu)中,功能模塊可以分為以下幾類:
順序功能模塊:它在沒有明顯中斷情況下被應(yīng)用軟件調(diào)用和執(zhí)行。
增量功能模塊:它在調(diào)用結(jié)束之前可以被應(yīng)用程序中斷,然后在中斷點(diǎn)重新啟動(dòng)。
并行功能模塊:它在并行多處理機(jī)環(huán)境中與別的功能模塊同時(shí)執(zhí)行。 [2]
設(shè)計(jì)要素編輯
1.提高功能模塊獨(dú)立性
在得到軟件結(jié)構(gòu)之后,就應(yīng)首先著眼于改善功能模塊的獨(dú)立性,考驗(yàn)是否應(yīng)該把一些功能模塊提取或合并,力求降低耦合提高內(nèi)聚。例如,多個(gè)功能模塊共有的一個(gè)子功能可以獨(dú)立成一個(gè)功能模塊,由這些功能模塊調(diào)用,有時(shí)可以通過分解或合并功能模塊以減少控制信息的傳遞及對(duì)全局?jǐn)?shù)據(jù)的引用,并且降低接口的復(fù)雜度。
2.功能模塊規(guī)模適度
經(jīng)驗(yàn)表明,當(dāng)功能模塊過大時(shí),功能模塊的可理解性就會(huì)迅速下降。但是對(duì)過大的功能模塊分解時(shí),也不應(yīng)降低功能模塊的獨(dú)立性。因?yàn)楫?dāng)對(duì)一個(gè)大的功能模塊分解時(shí),有可能增加功能模塊之間的依賴。
3.深度、寬度、扇出和扇入要適當(dāng)
如果深度過大則說明有的控制模塊可能簡(jiǎn)單了。如果寬度過大則說明系統(tǒng)的控制過于集中。而扇出過大則意味著功能模塊過于復(fù)雜,需要控制和協(xié)調(diào)過多的下級(jí)模塊,這時(shí)應(yīng)適當(dāng)?shù)卦黾又虚g層次,扇出太小則可以把下級(jí)模塊進(jìn)一步分解成若干個(gè)子功能模塊,或者合并到上級(jí)功能模塊中去。一個(gè)功能模塊的扇入是表明有多少個(gè)上級(jí)功能模塊直接調(diào)用它,扇入越大則共享該模塊的上級(jí)模塊數(shù)目越多,這是有好處的。
4.要使模塊的作用范圍保持在該模塊的控制范圍內(nèi)
功能模塊的作用范圍是指受該功能模塊內(nèi)一個(gè)判定影響的所有功能模塊的集合。功能模塊的控制范圍是指這個(gè)功能模塊本身以及所有直接或間接從屬于它的功能模塊的集合。在一個(gè)設(shè)計(jì)得很好的系統(tǒng)中,所有受判定影響的功能模塊應(yīng)該都從屬于作出判定的那個(gè)功能模塊,*局限于做出判定的那個(gè)功能模塊本身及它的直接下級(jí)模塊。對(duì)于那些不滿足這一條件的軟件結(jié)構(gòu)修改的辦法是:將判定點(diǎn)上移或者將那些在作用范圍內(nèi)但是不在控制范圍內(nèi)的功能模塊移植到控制范圍內(nèi)。
5.應(yīng)減少功能模塊的接口的復(fù)雜性和冗余度,并改善一致性
功能模塊接口復(fù)雜是軟件發(fā)生錯(cuò)誤的一個(gè)主要原因。應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信息傳遞簡(jiǎn)單并且和模塊的功能一致。
6.設(shè)計(jì)成單入口、單出口的功能模塊,避免病態(tài)連接
要防止內(nèi)容耦合性,如果功能模塊都是從頂部入口、從底部出口的話,這樣的軟件也更易于理解和易于維護(hù)。病態(tài)連接關(guān)系是指從中部進(jìn)入或訪問一個(gè)模塊。
7.模塊的功能可預(yù)測(cè)
如果一個(gè)功能模塊可以當(dāng)做一個(gè)黑箱,即只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個(gè)模塊的功能就是可以預(yù)測(cè)的。而那些具有內(nèi)部記憶的功能模塊則可能是不可預(yù)知的,因?yàn)樗赡苡涊d了某個(gè)內(nèi)部標(biāo)志并且利用這個(gè)標(biāo)志去選擇處理方案。由于這個(gè)標(biāo)志對(duì)上級(jí)功能模塊來說是看不見的,因而可能引起混亂。
8.組裝軟件根據(jù)設(shè)計(jì)的約束和移植的需要
組裝是指用來把軟件組合起來,以便把軟件放入特定的處理環(huán)境或送往其他的地方。有時(shí),設(shè)計(jì)約束要求一個(gè)程序要在內(nèi)存中覆蓋自己。如果有這種要求的話,原設(shè)計(jì)結(jié)構(gòu)就可能必須重新組織以便按照重復(fù)的次數(shù)、存取的頻率以及各次調(diào)用之間的間隔來把功能模塊組合起來。