版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-軟件熵

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

軟件熵Software entropy)是指軟件的無(wú)序程度。軟件熵可用來說明軟件在經(jīng)過不斷修改后,無(wú)序程度提高的現(xiàn)象。

簡(jiǎn)介軟件熵Software entropy)是指軟件的無(wú)序程度。軟件熵可用來說明軟件在經(jīng)過不斷修改后,無(wú)序程度提高的現(xiàn)象。

伊瓦爾·雅各布森用以下的方式描述“軟件熵”:

熱力學(xué)第二定律說明在一個(gè)封閉系統(tǒng)內(nèi)的無(wú)序程度不會(huì)下降,只會(huì)上升或維持定值,其無(wú)序程度可以用熵來表示。此定律似乎也可適用在軟件系統(tǒng)內(nèi),在系統(tǒng)經(jīng)過修改后,其無(wú)序程度(或稱為熵)會(huì)上升,這可稱為“軟件熵”。

在軟件開發(fā)中,有類似的理論。Lehman提出了以下的二個(gè)定律:

有用到的計(jì)算機(jī)程序就會(huì)被修改

若沒有特別的處理及修正,修改程式會(huì)使其復(fù)雜度會(huì)增加。

Andrew Hunt及David Thomas用破窗理論來說明如何避免在軟件開發(fā)過程中軟件熵的增加。代碼重構(gòu)可以漸進(jìn)的降低軟件熵。1

代碼重構(gòu)代碼重構(gòu)(英語(yǔ):Code refactoring)指對(duì)軟件代碼做任何更動(dòng)以增加可讀性或者簡(jiǎn)化結(jié)構(gòu)而不影響輸出結(jié)果。

軟件重構(gòu)需要借助工具完成,重構(gòu)工具能夠修改代碼同時(shí)修改所有引用該代碼的地方。在極限編程的方法學(xué)中,重構(gòu)需要單元測(cè)試來支持。1

相關(guān)條目軟件脆弱性

軟件凋零

本詞條內(nèi)容貢獻(xiàn)者為:

李嘉騫 - 博士 - 同濟(jì)大學(xué)