軟件熵(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é)